해킹 유형: 코드 삽입

Search Console에 해킹된 사이트 유형 '코드 삽입'으로 표시된 페이지가 있다는 것은 무슨 뜻인가요?

해커가 사이트를 해킹하여 사이트 방문자를 자신의 스팸성 사이트로 리디렉션하고 있다는 뜻입니다. 사용자의 위치, 참조 사이트 또는 사용 중인 기기(예: 휴대전화)를 토대로 특정 사용자만 리디렉션되는 경우도 있습니다. 해커가 악성 코드를 직접 사이트의 HTML 파일(예: 자바스크립트 리디렉션) 또는 사이트의 콘텐츠를 생성하는 파일(예: PHP 파일)에 삽입했을 수 있습니다. 해커가 방문자를 리디렉션할 수 있는 또 다른 방법은 서버의 설정 파일을 수정하는 것입니다. 일반적으로 사이트 관리자는 서버 구성 파일을 통해 웹사이트의 특정 페이지 또는 디렉토리에 대한 URL 리디렉션을 지정할 수 있습니다. 예를 들어 Apache 서버의 .htaccess 파일 및 httpd.conf 파일이 여기에 해당합니다(서버의 설정 파일을 조사하는 방법에 대해 잘 모르는 경우 해킹된 사이트 관련 도움말의 복구 절차 중 2단계: 지원팀 구축 참조).

스팸으로 해킹당한 사이트에 대한 보다 일반적인 정보는 5단계: 피해 평가(스팸)를 참조하세요.

그러한 페이지에 대한 리디렉션을 조사하려면 어떻게 해야 하나요?

우선 브라우저를 사용하여 사이트의 해킹된 페이지를 표시하면 안 됩니다. 해커는 주로 다음과 같은 사용자 특성을 기준으로 리디렉션하도록 페이지를 설정하기 때문입니다.

  • 위치(주로 IP 주소를 통해 추론됨)
  • 리퍼러(예: 검색결과 페이지)
  • user-agent(예: 모바일 또는 덜 안전한 브라우저)

대신 다음 기술을 사용하여 동작을 확인합니다.

  • Use cURL or Wget to fetch a page:
    These freely available tools let you view the source of the page as seen by a search engine, and have the flexibility to include referrer or user-agent information. By serving spammy content only to users with specific user-agents or referrers, the hacker can target more "real people" and can better avoid detection from site owners and anti-hacking algorithms used by search engines. (Your site will need to be online to use these tools.) For example:
    $curl -v --referer "http://www.google.com/search?q=page" --user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" http://www.example.com/page.html
  • 해킹당한 서버 설정 파일이 포함된 페이지를 가져오면 다음과 같은 헤더가 표시될 수 있습니다.

    ...
    < HTTP/1.1 301 Moved Permanently
    < Date: Sun, 24 Feb 2013 21:06:45 GMT
    < Server: Apache
    < Location: http://<spam-site>/index.html
    < Content-Length: 253
    …
    

    또는 표시된 페이지의 내용을 조사하면 다음과 같이 삽입된 코드를 볼 수 있습니다.

    • 자바스크립트 또는 스팸 사이트에서 스크립트를 호출하고 실행하는 다른 스크립트 언어 <script type='text/javascript' src='http://spam-site/js/x55.js'></script>
    • 브라우저를 스팸 사이트로 리디렉션하는 스크립트:
      
      <script>
      if (document.referrer.match(/google\.com/)) { window.location("http://spam-site/"); } </script>
    • 탐색을 피하기 위해 복잡하게 만들어진 스팸성 코드:
      eval(base64_decode("d2luZG93LmxvY2F0aW9uPScvL2dvb2dsZS5jb20nOw=="));

    사이트에 표시된 의심스러운 모든 코드를 조사합니다. 자바스크립트 코드를 찾으려면 'script'와 같은 단어를 검색하는 것이 도움이 될 수 있습니다. 다른 유용한 키워드는 'eval', 'unescape' 등입니다.

    '코드 삽입' 유형으로 해킹된 사이트를 정리하려면 어떻게 해야 하나요?

    사이트를 정리할 준비가 되면(해킹된 사이트 관련 도움말의 복구 절차 중 7단계) 영향을 받은 파일을 안전한 최신 백업으로 대체하거나 각 페이지에서 코드 삽입 및 모든 관련 스크립트 함수와 파일을 삭제할 수 있습니다. 서버 설정 파일을 수정한 경우 변경사항을 적용하려면 웹 서버를 다시 시작해야 할 수 있습니다.

    '코드 삽입' 해킹 유형을 정리하면 해킹된 사이트 복구에 도움이 되겠지만 해커가 처음 사이트를 해킹하도록 허용한 근본적인 취약성은 해결되지 않습니다. 근본 원인을 해결하지 않으면 이후에 사이트가 다시 해킹당할 수 있습니다. 예를 들어 이전 WordPress 설치 등 사이트에서 실행하는 모든 소프트웨어를 업데이트하면 도움이 됩니다. 이러한 해킹 유형뿐 아니라 전체 사이트 정리에 대한 자세한 내용은 해킹된 사이트 관련 도움말의 5단계: 피해 평가(스팸)에서 특히 '파일 시스템 피해 평가'를 참조하세요.

    도움이 되었나요?
    어떻게 하면 개선할 수 있을까요?