Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

워드프레스 해킹 후 스팸 메일 발송 문제: 증상, 원인부터 탐지와 정리 방법까지

워드프레스(WordPress)는 온라인 콘텐츠 관리를 위한 가장 저렴하고 쉬운 솔루션 중 하나입니다. 오랜 시간 발전해 온 워드프레스는 현재 전 세계 웹의 상당 부분을 구동하고 있습니다. 그러나 이러한 높은 점유율에는 큰 대가가 따릅니다. 바로 전 세계에서 가장 많이 공격받는 CMS 중 하나가 되었다는 점입니다. 실제로 많은 사용자가 "워드프레스가 해킹당해 고객에게 스팸 메일을 발송한다"는 문제로 어려움을 겪고 있습니다. 스팸 문제는 장기적으로 사이트의 신뢰도와 평판을 심각하게 훼손할 수 있어 더욱 곤란한 상황을 만듭니다.

이 글에서는 워드프레스가 해킹되어 스팸을 발송하는 대표적인 사례를 살펴보고, 이를 진단하고 해결하는 실전 방법까지 단계별로 안내합니다.

워드프레스 해킹 후 스팸 발송: 주요 증상

워드프레스가 해킹되어 스팸을 발송하는 상황은 발견까지 몇 시간 혹은 며칠이 걸릴 수 있습니다. 스팸 메일이 웹 전반에 퍼지는 데 시간이 필요하기 때문입니다. 하지만 다음과 같은 징후를 통해 공격 여부를 조기에 파악할 수 있습니다.

  • IP 블랙리스트 등록: 서버의 스팸 활동을 감시하는 온라인 서비스가 내 IP를 차단 목록에 올립니다. 그 결과 정상적으로 보내는 이메일마저 수신자의 스팸함으로 분류됩니다.
  • 검색엔진 제재: 구글 등 일부 검색엔진이 스팸 발송 사이트로 판단해 워드프레스 사이트를 블랙리스트에 등록합니다.
  • 사이트 성능 저하: MTA(메일 전송 에이전트) 큐에 대량의 스팸이 쌓이면서 사이트가 갑자기 매우 느려집니다.
  • 로그 오류 급증: 로그 파일에 이메일 전송 실패 메시지 등 오류가 비정상적으로 많이 기록됩니다.
  • ISP 경고 수신: 인터넷 서비스 제공업체(ISP)로부터 대량의 아웃바운드 스팸에 대한 경고를 받습니다.
  • 대역폭 포화: 워드프레스 사이트가 갑자기 대역폭을 과도하게 소모하기 시작합니다.
  • 경고 메시지: "MTA Queue is too large!" 같은 경고 메시지가 표시됩니다.

워드프레스 해킹 후 스팸 발송: 주요 원인

1. 악성코드(Malware) 감염

스팸 발송의 가장 흔한 원인은 악성코드 감염입니다. 해커는 워드프레스 서버에 악성 스크립트를 업로드하고, 이 스크립트가 SMTP 메일 서버와 연결을 맺어 스팸을 대량 생성합니다. 아래 이미지는 실제 악성코드의 소스 코드 예시로, 스팸 메시지를 만든 뒤 base64 인코딩으로 변환해 백신 및 보안 시스템의 탐지를 회피하는 단순한 형태의 악성코드임을 확인할 수 있습니다.

워드프레스 해킹 후 스팸 메일 발송 문제: 증상, 원인부터 탐지와 정리 방법까지

2. 코딩 취약점

SQL 삽입(SQLi), XSS, RCE(원격 코드 실행) 같은 코딩 취약점 역시 스팸 발송의 원인이 됩니다. 공격자는 이러한 취약점을 이용해 사이트를 장악한 후, 정상 파일에 악성 코드를 삽입합니다. 특히 index.php, functions.php, themes.php 같은 핵심 파일은 악성 코드가 심어져 스팸을 발송하는 경로로 자주 악용됩니다.

3. 서버 설정 취약점

서버 설정 오류 역시 공격자에게 빌미를 제공합니다. 예를 들어 SMTP 연결에 25번 포트를 사용하면 스패머들의 표적이 되기 쉽습니다. 일부 ISP는 25번 포트를 차단하므로 587번 포트를 사용하는 것이 안전합니다. 또한 하나의 웹호스팅 공간을 여러 사이트가 공유하면, 한 곳의 스팸 악성코드 감염이 다른 사이트로 확산될 수 있습니다. 이를 예방하려면 서브네팅(subnetting)을 적용하세요. 그 외에도 디렉터리 인덱싱 허용, 불필요한 개방 포트 등의 설정 오류 역시 스팸 발송 사고로 이어질 수 있습니다.

