1P by neo 3달전 | favorite | 댓글 1개

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 컨텍스트로 데이터를 유출할 수 있는 다양한 방법이 있음