해킹 유형과 조사 범위
해킹으로 생성된 이상한 페이지가 색인됐다면 보안 문제 보고서의 예시를 출발점으로 같은 문제의 다른 페이지를 조사하고 원인에 대응하는 정리 작업을 진행합니다. 검색에 보이는 주소 몇 개를 삭제한 상태와 사이트 복구 완료는 다릅니다. Google 도움말은 보고서에 나열된 모든 문제를 모든 페이지에서 해결한 뒤 검토를 요청하도록 안내합니다. 실제 침해 원인과 복구 결과는 사이트의 응답·코드·서버 자료를 조사해야 판단할 수 있습니다.
처음에는 보고서의 문제 설명을 펼쳐 유형과 자세한 안내를 읽습니다. 익숙하지 않은 페이지라는 이유만으로 URL 삽입이라고 단정하지 않습니다. 이미 존재하는 문서에 스팸 문구가 추가된 경우와 새로운 문서가 만들어진 경우에는 정리할 대상이 다를 수 있습니다. 보고서가 제시한 유형에 따라 조사 항목을 정하는 것이 대응의 시작입니다.
| 공식 해킹 유형 | 문서가 설명하는 변경 | 조사할 실제 대상 |
|---|---|---|
| 코드 삽입 | 페이지에 악성 코드 추가 | HTML이나 콘텐츠 생성 파일, 리디렉션 응답 |
| 콘텐츠 삽입 | 기존 페이지에 스팸 링크나 텍스트 추가 | 원래 문서에서 승인 없이 달라진 내용 |
| URL 삽입 | 스팸성 단어나 링크가 있는 새로운 페이지 생성 | 생성된 페이지와 그것을 만드는 파일·기능 |
예시 URL은 완전한 피해 목록이 아닙니다. Google은 사이트에서 해당 문제의 영향을 받은 샘플만 제공하며 어떤 문제에는 예시가 없을 수도 있다고 설명합니다. 따라서 기술 담당자가 보고된 예시만 목록으로 받아 지우는 범위로 끝내지 않도록 조사 범위를 정해야 합니다. 샘플이 없는 항목도 보고서의 설명을 기준으로 조사할 대상에 포함합니다.
해킹된 페이지를 읽는 과정도 유형별 주의사항을 따라야 합니다. 코드·콘텐츠·URL 삽입 도움말은 감염된 페이지를 브라우저에서 직접 표시하지 말라고 안내합니다. 브라우저의 취약성을 통해 멀웨어가 퍼져 컴퓨터에 피해를 줄 수 있다는 이유입니다. 코드와 웹 서버 구성을 읽기 어렵다면 공식 문서가 권하는 지원팀 구축 안내를 통해 해결할 수 있는 사람을 찾는 단계가 필요합니다.
새로 만들어진 문서에는 스팸 단어뿐 아니라 의도하지 않은 동작을 실행하는 코드가 포함될 수 있습니다. URL 삽입 도움말은 다른 사이트로 이동시키거나 웹 서버가 다른 사이트에 대한 DoS 공격에 참여하도록 유도하는 코드를 설명합니다. 화면의 제목이나 설명만 이상하다고 보고 그 글자만 지우는 작업으로 대응 범위를 정하지 않습니다. 실제 생성된 파일이 어떤 동작을 실행하는지 기술적으로 읽을 필요가 있는 조건입니다.
응답과 생성 코드의 조사
Google 도움말은 해커가 클로킹으로 스팸성 콘텐츠를 숨길 수 있다고 설명합니다. 사이트 소유자에게는 정상으로 보이고 특정 사용자 에이전트나 리퍼러에서만 다른 응답을 제공할 수 있다는 조건입니다. 조사에서는 일반 화면을 한 번 연 결과만으로 의심 내용을 찾지 못했다고 끝내지 않습니다. 실제로 다른 응답을 만드는 조건이 있는지 자료를 읽어야 합니다.
공식 안내에는 URL 검사 도구로 Google에 표시되는 페이지를 읽는 방법과 cURL 또는 Wget으로 HTTP 요청을 실행하는 방법이 있습니다. 명령줄 도구는 리디렉션 진단과 사용자 에이전트·리퍼러 지정에 사용할 수 있다고 설명합니다. 어떤 요청 조건을 조사할지는 발견된 문제에 맞춰 정합니다. 실제 요청을 하지 않은 상태에서 특정 계정이나 기기가 공격 대상이었다고 기록하지 않습니다.
| 응답에서 조사할 항목 | 공식 문서의 기술적 조건 | 자료를 읽는 범위 |
|---|---|---|
| 헤더 리디렉션 | 서버 구성 파일이 방문자를 다른 주소로 보낼 수 있음 | 반환된 헤더와 실제 서버 설정의 관계 |
| 자바스크립트 리디렉션 | 리퍼러 조건에 따라 이동 코드를 실행할 수 있음 | 해당 조건과 실행 코드가 존재하는지 |
| 외부 악성 스크립트 | 다른 사이트에서 자바스크립트를 로드할 수 있음 | 실제 포함된 스크립트 주소와 응답 내용 |
공식 문서는 발견되지 않도록 복잡하게 만들어진 악성 코드도 설명합니다. 알아보기 어려운 코드의 겉모양만으로 정상 기능이라고 정하지 않고 해석할 대상에 포함합니다. 숨겨진 코드가 의심되는 경우 Google은 search, eval, base64_decode, unescape 같은 검색어로 응답과 사이트에서 의심스러운 코드를 찾는 방법을 안내합니다. 이것은 조사에 사용할 단서이며 그 단어가 있다는 사실만으로 감염을 판정하는 규칙은 아닙니다. 실제로 해당 코드가 어떤 동작을 하는지 읽을 수 있는 기술적 조사와 연결합니다.
새 페이지가 생성된 유형에서는 보고된 예시 주소가 활성 상태인지 조사합니다. 공식 문서는 직접 생성한 페이지가 아니므로 사이트에서 제거하거나 그 페이지를 자동 생성하는 코드를 삭제해야 한다고 설명합니다. 페이지의 겉모양만 바꾸고 같은 생성 기능을 남겨 둔 작업을 정상 복구로 정하지 않습니다. 제거한 대상이 원치 않는 문서인지, 정상 안내에 필요한 파일인지 실제 자산과 관계를 읽어 정합니다.
다른 해킹 페이지를 찾는 데에는 Google의 site: 검색과 사이트 소스 파일 검색이 안내됩니다. 작은 사이트는 도메인으로 검색하고 큰 사이트는 의심스러운 단어나 특정 경로를 더한 쿼리를 사용할 수 있다는 설명입니다. 검색에서 찾은 목록과 서버에 남아 있는 파일의 범위를 함께 조사하는 적용입니다. 어느 한 검색에서 더 이상 결과가 없다는 사실을 서버 전체의 정리 완료와 같게 취급하지 않습니다.
자산 정리와 검토 요청
실제 정리 방법은 영향을 받은 자산에 맞춰 선택합니다. 코드 삽입은 안전한 최신 백업으로 파일을 대체하거나 스팸 콘텐츠를 직접 삭제하는 방법이 안내됩니다. 콘텐츠 삽입에서는 페이지의 스팸 내용과 링크를 제거할 수 있고, URL 삽입에서는 영향을 받은 디렉터리를 안전한 최신 백업으로 대체하거나 원치 않는 페이지·생성 파일·기능을 삭제하는 방법이 설명됩니다. 원본과 변경된 자산의 관계를 모른 채 모든 파일을 일괄 삭제하는 지시로 바꾸지 않습니다.
콘텐츠 삽입의 공식 설명에는 안전하지 않은 서버 디렉터리 접근, 소프트웨어 취약점, 타사 플러그인 해킹 같은 경로가 제시됩니다. 같은 증상에 여러 가능한 경로가 있다는 조사 단서입니다. 특정 병원이 오래된 CMS를 사용했다는 자료가 없다면 그것을 침해 원인으로 결정하지 않습니다. 정리 작업에서는 실제 조사에서 발견한 경로와 관련된 변경인지 읽어야 합니다.
일부 페이지의 문제를 해결했다고 검색결과에 일부 결과가 다시 표시되는 것은 아니라는 도움말의 조건입니다. 또 멀웨어 진단 안내는 사이트가 둘 이상의 멀웨어 유형에 감염됐을 수 있어 철저하게 진단하고 정리하도록 설명합니다. 처음 발견한 유형의 파일만 제거한 결과와 다른 유해 동작이 남아 있는지 조사한 결과를 구별합니다. 실제로 여러 유형이 발견되지 않았는데 감염 유형을 추가해 보고하는 뜻은 아닙니다.
검토 요청에는 문제의 정확한 설명, 해결하기 위해 취한 조치, 해결 결과를 문서화한 자료를 포함하는 것이 권장됩니다. 무엇을 발견했고 무엇을 바꿨으며 어떤 결과를 얻었는지가 서로 연결되어야 합니다. 삭제한 주소 수만으로 이 세 항목을 대신하지 않습니다. 실행하지 않은 서버 검사나 실제로 얻지 않은 정상 응답을 해결 증거로 작성하지 않습니다.
요청을 보냈다고 검토가 완료되는 것은 아닙니다. Google은 진행 중이라는 메시지와 진행 상황을 이메일로 알려 주며 완료 때에도 이메일을 보낸다고 안내합니다. 대부분 며칠에서 몇 주가 걸릴 수 있고 링크 관련 요청 등에는 더 오래 걸릴 수 있습니다. 일정은 가능한 처리 범위의 설명이며 특정 날짜에 복구가 끝난다는 약속으로 사용하지 않습니다.
해결되지 않은 요청의 최종 결정을 받기 전에는 다시 제출하지 않는 것이 공식 안내입니다. 문제가 해결되지 않은 채 재검토를 요청하면 다음 요청의 처리 시간이 더 길어지거나 반복 위반자로 지정될 수 있다고 설명합니다. 빠른 처리를 기대하며 같은 요청을 계속 보내는 방식을 대응 단계에 넣지 않습니다.
보안 복구의 추가 질문
유해한 다운로드가 발견되면 해킹 페이지 삭제와 같은가요?
공식 문서는 의도적으로 제공한 다운로드라면 삭제 후 검토 단계로 넘어가고, 모르는 다운로드라면 해킹됐을 수 있으므로 해킹 오류를 수정한 뒤 다운로드를 찾아 삭제하도록 설명합니다. 누가 제공한 항목인지와 실제 침해 조사 결과에 따라 적용할 절차가 달라집니다.
바이러스 백신 검사에서 문제가 없으면 모든 멀웨어가 없나요?
도움말은 백신이 다양한 멀웨어와 원치 않는 소프트웨어를 탐지할 수 있지만 모든 유형을 찾아내지는 못한다고 명시합니다. Google 세이프 브라우징도 자체 기준으로 프로그램이나 바이너리를 분류합니다. 한 검사 결과를 모든 보안 문제의 부재로 확대하지 않습니다.
페이지 코드 외에 삽입된 광고도 조사하나요?
사기성 삽입 리소스 설명은 타사 이미지·광고·구성요소를 통한 유해 콘텐츠를 포함합니다. 광고가 순환해 표시되거나 휴대기기와 데스크톱에서 다르게 보일 수 있어 여러 번 읽어야 할 수 있다고 안내합니다. 해당 유형이 보고됐다면 실제 포함된 타사 리소스를 대상으로 조사합니다.
보안 문제가 있던 사이트를 새로 인수했다면 무엇을 알리나요?
소유하기 전부터 문제가 있던 사이트를 구매했다면 문제를 해결한 뒤 재검토 요청에서 최근 보유하게 됐고 현재 Google 웹 검색 스팸 정책을 준수함을 알리도록 안내합니다. 소유자가 바뀌었다는 사실만으로 기존 문제가 해결된다는 조건은 아닙니다.
세이프 브라우징이 사기성 페이지를 잘못 분류했다면 어떻게 하나요?
사기성 페이지의 공식 도움말은 잘못 분류됐다고 생각하면 안내된 신고 경로를 이용할 수 있다고 설명합니다. 신고했다는 사실과 오류 분류가 인정됐다는 결과는 구별됩니다. 실제 신고나 결과를 얻지 않은 상태에서 경고가 잘못된 것이라고 단정하지 않습니다.