사이버 범죄는 지난 수년간 꾸준히 증가해 왔으며, 특히 최근 5년 사이 급격히 폭증했습니다. 이는 인도, 브라질 등 대형 시장에서 인터넷 보급이 빠르게 확산된 것이 주요 배경으로 꼽힙니다. 일부 통계에 따르면 웹사이트의 86%가 최소 하나 이상의 심각한 취약점을 지니고 있어 해킹 위험에 노출되어 있습니다.
또 한 가지 경각심을 일깨우는 통계는, 기업들이 해킹 사실을 인지하는 데 평균 6개월 이상이 걸린다는 점입니다. 웹사이트가 해킹당했을 때 그 결과는 단순한 페이지 훼손부터 공격자의 랜섬 요구까지 매우 다양합니다. 『Web Security, Privacy, and Commerce』라는 책에서도 이러한 위험성이 강조된 바 있습니다.
이 글에서는 웹사이트가 해킹당했을 때 즉시 취해야 할 기본적인 조치와, 앞으로 유사한 공격에 대비하는 방법을 단계별로 살펴봅니다.
1. 신속한 복구
웹사이트 해킹의 초기 징후가 나타나면, 우선 어떤 원인이었을지 가볍게 추측해 봅니다. 어제 클릭한 링크 때문일까요? 최근 추가한 플러그인 때문일까요? 해킹의 정확한 원인을 파악하는 데는 시간이 걸리지만, 대략적인 원인을 짚어두면 단기적으로 도움이 되는 중요한 조치를 빠르게 취할 수 있습니다. 구글이나 호스팅 업체가 해킹된 웹사이트에 표시하는 경고 메시지에서도 좋은 힌트를 얻을 수 있습니다.

