사이트가 해킹당한 경우 프로페셔널한 전문 해커가 사이트를 해킹한 경우가 아니라면 대부분 자동프로그램에 의한 보안취약점을 뚫고 들어오는 경우라고 하겠습니다.
전문가는 아니지만 해킹당한 워드프레스 사이트에 대한 복구작업 및 보안 강화 작업을 하게 되어 비슷한 경우에 처한 다른분들에게 참고가 될수 있도록 관련 시행착오 경험담을 소개해드립니다. (* 참고로 이 포스트의 내용은 자이언트 블로그의 사례가 아닙니다. 최근 이러한 작업을 하게되어 조금 바쁜 상황이였습니다.)
로딩속도 향상등 사이트 성능향상도 중요하지만 속도때문에 보안대응에 신경쓰지 않는 분들은 알약 블로그에 소개된 10만 워드프레스 홈페이지가 위험하다! 포스트를 한번 읽어보시기 바랍니다.
워드프레스는 사용자가 매우 많아 해킹시도 역시 많다는 것을 잊지 마셔야 하겠습니다.
1. 해킹당한 워드프레스 사이트의 상태
1명이어야할 관리자가 10명이상이 등록된 상태이며 컨텐츠 페이지를 열때마다 Bad page url 메시지를 보이며 매우 느린 속도로 동작하고 있었습니다.
시간이 좀 더 지나면 복구 불가능한 심각한 상태가 될 것으로 예상되는 상황이였습니다. 복구전문가가 아니기 때문에 일반적인 워드프레스 사용자로서의 복구과정임을 참조해주시면 감사하겠습니다.
2. 조치사항 및 시행착오
자이언트블로그에서 소개해드린 보안 플러그인 2종세트인 iThemes Security 와 Wordfence 플러그인을 일단 설치하였습니다.
이후 Wordfence Scan 기능의 옵션을 가장 강한 레벨로 설정하여 사이트내에 있는 멀웨어(malware)와 악성코드등을 점검하였습니다. 참고로 가장 강한 레벨로 스캔옵션을 설정하게 되면 업로드된 이미지도 Scan하는등 시간이 매우 길어집니다.
플러그인과 캐시파일등에서 정상파일로 위장된 PHP 파일들이 다수 발견되었습니다. iThemes Security의 옵션중 Uploads 폴더에 PHP 파일의 실행을 금지하는 옵션을 체크하고 발견된 악성 PHP 파일들을 모두 삭제하였습니다.
그리고 비정상적으로 등록된 관리자들을 모두 삭제하였습니다. 그런데 여기서 실수가 시작되었습니다. 워드프레스의 사용자 관리화면에서 사용자를 삭제해야 했는데 phpmyadmin으로 접속하여 DB 테이블에서 직접 사용자를 삭제한것입니다.
사용자는 삭제되었는데 관리자 숫자표시가 여전히 10이상으로 표시되는 것입니다. 이것은 user 테이블에서 사용자는 삭제했는데 user_meta 테이블에서는 삭제가 안되었기 때문입니다.
처음에는 왜 관리자 숫자가 1명이 아니라 여러명이 표시되는지 실수를 깨닫지 못해 한참동안 검색에 매달렸습니다. 워드프레스 사용자관리화면에서 보이지 않는 관리자(=악성코드)가 남아있다고 생각했기 때문입니다.
phpmyadmin 의 SQL 질의 화면창
결국 비슷한 사례를 해외 워드프레스 포럼에서 찾아내어 다음 구문을 phpmyadmin SQL 질의창에 입력후 실행하였습니다.
SELECT m.*
FROM wp_usermeta m
WHERE m.meta_key = ‘wp_capabilities’
AND m.meta_value like ‘%administrator%’
wp_usermeta 테이블에 있는 administrator 값을 검색하여 보여주는 구문입니다. 상기 구문을 실행한 결과 wp_user 테이블에서는 지워진 관리자(administarator) 값들이 검색되었습니다.
user_meta에 남아있는 악성코드 관리자의 정보까지 삭제를 해주니 정상적으로 관리자 숫자 표시가 워드프레스 관리자 화면에서 보여지게 되었습니다.
이때 주의하실점은 정상적인 관리자와 그렇지 않은 관리자를 구분하기 위해서 관리자 ID 번호를 반드시 확인한후 삭제하셔야 합니다. 정상적인 관리자 ID는 wp_user 테이블 보기를 통해 확인하실수 있습니다.
이러한 조치를 취한 후 Wordfence의 스캔을 이용하여 당분간 주기적으로 스캔점검을 진행하였으며 보안강화를 위한 몇몇 조치를 취했습니다.
1) 아파치 웹서버 httpd.conf의 Index 노출허용설정을 변경
2) wp-config.php 와 .htaccess 파일의 접근 권한제한 설정
3)일반적으로 사용하는 wp_ 접두어 대신 다른 접두어를 적용하여 DB 테이블 보안을 강화하는 조치
4)주기적으로 DB 백업 설정을 하는 조치
5) 플러그인 & 테마의 최신버전 업데이트
6) 업데이트가 안되 보안이 약한 플러그인들의 삭제 또는 유사기능 플러그인 대체
오늘 소개해드린 점검 및 처리를 한 이후 아직까지는 특별한 문제가 발견되지는 않은 상황입니다. 문제가 생기기 전에 미리미리 보안조치를 강화해 두시면 소중한 컨텐츠가 위험에 빠지는 일이 없을 것 같습니다.
- 워드프레스 테마 오픈마켓 테마포레스트- Theme forest
- 워드프레스 추천테마 관련 포스트 - AVADA / JARIDA / SAHIFA / GOODNEWS