금융기관 웹사이트에서 의심스러운 Google 봇 트래픽이 감지됐는데, Vercel BotID로 분석하자 수년 전 SEO poisoning 공격의 잔재임이 밝혀졌다. 과거 인프라가 검색 엔드포인트 URL 파라미터 조작으로 수천 개의 스팸 페이지를 생성당했고, Vercel로 마이그레이션 후에도 Google 인덱스에 남은 독성 URL들을 크롤러가 계속 재방문하고 있었다.
핵심 포인트- BotID가 유해 봇이 아닌 Googlebot, Google AdsBot 등 검증된 Google 서비스임을 확인 — 능동적 공격이 아니라 과거 SEO poisoning의 잔재였다.
- 공격 방식: /search?q=spam-keyword 같은 검색 엔드포인트를 이용해 스팸 URL을 수천 개 생성, 검색 엔진에 인덱싱시켜 정상 도메인에서 악성 콘텐츠로 유도.
- 인프라를 마이그레이션해도 Google 인덱스에 남은 독성 URL들을 크롤러가 계속 방문해 트래픽이 지속됐다.
- 해결: robots.txt 차단 + Google Search Console 제거 요청 + 디인덱싱 모니터링.
- 핵심 교훈: 봇 유형을 정확히 파악해야 능동적 위협과 과거 문제의 잔재를 구분하고 올바른 대응을 결정할 수 있다.
상세 정리- 상황: 금융기관 웹사이트가 Vercel로 마이그레이션 완료된 상태에서 의심스러운 검색 쿼리 패턴의 트래픽이 감지됐다.
- BotID 분석: 검증된 봇 레지스트리로 트래픽 출처를 확인하자 실제 공격 인프라가 아닌 Googlebot, Google AdsBot 등 합법적인 Google 서비스였다.
- SEO poisoning 메커니즘: 공격자가 /search?q=spam-keyword 형태의 URL을 대량 생성, 검색 엔진이 이를 인덱싱하면서 정상 도메인 하에서 스팸/악성 콘텐츠로 유도하는 경로가 만들어진다.
- 공격 지속 원인: 수년 전 피해를 입은 구 인프라에서 마이그레이션했지만 Google 인덱스에는 독성 URL들이 그대로 남아 있었다. 크롤러는 인덱싱된 URL들을 계속 재방문한다.
- 해결 3단계: 1) robots.txt에 검색 파라미터 패턴 차단 추가 → 2) Google Search Console에서 독성 URL 제거 요청 → 3) 디인덱싱 진행 상황 모니터링. 정상 크롤러는 허용.
- 핵심 인사이트: 봇 ID 없이는 능동적 공격으로 오판해 DDoS 방어나 IP 차단 같은 잘못된 대응을 하게 된다. 정확한 봇 식별이 올바른 대응 경로를 결정한다.
왜 읽나SEO poisoning이 어떻게 정상 도메인을 오염시키고 인프라 마이그레이션 후에도 잔재가 지속되는지, 봇 트래픽 분석으로 과거 공격의 흔적을 식별하고 Google 인덱스를 정리하는 절차를 실제 사례로 이해하고 싶은 보안·인프라 엔지니어에게 적합.