facts

이번 연구의 핵심은 Claude 기반 AI를 활용해 구글의 API 엔드포인트를 대규모로 자동 테스트하고, 권한 검사가 누락된 접근 제어 취약점을 찾아낸 것이다. 연구자는 3개월 미만의 실행 기간 동안 총 50만 달러(약 7억 원) 상당의 버그 바운티를 확보했다.

테스트 대상은 61,200개의 안드로이드 APK 파일과 크롬 디버거 API 기반 확장 프로그램, iOS IPA 복호화 등을 통해 수집한 API 키, 그리고 구글의 API 명세서인 'discovery document'를 결합해 확보한 1,500개 이상의 API다. 특히 `?labels=GOOGLE_INTERNAL` 파라미터를 통해 평소에는 숨겨진 내부 엔드포인트 명세서를 대량으로 노출시켜 테스트 범위를 확장했다.

발견된 주요 취약점은 다음과 같다.

- **Google Voice**: 인증 없는 요청으로 피해자의 PII(개인식별정보) 및 복구 전화번호 덤프 가능 ($20,000 수상)

- **Vertex AI Search for Commerce**: 접근 제어 없이 고객의 시스템 프롬프트(preamble) 읽기 및 수정 가능 ($30,000 수상)

- **Widevine DRM**: 파트너 포털 API를 통해 조직 목록 덤프 및 PGP·AES 키 조회 가능 ($16,004.40 수상)

- **PLX (내부 분석 플랫폼)**: 스테이징 API의 `setIamPolicy`를 통해 기밀 유튜브 데이터(최대 2.1PB 규모) 덤프 가능 (각 $12,000, 총 $24,000 수상)

- **App Engine**: IAM 검증 없이 임의 프로젝트의 24시간 로그 반환 (CVE-2026-8934 할당, $18,000 수상)

how-it-works

취약점 탐색 파이프라인은 '자산 수집 $\rightarrow$ 인증 우회 $\rightarrow$ AI 자동 테스트 $\rightarrow$ 검증' 단계로 작동한다. 먼저 Claude Marketplace API를 이용해 수집한 키의 `company` 필드가 `google.com` 또는 인수 기업(nest.com, fitbit.com 등)인지 확인해 VRP(취약점 보상 프로그램) 범위 내의 키만 선별했다.

인증 단계에서는 구글 독자 방식인 FPA(First Party Authentication)를 해결하는 것이 관건이었다. 연구자는 유출된 sourcemap 내 `gapix` 라이브러리에서 FPA v2 헤더 생성 코드를 확보했다. 해당 토큰은 `email:gaiaId timestamp sessionCookie origin`을 SHA1으로 해싱한 구조이며, Gaia ID(Google Accounts and ID Administration)의 난독화 여부에 따라 접근 권한이 달라지는 특성을 이용했다.

AI 자동화 단계에서는 Claude에 MCP(Model Context Protocol) 도구를 연결해 API 테스트를 수행했다. AI가 조기에 테스트를 종료하는 것을 막기 위해 모든 엔드포인트를 최소 1회 테스트해야 종료되는 'Ralph Wiggum loop'를 강제했다. 또한, `probe_api` 입력을 엔드포인트, 경로, 바디 중심으로 단순화하고 복잡한 FPA 인증은 백엔드에서 처리하게 하여 AI가 페이로드 작성에만 집중하도록 설계했다.

오탐(False Positive) 문제를 해결하기 위해 'operation ID' 재현 시스템을 도입했다. AI가 발견한 버그 보고서에 실제 요청을 가리키는 ID를 포함시켜, 프론트엔드에서 'Play' 버튼 하나로 즉시 재현 가능하게 함으로써 증거의 조작 가능성을 배제하고 검증 속도를 높였다.

implementation-impact

개발자와 보안 실무자가 주목해야 할 지점은 공격의 '정교함'이 아니라 '표면의 광범위함'과 '반복되는 기본 실수'다. 이번 사례에서 발견된 대부분의 취약점은 복잡한 익스플로잇이 아니라 IAM 체크 누락, 인증 없는 GraphQL 엔드포인트, 실제 프로덕션 데이터를 가리키는 스테이징 환경 등 전형적인 설정 오류에서 비롯됐다.

특히 다음 세 가지 운영 리스크를 구체적으로 관리해야 한다.

첫째, 스테이징 환경의 격리다. 프로덕션 데이터베이스를 가리키는 스테이징 API가 존재할 경우, 인증이 느슨한 스테이징 경로가 곧바로 프로덕션 데이터 유출 경로가 된다.

둘째, 기계 읽기 가능한 명세서(Discovery doc, GraphQL SDL, proto)의 노출 제어다. 이러한 문서가 확보되면 AI는 API의 입력값과 구조를 즉시 파악해 정밀한 퍼징(Fuzzing)을 수행할 수 있다.

셋째, AI의 역할 변화다. AI는 새로운 공격 기법을 창조하는 것이 아니라, 사람이 물리적으로 테스트하기 불가능한 방대한 API 표면을 지치지 않고 전수 조사하는 '고효율 반복 검증 도구'로 작동한다.

결국 표준화된 인프라 환경일수록 한 곳에서 발견된 취약점 패턴(예: 특정 API 그룹의 권한 검사 누락)이 다른 서비스에서도 동일하게 반복될 가능성이 높으므로, 패턴 기반의 전수 조사가 필수적이다.