AI 크롤러 User-Agent 진위 확인 4단계

핵심 요약
  • User-Agent는 누구나 흉내 낼 수 있어 단독 판별 근거가 아닙니다.
  • 요청 IP를 확인하고, 운영사가 안내한 경우에 역방향·정방향 DNS를 대조합니다.
  • 공식 IP 목록이 있으면 로그의 출발지 IP와 비교합니다.
  • robots.txt는 접근 정책이며 봇 인증 수단은 아닙니다.

로그에 GPTBot이나 ClaudeBot 같은 이름이 찍혀도 진짜 AI 크롤러라고 단정할 수 없습니다. User-Agent(요청을 보낸 프로그램이 자신을 설명하는 HTTP 문자열)는 요청자가 임의로 설정할 수 있기 때문입니다. 진위를 판단하려면 요청 IP를 보존한 로그를 바탕으로, 해당 운영사가 공개한 IP 목록이나 검증 가능한 DNS 정보를 확인해야 합니다. 공개 검증 수단이 없는 봇은 이름만으로 진짜라고 확정하지 말고 미확인으로 분류하세요.

먼저 알아둘 점: 이름과 진위는 다릅니다

관리자가 서버 로그에서 User-Agent와 요청 정보, 출발지 IP를 확인하고 있다.

User-Agent는 로그에서 크롤러 종류를 찾는 단서이지, 신원을 증명하는 인증서가 아닙니다. 공격자나 스크립트도 공식 봇과 같은 문자열을 넣어 요청할 수 있으므로, 이를 근거로 방화벽 허용 목록에 추가하거나 차단을 해제하면 안 됩니다. 반대로 이름이 다르다는 사실만으로 정상 크롤러를 확정 배제하기도 어렵습니다. 운영사가 여러 제품·용도의 봇을 따로 운영할 수 있기 때문입니다.

확인 과정에서는 요청 시각, 요청 경로, 상태 코드와 함께 서버에 실제 도달한 출발지 IP를 확보하세요. CDN이나 리버스 프록시를 쓰는 경우 애플리케이션 로그의 접속 IP가 프록시 주소일 수 있습니다. 이때는 신뢰하도록 설정한 프록시가 전달한 클라이언트 IP 필드를 확인하고, 외부에서 임의로 보낼 수 있는 헤더 값을 검증 없이 신뢰하지 마세요.

AI 크롤러 진위 확인 4단계

관리자가 서버 로그의 출발지 IP와 크롤러 정보를 확인하고 DNS 조회 결과를 대조하는 모습

1단계: 원본 요청 정보를 로그에서 찾기

웹 서버, CDN, 방화벽 로그에서 User-Agent뿐 아니라 출발지 IP, 요청 경로, 시각, 응답 코드를 함께 기록합니다. 로그에 IP가 없거나 프록시 주소만 보인다면 먼저 로깅 구성을 점검하세요. 나중에 IP를 확인할 수 없으면 User-Agent만으로 진위를 확정할 수 없습니다.

2단계: User-Agent 이름과 용도를 구분하기

문자열에서 봇 이름과 버전을 확인하되, 이 정보는 다음 검증 단계를 고르는 데만 사용합니다. 예를 들어 OpenAI는 GPTBot, OAI-SearchBot, ChatGPT-User를 서로 다른 용도로 설명합니다. 검색 기능을 위한 봇과 자동 수집 봇, 사용자의 요청에 따라 페이지를 가져오는 에이전트는 같은 회사 이름이 보여도 동일한 동작이나 robots.txt 적용을 뜻하지 않습니다. 용도는 OpenAI 공식 크롤러 안내처럼 운영사의 공식 문서에서 대조하세요.

3단계: 운영사가 제공하는 검증 자료와 IP 대조하기

운영사가 크롤러의 IP 대역을 공식 공개했다면, 로그의 출발지 IP가 그 목록에 포함되는지 확인합니다. 예를 들어 OpenAI는 GPTBot, OAI-SearchBot 등 봇별 IP 목록을 안내합니다. Anthropic도 공식 안내에서 크롤러 IP 목록을 제공하며, 목록에 있는 출발지 IP는 Anthropic에서 온 크롤러라고 설명합니다. URL이나 목록은 운영사의 공식 문서에서 직접 확인하고, 로그에서 우연히 자주 본 주소나 제삼자 블로그의 목록을 허용 기준으로 삼지 마세요. 공개 IP 목록은 갱신될 수 있으므로 방화벽 규칙에 반영하기 전 공식 자료의 최신 여부와 갱신 시각을 다시 확인해야 합니다.

4단계: DNS 역조회와 정방향 조회를 맞춰보기

운영사가 DNS 기반 확인 방법을 제공하는 경우에는 IP에서 도메인 이름을 찾는 역방향 DNS 조회를 하고, 결과 도메인의 정방향 조회로 돌아온 IP가 처음의 출발지 IP와 같은지 확인합니다. 두 방향이 맞지 않으면 정상 봇이라고 판정하지 않습니다. 도메인 이름도 문자열 일부만 보고 판단하지 말고, 문서가 지정한 정확한 도메인 조건과 IP 일치 여부를 확인해야 합니다.

Google은 자사 크롤러 요청에 대해 역방향 DNS 조회 후 정방향 조회로 원래 IP와 일치하는지 확인하는 절차와 공식 IP 목록 대조 방법을 공개합니다. 이 절차는 Google 크롤러 및 가져오기 도구의 요청 확인 문서를 참고할 수 있습니다. 단, Google의 도메인 규칙을 다른 AI 사업자에 그대로 적용하지 마세요. 제공자마다 공식 검증 방식이 다릅니다.

  1. 로그에서 출발지 IP를 확인합니다.
  2. 운영사가 안내한 방식으로 해당 IP를 역방향 조회합니다.
  3. 반환된 호스트 이름을 정방향 조회해 원래 IP와 일치하는지 확인합니다.
  4. 공식 문서가 지정한 도메인 또는 IP 범위 조건까지 만족할 때만 검증된 요청으로 표시합니다.

