- Google은 AI 보안 강화를 위해 사전 red-teaming 방식의 bugSWAT 이벤트를 개최하며, 연구자들에게 자사 AI 시스템을 철저히 테스트할 기회를 제공함
- 2023년 $50,000을 수상했던 팀이, 이번에도 Gemini의 새로운 취약점을 발견해 ‘Most Valuable Hacker(MVH)’ 타이틀을 수상함
- 해커 팀은 Google로부터 새로운 Gemini 프리뷰 기능에 대한 접근 권한과 문서를 받아 보안 관점에서 기능을 테스트함
- 간단한 프롬프트로 Python 코드를 요청하자 “Run in Sandbox” 버튼이 제공됨
- Gemini의 샌드박스 환경은 Google의 gVisor와 GRTE 기반으로 설계된 안전한 Python 실행 환경임
- gVisor는 Google이 만든 사용자 공간 커널로, 시스템 호출을 가로채어 보안을 강화하는 기술임
- 샌드박스 환경은 완전히 격리되어 있으며, 탈출은 매우 어려움
- 하지만 샌드박스 내부에서 데이터 유출이 가능한 경우가 있음
- 샌드박스가 os 라이브러리를 제공함을 발견하고, 파일 시스템을 탐색할 수 있는 Python 코드를 작성함
-
/usr/bin/entry/entry_point 라는 579MB 크기의 바이너리 파일을 발견
- 이진 파일을 base64로 직접 출력하면 샌드박스가 다운되므로, 10MB 단위로 분할하여 출력
-
Caido라는 툴을 이용해 자동화된 방식으로 모든 청크를 수집하고 로컬에서 복원
-
file, strings, binwalk 명령어를 사용해 분석한 결과 내부 구조와 Google의 내부 경로가 노출됨
- binwalk 분석을 통해 내부 Python 소스 코드가 담긴 google3 디렉토리 발견
-
assistant 디렉토리 내에는 Gemini가 Google 서비스(YouTube, Flights 등)와 상호작용하는 RPC 관련 코드 포함
- 특정 스크립트 덤프 방지용 문자열이 포함되어 있었으나, 해당 코드는 Google 보안팀이 사전 검토 후 공개 가능 판단함
샌드박스의 메인 로직 분석
- Google 서비스 호출은 Python 코드로 작성된 특정 클래스에서 구현되어 있음
- 예: _set_reader_and_writer, run_tool 등은 파일 디스크립터를 통해 Google 서비스와 통신함
- 바이너리 내부에서 protobuf 스키마를 기반으로 직접 메시지를 구성하고 도구 호출이 가능함
- Google은 ReAct 논문을 바탕으로 Gemini가 복잡한 문제를 해결하기 위해 자체적으로 여러 번 프롬프트를 생성하고 계획을 세우도록 구현
- 예: 사용자가 “Toronto → New York 비행기 시간?” 물으면 Gemini는 여러 단계를 거쳐 도구를 선택하고 데이터를 검색
- 이 논리를 악용하여 더 높은 권한의 샌드박스를 생성하도록 프롬프트 인젝션을 시도
- 일부 샌드박스는 Google의 확장 기능(RPC API 등)에 접근 가능
- 확장 기능은 항상 열려 있는 FD를 통해 호출되며, 이들을 악용하면 더 높은 수준의 시스템 접근 가능성 존재
- 특정 조건(Gemini가 계획을 짜는 단계 등)에 따라 고급 샌드박스에 접근 가능함을 확인
민감한 proto 파일 유출
- Protocol Buffer 파일(proto)은 시스템 간 데이터 정의에 사용되며, 민감한 시스템 구조 정보 포함
-
strings entry_point > stringsoutput.txt 실행 후 “Dogfood” 문자열 검색으로 민감한 proto 경로 다수 노출
- 예: privacy/data_governance/attributes/proto/classification.proto → Google이 사용자 데이터를 어떻게 분류하는지를 정의한 파일
-
cat stringsoutput.txt | grep '.proto' | grep 'security' 명령으로 다수의 민감 보안 관련 proto 파일 리스트 노출
- 예: security/thinmint/proto/core/thinmint_core.proto, security/credentials/proto/authenticator.proto 등
왜 이런 파일이 있었나?
- Google 보안팀은 샌드박스 바이너리에 포함된 내용을 사전 승인했지만, 자동화된 빌드 파이프라인이 불필요한 보안 proto 파일을 추가
- 이로 인해 고도의 민감한 내부 정의 파일들이 외부에 노출된 상황 발생
- 해커들은 이 파일들이 Google의 기준에서 민감 정보로 취급된다는 점을 근거로 취약점으로 보고
결론 및 회고
- AI 시스템은 수많은 요소들이 상호작용하므로 예상치 못한 보안 문제가 자주 발생함
- 샌드박스 하나도 내부 툴과 통신하고 권한이 동적으로 달라질 수 있어 정밀한 테스트가 필요함
- Google의 보안팀과의 협업은 유익했고, 전체 경험은 도전적이면서도 흥미진진한 모험이었음