이제 AI 에이전트가 피싱 표적이 됩니다
EchoLeak(CVE-2025-32711)은 AI 에이전트를 겨냥한 최초의 제로클릭 익스플로잇이었어요. 이메일에 숨겨진 지시 하나가 클릭 한 번 없이 Microsoft 365 Copilot을 사용자 본인에게 돌렸어요. 중요한 방어는 모든 프롬프트 인젝션을 잡아내는 것이 아니라, 납치된 에이전트가 자격 증명에 도달할 수 없게 만드는 거예요.
아무도 아무것도 클릭하지 않았는데, 그래도 피싱에 당했어요. 피싱 이메일은 언제나 반대편에 속기 쉬운 사람이 필요했어요. 링크를 클릭하고, 비밀번호를 입력하고, 확인을 승인해 줄 사람이요. EchoLeak은 그럴 필요가 없었어요. 속일 사람도 없었어요. 표적은 에이전트였어요.
사람들이 이 부분을 계속 잘못 이해해요. 피해야 할 나쁜 링크도, 열지 말아야 할 첨부파일도, 속지 말아야 할 로그인 페이지도 없었어요. 피해자는 아무것도 하지 않았어요. 할 일이 없었으니까요. 공격은 전적으로 에이전트 위에서 실행됐어요.
어떤 형태였나
CVE-2025-32711 [3], Aim Labs [1]가 발견하고 Microsoft [2]가 9.3점을 매겼어요. 공격자는 Microsoft 365 Copilot을 쓰는 조직 내부의 누군가에게 평범해 보이는 이메일을 보내요. 그 이메일 안에 인간이 아니라 모델을 위해 작성한 지시가 숨어 있어요. 인간은 그걸 읽을 필요가 없어요. 어느 시점에 Copilot이 본래 하도록 만들어진 대로, 질문에 답하기 위해 사용자의 세계 안으로 들어가고, 그 검색 과정이 오염된 이메일을 다른 것들과 함께 끌어들여요. 이제 악성 지시는 모델의 컨텍스트 안에 들어가서 실제 작업과 구분할 수 없어요. 모델은 그 지시를 따라요. 도달할 수 있는 것을 모아요. SharePoint, OneDrive, Teams, 이 사용자가 볼 수 있는 것들이요. 그리고 데이터를 공격자 서버를 가리키는 markdown 이미지 URL로 되돌아 나가요 [1]. 브라우저가 이미지를 가져오고, 그 요청에 비밀이 실려요. 처음부터 끝까지 클릭 0회예요.
Microsoft는 서버 측에서 수정했고, 고객 조치는 필요 없었으며, 실제 악용 증거는 보고되지 않았어요 [2]. 연구는 2025년 6월에 공개됐어요 [4]. 구체적인 구멍은 닫혔지만, 형태는 그렇지 않아요.
실제로 일을 한 것이 무엇인지 보세요. 공격자는 침입하지 않았어요. SharePoint에 손대지 않았고, 비밀번호를 훔치지 않았고, 누구의 기기에서 코드를 실행하지 않았어요. 이메일을 썼을 뿐이에요. 나머지는 전부 에이전트가 했어요. 이미 가지고 있던 권한으로, 요청한 적 없는 사용자를 대신해서요. 위험은 문 앞에서 막을 수 있는 침입자가 아니었어요. 문장 한가운데서 방향을 바꿔 당신을 겨눈, 당신 자신의 비서였어요.
왜 이 문제가 CVE 하나보다 더 중요한가
프롬프트 인젝션은 고쳐서 끝낼 수 있는 버그가 아니에요. 대규모 언어 모델은 컨텍스트 안의 지시를 따라요. 이건 제품의 결함이 아니라, 그게 제품이에요. 신뢰할 수 없는 텍스트가 컨텍스트에 도달할 수 있는 한(유용한 에이전트라면 도달할 수 있어요), 인젝션의 일부는 분류기를 빠져나가요. 언젠가 조용히 요청하지 않은 일을 하도록 지시받은 에이전트를 돌리게 될 거예요. 그걸 기정사실로 받아들이세요. 당신을 공격하는 사람들은 이미 그렇게 생각하니까요.
그래서 질문은 모든 악성 지시를 막는 방법이 아니게 돼요. 그 경주에서 깔끔하게 이길 수 없어요. 공급망을 심사하는 것으로 이길 수 없는 것과 같아요. 진짜 질문은 아키텍처로 답할 수 있는 거예요.
> 에이전트가 당신을 겨눌 때, 무엇에 도달할 수 있나요?
대부분의 환경에서 정직한 답은 '모든 것'이에요. 에이전트는 넓고 포괄적인 상시 권한으로 돌아가요. 유용하게 만들기 쉬운 방법이었으니까요. 공유 전체를 볼 수 있고, 열거할 수 있고, 돌아다닐 수 있어요. EchoLeak은 바로 그걸 무기화했어요. 납치는 도화선이었지만, 파괴 반경은 권한이었어요.
핵심 자산을 손이 닿지 않게 두기
이 부분이 Clavitor가 집중하는 지점이에요. 자격 증명에 대해서요. 저희는 프롬프트 인젝션을 막겠다고 약속하지 않고, 문서 앞에 서 있지도 않아요. 저희가 거부하는 건 뷔페예요. Clavitor 위의 에이전트는 명시적으로 사용하도록 지정받지 않은 자격 증명에 도달할 수 없어요. 읽을 목록도, 검색도, 발견도 없어요. 열거는 프로토콜 수준에서 불가능해요. 단순히 제한되는 게 아니라요. 자격 증명은 사용하는 순간 새로 가져와요. 저장하지 않고, 캐시하지 않으며, 쓰고 나면 사라져요. 모든 접근은 특정 행위자로 기록돼요. 부여는 발급된 기기에 고정돼서, 다른 곳에서 들어 올려 재생하면 그대로 거부돼요. 그리고 속도 제한이 걸려 있어서, 평소의 몇 건을 넘어서 손을 뻗는 에이전트는 금고를 쓸어 담는 대신 경보를 울리고 잠겨요.
그 위에 EchoLeak 작전을 돌리면 멈춰요. 납치된 에이전트에게 비밀을 모으라고 지시할 수는 있어요. 다만 모을 데가 없어요. 어떤 자격 증명이 있는지 물을 수 없고, 부여받지 않은 것을 끌어올 수 없어요. 그 순간 정당하게 들고 있는 하나는 그 순간 잘못 쓰일 수 있어요. 이게 주장의 정직한 경계예요. 아키텍처가 물리를 바꾸지는 않으니까요. 하지만 이런 공격을 무섭게 만드는 동작, 한 번의 침해가 모든 것에 한꺼번에 도달하는 동작은 정확히 작동하지 않아요. 넓고 포괄적인 상시 권한은 교묘한 이메일을 침해로 바꿔요. 범위가 지정되고, 이름이 붙고, 감사되는 권한은 같은 이메일을 이미 가지고 있던 한 건에 대한 기록된 요청으로, 그리고 그 외에는 아무것도 아닌 것으로 바꿔요.
아무도 아무것도 클릭하지 않았어요. 그게 실패가 아니라, 미래예요. 이제 공격 표면은 에이전트예요. 그러니 모든 것의 열쇠를 넘겨주고 분류기가 버텨 주기를 바꾸지 마세요. 지정된 용도에 정확히 쓰도록, 기록에 남기고, 방향을 바꿨을 때 들어서는 방이 거의 비어 있도록 만드세요.
Clavitor는 AI 에이전트를 위해, 그리고 그에 맞서기 위해 만들어진 자격 증명 금고예요.
출처
1. Aim Labs — EchoLeak 해부: Microsoft 365 Copilot에서 데이터 유출을 가능하게 한 최초의 제로클릭 AI 취약점 (Cato Networks를 통해 게시) 2. Microsoft Security Response Center — CVE-2025-32711 (Microsoft 평가 CVSS 9.3) 3. NVD — CVE-2025-32711 (NIST 기본 점수 7.5, Microsoft 9.3) 4. The Hacker News — 사용자 상호작용 없이 Microsoft 365 Copilot 데이터를 노출하는 제로클릭 AI 취약점