- 사이트 장애를 일으킬 만큼 요청을 보내는 Googlebot 사례 상당수는 Google이 아니라 Googlebot을 사칭한 외부 봇에서 비롯됨
- HTTP
User-Agent는 요청자가 임의로 지정할 수 있어, 로그의Googlebot/2.1문자열만으로는 실제 Googlebot임을 보장할 수 없음 - 사칭 봇은 차단을 우회하려 Googlebot 이름을 사용하며, 여러 호스팅 업체의 서버를 동원한 단일 대규모 악성 크롤러 캠페인일 가능성도 있음
- 실제 Googlebot인지는
host명령이나 Google이 공개한 IP 범위로 검증해야 하며, 등록자가 Google LLC인 IP도 Google Cloud 주소일 수 있어 추가 확인이 필요함 - 전체 Googlebot 트래픽의 과반이 가짜라는 데이터는 없지만, 서비스를 방해하는 Googlebot 트래픽은 주로 사칭 봇에서 발생하는 것으로 보임
Googlebot 트래픽을 둘러싼 오해
- Google 검색 크롤러가 과도한 트래픽으로 사이트 장애를 유발하거나 DDoS처럼 동작한다는 운영자들의 불만이 있음
- 그러나 이런 파괴적 트래픽은 Google이 아니라 다른 주체가 Googlebot 이름을 도용해 보낸 사칭 요청일 수 있음
- 서버 로그에서 Googlebot 문자열을 발견한 것만으로 Google을 트래픽 출처로 단정할 수 없음
User-Agent는 신원 증명이 아님
- Googlebot으로 보이는 요청에는 보통 다음과 같은 값이 포함됨
User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- nginx 로그에도 같은 문자열이 기록될 수 있지만, User-Agent 헤더는 요청자가 원하는 값으로 자유롭게 설정 가능함
- User-Agent는 검증된 인증 정보가 아닌 자발적인 자기 식별이므로 누구나 Googlebot이라고 주장할 수 있음
사칭 봇의 출처와 규모
- 사칭 주체는 기존 봇 차단을 우회하기 위해 Googlebot User-Agent를 사용하는 것으로 보임
- 예시 로그의 IP는 Google이 아닌 호스팅 업체 Virtual Machine Solutions LLC가 제공한 서버로 확인됨
- Googlebot 사칭은 오래전부터 흔히 쓰인 수법이며, 최근에는 그 규모가 커진 것으로 관찰됨
- Chris Siebenmann은 오래된 수법이 여러 곳에서 동시에 유행했다기보다, 다수의 호스팅 업체에서 많은 서버를 확보한 단일 악성 크롤러의 대규모 캠페인일 가능성을 제시함
진짜 Googlebot을 검증하는 방법
- Google의 Googlebot 검증 문서에 따라 몇 차례
host명령을 실행하거나, Google이 공개한 IP 범위와 대조할 수 있음 - 주요 크롤러 대부분은 IP 목록을 공개하지만 구체적인 형식과 운영 방식은 서로 다름
- JAFAR는 크롤러 IP 목록을 표준화하려는 제안으로, 아직 표준화 절차가 진행 중임
- IP 등록자가 Google LLC로 표시되더라도 Google Cloud 호스팅 주소일 수 있어 별도 검증이 필요함
- Google Cloud를 통한 최근 사칭 사례는 확인하지 못함
- 검증 결과 실제 Googlebot이 과도하게 크롤링한다면 Google의 과도한 크롤링 대응 문서를 따라야 함
신뢰할 수 있는 봇 인증
- 단순히 필드를 하나 추가해도 악성 행위자가 그 값을 정직하게 설정할 이유는 없음
- RFC 3514의 이른바
evil bit는 악성 주체가 이런 표준을 준수하지 않는다는 점을 풍자함 - Web Bot Auth HTTP Signatures는 별도 필드보다 복잡하지만, 암호학적 서명을 통해 신뢰할 수 있는 User-Agent를 구현하려는 방안임
‘대부분’이라는 표현의 한계
- 전체 Googlebot 트래픽 가운데 가짜가 실제로 과반이라는 사실을 입증할 데이터는 없음
- 다만 사이트를 심각하게 방해한 Googlebot 트래픽 사례 대부분은 가짜 Googlebot에서 비롯된 것으로 보임
- 실제 Googlebot은 경험상 매우 안정적으로 동작하는 반면, 사칭 봇은 사이트가 장애를 일으킬 때까지 요청을 보낼 수 있음