WordPress.org 기반의 모든 웹사이트에는 웹 호스팅이 필수적입니다. 그런데 만약 정작 여러분의 호스팅 업체인 WP 엔진이 사이트를 정지시켰다면 어떻게 해야 할까요?
웹 호스트란 웹사이트가 위치하고 있는 곳을 말합니다. 해커가 웹사이트를 공격하면 사이트의 스크립트를 임의로 조작하게 되는데, 호스팅 방식에 따라서는 감염된 사이트가 같은 네트워크에 있는 다른 사이트들까지 위협할 수 있습니다(공유 호스팅의 경우). 전용 호스팅에서는 이러한 위험이 상당히 줄어들지만, 여전히 사이트 방문자들이 감염될 위험은 남아 있습니다.
일부에서 생각하는 것과 달리, 해킹은 워드프레스 자체의 잘못이 아닙니다. 해킹은 사이트를 운영하는 누구에게나 언제든 닥칠 수 있는 위험이며, 어떠한 플랫폼이나 소프트웨어도 100% 안전하다고 할 수 없습니다. 보안은 수많은 요소들이 서로 맞물린 결과이기 때문에 절대적일 수 없기 때문입니다. 다음은 웹사이트에 멀웨어가 존재한다는 대표적인 경고 신호들입니다:
- 보안 플러그인이 경고 알림을 보냅니다.
- WP 관리자 대시보드 접근이 차단됩니다.
- 사이트 트래픽에 비정상적인 급증이 발생합니다.
- 방문자들이 다른 사이트로 리디렉션된다고 불만을 제기합니다.
- 사이트에 무작위 광고 링크가 표시됩니다.
- 구글이 해당 웹사이트를 블랙리스트에 등록합니다. (구글 블랙리스트 경고 해제 방법은 별도 가이드를 참고하세요.)
- 브라우저가 사이트의 의심스러운 활동을 경고합니다.
- 보안 검사에서 멀웨어가 탐지됩니다.
- WP 엔진이 사이트를 오프라인으로 전환합니다.
호스팅 업체인 WP 엔진이 사이트를 정지했다면, 가장 먼저 해야 할 일은 반드시 그들에게 연락하는 것입니다. 호스팅 업체는 최대한 많은 지원을 제공해 줄 것입니다.
이 가이드에서는 해킹당하고 정지된 워드프레스 사이트를 복구하는 모든 단계를 하나씩 안내해 드립니다.
1단계: 침착함을 유지하세요
정성껏 하나씩 쌓아 올린 결과물이 눈앞에서 무너지는 모습을 지켜보는 것은 정신적으로 매우 힘든 일입니다. 하지만 아직 모든 것이 끝난 것은 아닙니다! 혼란스러운 마음이 드는 것은 당연하지만, 성급한 판단은 상황을 더 악화시킬 수 있습니다. 침착함을 유지하며 각 단계를 올바르게 따라가면 생각보다 빠르게 사이트를 다시 온라인 상태로 되돌릴 수 있습니다.
2단계: 워드프레스 비밀번호 변경
트위터나 페이스북 같은 소셜 미디어 계정이 다른 사람에게 도용당했다고 의심되면 비밀번호를 바꾸시죠? 아직 워드프레스 대시보드에 접근할 수 있다면 지금 바로 그렇게 해야 합니다. 이메일 주소를 교체하고 계정 복구 기능을 활용하는 것도 좋은 방법입니다.
3단계: phpMyAdmin으로 관리자 비밀번호 재설정
WP 관리자 대시보드에 로그인할 수 없다면, 해커가 이미 접근 권한을 차단했을 가능성이 큽니다. 하지만 희망적인 소식이 있습니다. phpMyAdmin이라는 관리 도구를 사용해 데이터베이스 내부에서 직접 비밀번호를 변경하면 여전히 데이터베이스를 되찾을 수 있습니다.
4단계: 웹사이트 업데이트
전체 웹사이트 해킹 사건의 약 40%는 오래된 플러그인이나 테마 스크립트 때문에 발생합니다. 구버전의 워드프레스 플러그인, 테마, 코어 파일은 해커의 코드 삽입과 변조에 더욱 취약합니다. 웹사이트를 최신 버전으로 업데이트하면 문제를 크게 줄일 수 있습니다.
5단계: 멀웨어 검사 실시
웹사이트에 대한 전체 멀웨어 검사를 설치하고 실행하세요. 이때 검사기의 품질이 중요합니다. 해커들은 여러분의 실제 파일과 유사하게 위장한 멀웨어를 심을 수 있기 때문입니다. 검사를 통해 사이트에 숨어 있는 모든 멀웨어를 찾아내야 합니다. 워드프레스용 멀웨어 제거 플러그인을 활용하는 것도 좋습니다.
6단계: 감염된 파일 교체
간단한 해결책은 감염된 파일을 삭제하고 해킹 이전의 원본 버전으로 교체하는 것입니다. 단, 해킹 시점을 정확히 특정하기 어렵고 롤백할 올바른 버전을 선택하는 것이 까다로울 수 있다는 점에 유의하세요.
워드프레스 코어 파일은 사이트를 손상시키지 않고 새로 설치본으로 교체할 수 있습니다. wp-content 폴더만 그대로 유지되면 모든 것이 정상적으로 돌아올 수 있습니다.
어느 쪽이든 감염된 파일을 정리하는 작업에는 많은 시간과 노력이 필요하다는 점을 감안해야 합니다.
7단계: 백업에서 복원
백업을 통해 웹사이트를 복원하려면 평소에 사이트를 정기적으로 백업해 두었어야 합니다. 사실 웹사이트 백업이 있다면 해킹 복구는 올바른 백업 버전을 선택해서 복원하는 것만큼 간단해질 수 있습니다.
8단계: 멀웨어 재검사
이 단계는 사이트에 멀웨어가 남아 있지 않은지 확인하기 위한 과정입니다. 만약 멀웨어가 또 발견된다면 앞선 두 단계를 다시 수행하세요. 사이트 어딘가에 백도어가 숨어 있어 계속 재감염을 일으키고 있을 가능성이 있습니다. 이 악성 스크립트를 찾아내 함께 제거해야 합니다.
9단계: 웹 애플리케이션 방화벽(WAF) 사용
방화벽은 피해를 줄 수 있는 IP와 봇을 차단하는 데 도움이 됩니다. 보안 방화벽은 특정 종류의 네트워크 트래픽을 차단하여 장벽을 형성하고, 악성 또는 의심스러운 요청을 보내는 IP로부터 사이트를 보호합니다.
10단계: 사이트 보안 강화
웹사이트를 확실히 보호한다는 것은 또다른 해킹이 발생할 가능성을 최소화하는 것을 의미합니다. 물론 100% 보장은 불가능하지만, 최악의 시나리오가 다시 일어나지 않도록 최선을 다해 대비할 수는 있습니다.
사용자 권한 확인
워드프레스의 사용자 역할(User Role)은 로그인 후 대시보드에서 사용자가 무엇을 할 수 있고 없는지를 통제하기 위해 존재합니다. 관리자 권한은 명확히 신뢰할 수 있는 사람에게만 부여해야 합니다. 따라서 해킹 이후에는 Users 메뉴를 살펴보며 인식할 수 없는 관리자 계정처럼 수상한 목록이 없는지 확인하는 것이 좋습니다.
SALT(시크릿 키) 변경
시크릿 키(Secret Keys)는 쿠키의 정보를 해시 값으로 암호화하는 역할을 합니다. 최근 누군가 사이트에 로그인한 적이 있다면 아직도 세션이 유효할 수 있습니다. wp-config.php 파일의 시크릿 키를 교체하면 해커의 백엔드 접근을 차단할 수 있습니다. SALT 값을 변경하면 로그인 중인 모든 사용자가 즉시 강제 로그아웃됩니다.
그 외 모든 비밀번호 변경
워드프레스 비밀번호만 변경해서는 충분하지 않습니다. 어떤 로그인 창이라도 악성 활동의 흔적이 의심된다면 다음 항목들의 비밀번호도 반드시 변경해야 합니다.
- WP 엔진 호스팅 관리자 백엔드 계정 정보
- FTP 로그인 정보
- MySQL 데이터베이스 비밀번호
- 관리자 이메일 주소
여기에 더해 2단계 인증(Two-Factor Authentication), HTTP 인증, 캡차(Captcha) 기반 로그인 보호 기능을 추가로 설정하는 것도 고려해 보세요.
11단계: WP 엔진 호스팅 업체에 문의
이제 사이트 보안을 위해 수행한 모든 작업을 상세히 담은 이메일을 작성해야 합니다. WP 엔진에 가능한 모든 보안 문제를 이미 처리했다고 설명하고 메일을 보내세요. 그러면 곧 사이트를 다시 온라인 상태로 되돌릴 수 있을 것입니다.
이제 이번에는 올바른 방식으로 웹사이트를 다시 구축해야 할 차례입니다. 사이트를 보호하고, 업데이트하고, 방어했지만, 모든 loose end를 묶으려면 모든 기능이 원하는 대로 작동하는지 꼼꼼히 확인해야 합니다.
다른 방법은 없을까요?
만약 위의 대부분 과정을 클릭 몇 번으로 끝낼 수 있다면 어떨까요? 그것이야말로 진짜 꿈이지 않겠습니까? 실제로 많은 사용자가 바로 그 이유로 MalCare를 필수 보안 서비스라고 평가합니다. MalCare는 강력한 보안 기능과 훌륭한 기술 지원을 함께 제공하여, 어떤 보안 조치를 적용하든 결코 혼자 헤매지 않도록 도와줍니다.
MalCare는 워드프레스 보안 플러그인으로, 매일 100개 이상의 신호를 분석하는 지능형 딥 스캐닝과 원클릭 클리닝을 제공하며, 강력한 보안 강화(hardening) 기능과 로그인·방화벽 보호 기능도 갖추고 있습니다. MalCare를 사용하면 활성화, 비활성화, 업데이트된 테마와 플러그인 현황도 자동으로 추적할 수 있습니다.
더 큰 안심을 위해 MalCare를 직접 경험해 보세요.