워드프레스(WordPress) 사이트는 언제든지 해킹의 표적이 될 수 있습니다. 해커들이 어떤 경로로 사이트에 침입하는지, 내 사이트가 해킹당했는지 어떻게 확인하는지, 그리고 실제로 해킹을 당했을 때 어떻게 복구해야 하는지 이 글에서 하나하나 살펴보겠습니다.
해커가 사이트에 침입하는 일반적인 경로
숙련된 해커들은 다양한 방법으로 웹사이트에 접근하지만, 그중에서도 상대적으로 쉽게 침입할 수 있는 대표적인 경로들이 존재합니다.
오래된 무료 테마와 플러그인 – 테마와 플러그인의 업데이트 내역은 체인지로그(changelog)를 통해 공개됩니다. 그런데 이 공개 내용에는 보안 업데이트 정보도 포함되어 있어, 아직 업데이트하지 않은 사이트의 취약점을 해커가 역으로 파악하고 악용하는 경우가 많습니다. 또한 워드프레스 코어 역시 자주 업데이트되므로, 최신 버전으로 갱신하지 않으면 해킹 위험에 노출됩니다. 무료 플러그인과 테마는 개발자가 보안 취약점을 수정할 유인이 적다는 점도 추가적인 보안 문제입니다.

호스팅 환경 – 호스팅 업체의 보안 수준이 낮다면 그곳에 있는 웹사이트는 자동으로 위험에 처합니다. 한 연구에 따르면 전체 보안 침해 사고의 40% 이상이 호스팅 서버에서 비롯된 것으로 나타났습니다.
취약한 관리자 계정과 로그인 정보 – 관리자 아이디를 기본값인 'admin'으로 두고 약한 비밀번호를 사용한다면 해커에게 사실상 문을 열어주는 것과 같습니다. 해커들은 이런 취약점을 가진 사이트를 찾기 위해 소프트웨어로 인터넷을 지속적으로 스캔하기 때문입니다.
PHP 및 데이터베이스 인젝션 – 해커는 보안이 허술한 워드프레스 사이트에 악성 코드를 주입(injection)하여 데이터베이스에 접근할 수 있습니다. 이 단계까지 뚫리면 해커는 사이트를 사실상 마음대로 조종하게 되며, URL 리디렉션, 페이지 삭제, 콘텐츠 변조, 심지어 사이트 전체 삭제까지 가능해집니다.
이것이 해커들이 워드프레스 사이트에 접근하는 대표적인 통로입니다. 이제 내 사이트가 해킹당했는지 확인하는 방법을 알아보겠습니다.
사이트 해킹 여부를 확인하는 방법
PHP 인젝션이 발생하면 구글, 빙(Bing) 등 검색 엔진과 브라우저가 방문자가 사이트에 도착하기 전에 위험을 알리는 경고 메시지를 표시합니다.

그 외에 사이트가 해킹당했다는 신호는 다음과 같습니다.
헤더나 푸터에 삽입된 스팸 – 불법 이미지·영상, 마약, 성인물 등 불법 콘텐츠나 서비스가 포함될 수 있습니다. 이런 스팸은 대개 페이지 콘텐츠에 디자인 고려 없이 삽입되며, 어두운 배경에 어두운 색 텍스트로 숨겨져 있어 사람 눈에는 잘 보이지 않습니다. 하지만 검색 엔진은 이를 감지할 수 있으며, 이 경우 구글 서치 콘솔(Google Search Console)이 멀웨어 경고를 보내줄 수 있습니다.

본인, 방문자, 검색 엔진이 알 수 없는 악성 페이지나 콘텐츠를 발견하는 경우 – 아래와 같은 화면이 나타난다면 사이트가 방문자들에게 멀웨어를 유포하는 창고로 사용되고 있는 것입니다.

사용자들이 스팸성 또는 악성 사이트로 강제 이동된다고 신고하는 경우 – 사이트가 피싱 공격에 악용되었을 가능성이 있습니다. 이 경우 아래와 같은 경고 메시지가 표시됩니다.

호스팅 업체에서 스팸·악성 활동 관련 통보를 받는 경우 – 호스팅 제공업체는 스팸 활동을 통보한 뒤 해당 사이트를 오프라인으로 전환할 수도 있습니다.
피해 복구 및 보안 취약점 보완하기
무엇보다 항상 사이트를 백업해 두는 습관이 중요합니다. 편의를 위해 WP-backup 같은 백업 플러그인을 활용하세요. 기본적으로 다음 두 가지를 백업해야 합니다.
- wp-content 폴더
- 데이터베이스
그다음 아래 방법들을 통해 피해를 복구할 수 있습니다.
플러그인 비활성화

플러그인 페이지에 접근할 수 있다면 모든 플러그인을 비활성화한 뒤 문제가 해결되었는지 확인합니다. 플러그인 페이지에 접근할 수 없다면 FTP로 블로그에 접속하여 플러그인 폴더 이름을 변경하는 방법을 사용할 수 있습니다.
FTP 작업 후 워드프레스에서 플러그인 페이지를 열면 모든 플러그인이 자동으로 비활성화된 상태로 표시됩니다. 이후 플러그인 폴더명을 원래대로 되돌리고, 플러그인을 하나씩 활성화해 가면서 문제를 일으키는 범인을 찾아내면 됩니다.
설정 파일(wp-config.php) 점검
사이트를 로드할 때마다 '데이터베이스에 연결할 수 없습니다(cannot connect to database)' 오류가 나타난다면, FTP로 사이트에 접속하여 wp-config.php 파일을 열고 데이터베이스 사용자명, 비밀번호, 데이터베이스 이름이 올바른지 확인하세요.
데이터베이스 관련 변경 사항이 있는지 호스팅 업체에 문의하는 것도 좋습니다. 단, 데이터베이스나 관리자 로그인 정보에 변조 흔적이 없음을 먼저 확인한 후에도 문제가 지속될 때만 호스팅 업체에 연락하는 것이 순서입니다.
워드프레스 재설치

'wp-content' 폴더를 제외한 대부분의 워드프레스 코어 파일은 안전하게 재설치할 수 있습니다. 재설치하려면 워드프레스 관리자 계정에 로그인한 뒤 '도구(Tools)' → '업그레이드(Upgrade)' → '재설치' 옵션을 선택하세요. 워드프레스의 내장 업데이터가 테마와 플러그인 파일은 그대로 둔 채 코어 파일만 새로 설치해 줍니다.
FTP를 이용해 직접 업데이트하는 방법도 있지만, 이때는 반드시 'wp-content' 폴더를 덮어쓰지 않도록 주의해야 합니다. 가장 안전한 방법은 기존 파일을 삭제한 후 새 파일을 업로드하는 것입니다.
데이터베이스 테이블 복구
플러그인, 호스팅, 워드프레스 코어 파일 모두 문제가 없다고 판단되면 phpMyAdmin으로 데이터베이스 테이블을 복구해 볼 수 있습니다. phpMyAdmin에 접속해 데이터베이스 테이블 목록에서 '복구(Repair)'를 선택하면 됩니다. phpMyAdmin 접속 정보는 호스팅 업체에 문의하면 확인할 수 있습니다.
마무리
워드프레스 사이트의 해킹을 탐지하고 복구하는 일은 결코 쉽지 않지만, 위에서 소개한 방법들을 활용하면 큰 도움이 될 것입니다. 혹시 해킹된 워드프레스 사이트를 찾아내고 복구하는 데 유용한 방법을 더 알고 계신가요? 아래 댓글로 여러분의 경험과 노하우를 공유해 주세요.