워드프레스 xmlrpc.php 해커 공격을 차단하는 방법 – 서버관리

By 2016년 4월 29일개발

워드프레스 xmlpc.php Post를 이용한 공격

워드프레스에서 원격 프로그램에서 글을 작성해서 올릴 수 있게 하는 xmlpc.php가 있다. 그런데 이 기능을 이용해서 지속적으로 공격을 시도하는 해커들이 있었다.

이 공격을 당했을 때 직접적으로 눈에 보이는 상황은 top 명령어를 이용해서 봤을 때 httpd 프로세스가 급격히 늘어나면서 CPU 점유율을 잠식하는 것이었다. 그리고 CPU 점유율이 100%에서 떨어지지 않고 계속 유지되면서 사이트 접속은 느려지거나 접속이 되지 않는 현상이 발생했다.

처음에는 아파치 설정에서 문제가 발생했거나 접속자 수가 갑자기 늘어나면서 접속에 문제가 생겼는지 확인했다. 하지만 정상적으로 보였고 이 때문에 다른 원인을 찾아야만 했다. 그래서 로그를 눈여겨보다가 /var/log/httpd/access_log에서 다음과 같은 알 수 없는 시도가 계속 발생하는 것을 확인할 수 있었다. 처음에는 Googlebot이 사이트 정보를 수집하는 것으로 착각했으나 자세히 보면 POST로 /xmlrpc.php에 무엇인가를 계속 보내고 있는 시도이다.

5.135.68.51 - - [13/May/2015:12:14:59 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.61.138.72 - - [13/May/2015:12:14:59 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.11.147.17 - - [13/May/2015:12:14:59 -0400] "POST /xmlrpc.php HTTP/1.0" 404 168 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.11.147.17 - - [13/May/2015:12:14:59 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.62.188.76 - - [13/May/2015:12:15:01 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.62.188.76 - - [13/May/2015:12:15:01 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.62.188.76 - - [13/May/2015:12:15:01 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.61.138.72 - - [13/May/2015:12:15:01 -0400] "POST /xmlrpc.php HTTP/1.0" 404 168 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

5.135.68.51 - - [13/May/2015:12:15:02 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

5.135.68.51 - - [13/May/2015:12:15:02 -0400] "POST /xmlrpc.php HTTP/1.0" 404 168 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)”

iptables를 이용해서 해당 IP를 차단

해결책은 해당 공격을 시도하는 IP들은 서버 방화벽에 등록해서 차단하는 것이다.

grep xmlrpc access_log | cut -d’ ‘ -f1 | sort | uniq -c | sort -rn | head

명령을 이용해서 관련 IP들을 모두 걸러서 볼 수 있다.

사용 중인 워드프레스 플러그인이 xmlrpc.php 관련된 것을 이용 중이라면 해당 IP까지 차단하면 플러그인에 문제가 생길 수 있으니 해당 IP들은 걸러내고 해커공격으로 의심되는 것들만을 뽑아낸다.

위 명령어에서 뒷 부분에 -n{숫자}를 추가하면 해당 수만큼 출력을 줄일 수 있다.

grep xmlrpc access_log | cut -d’ ‘ -f1 | sort | uniq -c | sort -rn | head -n8

이렇게 걸러진 출력을 다음과 같이 for문을 이용해서 iptables에 등록해준다.

for ip in $(grep xmlrpc access_log|cut -d’ ‘ -f1|sort | uniq -c |sort -rn | head -n8| awk ‘{print $2}’); do iptables -A INPUT -s $ip -j DROP; done

증상 및 후기

특정 프로세스 점유율이 갑자기 올라가는 현상도 아니었고 httpd 프로세스가 여러 개 급격히 늘어나면서 각각 CPU 점유율 및 메모리를 나눠먹으면서 시스템을 포화상태로 만드는 증상이었다.

후기라면 로그를 정기적으로 확인하는 습관을 가질 필요가 있다는 것이다. 그리고 당연한 것처럼 보이는 로그도 유심히 분석해볼 필요가 있다.

출처 – Block hacker attacks on WordPress’ xmlrpc.php

Leave a Reply