← home

Pushdo Trojan – 비정상적인 트래픽 급증으로 인한 서버 다운

작년 말, 관리중인 웹사이트의 트래픽이 비정상적으로 급증하더니 서버가 다운되는 일이 발생하였다.
엑세스 로그를 확인해보니 아래와 같이 제각기 다른 아이피로 어마어마한 양의 POST 요청이 지속적으로 들어오고 있었다.

203.74.0.211 - - [30/Aug/2013:12:43:57 +0800] "POST / HTTP/1.1" 301 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
114.143.167.11 - - [30/Aug/2013:12:43:57 +0800] "POST / HTTP/1.1" 301 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
122.161.102.170 - - [30/Aug/2013:12:43:57 +0800] "POST / HTTP/1.1" 301 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
114.143.32.198 - - [30/Aug/2013:12:43:57 +0800] "POST / HTTP/1.1" 301 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
187.150.57.67 - - [30/Aug/2013:12:43:57 +0800] "POST / HTTP/1.1" 301 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

당시 나는 이런 방면에 지식과 경험이 부족했기에 이사람 저사람에게 조언을 구해 우선 급한 불을 꺼두었다. 하지만 계속 인바운드가 있기 때문에 그 원인과 정체가 무엇이고, 원천적인 차단 방법은 없는지 궁금하여 오늘 다시 한번 원인을 찾아나섰다. 알고보니 이 문제는 Pushdo Trojan이라는 멀웨어(malware)였다. 발견된지는 오래되었지만 계속 진화하여 작년말부터 피해사례가 갑자기 많아진 것으로 보인다. 자세한 내용은 아래 링크를 참고.
http://www.distilnetworks.com/is-pushdo-screwing-you-details-of-the-botnet/

이 공격은 도메인 베이스이므로 서버나 아이피를 바꾼다고해서 해결되지않는다. 검색으로 알아본 바, 의견이 분분하지만 전반적으로 인바운드를 원천적으로 차단할 수는 없고, 루트 도메인 홈디렉토리의 user-agent나 http-referer를 체크하여 요청을 차단하는 해법이 주로 이야기되고 있다. 내가 작년에 임시방편으로 처리했던 방법이 후자와 같다. REQUEST_METHOD가 POST이고 HTTP_REFERER가 없는 경우 Forbidden으로 처리하는 방법.

아파치 설정
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} ^$
RewriteRule ^(.*)$ - [F,L]
NGINX 설정
location ~ ^/$ {
   set $request_test "";
   if ( $http_referer = "" ){
      set $request_test "Y";
   }
   if ( $request_method = "POST" ){
      set $request_test "${request_test}Y";
   }
   if ( $request_test = "YY" ){
      return 403;
   }
}

특히 워드프레스로 만든 사이트는 기본 쿼리량이 많은 편이므로 위와 같은 공격이 들어오면 캐시를 걸어둔다해도 웹서버에 큰 무리가 갈 수 있다. 현재 당신의 도메인이 Pushdo Trojan의 공격대상이 아니더라도 위와 같은 설정을 미리해두어 나쁠 것 없다고 생각한다.

← home