워드프레스(WordPress)는 웹사이트와 온라인 쇼핑몰을 구축하는 데 가장 널리 사용되는 CMS 중 하나입니다. 하지만 그만큼 인기가 높은 만큼 해커와 SEO 스패머들의 주요 공격 표적이 되고 있기도 합니다. 해커들은 다양한 종류의 악성코드 공격과 해킹 시도를 통해 워드프레스 기반 사이트를 노리는데, 그중 가장 빈번하게 사용되는 기법이 바로 검색 엔진 결과를 조작해 부적절한 콘텐츠를 상위 검색 순위에 노출시키는 방식입니다. 이러한 블랙햇 SEO(해킹) 기법은 '워드프레스 파마 해킹(Pharma Hack)' 또는 'SEO 스팸'이라고도 불립니다.
왜 해커들은 워드프레스 사이트를 파마 해킹으로 공격할까?
답은 간단합니다. 온라인 검색은 가치 있는 유입 트래픽의 핵심 출처이며, SEO 해킹은 그에 필요한 노력 없이 이를 손쉽게 얻을 수 있는 지름길이기 때문입니다. 해커들은 권위가 높은 사이트를 해킹하고 스팸 리디렉션 코드를 심어 검색 결과 페이지(SERP)에서 정당한 위치를 차지하려 합니다. 최근 발견된 '파마 해킹(Pharma Hack)' 또는 '파마 SEO 스팸' 공격은 스팸 링크 삽입 공격과 유사한 형태를 띠며, 해커들이 가장 흔히 사용하는 블랙햇 SEO 기법 중 하나로 밝혀졌습니다.
파마 해킹(Pharma Hack)이란 무엇인가?
파마 해킹은 워드프레스 웹사이트를 감염시키는 일종의 악성코드 감염으로, 정상적인 사이트가 위약(Viagra)이나 시알리스(Cialis) 같은 불법 의약품이나 짝퉁 명품 등을 판매하는 스팸성 페이지로 리디렉션되도록 만듭니다. 경우에 따라 다른 종류의 의약품 관련 감염도 있지만, 가장 흔한 것은 역시 비아그라와 시알리스 관련 스팸입니다.
최근 발생한 워드프레스 파마 해킹 중에는 더욱 교묘한 고급 버전도 확인되었습니다. 이 버전에서는 해커가 구글 검색 결과의 제목에 실제 웹사이트 이름을 조합하여 마치 정상적인 사이트가 의약품 관련 콘텐츠를 다루는 것처럼 보이게 만들어 방문자를 속입니다.
내 워드프레스 사이트가 파마 해킹에 감염되었는지 확인하는 방법
SEO 스팸은 웹관리자에게 직접적으로 드러나지 않기 때문에 탐지하기가 매우 까다롭습니다. 스패머들은 '클로킹(cloaking)'과 같은 기법을 활용해 자신의 흔적을 철저히 숨깁니다. 하지만 내 웹사이트가 파마 해킹에 감염되었는지 확인할 수 있는 몇 가지 방법이 있습니다. 지금부터 하나씩 살펴보겠습니다.
방법 1: 구글 검색으로 확인하기
viagra wp-page와 같은 키워드로 구글 검색을 수행하면 감염된 웹사이트 목록을 확인할 수 있습니다. 다만 구글의 웹마스터 정책상 감염된 사이트들은 검색 결과 첫 페이지에는 나타나지 않으므로, 3~4페이지까지 스크롤해서 확인해야 합니다. 검색 결과에 내 웹사이트가 나타난다면 워드프레스 파마 해킹 또는 기타 블랙햇 SEO 스팸의 피해자라는 의미입니다.
이 목록에는 감염된 웹사이트뿐만 아니라 가짜 페이지들도 함께 표시됩니다. 이런 페이지를 클릭하면 다른 페이지로 리디렉션되거나, 감염으로 인해 동일한 페이지에서 해당 콘텐츠가 로딩될 수 있습니다.
내 웹사이트의 어떤 페이지가 비아그라 SEO 스팸에 감염되었는지 확인하려면, 구글 검색창에 도메인 이름과 함께 'viagra' 키워드를 입력하세요. 예: viagra mydomain.com. 때로는 사이트의 일부 페이지만 감염되어 눈에 잘 띄지 않는 경우도 있는데, 이 검색을 통해 숨겨진 감염 페이지들을 찾아낼 수 있습니다. 검색 결과가 비아그라·시알리스 판매 사이트로 연결된다면 SEO 스팸에 감염된 것입니다. 리디렉션 없이 동일한 페이지에 콘텐츠가 로딩되는 경우도 있습니다.
방법 2: 구글봇(Googlebot)으로 검색 결과 확인하기
앞서 언급했듯이 이러한 스팸 페이지는 일반 검색에서는 보이지 않지만, Googlebot과 같은 특정 사용자 에이전트(User-Agent)에게만 노출됩니다. 구글봇이 보는 화면을 확인하려면 브라우저용 User-Agent Switcher 확장 프로그램을 사용하면 됩니다. 크롬이나 파이어폭스용으로 설치할 수 있습니다.
- 선호하는 User-Agent Switcher 애드온을 설치합니다.
- 감염이 의심되는 웹페이지로 이동합니다.
- User-Agent 문자열을 아래 중 하나로 변경합니다.
a) Mozilla/5.0 (compatible; Googlebot/2.1; +https://www.google.com/bot.html)
b) Googlebot/2.1 (+https://www.google.com/bot.html) - 페이지에서 우클릭 후 소스 보기를 선택하면 리디렉션 코드를 확인할 수 있습니다.
주의: User-Agent Switcher를 장시간 활성화 상태로 두면, 구글봇처럼 보이기 때문에 보안이 철저한 웹사이트들에서 접속이 차단되거나 블랙리스트에 오를 수 있습니다.
이와 유사하게, Drupal CMS나 PHP 기반 사이트의 파마 해킹 제거가 필요하다면 Drupal 파마 해킹 가이드를 참고하시기 바랍니다.
워드프레스 파마 해킹의 구조 분석
침투 경로
공격자는 먼저 알려진 취약점 또는 제로데이 익스플로잇을 악용하여 침투를 시작합니다. 이 과정에서 문제가 될 수 있는 요소는 매우 다양하지만, 가장 흔한 원인들은 다음과 같습니다.
- SQL 인젝션 및 XSS: 부실한 코딩 습관으로 인해 발생합니다. 이 두 가지 취약점은 항상 주의 깊게 관리해야 합니다.
- 취약한 계정 또는 FTP 비밀번호: 두 번째로 큰 원인입니다. 최근 Linux Gen의 GitHub 저장소도 약한 인증 정보 때문에 해킹당한 사례가 있습니다.
- 디렉터리 리스팅 및 오류 메시지 노출: 대부분의 경우 디렉터리 목록 조회와 오류 표시가 활성화되어 있어, 중요한 파일들이 인터넷에 그대로 노출됩니다.
- 패치되지 않은 오래된 플러그인: 워드프레스 해킹의 주요 원인 중 하나입니다. 반드시 최신 버전으로 유지하세요!
지속성 유지 방식
워드프레스 파마 해킹은 루트 디렉터리의 파일 내용을 변경하는 방식으로 작동합니다. 대부분의 스팸 공격은 /misc 폴더와 /includes 폴더를 통해 이루어집니다. 스패머들은 다음과 같은 알려진 방법들로 지속적인 접근 권한을 유지합니다.
index.php,wp-page.php,nav.php등의 기존 파일 변조leftpanelsin.php,cache.php등 새로운 악성 파일 생성- 웹관리자의 탐지를 피하기 위해
xmlrpc.php수정 - base64 인코딩으로 코드 난독화
- 스팸 파일을
/images폴더 안에 숨김 — 크롤러는 이 위치에 파일이 있을 것이라고 예상하지 못해 탐지를 회피할 수 있습니다. - 파일 확장자 앞에 점(.)을 붙여
.somefile형태로 숨김 파일 처리 - 클로킹(Cloaking): 사용자 에이전트를 기준으로 크롤러를 구별하여, Googlebot이 보는 콘텐츠와 일반 브라우저 사용자가 보는 콘텐츠를 다르게 표시
- cron 작업을 활용한 재감염
피해 결과
- 비아그라·시알리스 광고 노출로 인해 오랜 시간 쌓아온 사이트 신뢰도가 무너집니다.
- 구글 블랙리스트에 등재될 경우 평판 회복이 매우 어려워집니다.
- 사용자들이 더 이상 웹사이트를 신뢰하지 않게 됩니다.
- 검색 순위가 하락합니다.
- 정성껏 모아온 방문자 클릭이 다른 사이트로 유출됩니다.
내 웹사이트가 구글에서 파마 스팸 결과로 노출되고 있나요? 채팅 위젯으로 문의해 주세요.
워드프레스 파마 해킹 제거 방법
워드프레스 파마 해킹은 은닉형 공격이기 때문에 감염 파일을 찾아 제거하는 작업은 상당히 길고 번거로울 수 있습니다. 다음 단계를 따라 해킹을 제거하세요.
1단계: 전체 백업 생성
웹사이트의 전체 백업을 생성하는 것은 기본 중의 기본입니다. 정리 작업 중 문제가 발생하더라도 복구할 수 있습니다. 백업 전략을 항상 준비해 두고, 백업에는 핵심 파일, 데이터베이스, 플러그인 및 테마 파일이 모두 포함되어야 합니다.
2단계: 웹사이트 악성코드 스캔
VirusTotal과 같은 온라인 악성코드 스캐너를 활용해 감염 여부를 진단하세요. 보다 정확한 스캔을 위해 Astra의 Malware Scanner를 사용하는 것도 좋은 방법입니다. 이러한 도구는 사이트 내 모든 악성 파일과 코드를 몇 분 안에 식별해 주어, 제거 작업을 크게 앞당겨 줍니다.
3단계: 감염된 파일 삭제
FTP로 호스팅 서버에 접속하거나 파일 관리자를 사용한 뒤, /wp-contents/ 폴더로 이동하여 플러그인 폴더 안에 해킹된 파일이 있는지 확인합니다.
해킹된 파일은 플러그인 파일로 위장하기 위해 .class, .cache, .old 같은 단어를 파일명에 포함하는 경우가 많습니다. 또한 파일명 앞에 점(.)이 붙어 있으면 '숨김 파일 표시' 옵션을 켜기 전까지는 보이지 않습니다. 이런 파일들을 모두 삭제하세요.
4단계: 임시(temp) 디렉터리 정리
/wp-contents/temp/ 디렉터리는 감염의 결과물로 생성될 수 있습니다. 해당 폴더로 이동해 내용을 모두 비우세요. 해커들은 악성코드 설치 과정에서 데이터 손상을 피하기 위해 temp 폴더와 TMP 파일을 활용합니다.
5단계: .htaccess 파일 점검
.htaccess 파일은 서버 설정 파일로, 서버 요청이 처리되는 방식을 정의합니다. 해커들은 이 파일의 강력한 기능을 악용해 백도어를 만들기도 합니다. 아래와 같은 코드가 있는지 살펴보세요.
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{HTTP_USER_AGENT} (google|yahoo|msn|aol|bing) [OR] #Google, Yahoo, msn, aol, bing 크롤러 확인
RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing)
RewriteRule ^(.*)$ somehackfile.php?$1 [L] #해킹 파일로 리디렉션
.htaccess 파일을 재생성할 수도 있습니다.
- 워드프레스 관리자 페이지에 로그인합니다.
- 설정(Settings) → 고유주소(Permalink) 메뉴로 이동합니다.
- 저장 버튼을 클릭하면 .htaccess 파일이 새로 생성됩니다.
6단계: 데이터베이스에서 악성 코드 제거
데이터베이스를 수정하기 전에 반드시 백업을 생성하는 것이 좋습니다. 아직 백업하지 않았다면 지금 즉시 백업하세요. 이 단계는 민감한 작업이므로 실수하면 사이트 전체에 영향을 줄 수 있습니다.
이 단계는 전문적인 악성코드 제거 서비스를 이용하거나 직접 데이터베이스를 정리하는 방식으로 진행할 수 있습니다.
- phpMyAdmin에 접속합니다.
- 해당 데이터베이스를 선택합니다.
- wp_options 테이블을 클릭합니다.
- 검색(Search) 탭으로 악성 항목을 찾습니다.
반드시 검색해야 할 대표적인 악성 항목은 다음과 같습니다.
- wp_check_hash
- class_generic_support
- widget_generic_support
- ftp_credentials
- fwp
주의: wp_options 테이블에서 중요한 정보를 실수로 삭제하면 웹사이트가 오작동하거나 완전히 다운될 수 있으니 각별히 주의해야 합니다.
참고: 기술에 익숙하지 않다면 외부 전문가의 도움을 받는 것이 안전합니다.
7단계: 의심스러운 코드 탐색 및 제거
수상한 코드는 워드프레스 사이트가 해킹당는 주요 원인 중 하나입니다. 악성 코드는 대체로 아래와 같은 형태를 띱니다.
<ul id="menu">
<li><a href="attackerdomain.com">Something1</a></li>
이런 코드는 방문자를 공격자가 통제하는 도메인으로 리디렉션합니다. 따라서 낯선 도메인이 포함되어 있는지 꼼꼼히 확인하는 것이 중요하며, 이것이 워드프레스 파마 해킹의 주요 원인 중 하나입니다.
공격자들은 탐지를 피하기 위해 코드를 base64로 인코딩하는 경우가 많습니다. 예를 들어 attackerdomain.com은 "YXR0YWNrZXJkb21haW4uY29t"처럼 보여 쉽게 발견되지 않습니다. 파일에서 base64 인코딩을 찾으려면 grep 명령어가 유용합니다.
find . -name "*.php" -exec grep "base64"'{}'\; -print &> b64-detections.txt
이 명령어는 지정한 .php 파일들을 대상으로 base64 인코딩을 검색하고, 그 결과를 b64-detections.txt 파일에 저장합니다. 이후 온라인 디코딩 도구를 활용해 해당 내용을 해석하면 숨겨져 있던 공격의 실체를 확인할 수 있습니다.
8단계: 임시(temp) 디렉터리 재확인
/wp-contents/temp/ 폴더로 이동해 내용을 다시 한번 비워주세요. 해커들은 악성코드 설치 과정에서 데이터 손상을 방지하기 위해 temp 폴더와 TMP 파일을 활용합니다.
9단계: 파일 변경 사항 스캔
파일 변경을 감지하는 온라인 플러그인을 활용할 수 있습니다. Exploit Scanner가 대표적인 예로, 워드프레스 공식 저장소의 모든 핵심 파일과 서드파티 파일을 대상으로 수상하거나 비정상적인 파일명·항목을 스캔합니다.
어떤 파일이 해킹되었는지 파악했다면, 감염된 코드를 삭제하거나 플러그인 파일을 원본으로 복원하세요. 철저한 정리가 필수입니다. 악성 코드가 조금이라도 남아 있으면 웹사이트가 재감염될 수 있습니다.
워드프레스 파마 해킹 예방 방법
- 강력한 인증 정보 사용: 웹사이트와 데이터베이스 로그인에 강력한 아이디와 비밀번호를 설정하세요. 해커는 약한 인증 정보를 무차별 대입(brute-force) 공격으로 쉽게 뚫을 수 있습니다.
- 웹 방화벽(WAF) 적용: 워드프레스 사이트에 방화벽을 구축하면 파마 해킹 감염을 막을 뿐 아니라 다양한 사이버 위협으로부터 사이트를 보호할 수 있습니다.
- 폴더 권한 제한: 불필요한 접근을 차단하도록 폴더 권한을 최소화하세요.
- 수상하거나 사용하지 않는 플러그인·테마 제거: 대부분의 플러그인과 테마는 내포된 취약점 때문에 해커에게 손쉬운 침입 경로가 됩니다.
- CMS·플러그인·테마 최신 버전 유지: 버전이 오래되었다면 가능한 한 빨리 업데이트하여 취약점 악용을 예방하고 파마 해킹 피해를 막으세요.
- 정기 보안 감사 실시: 워드프레스 사이트의 보안 허점과 취약점을 항상 파악하는 것이 좋은 습관입니다. 잠재적 보안 취약점을 해커가 악용하기 전에 발견하고 수정하기 위해 정기적인 보안 감사를 통해 파마 해킹 등 각종 공격으로부터 사이트를 보호하세요.