- 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의 보안팀과의 협업은 유익했고, 전체 경험은 도전적이면서도 흥미진진한 모험이었음