피해를 막으려면 먼저 웹사이트 관리자 대시보드에 로그인합니다. 로그인할 수 없다면 공격자가 이미 로그인 정보를 변경한 것입니다. 이 경우 비밀번호를 되찾는 방법은 여러 가지가 있습니다. CMS를 사용 중이라면 비밀번호 재설정 기능을 활용할 수 있고, 그렇지 않다면 FTP 접속이나 SQL 명령 실행을 통해 비밀번호를 복구할 수 있습니다. 호스팅 업체를 이용 중이라면 고객센터에 문의하여 웹사이트 관리 권한을 다시 확보하세요.
관리자 대시보드에 접속했다면, 즉시 모든 사용자의 비밀번호(대시보드, 데이터베이스, FTP 등)를 전부 변경합니다. 이때 모든 비밀번호는 12자 이상으로, 대문자·소문자 알파벳, 숫자, 특수문자($, -, # 등)가 적절히 조합되도록 설정하세요.
2. 피해 확산 방지
이제 앞서 세운 가설을 바탕으로, 의심되는 플러그인을 비활성화하거나 수상한 파일 및 사용자 계정을 삭제하는 등의 조치를 취합니다. 마지막으로 웹사이트를 점검(유지보수) 모드로 전환하여 사용자 접근을 잠시 차단하세요. 멀웨어나 피싱 페이지가 삽입된 것으로 의심된다면(구글 경고 메시지에서도 확인 가능), 고객을 보호하기 위해 웹사이트를 완전히 오프라인 상태로 만드는 것이 좋습니다.
또한 SNS 등을 통해 고객에게 문제 상황을 투명하게 알리세요. 해킹 사실을 숨기면 오히려 상황이 더 악화될 수 있습니다. 이후 추가 조사 과정에서 고객 데이터 유출이 확인되면 반드시 고객에게 비밀번호 재설정을 안내하고, 고객 문의를 처리할 별도의 채널을 마련해야 합니다.
3. 해킹 원인 파악
단기적으로 웹사이트를 보호했다면, 이제 해킹의 근본 원인을 조사할 차례입니다. 주요 조사 대상은 다음과 같습니다.
- 피싱 등 소셜 엔지니어링 공격에 의한 해킹일 가능성 — 웹 관리자가 원치 않는 이메일을 받은 적이 있는지 확인합니다.
- 웹 관리자의 설정 오류 — 서버에 평문 비밀번호 파일을 남겨두었거나, 부적절한 파일 권한 설정, 약한 비밀번호 사용 등이 해당됩니다.
- 파일 속에 숨은 멀웨어 또는 최근 사이트에 새로 생성된 수상한 파일 여부 — 단, 일부는 시스템이 자동 생성한 파일일 수 있으므로 삭제 전에 신중해야 합니다.
- 최근 수정된 파일이 있는지 확인합니다.
- 사용 중인 CMS 자체의 취약점 — 코어에서 버그가 발견될 확률은 낮으므로, 새로 설치한 테마나 플러그인이 원인일 가능성이 큽니다. 해당 테마·플러그인의 알려진 취약점을 검색해 보거나, 자동화 도구로 워드프레스 테마와 플러그인의 알려진 버그를 점검해 보세요. 비용을 아끼려고 불법 복제(nulled) 테마를 사용했다면 그것이 해킹의 원인일 가능성이 매우 높습니다.
가능한 원인은 이 외에도 많습니다. 정확한 원인을 좁혀 가기 위해 Google Search Console이나 Astra에서 제공하는 무료 자동 스캐너 같은 도구를 활용하는 것도 좋은 방법입니다.

4. 해킹된 웹사이트 복구
정화 작업을 시작하기 전에 반드시 해킹된 웹사이트의 백업을 먼저 만들어 두세요. 그다음 사이트 정화 작업을 진행합니다.
- 감염된 파일을 CMS 공식 웹사이트의 원본 파일로 교체합니다. 이 과정에서 사이트가 깨지지 않도록 주의하세요.
- 사용하던 불법 복제 테마와 플러그인을 제거합니다.
- PHPMyAdmin 같은 도구로 데이터베이스 테이블에서 스팸성 단어를 검색하여 데이터베이스를 정화합니다.
- 본인이 생성하지 않은 수상한 사용자 계정을 삭제합니다.
- 텍스트 편집기로 파일을 열어 악성 코드를 삭제합니다. 코드의 용도를 파악하기 어렵다면 일단 주석 처리해 두고 보안 전문가의 도움을 받으세요!
모든 정화 작업에도 불구하고 멀웨어가 숨어 있다가 감염이 재발하는 경우가 있습니다. 멀웨어는 보통 base64(), str_rot13() 같은 함수를 활용하므로, 이런 함수를 비활성화하면 도움이 될 수 있습니다. 다만 일부 정상 플러그인도 동일한 함수를 사용하므로, 함수를 비활성화한 후 웹사이트가 정상적으로 작동하는지 반드시 확인해야 합니다. 멀웨어 제거는 일반 사용자가 혼자 하기에는 위험한 작업이므로, 감염이 재발하면 반드시 전문가에게 의뢰하세요.
5. 미래 공격에 대비
정화 작업이 끝나면 각종 검색 엔진의 블랙리스트에서 웹사이트를 제거하도록 요청하는 것도 잊지 마세요. 아울러 다음과 같은 보안 강화 조치를 통해 향후 공격을 예방할 수 있습니다.
- 웹사이트, 서버, 플러그인 등을 항상 최신 버전으로 유지합니다.
- 모든 파일과 폴더에 적절한 접근 권한이 설정되어 있는지 확인합니다.
- 서버가 아닌 별도의 안전한 위치에 웹사이트 백업을 상시 보관합니다.
- 관리자 계정 수를 최소한으로 줄이고, 모든 계정이 안전한 무작위 비밀번호를 사용하도록 합니다.
- 웹사이트 전체 보안 감사를 실시하고, 열려 있는 포트, 서버 설정 오류 등 발견된 보안 취약점을 패치합니다.
- 방화벽이나 보안 솔루션을 도입하여 향후 해킹을 사전에 차단합니다.
결론
해킹된 웹사이트를 정화하는 것은 복잡하고 번거로운 과정입니다. 따라서 자동화 도구와 수작업 전문성의 적절한 조합이 필수적입니다. 이 글에서는 기본적인 정화 기법만을 다루었으며, 실제로는 훨씬 더 많은 작업이 필요할 수 있습니다. 특히 초보자라면 멀웨어 정화 작업을 혼자 수행하는 것은 권장하지 않습니다. 공백 하나만 잘못 입력해도 웹사이트 전체가 망가질 수 있기 때문입니다. 그러니 전문 보안 업체에 작업을 맡기고, 그동안 커피 한 잔의 여유를 즐기는 것이 현명합니다. Astra의 전문가들은 단 4시간 이내라는 빠른 속도로 해킹된 웹사이트를 복구해 줍니다. 소규모 웹사이트도 부담 없이 이용할 수 있는 요금제와 1년간 웹사이트 보안을 책임지는 서비스를 제공하므로, 보안 문제는 곧 과거의 일이 될 것입니다.