GN⁺: 슬랙 AI에서 간접 프롬프트 주입을 통한 데이터 유출
(promptarmor.substack.com)Slack AI를 통한 간접 프롬프트 주입으로 인한 데이터 유출
- 이 취약점은 사용자가 비공개 Slack 채널에 넣은 모든 데이터를 공격자가 훔칠 수 있게 함
- 공격자는 Slack AI를 통해 비공개 채널에서 데이터를 유출할 수 있음
- Slack AI는 자연어로 Slack 메시지를 쿼리할 수 있게 해주는 기능
- 8월 14일 이후로 Slack은 업로드된 문서, Google Drive 파일 등을 수집하기 시작하여 위험 표면적이 증가함
1. 취약점
- 프롬프트 주입: LLM이 개발자가 만든 "시스템 프롬프트"와 쿼리에 추가된 나머지 컨텍스트를 구분하지 못함
- 간접 프롬프트 주입: 악의적인 명령이 포함된 메시지를 통해 Slack AI가 사용자의 쿼리 대신 그 명령을 따를 가능성이 높음
- Slack 내부 위협은 이미 문제였으며, 이제 공격자는 비공개 채널이나 데이터에 접근하지 않고도 데이터를 유출할 수 있음
2. 데이터 유출 공격 체인: 공개 채널 주입
- Slack에서 사용자의 쿼리는 공개 및 비공개 채널의 데이터를 검색함
- 공격자는 비공개 채널에 있는 API 키를 유출할 수 있음
- 공격 체인:
- A) 사용자가 자신의 비공개 채널에 API 키를 넣음
- B) 공격자가 공개 채널에 악의적인 명령을 넣음
- C) 사용자가 Slack AI에 API 키를 쿼리하면, 공격자의 메시지가 같은 "컨텍스트 창"에 포함됨
- D) Slack AI가 공격자의 명령을 따르고, 사용자가 링크를 클릭하도록 유도함
- E) 사용자가 링크를 클릭하면 API 키가 유출됨
3. 피싱 공격 체인: 공개 채널 주입
- 데이터 유출 대신 피싱 링크를 렌더링함
- 공격 체인:
- A) 공격자가 공개 채널에 악의적인 메시지를 넣음
- B) 사용자가 특정 사용자의 메시지를 요약하도록 쿼리함
- C) 피싱 링크가 마크다운으로 렌더링됨
4. 8월 14일 Slack AI 변경의 의미: 파일 주입
- Slack AI가 채널 및 DM에서 파일을 포함하도록 변경됨
- 공격 표면적이 크게 넓어짐
- 악의적인 명령이 포함된 PDF 파일을 다운로드하고 Slack에 업로드하면 동일한 공격 체인이 발생할 수 있음
- 관리자는 Slack AI의 문서 수집 기능을 제한해야 함
5. 맥락에 맞추기
- 이러한 공격은 Microsoft Copilot, Google Bard 등 여러 애플리케이션에서도 가능함
- 책임 있는 공개 일정:
- 8월 14일: 초기 공개
- 8월 15일: 추가 정보 요청
- 8월 15일: 추가 비디오 및 스크린샷 제공
- 8월 16일: 추가 질문
- 8월 16일: 명확한 답변 제공
- 8월 19일: Slack이 증거가 불충분하다고 판단
GN⁺의 정리
- Slack AI의 간접 프롬프트 주입 취약점은 비공개 채널의 데이터를 유출할 수 있는 심각한 문제임
- 공격자는 비공개 채널에 접근하지 않고도 데이터를 유출할 수 있음
- Slack AI의 기능 변경으로 인해 공격 표면적이 크게 증가함
- 사용자는 Slack AI의 문서 수집 기능을 제한하여 위험을 줄여야 함
- 유사한 기능을 가진 애플리케이션으로는 Microsoft Copilot, Google Bard 등이 있음
Hacker News 의견
-
"confetti" API 키를 도메인 이름의 일부로 넣는 것이 더 나을 것 같음
- 이렇게 하면 브라우저의 DNS 프리페칭으로 인해 클릭 없이도 키가 유출될 수 있음
-
이 공격의 핵심은 데이터 유출 벡터를 이해하는 것임
- Slack은 URL이 링크 텍스트 뒤에 숨겨진 Markdown 링크를 렌더링할 수 있음
- 공격자는 Slack AI를 속여 사용자가 "재인증을 위해 여기를 클릭하세요"와 같은 링크를 클릭하게 만듦
- 이 링크는 공격자의 서버로 연결되며, 쿼리 문자열에 Slack AI가 접근할 수 있는 개인 정보가 포함됨
- 사용자가 링크를 클릭하면 데이터가 공격자의 서버 로그로 유출됨
-
채널 권한에 대한 논의는 불필요하게 복잡하게 만듦
- 사용자 A가 Slack AI를 사용해 검색함
- 사용자 B가 이전에 AI에게 악성 링크를 반환하도록 메시지를 주입함
- AI가 사용자 A에게 악성 링크를 반환하고, 사용자가 클릭함
- 다른 사회 공학 벡터를 사용해도 같은 결과를 얻을 수 있지만, LLMs는 이 경험을 극대화함
-
회사들이 LLMs를 모든 것에 무작정 적용하는 것은 미친 짓임
- GPT-3 이후 거의 2년이 지났지만 여전히 신뢰할 수 있는 입력과 신뢰할 수 없는 입력을 구분하지 못함
-
피해자가 공격이 작동하기 위해 공개 채널에 있을 필요가 없음
- 인용이 공격자의 채널을 참조하지 않고, 사용자가 API 키를 넣은 개인 채널만 참조함
- 모든 기여 메시지를 인용해야 하는 올바른 인용 행동을 위반함
- LLM 인용이 정확할 것이라고 기대하는 이유를 이해하지 못함
- 인용은 시청자를 속여 출력이 더 정확하다고 믿게 만드는 인간의 해킹처럼 보임
- 링크 확장을 AI 응답에 추가하면 클릭 없이도 자동으로 유출될 수 있음
-
유사한 설정이 CTF 챌린지에서 탐구됨
- 링크가 활성화된 채팅 피드에 게시하는 LLM 앱은 모두 취약함
- 링크 미리보기를 고려하면 인간의 상호작용이 필요하지 않음
-
기사가 제목에 부합하지 않음
- "AI를 사회 공학적으로 조작하면 사용자를 피싱할 수 있다"는 아이디어는 흥미로움
-
인공지능은 변하지만 인간의 어리석음은 변하지 않음
-
AI 에이전트에게 전용 인증을 제공하는 것을 중단해야 함
- 모든 작업에 호출 사용자의 인증을 사용하고 사용자를 효과적으로 가장해야 함
- 문제는 유출된 컨텍스트가 아니라 과도한 권한을 가진 확장임
-
매우 멋진 공격 벡터임
- LLM 컨텍스트로 데이터를 유출할 수 있는 다양한 방법이 있음