이 가이드는 사이트에 키워드가 많은 의미없는 페이지(의미 없는 말 해킹이라고 함)를 추가하는 해킹 유형을 위해 특별히 작성되었습니다. 이 가이드는 인기 있는 콘텐츠 관리 시스템 (CMS) 사용자를 위해 디자인되었지만 CMS를 사용하지 않는 경우에도 유용합니다.
이 가이드가 많은 도움이 되기를 바랍니다. 개선에 도움이 되도록 의견을 남겨 주세요.
이 유형의 해킹을 파악하세요.
의미없는 말 해킹은 사이트의 키워드로 무의미한 문장이 채워진 많은 페이지를 자동으로 만듭니다. 직접 만들지는 않았지만 사용자의 클릭을 유도할 수 있는 URL이 포함된 페이지입니다. 해커는 이를 통해 해킹된 페이지가 Google 검색에 표시됩니다. 그런 다음 사용자가 이러한 페이지를 방문하려고 하면 관련 없는 페이지로 리디렉션됩니다. 해커는 사람들이 이러한 관련 없는 페이지를 방문할 때 수익을 창출합니다 다음은 의미없는 말 해킹의 영향을 받은 사이트에 표시될 수 있는 파일 유형의 예입니다.
www.example.com/cheap-hair-styles-cool.html
www.example.com/free-pictures-fun.html
www.example.com/nice-song-download-file.php
임의의 문자로 구성된 폴더에 표시되고 다른 언어를 사용하는 경우도 있습니다.
www.example.com/jfwoea/cheap-hair-styles-cool.html
www.example.com/jfwoea/free-pictures-fun.html
www.example.com/jfwoea/www-ki-motn-dudh-photo.php
www.example.com/jfwoea/foto-cewe-zaman-sekarang.php
먼저 Search Console의 보안 문제 도구를 확인하여 Google이 사이트에서 해킹된 페이지를 발견했는지 확인하세요. Google 검색 창을 열고 사이트의 루트 수준 URL과 함께 site:_your site url_
를 입력하여 이와 같은 페이지를 찾을 수도 있습니다. 이렇게 하면 해킹된 페이지를 포함하여 Google에서 사이트의 색인을 생성한 페이지가 표시됩니다. 검색결과를 몇 페이지 훑어보면서 비정상적인 URL이 있는지 확인하세요. Google 검색에서 해킹된 콘텐츠가 보이지 않으면 다른 검색엔진에서 동일한 검색어를 사용하여 검색해 보세요. 예를 들면 다음과 같습니다.
![이 해킹의 페이지를 보여주는 검색결과입니다.](https://web.dev/static/articles/fix-the-gibberish-hack/image/search-results-showing-pa-63c37b3f1a54c.png?authuser=7&hl=ko)
일반적으로 해킹된 페이지의 링크를 클릭하면 다른 사이트로 리디렉션되거나 의미없는 콘텐츠로 가득 찬 페이지가 표시됩니다. 하지만 페이지가 존재하지 않는다는 메시지 (예: 404 오류)가 표시될 수도 있습니다. 속지 마세요. 해커는 페이지가 아직 해킹된 상태인데도 사라졌거나 수정되었다고 생각하도록 속입니다. 사용자를 속이기 위해 해커들은 콘텐츠를 클로킹합니다. URL 검사 도구에 사이트의 URL을 입력하여 클로킹되었는지 확인합니다. Fetch as Google 도구를 사용하면 숨겨진 콘텐츠를 확인할 수 있습니다.
이러한 문제가 표시되면 사이트가 이러한 유형의 해킹에 영향을 받았을 가능성이 높습니다.
해킹 문제 해결
시작하기 전에 나중에 파일을 복원해야 할 경우에 대비하여 파일을 삭제하기 전에 오프라인 사본을 만드세요. 정리 프로세스를 시작하기 전에 사이트 전체를 백업하면 더욱 좋습니다. 서버에 있는 모든 파일을 서버 외부의 위치에 저장하거나 특정 콘텐츠 관리 시스템 (CMS)에 가장 적합한 백업 옵션을 검색하면 됩니다. CMS를 사용하는 경우 데이터베이스도 백업합니다.
.htaccess
파일 확인 (2단계)
의미없는 말 해킹은 .htaccess
파일을 사용하여 사이트 방문자를 리디렉션합니다.
1단계
사이트에서 .htaccess
파일을 찾습니다. 파일의 위치를 모르고 WordPress, Joomla, Drupal과 같은 CMS를 사용하는 경우 검색엔진에서 CMS 이름과 함께 '.htaccess 파일 위치'를 검색합니다.
사이트에 따라 여러 .htaccess
파일이 표시될 수 있습니다.
모든 .htaccess
파일 위치의 목록을 만듭니다.
2단계
모든 .htaccess
파일을 클린 버전 또는 기본 버전의 .htaccess
파일로 바꿉니다. 일반적으로 '기본 .htaccess
파일'과 CMS의 이름을 검색하여 .htaccess
파일의 기본 버전을 찾을 수 있습니다. .htaccess
파일이 여러 개인 사이트의 경우 각 파일의 클린 버전을 찾아 교체합니다.
기본 .htaccess
파일이 없고 사이트에 .htaccess
파일을 구성한 적이 없다면 사이트에서 찾은 .htaccess
파일은 악성 파일일 가능성이 높습니다.
만일에 대비해 .htaccess
파일의 사본을 오프라인으로 저장하고 사이트에서 .htaccess
파일을 삭제하세요.
기타 악성 파일 찾기 및 삭제 (5단계)
악성 파일을 식별하는 것은 까다롭고 시간이 오래 걸릴 수 있습니다. 천천히 파일을 확인하세요. 아직 사이트의 파일을 백업하지 않았다면 이 단계에서 백업하는 것이 좋습니다. 사이트를 백업하는 방법에 관한 안내를 찾으려면 Google에서 '사이트 백업'과 CMS의 이름을 함께 검색하세요.
1단계
CMS를 사용하는 경우 CMS의 기본 배포에 포함된 모든 핵심 (기본) 파일과 추가한 모든 항목 (예: 테마, 모듈, 플러그인)을 다시 설치합니다. 이렇게 하면 이러한 파일에 해킹된 콘텐츠가 없습니다. 재설치 안내를 찾으려면 Google에서 '재설치'와 CMS 이름을 검색하세요. 플러그인, 모듈, 확장 프로그램 또는 테마가 있으면 이러한 항목도 다시 설치해야 합니다.
2단계
이제 남아 있는 악성 또는 손상된 파일을 찾아야 합니다. 이 단계는 가장 어렵고 시간이 많이 소요되는 부분이지만, 이제 거의 완료되었습니다.
이 해킹은 일반적으로 .txt
파일과 .php 파일, 이렇게 두 가지 유형의 파일을 남깁니다. 제공되는 .txt
파일은 템플릿 파일이며 .php
파일은 사이트에 로드할 무의미한 콘텐츠 유형을 결정합니다.
먼저 .txt
파일을 찾습니다. 사이트에 연결하는 방법에 따라 몇 가지 유형의 파일 검색 기능이 표시됩니다. '.txt'를 검색하여 확장자가 .txt
인 모든 파일을 가져옵니다. 이러한 파일은 대부분 라이선스 계약 또는 리드미 파일과 같은 합법적인 파일입니다. 스팸 템플릿을 만드는 데 사용되는 HTML 코드가 포함된 .txt
파일 세트를 찾습니다. 다음은 이러한 악성 .txt
파일에서 찾을 수 있는 다양한 코드의 스니펫입니다.
<title>{keyword}</title>
<meta name="description" content="{keyword}" />
<meta name="keywords" content="{keyword}" />
<meta property="og:title" content="{keyword}" />
해커는 키워드 대체 방법을 사용하여 스팸성 페이지를 만듭니다. 해킹된 파일 전체에서 대체 가능한 몇 가지 일반적인 단어가 있을 가능성이 높습니다.
또한 이러한 파일의 대부분은 표시된 페이지에서 스팸 링크와 스팸 텍스트를 다른 위치에 표시하는 일종의 코드를 포함합니다.
<div style="position: absolute; top: -1000px; left: -1000px;">
Cheap prescription drugs
</div>
이러한 .txt
파일을 삭제합니다. 모두 같은 폴더에 있으면 전체 폴더를 삭제합니다.
3단계
악성 PHP 파일은 찾기가 조금 더 어렵습니다. 사이트에 악성 PHP 파일이 하나 이상 있을 수 있습니다. 모두 동일한 하위 디렉터리에 포함되거나 사이트 전체에 흩어져 있을 수 있습니다.
모든 PHP 파일을 열고 확인해야 한다는 생각이 들어도 당황하지 마세요. 먼저, 조사하려는 의심스러운 PHP 파일의 목록을 만듭니다. 다음은 의심스러운 PHP 파일을 확인하는 몇 가지 방법입니다.
- 이미 CMS 파일을 다시 로드했으므로 기본 CMS 파일 또는 폴더의 일부가 아닌 파일만 확인합니다. 이렇게 하면 많은 PHP 파일이 제거되고 확인해야 할 파일 몇 개만 남게 됩니다.
- 최종 수정 날짜를 기준으로 사이트의 파일을 정렬합니다. 사이트가 해킹당한 것을 처음 발견한 때로부터 몇 개월 이내에 수정된 파일을 찾으세요.
- 크기를 기준으로 사이트의 파일을 정렬합니다. 비정상적으로 큰 파일을 찾으세요.
4단계
PHP 파일 중 어떤 파일이 의심스러운지 좁혀졌다면 악성 파일인지 확인합니다. PHP에 익숙하지 않은 경우 이 과정에 더 시간이 걸릴 수 있으므로 PHP 문서를 참조하여 관련 지식을 습득하세요. 전혀 코딩 경험이 없으면 도움을 받는 것이 좋습니다. 그동안 몇 가지 기본 패턴을 찾아 악성 파일을 식별할 수 있습니다.
CMS를 사용하며 이러한 파일을 직접 수정하지 않는 경우 서버의 파일을 CMS, 플러그인 및 테마와 함께 패키징된 기본 파일 목록과 비교합니다. 속하지 않는 파일 및 기본 버전보다 큰 파일을 찾으세요.
먼저 이미 식별된 의심스러운 파일을 스캔하여 겉보기에 뒤죽박죽된 문자와 숫자의 조합처럼 보이는 큰 텍스트 블록을 찾으세요. 큰 텍스트 블록 앞에는 일반적으로 base64_decode
, rot13
, eval
, strrev
또는 gzinflate
와 같은 PHP 함수의 조합이 나옵니다.
다음은 이 코드 블록의 예입니다. 코드가 실제보다
작게 보일 때 이 모든 코드가 긴 텍스트 한 줄로 채워지는
경우도 있습니다.
// Hackers try to confuse site owners by encoding malicious code into
// blocks of text. Be wary of unfamiliar code blocks like this.
base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));
코드가 뒤죽박죽되지 않고 일반 스크립트처럼 보이는 경우도 있습니다. 코드가 잘못된지 잘 모르겠다면 Google 검색 센터 도움말 커뮤니티를 방문하세요. 숙련된 웹마스터 그룹이 파일을 살펴보는 데 도움을 줄 수 있습니다.
5단계
이제 의심스러운 파일을 알게 되었으니 악성 파일이 아닌 경우를 대비하여 컴퓨터에 파일을 저장하여 백업 또는 로컬 사본을 만들고 사이트에서 의심스러운 파일을 삭제합니다.
사이트가 안전한지 확인
해킹된 파일을 삭제한 후 열심히 작업한 것이 효과가 있는지 확인하세요. 앞서 식별한 의미없는 페이지를 기억하시나요? 해당 이미지가 아직 존재하는지 다시 확인하려면 Fetch as Google 도구를 사용하세요. Fetch as Google에서 '찾을 수 없음'으로 응답하면 현재 상태가 양호할 수 있으며 사이트의 취약점을 해결할 수 있습니다.
다시 해킹당하지 않으려면 어떻게 해야 하나요?
사이트의 취약점을 해결하는 것은 사이트 문제를 해결하기 위한 필수적인 마지막 단계입니다. 최근 연구에 따르면 해킹된 사이트의 20% 가 하루 안에 다시 해킹되는 것으로 나타났습니다. 사이트가 해킹당한 방식을 정확히 알면 도움이 됩니다. 조사를 시작하려면 스팸 발송자가 웹사이트를 해킹하는 방법 가이드를 읽어보세요. 그러나 사이트가 해킹당한 방식을 파악할 수 없는 경우 다음 체크리스트를 확인하여 사이트의 취약점을 줄일 수 있습니다.
- 정기적으로 컴퓨터 검사: 인기 있는 바이러스 검색 프로그램을 사용하여 바이러스나 취약성이 있는지 확인합니다.
- 정기적으로 비밀번호 변경: 호스팅 제공업체, FTP, CMS 등 모든 웹사이트 계정의 비밀번호를 정기적으로 변경하면 승인되지 않은 사이트 액세스를 방지할 수 있습니다. 계정마다 안전하고 고유한 비밀번호를 만드는 것이 중요합니다.
- 2단계 인증 (2FA) 사용: 로그인이 필요한 모든 서비스에 2FA를 사용 설정하는 것이 좋습니다. 2단계 인증을 사용하면 해커가 비밀번호를 알아내더라도 로그인하기가 더 어려워집니다.
- CMS, 플러그인, 확장 프로그램, 모듈을 정기적으로 업데이트: 이 단계를 이미 완료하셨기를 바랍니다. 많은 사이트가 오래된 소프트웨어를 실행 중이기 때문에 해킹당합니다. 일부 CMS는 자동 업데이트를 지원합니다.
- 사이트를 모니터링하기 위해 보안 서비스에 가입: 소규모의 비용으로 사이트를 모니터링할 수 있는 훌륭한 서비스가 시중에 많이 나와 있습니다. 사이트를 안전하게 유지하려면 이러한 서비스에 가입해 보세요.
추가 리소스
그래도 사이트의 문제가 해결되지 않은 경우 도움이 될만한 리소스가 더 있습니다.
다음과 같은 도구를 사용하여 사이트를 검색하고 문제가 되는 콘텐츠를 찾을 수 있습니다. VirusTotal을 제외한 도구는 Google에서 실행하거나 지원하지 않습니다.
이는 사이트에 문제가 있는 콘텐츠를 검색할 수 있는 도구 중 일부에 불과합니다. 이러한 검색 프로그램으로 문제가 되는 모든 유형의 콘텐츠를 식별할 수 있는 것은 아닙니다.
다음은 Google에서 제공하는 추가 리소스입니다.