ChatGPT for Google Sheets가 프롬프트 인젝션으로 사용자 워크북을 외부 유출
1 week ago
14
- 단일 시트에 숨겨진 간접 프롬프트 인젝션 하나로 피해자 계정 전반의 워크북이 유출되고 피싱 오버레이 공격까지 동시에 발생
- 이 공격은 사용자가 설정에서 사람의 승인(human-in-the-loop) 을 명시적으로 요구한 경우에도 우회가 가능
- 공격 발동에 필요한 것은 단 한 번의 정상 사용자 질의 뿐이며, 워크북 다수 유출·피싱 팝업·사이드바 탈취·무단 편집이 한꺼번에 실행
- OpenAI는 보고 이후 Apps Script 코드 생성 기능 제거로 즉시 대응했으며, 구글 APOI 상호작용과 샌드박싱 접근 및 유사 기능을 재검토하겠다고 밝힘
- AI 확장 기능이 부여받은 권한이 악용될 때 발생하는 에이전트형 보안 위협(agentic security risk) 의 실증 사례
개요
- OpenAI가 출시한 Google Sheets용 ChatGPT 확장 기능은 출시 한 달도 안 되어 185,000회 이상 다운로드 기록
- 사이드바에 상주하는 AI 챗봇과 상호작용하며 스프레드시트를 조작하고, ChatGPT connectors의 데이터를 함께 활용 가능
- 단일 간접 프롬프트 인젝션(indirect prompt injection) 공격이 단 한 번의 정상적인 질의로 다음 피해가 가능함
- 피해자 계정 전반의 다수 워크북 유출
- 대화형 피싱 팝업 표시
- 전체 GPT 사이드바를 공격자 제어 챗봇 인터페이스로 덮어쓰기
- 공격자가 제어하는 워크북 편집
- 신뢰할 수 없는 데이터 소스(가져온 시트, ChatGPT connector 등)가 ChatGPT를 조종해 공격자 제어 외부 스크립트를 실행시키며, 이 스크립트는 사용자가 확장 기능에 부여한 권한을 그대로 활용
OpenAI의 대응
- OpenAI는 보안 연구에 감사를 표하며, 이 보고가 공개 파이프라인의 틈으로 누락되었던 점을 인정
- 즉각 조치로 모델의 Apps Script 코드 생성 능력을 제거해 ChatGPT for Google Sheets 사용자 위험 제거
- 해당 기능과 Google Sheets API 간 상호작용을 면밀히 검토하고, 샌드박싱(sandboxing) 접근 방식을 재평가하여 프롬프트 인젝션 공격 저항성 강화 중
- 더 넓게는 다른 영역의 유사 기능도 재검토해 방어책의 일관성·효과성 확보 예정
공격 흐름
- 사용자가 내부 재무 모델(financial model) 작업을 진행
- 모델 보강을 위해 외부 데이터셋을 가져오기(import)
- 외부 시트에는 흰색 텍스트로 숨겨진 프롬프트 인젝션 존재
- 사용자가 ChatGPT for Google Sheets에 가져온 데이터를 재무 모델에 통합하도록 요청
- 인젝션이 ChatGPT를 조종해 외부 스크립트 실행
- 'Apply edits automatically' 설정은 에이전트 동작 완료 전 사람 승인 시점을 결정하나, 자동 편집을 비활성화한 경우에도 공격 성립
- 외부 스크립트가 사용자 워크북에서 재무 모델을 유출하며, 공격자 서버 로그에 유출된 모델이 확인됨
- 스크립트가 훔친 데이터에서 다른 워크북 링크를 식별·유출하고 발견 가능한 모든 워크북으로 확산
- 내부 재무 모델 시트에 예산 관련 다른 스프레드시트 링크 포함, 스크립트가 해당 URL을 식별해 새 워크북 유출 후 추가 워크북까지 처리, 최종 12개 유출
- ChatGPT 사이드바의 'stop' 버튼을 눌러도 이미 시작된 스크립트의 실행은 중단되지 않음
피싱 오버레이 공격
- 데이터 유출 외에도 동일한 공격자 제어 스크립트로 두 가지 변종 피싱 오버레이 공격 가능
- 변형 1: 공격자 제어 사이트로 확장 기능을 덮는 사이드바를 열어 확장 기능을 사칭, 악성 사이드바는 ChatGPT와 동일하게 시트 편집 스크립트 실행 가능하며 다음 악성 행위 수행
- 모든 사용자 프롬프트 수집
- 정렬되지 않은(misaligned) 챗봇을 사용자에게 제공
- connector '재연결'을 유도해 추가 앱 접근 권한 획득
- OpenAI 자격증명 탈취용 피싱 UI 표시
- 변형 2: 공격자 제어 웹사이트를 렌더링하는 팝업 모달을 열어 자격증명 피싱 수행
접근 제어 방법
- 조직은 다음 설정으로 ChatGPT for Google Sheets 접근 통제 가능
- Workspace settings > Permissions & roles > ChatGPT for Excel and Google Sheets
공개와 대응 경과
- 취약점은 OpenAI에 책임 있는 공개 방식으로 전달됐고, 여러 차례 후속 연락 이후 초기 공개 시점까지는 자동 응답 외의 커뮤니케이션이 없었음
- OpenAI 문서는 모델에 부여되는 민감한 기능, 예를 들어 권한 있는 스크립트 실행이나 간접 프롬프트 인젝션을 통한 모델 조작 위험을 설명하지 않고, 기능 제한과 데이터 처리 우려에 초점을 맞추고 있었음
- 공개 목적은 위험 표면에 대해 정보에 기반한 판단을 가능하게 하는 데 있었음
-
타임라인
- 2026년 5월 8일: PromptArmor가 이메일로 OpenAI에 공개
- 2026년 5월 8일: OpenAI가 의도된 보고 채널임을 확인하는 자동 응답 전송
- 2026년 5월 8일: PromptArmor가 이메일 선호 확인
- 2026년 5월 12일: PromptArmor 후속 연락
- 2026년 5월 18일: PromptArmor 후속 연락
- 2026년 5월 27일: 공개
- 2026년 5월 31일: OpenAI 응답
- OpenAI는 보고를 인지한 뒤 사용자를 보호하기 위한 즉각 조치로 모델의 Apps Script 코드 생성 기능을 제거했으며, ChatGPT for Google Sheets의 사용자 위험을 제거해야 한다고 밝힘
- OpenAI는 해당 기능이 Google Sheets API와 상호작용하는 방식을 면밀히 검토하고, 프롬프트 인젝션 공격에 최대한 견고하도록 샌드박싱 접근을 재평가하겠다고 밝힘
- OpenAI는 다른 표면의 유사 기능도 재검토해 방어가 일관되고 효과적인지 확인하겠다고 밝힘
-
Homepage
-
Tech blog
- ChatGPT for Google Sheets가 프롬프트 인젝션으로 사용자 워크북을 외부 유출