검증 결과는 이렇게 분류하세요

공식 IP나 DNS 조건으로 확인되지 않은 봇 요청은 미확인으로 분류하고, 검증 결과에 따라 접근을 처리하는 표와 설명.

서버 기록만으로는 확인할 수 없는 경우가 있으므로, 진위 판단 결과에 ‘미확인’을 포함해야 합니다. 특히 운영사가 IP 대역이나 DNS 검증법을 공개하지 않은 봇은 User-Agent가 그럴듯해 보여도 검증 완료로 승격하지 않습니다.

관측 결과 분류 권장 처리
User-Agent만 일치 미확인 접근 허용 근거로 사용하지 않기
공식 IP 목록과 일치 IP 확인 문서의 갱신 여부와 로그 경로 확인
공식 DNS 조건과 양방향 IP 일치 검증됨 확인 시각과 근거를 기록
공식 조건 불일치 또는 IP 불일치 불일치 정책에 따라 제한하고 추가 로그 보존

핵심 기준: User-Agent 이름만 일치하면 ‘검증됨’이 아니라 ‘미확인’입니다. 공식 문서가 제시한 IP 또는 DNS 확인 조건까지 통과해야 진위 판단 근거가 생깁니다.

robots.txt와 보안 설정은 역할이 다릅니다

웹사이트 서버가 robots.txt로 크롤러 경로를 안내하고 방화벽에서 봇 요청을 검증하는 모습

robots.txt는 크롤링 의사를 전달합니다

robots.txt는 크롤러에 특정 경로의 수집을 허용하거나 제한하는 공개된 안내 파일입니다. 어떤 요청이 파일의 규칙을 따르는지 확인하는 데는 쓸 수 있지만, 접속 주체가 실제 운영사 봇인지 인증하지는 않습니다. User-Agent를 사칭한 요청도 robots.txt를 읽지 않을 수 있고, 파일의 규칙을 따를 의무가 없는 클라이언트도 있습니다.

방화벽 허용은 별도 검증 뒤에 결정합니다

특정 봇 이름이 찍혔다는 이유만으로 보안 장비의 차단을 풀지 마세요. 검증된 IP 범위가 공식적으로 제공되는 경우에도, 허용 규칙은 필요한 서비스와 경로에 한정하고 로그를 계속 확인하는 편이 안전합니다. CDN의 ‘검증된 봇’ 기능을 쓰는 경우에는 해당 업체가 어떤 근거와 범위로 검증하는지 확인한 뒤 결과를 활용하세요.

주의: robots.txt의 Allow 규칙은 인증 기능이 아니며, Disallow도 비공개 정보 보호 수단이 아닙니다. 민감한 페이지는 로그인·접근 제어로 보호하고, 크롤링 지침과 네트워크 보안 정책을 따로 관리하세요.

로그 분석에서 자주 하는 실수

접속 로그의 요청량, IP 주소, robots.txt 기록만으로 크롤러를 오판하는 사례를 보여주는 장면
  • 요청량이나 방문 패턴만으로 확정: 짧은 시간에 여러 IP가 접속하거나 수집량이 많다는 점은 관측 정보일 뿐 신원 증명은 아닙니다.
  • IP 한 개를 고정 주소로 취급: 클라우드와 프록시 인프라는 바뀔 수 있습니다. 일회성 IP 관측을 영구 허용 규칙으로 옮기지 마세요.
  • robots.txt 요청이 없다고 위반 판정: 로그만으로 캐시 여부나 다른 경로의 정책 확인을 배제하기 어렵습니다. 재요청이 없었다는 사실만으로 규칙 위반을 결론 내리면 안 됩니다.
  • 로그의 출발지 IP를 잘못 해석: 프록시 뒤 서비스에서는 원본 IP와 프록시 IP가 다를 수 있습니다. 신뢰하는 프록시 설정을 통해 전달된 주소인지 확인하세요.

자주 묻는 질문

Q. User-Agent가 GPTBot이면 진짜 GPTBot인가요?

아닙니다. User-Agent 문자열은 임의로 흉내 낼 수 있습니다. 공식 IP 목록이나 운영사가 안내한 DNS 확인 방법 등 추가 검증을 거치기 전에는 미확인으로 분류하세요.

Q. 역방향 DNS 조회 결과만 맞으면 충분한가요?

충분하지 않습니다. 운영사가 제시한 도메인 조건을 확인하고, 해당 이름을 정방향 조회했을 때 최초 요청 IP와 일치하는지도 검사해야 합니다. 제공자가 다른 확인 방식을 안내한다면 그 문서가 우선입니다.

Q. AI 크롤러 IP가 공식 목록에 없으면 사칭인가요?

반드시 그렇지는 않습니다. 해당 운영사가 IP 목록을 공개하지 않았거나 인프라가 바뀌었을 수 있습니다. 공식 문서의 검증 수단이 없는 상태라면 사칭이나 진짜로 단정하지 말고 미확인으로 남기세요.

Q. robots.txt에서 허용한 봇인지 확인하면 진위도 알 수 있나요?

아닙니다. robots.txt는 사이트의 크롤링 지침을 전달하는 파일이지, 요청을 보낸 주체를 인증하는 장치가 아닙니다. 진위 확인은 요청 IP와 운영사의 공식 검증 자료를 기준으로 별도 수행해야 합니다.

참고자료

관련 글 보기