검색에서 사라지는 것으로 끝나지 않습니다
어제까지 정상적으로 열리던 회사 사이트에 빨간 경고 화면이 뜹니다. 구글이 위험 표시를 붙이면 검색 유입은 하루 만에 사라집니다. 이 편에서 다루는 사례에서는 표시가 붙은 다음 날 검색 유입이 하루 1,380세션에서 128세션으로 줄었습니다. 첫날에만 91%가 빠진 것입니다.
더 중요한 점은 이 경고가 검색 결과에만 붙지 않는다는 사실입니다. 크롬과 사파리, 삼성 인터넷이 모두 구글 세이프 브라우징이라는 같은 차단 목록을 참조합니다. 그래서 주소를 직접 입력해도 경고 화면이 먼저 뜨고, 명함이나 카탈로그에 적힌 주소로 들어오는 방문자까지 막힙니다.
검색 노출만 빠지는 문제로 이해하시면 대응이 늦어집니다. 이 상태에서는 광고를 집행해도 착지 페이지가 차단되므로 광고비만 소모됩니다.
확인은 Search Console 한 곳에서 끝납니다
무엇 때문에 표시가 붙었는지는 아래 경로에서 확인하실 수 있습니다.
Search Console → 보안 및 수동 조치 → 보안 문제
여기에 뜨는 예시 주소가 구글이 실제로 잡아낸 감염 페이지입니다. 문제 유형과 최초 감지일, 영향받은 페이지 수도 함께 기록돼 있습니다. 이 목록은 복구 작업의 출발점이 되므로 화면을 그대로 저장해 두시기 바랍니다.
파일 하나만 지우면 며칠 뒤 같은 자리에 다시 생깁니다
Search Console 이 알려 준 주소를 열어 보면 회사가 올린 적 없는 페이지가 나옵니다. 여기서 그 페이지만 지우고 끝내면 며칠 뒤에 같은 자리에 같은 페이지가 다시 생깁니다.
서버의 파일 목록을 수정 시각 순서로 보면 이유가 드러납니다. 이 편의 사례에서는 스팸 페이지들이 02:41에 만들어졌는데, wp-conf.php 한 개만 02:39로 2분 앞서 있었습니다. 스팸 페이지보다 먼저 올라온 파일이고, 이것이 페이지를 계속 만들어 내는 쪽입니다. 이런 파일을 웹셸이라고 부릅니다.
침입이 어디에서 시작되는지는 관리자 주소가 /admin 이면 하루에 몇 번 공격받을까에서, 그 결과가 검색 결과에 어떻게 드러나는지는 홈페이지가 해킹됐는지 10초 만에 확인하는 방법에서 이어서 보실 수 있습니다.
복구 순서 네 단계
- 감염 페이지와 웹셸을 함께 지웁니다. Search Console 이 알려 준 주소뿐 아니라 같은 시각대에 생성된 파일을 모두 확인하셔야 합니다.
- 들어온 경로를 막습니다. 취약한 플러그인과 테마를 업데이트하고, 업로드 폴더에서 PHP 실행 권한을 제거하고, 관리자 페이지의 인증을 강화합니다.
- 관리자·FTP·데이터베이스·API 키를 전부 새로 발급합니다. 침해 기간에 유출됐다고 전제하고 모두 교체하시는 편이 안전합니다.
- 그다음에 Search Console 에서 검토를 요청합니다. 요청할 때는 어떤 파일을 지웠고 어떤 경로를 막았는지 함께 적으시면 검토가 빨라집니다.
2번을 건너뛰면 검토가 승인된 뒤에 같은 경고가 다시 붙습니다. 순서를 지키는 일이 작업량을 줄이는 가장 확실한 방법입니다.
검토 요청 이후
검토는 대체로 며칠 안에 끝나지만, 승인이 났다고 해서 검색 순위가 바로 원래대로 돌아오지는 않습니다. 차단이 풀린 뒤에도 색인이 다시 정리되기까지 시간이 걸리므로, 이 기간에는 감염 페이지의 색인 삭제와 정상 페이지의 재수집 요청을 함께 진행하시는 편이 좋습니다.
같은 일이 반복되지 않게 하시려면 복구 뒤에 서버 전반을 한 번 점검하시기를 권합니다. 침해는 대체로 한 곳이 아니라 여러 자리가 함께 열려 있을 때 일어납니다.