- Google이 10년 넘게 API 키는 비밀이 아니며 공개해도 안전하다고 안내해 왔으나, Gemini API 활성화 이후 동일 키가 민감한 인증 수단으로 변함
- 기존에 Google Maps, Firebase 등에서 사용되던 공개 키가 Gemini API 접근 권한을 자동으로 얻게 되어, 공개된 키로 개인 데이터 접근 및 요금 청구 가능
- Truffle Security는 2,863개의 실사용 Google API 키가 인터넷에 노출되어 있으며, 이 중 일부는 Google 자체 서비스의 키도 포함됨을 확인
- Google은 문제를 인정하고 누출 키 차단, Gemini 전용 기본 설정, 노출 알림 기능을 도입 중이나, 기존 키의 소급 점검은 미완료 상태
- 이번 사례는 AI 기능 통합으로 인한 기존 자격 증명의 권한 확장 위험을 보여주며, 개발자들은 즉시 Gemini API 활성화 여부와 키 노출 상태 점검이 필요함
핵심 문제
- Google Cloud는 AIza... 형식의 단일 API 키 구조를 사용하며, 이는 공개 식별용과 민감 인증용 두 목적을 동시에 수행
- 과거 Google은 개발자에게 API 키를 클라이언트 코드에 직접 포함해도 안전하다고 명시
- Firebase 보안 체크리스트에서도 “API 키는 비밀이 아니다”라고 안내
- 그러나 Gemini API가 활성화되면, 기존 프로젝트의 모든 API 키가 자동으로 Gemini 엔드포인트 접근 권한을 얻게 됨
-
경고, 확인 절차, 이메일 알림 없이 권한이 확장됨
- 이로 인해 두 가지 문제가 발생
-
권한의 소급 확장(Retroactive Privilege Expansion): 과거 공개된 Maps 키가 Gemini 접근 자격으로 변함
-
불안전한 기본값(Insecure Defaults): 새 키 생성 시 기본 설정이 “Unrestricted”로 되어 있어, Gemini 포함 모든 API 접근 가능
- 결과적으로 수천 개의 청구용 토큰이 실제 인증 자격으로 변해 인터넷에 노출된 상태
공격 가능 시나리오
- 공격자는 웹사이트의 소스코드에서 AIza... 키를 복사해 단순한 curl 요청으로 Gemini API에 접근 가능
- 공격자는 이를 통해
-
비공개 데이터 접근 (/files/, /cachedContents/ 엔드포인트)
-
Gemini API 사용 요금 부과
-
쿼터 소진으로 서비스 중단 유발
- 공격자는 피해자의 인프라를 침입하지 않고, 공개 웹페이지에서 키만 추출해 공격 수행 가능
공개된 키의 규모
- Truffle Security는 Common Crawl 2025년 11월 데이터셋(약 700TiB) 을 분석해 2,863개의 활성 Google API 키를 발견
- 이 키들은 원래 Google Maps 등 공개 서비스용으로 사용되었으나, Gemini API 접근 권한을 보유
- 피해 대상에는 금융기관, 보안기업, 글로벌 리크루팅사, 그리고 Google 자체가 포함
- Google조차 동일한 구조적 위험에 노출되어 있었음
Google 내부 키 사례
- Truffle Security는 Google 제품 웹사이트의 공개 소스코드에 포함된 키로 Gemini API 접근을 시연
- 해당 키는 2023년 2월 이전부터 공개되어 있었으며, 원래는 단순 프로젝트 식별용으로 사용
-
/models 엔드포인트 호출 시 정상 응답(200 OK) 을 반환, 민감 API 접근 가능 확인
- 즉, 과거 무해했던 키가 개발자 개입 없이 민감 권한을 획득한 사례
취약점 보고 및 대응 타임라인
-
2025년 11월 21일: Google VDP에 보고
-
11월 25일: Google은 “의도된 동작”으로 판단
-
12월 1일~2일: Truffle Security가 Google 내부 키 사례 제시 후, Google이 버그로 재분류 및 심각도 상향
-
12월 12일: Google이 누출 키 탐지 파이프라인 확장 및 Gemini 접근 제한 조치 시작
-
2026년 1월 13일: Google이 취약점을 “단일 서비스 권한 상승(Single-Service Privilege Escalation, READ)” 으로 분류
-
2월 2일: 근본 원인 수정 작업 진행 중 확인
Google의 후속 조치
- Google은 공식 문서에서 다음과 같은 보안 강화 계획을 발표
-
Scoped defaults: AI Studio에서 생성된 새 키는 Gemini 전용 접근만 허용
-
Leaked key blocking: 누출된 키의 Gemini API 접근 자동 차단
-
Proactive notification: 누출 키 탐지 시 사용자에게 즉시 알림 발송
- 일부 개선은 이미 진행 중이나, 기존 노출 키의 소급 점검 및 사용자 통보는 미완료
개발자 점검 가이드
-
1단계: 모든 GCP 프로젝트에서 Generative Language API 활성화 여부 확인
-
2단계: 활성화된 경우, API 키 설정에서 ‘Unrestricted’ 또는 Gemini 포함 키 식별
-
3단계: 해당 키가 공개 코드나 웹페이지에 포함되어 있는지 확인
- 노출된 키는 즉시 회전(rotating) 필요
-
보너스: TruffleHog 도구를 사용해 Gemini 접근 가능한 실사용 키 자동 탐지 가능
- 명령 예시: trufflehog filesystem /path/to/your/code --only-verified
결론
- 이번 사례는 AI 기능 추가로 인해 기존 공개 자격 증명이 민감 권한을 얻게 되는 구조적 위험을 보여줌
- Google은 문제를 인식하고 대응 중이나, 안전한 기본값과 키 분리 설계의 중요성이 다시 부각됨
- 개발자와 기업은 Gemini API 활성화 여부 및 키 노출 상태를 즉시 점검해야 함