워드프레스 해킹 후 스팸 발송: 탐지 방법

대부분의 경우 악성 PHP 스크립트가 스팸 발송의 범인입니다. 따라서 해당 스크립트를 찾아 제거하면 스팸 문제도 함께 해결됩니다. 우선 관리자 권한으로 서버에 로그인한 뒤 아래 단계를 진행하세요.

1단계: 관리자 권한 획득

관리자 권한을 확보한 후, 서버에서 외부로 발송되는 이메일을 캡처할 준비를 합니다.

2단계: 로그 파일 생성

스팸 메일 정보를 기록할 로그 파일을 먼저 생성합니다. 다음 명령어를 실행하세요.

touch /var/log/phpmail.log

생성한 phpmail.log 파일이 쓰기 가능한지 확인합니다. 아래 명령어로 소유권을 지정하세요.

chown httpd:httpd /var/log/phpmail.log

3단계: Apache 재시작

파일 생성이 완료되면 다음 명령어로 Apache 서버를 재시작합니다.

service httpd restart

4단계: 발송 메일 실시간 모니터링

이제 아래 명령어로 발송되는 이메일을 캡처해 로그 파일에 저장할 수 있습니다.

tail -f /var/log/phpmail.log

tail 명령어의 -f 옵션은 모든 로깅 데이터를 phpmail.log 파일에 실시간으로 기록합니다. 로그 파일의 내용은 아래 이미지와 같습니다.

워드프레스 해킹 후 스팸 메일 발송 문제: 증상, 원인부터 탐지와 정리 방법까지

위 이미지에서 첫 번째 줄만 봐도 스팸 메일을 발송한 파일을 확인할 수 있습니다. 바로 감염된 워드프레스의 functions.php 파일입니다. 이렇게 성공적으로 스팸 발송 스크립트를 식별했다면, 이제 제거 작업으로 넘어갈 차례입니다.

워드프레스 해킹 후 스팸 메일 발송 문제: 증상, 원인부터 탐지와 정리 방법까지

워드프레스 해킹 후 스팸 발송: 정리 및 복구

범인 스크립트를 찾았다면 해당 파일을 열어 코드를 분석합니다. 공격자는 대개 base64 인코딩, FOPO 등의 난독화 기법으로 코드를 숨깁니다. 아래 이미지의 코드처럼 겉보기에는 알아볼 수 없는 형태로 위장된 경우가 많습니다.

워드프레스 해킹 후 스팸 메일 발송 문제: 증상, 원인부터 탐지와 정리 방법까지

하지만 이 코드를 디난독화하면 아래 이미지와 같은 원래 형태가 드러납니다. 분석 결과, 문자열을 PHP 코드로 실행하는 eval() 함수가 스팸 발송에 악용된 것으로 확인되었습니다.

워드프레스 해킹 후 스팸 메일 발송 문제: 증상, 원인부터 탐지와 정리 방법까지

eval() 함수의 남용은 코드 품질과 보안 모두에 악영향을 미치므로, 이런 종류의 악성 코드는 반드시 삭제해야 합니다. 만약 코드의 용도를 확실히 알 수 없다면 해당 줄을 주석 처리한 뒤 전문가에게 악성코드 제거를 의뢰하는 것이 안전합니다. 감염된 파일을 삭제하고 깨끗한 원본으로 교체하는 방법도 있지만, 이때는 주의가 필요합니다. .htaccess처럼 서버 운영에 필수적인 파일을 함부로 삭제하면 사이트 전체가 마비될 수 있습니다.

정리 작업을 마친 후에는 서버가 재전송을 시도하는 MTA 큐에 남아 있는 스팸 메시지를 모두 삭제해야 합니다. 아래 명령어를 사용하세요.

sudo postsuper -d ALL
sudo postsuper -d ALL deferred

워드프레스 해킹 후 스팸 발송: 사전 예방

Astra 같은 보안 솔루션을 활용하면 워드프레스 사이트를 24시간 내내 모든 유형의 스팸으로부터 보호할 수 있습니다. Astra는 사이트 트래픽을 능동적으로 모니터링하여 유입되거나 발송되는 모든 스팸을 차단합니다. 특히 개인 블로그도 부담 없이 이용할 수 있도록 월 25달러부터 시작하는 합리적인 가격 정책을 제공합니다. 워드프레스 및 유사 CMS에 특화되어 설계된 Astra로 스팸을 제거하고 미연에 방지하세요.