A €0.01 bank transfer could compromise a banking AI agent

개요

Blue41은 Bunq 은행의 AI 어시스턴트를 스피어피싱 위험으로부터 보호하는 과정에서, 단 한 건의 소액 은행 송금으로도 AI 어시스턴트가 금융 기관의 고객을 대상으로 한 정교한 피싱 공격의 전달 채널이 될 수 있다는 간접 프롬프트 주입 취약점을 발견했습니다.

주요 내용

  • AI 금융 어시스턴트의 아키텍처: 현대 은행 앱은 사용자 인터페이스와 거래 기록, 상품 설명서, 계정 정보, 지원 콘텐츠 등 다양한 백엔드 데이터 소스 사이에 AI 기반 기능을 배치하며, LLM을 사용하여 자연어 질문에 답변합니다.
  • 보안상의 과제: AI 어시스턴트가 외부 데이터를 컨텍스트로 가져와 처리할 때, 이 데이터가 때로는 일반 텍스트가 아닌 악의적인 명령으로 해석될 수 있습니다. 이것이 간접 프롬프트 주입의 핵심 문제입니다.
  • 공격 시나리오: 공격자는 송금 시 메모 필드에 정교하게 제작된 프롬프트 주입 페이로드를 포함한 소액(예: €0.02)을 송금하기만 하면 됩니다. 이후 피해자가 AI 어시스턴트에 문의하면, 어시스턴트는 해당 송금 정보를 컨텍스트로 가져와 LLM이 페이로드를 처리하게 만들고, 결과적으로 은행을 사칭한 신뢰도 높은 스피어피싱 메시지를 사용자에게 전달하게 됩니다.
  • 금융 기관에 중요한 이유: 거래 설명, 결제 참조, 지원 메시지 등 AI 어시스턴트가 가져오는 다양한 데이터 필드가 잠재적인 공격 표면이 되며, 이러한 공격은 저렴하고 신뢰할 수 있는 채널을 통해 이루어지고 AI 어시스턴트의 특권화된 컨텍스트를 악용할 수 있습니다.
  • 가드레일만으로는 부족: 입력 필터, 프롬프트 주입 분류기 등 기존의 보안 조치는 공격 페이로드가 개별적으로는 악의적이지 않게 보이거나, 데이터와 명령을 명확히 구분하기 어려운 경우 충분하지 않습니다.
  • 효과적인 완화 방안:
  • 불필요한 컨텍스트 최소화: 사용자 작업에 필요하지 않은 필드는 모델 컨텍스트에 포함시키지 않습니다.
  • 가져온 데이터를 신뢰하지 않음: 거래 설명, 메시지 등은 명령이 아닌 데이터로 취급하고, 아키텍처 수준에서 이러한 구분을 유지합니다.
  • 민감한 출력 및 작업 제한: 링크 생성, 자격 증명 요청, 민감한 워크플로우 실행 등을 추가 제어 없이 허용하지 않습니다.
  • 런타임 동작 모니터링: AI 어시스턴트의 비정상적인 행동(외부 URL 포함, 정보 은닉, 특이한 응답 패턴 등)을 감지하고 조사합니다.

시사점

AI 금융 어시스턴트의 새로운 신뢰 경계와 실패 모드를 고려한 포괄적인 애플리케이션 보안, 데이터 흐름 관리, 런타임 모니터링 접근 방식이 필수적이며, 금융 기관은 AI 어시스턴트를 새로운 유형의 위협과 요구 사항을 가진 프로덕션 시스템으로 취급해야 합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions