포스트

AI로 구글 API 1,500개를 퍼징해 50만 달러 버그바운티를 받은 방법

목차

  1. 개요
  2. 사전 준비와 인증 우회
  3. AI 기반 자동 퍼징 시스템
  4. 발견된 주요 취약점
  5. 교훈과 시사점
  6. 결론
  7. Reference

개요

보안 연구자가 Claude를 활용해 구글의 1,500개 이상 API를 자동으로 퍼징하고, 총 50만 달러의 버그바운티를 획득한 사례다. 핵심은 단순히 AI에게 “취약점을 찾아줘”라고 시킨 것이 아니라, 검증 가능한 자동 퍼징 파이프라인을 설계했다는 점이다. 수동으로 한다면 수개월이 걸릴 작업을, 약 3개월 만에 대규모로 수행했다.

사전 준비와 인증 우회

API 키와 엔드포인트 수집

자동화 이전에 방대한 정찰 작업이 선행되었다.

작업내용
APK 분석구글 앱스토어의 약 60,200개 APK 버전을 언팩하고 grep
네트워크 인터셉트Chrome 디버거 API로 트래픽을 가로채 API 키 수집
키 수집 규모3,600개 이상의 API 키 확보
Discovery DocumentsSwagger 같은 API 명세서를 분석해 공개 및 비공개 엔드포인트 식별

Discovery documents의 가시성 레이블 파라미터를 활용하면, 숨겨진 엔드포인트의 추가 데이터까지 노출되었다. 공개되지 않은 엔드포인트를 “보안”으로 간주하는 가정 자체가 약했던 것이다.

인증 메커니즘 분석

연구자는 구글 소스맵에서 발견한 코드로 First Party Authentication(FPA) v2 토큰 생성 알고리즘을 역분석했다. 이메일, Gaia ID, 워크스페이스 도메인을 조합하고 SHA1 해시를 거쳐 토큰을 만드는 방식이었다. 또한 어떤 오리진(origin)을 사용하느냐에 따라 API 접근 가능 여부가 갈렸는데, *.corp.google.com 도메인에 대한 제약이 없어 내부용 API에 도달할 수 있었다.

AI 기반 자동 퍼징 시스템

초기 접근의 문제와 개선

처음에는 AI에게 그냥 엔드포인트를 테스트하라고 시켰지만 여러 문제가 있었다. AI가 작업을 조기에 종료하거나, 대량의 요청과 응답 JSON이 토큰을 소진하거나, 검증 불가능한 보고서(환각 위험)를 내놓았다. 이를 해결하기 위해 아키텍처를 다음과 같이 개선했다.

개선 항목내용
그룹 기반 분류각 API의 엔드포인트를 논리적 그룹으로 나눠 집중 테스트
표준 오류 파싱의미 있는 오류 타입으로 변환해 AI가 해석하기 쉽게 함
다중 키 프로빙단일 요청을 모든 API 키로 전송해 응답 차이를 식별
작업 ID 추적AI 보고서에 실제 요청 데이터 링크를 포함해 검증 가능하게 함

특히 프롬프트에 “ID 열거는 기술이지 버그가 아니다”, “존재 열거 자체는 절대 보고하지 말 것” 같은 지침을 넣어 오탐을 줄였다.

MCP 도구 설계

AI가 일관되게 작동하도록 MCP(Model Context Protocol) 도구를 직접 설계했다.

도구기능
probe_apiAPI 엔드포인트 테스트, 작업 ID와 다중 키 응답 해시 반환
report_vulnerability취약점 보고, 작업 ID 검증 포함
get_endpoint_schema엔드포인트 정의와 요청 응답 스키마 조회
confirm_testing_complete모든 엔드포인트 검증 완료 확인

작업 ID 링크 덕분에 프론트엔드 UI에서 “재생” 버튼으로 실시간 검증이 가능했고, 환각을 배제할 수 있었다.

발견된 주요 취약점

이 시스템으로 발견한 취약점들은 대부분 권한 검사 누락과 스테이징-프로덕션 격리 실패에서 비롯되었다.

취약점내용보상
Google Voice 계정 탈취접근 제어 없는 API로 전화번호, 음성메일 PIN 노출20,000달러
AdExchange 계정 접근스테이징 API가 프로덕션 데이터를 가리킴, 임의 계정에 관리자 추가30,000달러
Eldar 개인정보 평가공개 API로 직원용 개인정보 요청 폼 접근26,674달러
Widevine DRM 키 추출권한 검사 없는 파트너 API로 암호화 키 노출16,004달러
PLX 데이터 플랫폼스테이징 DataHub에서 수백 PB 규모 YouTube 데이터 접근24,000달러
Vertex AI Translation Hub인증 없는 API로 서비스 계정명, GCS 버킷명 노출36,500달러
Vertex AI Search for Commerce권한 검사 없는 설정으로 타사 모델 프롬프트 읽기30,000달러

Google Voice 취약점은 P0/S0 등급으로 분류되어 2시간 내에 패치되었다.

교훈과 시사점

구글의 실패 패턴은 몇 가지로 정리된다. 첫째, 스테이징과 프로덕션 격리 실패다. *.sandbox.googleapis.com 도메인이 프로덕션 데이터를 보유하고 있었다. 둘째, API 게이트웨이 인증 일관성 부재다. 같은 엔드포인트라도 경로나 도메인에 따라 권한 검사 여부가 달랐다. 셋째, 오류 응답에 서비스 계정명, GCS 버킷명, Gaia ID 같은 민감 정보가 노출되었다.

AI 보안 연구의 강점과 한계도 분명하다. 강점은 수천 개 엔드포인트를 자동 검사하는 규모성, 반복 프롬프트 조정으로 거짓 양성을 제거하는 지속성, 수개월 작업을 수주로 단축하는 생산성이다. 한계는 복잡한 멀티스텝 공격이나 비즈니스 로직 이해가 필요한 취약점은 발견하기 어렵다는 점이다. 즉 AI는 규모 있는 정보 수집형 버그에 매우 효과적이지만, 창의적 공격 시나리오는 여전히 인간 연구자가 필요하다.

결론

이 사례의 핵심은 AI 자체가 아니라 검증 가능한 파이프라인 설계에 있다. 작업 ID로 모든 보고를 추적 가능하게 만들고, MCP 도구로 AI의 행동을 통제하고, 프롬프트로 오탐을 걸러냈기 때문에 50만 달러 규모의 성과가 가능했다. 방어하는 입장에서는 모든 엔드포인트에 IAM 기반 권한 검사를 의무화하고, 스테이징 데이터를 마스킹하거나 완전히 격리하며, 오류 응답에서 구조 정보를 최소화해야 한다는 교훈을 남긴다.

Reference