DDOS 대응 일지

By | 2021년 12월 14일
Table of Contents

DDOS 대응 일지

현상

일단위 수천개 아이피를 이용해 DDOS 공격을 하고 있다.
심지어 매일매일 새로운 수천개 아이피가 이용되고 있다.

user-agent 는 안드로이드 WebView 이다.

대응 1차

DDOS 하는 애들은 스크립트도 실행 않할거고 쿠키저장도 않할거다.
cce=y 요정도로 쿠키 박아넣고 쿠키체크로 끝내자.

하지만 실패.

if (Request.Cookies("cce") = "") then
    %>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="utf-8" />
    <title>나의 쇼핑몰</title>
</head>
<body>
    <script>
    if (navigator.cookieEnabled == true) {
        var d = new Date();
        d.setDate(d.getDate() + 30);
        document.cookie = "cce=Y; path=/; expires=" + d.toGMTString() + ";";
        setTimeout(function() {
            document.location.reload();
        }, 200);
    } else {
        document.write('현재 사용 중인 브라우저는 쿠키를 지원하지 않거나, 해당 기능이 활성화되어 있지 않습니다.<br />');
        document.write('보다 자세한 사항은 <a href="/cscenter/">고객센터</a>로 문의주시기 바립니다.');
    }
    </script>
    <noscript>
        현재 사용 중인 브라우저는 스크립트를 지원하지 않거나, 해당 기능이 활성화되어 있지 않습니다.<br />
        보다 자세한 사항은 <a href="/cscenter/">고객센터</a>로 문의주시기 바립니다.
    </noscript>
</body>
</html>
    <%
    Response.Status = "239 Check browser"
    response.end
end if

대응 2차

스크립트 실행을 절대 할수 없을건데…
사람이 눈으로 보고 쿠키를 복사해서 같이 보내나?
쿠키를 암호화하고 아이피당 1시간의 유효기간만 설정해서 보내보자.

실패.

대응 3차

뭐지?
수천개의 아이피를 이용하고 있는데…
아이피+현재시간 조합으로 한시간짜리 인증키를 발급해주고 있는데…
이걸 사람이 눈으로 보고 복사해서 붙여넣는건 불가능한데…

스크립트를 실행하고 있구나!!!

그렇다면 사용자 핸드폰에 DDOS 앱을 백그라운드 WebView 로 실행하고 있지 않을까?

스크립트에 document.hidden 을 체크하는 로직을 넣어보자.

실패.

대응 4차

뭐지?
document.hidden 은 ReadOnly 인데…
DDOS 를 ForeGround 로 실행한다고???

자기 장비(or AWS 장비) 를 이용하고 있구나.

위에서 스크립트를 실행한다는게 확인되었고…
그렇다면 내가 작성한 코드를 실행시켜 준다는건데…

요놈들이 실행하고 있는 브라우저의 특성을 파악해 보자.

try {
    var url = '/common/addlog.js?w=1';
    url = url + '&h=' + ((typeof document.hidden === "undefined") ? 'X' : (document.hidden ? 'Y' : 'N'));
    url = url + '&k=' + ((typeof document.webkitHidden === "undefined") ? 'X' : (document.webkitHidden ? 'Y' : 'N'));
    url = url + '&x=' + window.innerWidth;
    url = url + '&y=' + window.innerHeight;

    $.ajax({url:url});
} catch (error) {
    console.error(error);
}

어???
화면 사이즈가 300X150 이네???
이 사이즈 가지고 사람이 접속할 일은 없을건데???

화면 사이즈로 막아보자.

성공.

오후 5시를 기점으로 기적이 발생했습니다.
올레~~~

(키바나 캡쳐를 자세히 보면 네이버앱 or 카카오앱을 이용한 접속을 제외하고 DDOS 공격들이 사라진게 보입니다.)

답글 남기기