요즘들어 사이트 로그를 살펴보면 로봇의 비율이 80%를 넘기는데 이와 더불어 별 이상한 그지 같은 악성 크롤러도 판을 치고 있어서 걱정이 많다. 크롤러라면 최소한 유저에이전트에 정보라도 남겨놓는게 예의 인데 악성 크롤러는 신원같은건 무시한체 긁어가는것에 집중을 하고 있다. 

 

간혹 이런 악성크롤러의 아이피 출처에 대한 상세 정보를 알고싶을때가 있다. 이때 조회할 수 있는 사이트는 아래와 같다. 

 
Anti-Spam Plugins for WordPress, Joomla, Drupal, and any other websites
Cloud Anti-Spam Service for websites. Protect your website from spam with invisible methods for visitors. No Captcha, no questions, no counting animals, no puzzles, no math. Fight spam!
https://cleantalk.org/

 

ClanTalk 사이트 접속 후 아래와 같이 Solutions 메뉴 에서  Blacklists Database 를 클릭한다. 

 

그다음 아래와 같이 조회하고 싶은 아이피를 넣고 검색하면된다. 

 

검색을 하고 나면 아래와 같이 Spam 으로 신고된 아이피의 경우 상세하게 정보가 나온다.  아래의 이미지는 스팸으로 신고된 아이피로 체크되었으며 강도가 강할 수록 붉은색, 그렇지 않을 경우 검은색으로 표기가 되는것같다. 

 

조금 스크롤을 내려서 Details 를 보면 아래와 같이 상세 정보를 확인 가능하다.

 

리눅스에서 iptables 를 이용하여 아이피 차단을 하려면 위의 이미지화면에서 Details 의 첫번째 항목 Network 를 참고하여 아이피 내역대를 복사 후 차단을 하면된다. 

 

위의 아이피는 우리가 잘 알고 있는 Google로 출처가 나오긴 하는데 구글 공식 봇은 아닐 수 있으니 도움 안되는건 차단을 하는게 좋다. 만약 구글에서 제공되는 정상적인 봇인지를 확인하고 싶다면 아래의 URL을 참고하면된다. 

 
Googlebot과 다른 Google 크롤러 확인 | Google 검색 센터  |  문서  |  Google for Developers
웹 크롤러가 실제로 Googlebot인지 아니면 다른 Google 사용자 에이전트인지 확인할 수 있습니다. 다음 단계를 따라 Googlebot이 크롤러인지 확인하세요.
https://developers.google.com/search/docs/crawling-indexing/verifying-googlebot?hl=ko

 

하지만 악성봇들은 서버나 프로그램 조건 처리로 막기는 어렵다. 그이유는 이런 악성봇들은 항상 특정 아이피 내역대를 이용하여 계속 변경되서 반복하여 들어오기 때문에 일일이 이런걸 찾는건 시간낭비일뿐이다. 

 

따라서 무료 또는 유료 API 서비스를 이용해서 실시간으로 차단하는게 가장 좋지만 무료 같은 경우 믿을 수가 없고 유료또한 개인사이트를 운영하는데 사용하기엔 부담이 갈 수 밖에 없기에 특정 환경 조건에서 차단을 하는게 가장 좋은것 같다.

 

조금이나마 악성봇 차단에 팁을 준다면  아이피 내역대와 세션 고유번호를 로그에 기록하고 몇달간 로깅한 후 아이피 내역대의 규칙을 확인해서 특정 내역대의 아이피가 얼마만큼의 세션을 소모했는지를 체크한 후 이를 활용하여 차단 프로그램을 만들면 된다. 

 

기본적으로 크롤러는 반복해서 접속하기때문에 세션 고유번호가 매번 달라지게 되는데 이 세션의 주기가 짧을 경우 악성으로 판단하여 처리하면 된다.