단 0.01유로 송금으로 은행 AI를 해킹하는 법
유럽의 2위 디지털 은행인 번큐(Bunq)의 AI 어시스턴트에서 간접 프롬프트 인젝션(Indirect Prompt Injection) 취약점이 발견되었습니다. 공격자가 0.02유로를 송금하며 거래 내역에 악의적인 프롬프트를 숨기면, 피해자가 은행 앱에서 AI에게 질문할 때 AI가 이를 지시어로 인식하여 사용자를 겨냥한 정교한 피싱(스피어피싱) 공격을 자동으로 실행하게 됩니다. 이는 금융권 AI 시스템이 외부 데이터를 신뢰하고 처리하는 구조적 근본 결함을 보여주는 매우 중요한 보안 이슈입니다.
🚀 Blue41이 RSAC 런치 패드에서 우승했습니다. 자세한 내용은 여기에서 확인하세요.
사례 연구: Blue41이 금융 AI 어시스턴트를 안전하게 보호하도록 Bunq를 지원한 방법 Thomas Vissers & Tim Van hamme • 2026년 4월 29일
Blue41은 2천만 명 이상의 고객을 보유한 유럽 두 번째 규모의 디지털 은행인 Bunq가 스피어피싱(Spearphishing) 위협으로부터 자사의 AI 어시스턴트를 보호할 수 있도록 지원했습니다. 우리의 테스트 과정에서 단 한 번의 송금만으로 어시스턴트가 매우 신뢰할 수 있는 피싱 공격의 전달 채널로 전환될 수 있는 간접 프롬프트 인젝션(Indirect Prompt Injection) 취약점을 발견했습니다. 우리가 이 사례를 공유하는 이유는 이러한 근본적인 문제가 한 은행에만 국한되지 않기 때문입니다. 이는 거래 데이터, 고객 기록, 문서, 메시지 또는 기타 신뢰할 수 없는 입력값을 처리하는 AI 어시스턴트를 배포하는 금융 기관 전체에 해당하는 더 광범위한 아키텍처적 과제입니다.
0.02유로 송금에서 금융 AI 어시스턴트 내부의 맞춤형 피싱 시나리오로.
설정 현대의 모바일 뱅킹 앱에는 점점 더 AI 기반 기능이 포함되고 있습니다. 이러한 기능은 사용자와 거래 기록, 제품 문서, 계좌 세부 정보, 고객 지원 콘텐츠 및 기타 내부 시스템과 같은 다양한 백엔드 데이터 소스 사이에 위치합니다. AI는 대규모 언어 모델(LLM, Large Language Model)을 사용하여 해당 컨텍스트를 기반으로 자연어 질문에 답변합니다.
일반적인 금융 AI 어시스턴트의 아키텍처: 사용자는 뱅킹 앱을 통해 상호작용하며, 어시스턴트는 거래 데이터, 문서 및 기타 소스에서 컨텍스트를 검색하여 외부 도구를 호출할 수도 있습니다.
사용자가 "내 최근 거래 내역을 보여줘"라고 질문하면 어시스턴트는 관련 기록을 가져와 LLM에 컨텍스트로 전달합니다. 그런 다음 모델은 대화형 응답으로 해당 데이터를 요약합니다.
보안상의 과제는 검색된 모든 컨텍스트를 동일하게 신뢰해서는 안 된다는 것입니다. 거래 설명(메모)은 제3자가 설정한 데이터입니다. 일반 텍스트처럼 보일 수 있지만, LLM 컨텍스트 창(Context Window)에 배치되면 모델이 이를 데이터가 아닌 명령어(Instruction)로 해석할 수 있습니다. 이것이 간접 프롬프트 인젝션의 핵심 문제입니다. 악의적인 명령어는 어시스턴트와 상호작용하는 사용자가 입력하는 것이 아닙니다. 대신 어시스턴트가 나중에 처리하는 외부 데이터나 검색된 데이터 내부에 숨겨져 있습니다.
개발자와 보안 팀에게는 AI 모델에 간접적으로 유입되는 각 데이터 조각의 위험 수준을 평가하는 것이 매우 복잡한 일입니다.
공격 시나리오 이 개념 증명(PoC) 공격은 피해자의 기기에 대한 접근 권한, 악성코드(Malware) 또는 전통적인 사회공학(Social Engineering) 기술이 전혀 필요하지 않았습니다. 공격자는 단지 소액의 계좌 이체만 보내면 되었습니다.
1단계: 공격자는 대상에게 소액(이 경우 0.02유로)을 송금합니다. 거래 설명 필드에 정교하게 조작된 프롬프트 인젝션 페이로드(Payload)를 포함합니다. 이것이 공격자가 취해야 하는 유일한 행동입니다.
2단계: 피해자가 뱅킹 앱을 열고 "내 최근 거래 내역 보여줘"와 같은 일상적인 질문을 AI 어시스턴트에게 던집니다. 이후 나머지 공격 과정은 AI 어시스턴트에 의해 자동적이고 자율적으로 실행됩니다.
해당 질문에 답하기 위해 AI 어시스턴트는 공격자의 송금 데이터를 포함한 거래 데이터를 검색하여 사용자의 질문에 답변하는 데 필요한 컨텍스트의 일부로 LLM에 전달합니다. 그런 다음 LLM은 거래 설명 내부에 주입된 악의적인 명령어를 처리합니다.
우리의 통제된 시연에서 어시스턴트는 은행으로부터의 정당한 재인증(Reauthentication) 요청으로 위장하여 은행 사용자에게 스피어피싱 공격을 시작하도록 조작되었습니다.
공격의 구조: 공격자가 거래 설명을 통해 악의적인 명령을 주입하고(1), 사용자가 어시스턴트에게 질문하며(2), 거래 데이터가 LLM 컨텍스트로 검색되고(3), 어시스턴트의 응답이 주입된 콘텐츠의 영향을 받습니다(4).
결과적으로 생성된 메시지는 은행 자체의 애플리케이션 내에, 은행 자체의 AI 어시스턴트로부터 나타납니다. 이 메시지는 실제 거래 세부 정보와 사용자 특정 정보를 참조할 수 있으므로 매우 신뢰도가 높은 피싱 공격이 됩니다. AI 에이전트의 기능에 따라 동일한 신뢰 경계(Trust-boundary) 붕괴는 여러 공격 시나리오로 이어질 수 있습니다. 왜 이러한 문제가...