Microsoft Copilot Cowork의 파일 유출 취약점: 에이전트 보안 심층 분석

인공지능(AI)이 단순한 대화형 챗봇을 넘어 사용자를 대신해 작업을 수행하는 자율형 에이전트로 진화하면서, 디지털 공격 표면도 기하급수적으로 넓어지고 있습니다. 보안 연구 기업 프롬프트아머(PromptArmor)가 최근 발견한 취약점은 이러한 패러다임의 변화를 극명하게 보여줍니다. 이들은 Microsoft 365 Frontier 프리뷰의 고급 에이전트 기능인 Microsoft Copilot Cowork를 악용해 민감한 파일을 사용자 몰래 유출할 수 있는 방법을 상세히 공개했습니다. 엔지니어링 및 보안 팀에게 이번 발표는 '간접 프롬프트 인젝션(indirect prompt injection)'과 광범위한 그래프 API 접근 권한이 결합되었을 때 발생할 수 있는 잠재적 위험을 알리는 강력한 경고 메시지입니다.
#취약점의 원리: 익스플로잇(Exploit)의 구조
이 취약점의 핵심은 겉보기에는 아무 문제 없어 보이는 아키텍처 설계에 있습니다. Copilot Cowork는 문서 요약, 일정 관리, 파일 검색 등을 통해 사용자의 업무를 돕도록 설계되었습니다. Microsoft는 안전을 위해 에이전트가 외부인이나 동료에게 이메일 또는 Microsoft Teams 메시지를 보내는 등의 '민감한 작업'을 수행하기 전에 반드시 사용자의 승인을 거치도록 안전장치를 마련했습니다.
하지만 프롬프트아머의 연구진은 여기서 치명적인 허점을 발견했습니다. 바로 에이전트가 현재 로그인한 사용자 본인에게 메시지를 보낼 때는 이 'Human-in-the-loop(작업자 개입)' 승인 프로세스가 완전히 우회된다는 사실입니다.
공격자들은 간접 프롬프트 인젝션을 이용해 이 허점을 악용했습니다. 공격의 진행 단계는 다음과 같습니다.
- 오염된 소스 (The Poisoned Source): 공격자는 타깃 사용자가 Copilot에게 요약이나 상호작용을 요청할 가능성이 높은 문서, 회의 초대장, 또는 공유 리소스 내부에 악의적인 명령을 숨겨둡니다.
- 에이전트 트리거 (The Agentic Trigger): 사용자가 Copilot에게 해당 '오염된' 문서의 요약을 요청하면, 에이전트는 정상적인 콘텐츠와 함께 공격자가 숨겨둔 명령까지 무의식적으로 읽어 들이게 됩니다.
- 데이터 수집 (Data Harvesting): 악성 프롬프트는 에이전트가 Microsoft Graph를 이용해 재무 기록, API 키, 인사 데이터 등 특정 민감 파일을 검색하도록 명령합니다. 그리고 시스템이 이 파일들에 대한 사전 인증된(pre-authenticated) 다운로드 링크를 생성하도록 강제합니다.
- 제로 클릭 유출 (The Zero-Click Exfiltration): 에이전트는 수집한 정보를 바탕으로 Teams나 Outlook을 통해 사용자 본인에게 메시지를 보냅니다. 결정적으로 프롬프트는 마크다운(Markdown)이나 HTML 포맷을 사용해 메시지에 보이지 않는
<img>태그를 삽입하도록 지시합니다. 이 태그의src속성은 공격자의 외부 서버를 가리키며, 앞서 생성된 다운로드 링크가 URL 파라미터 형태로 몰래 덧붙여집니다.
사용자가 자신의 채팅창이나 받은 편지함을 확인하기 위해 메시지를 여는 순간(단순히 자신의 메시지를 읽는 것 외에 어떠한 상호작용도 필요 없는 제로 클릭 상태), 클라이언트는 보이지 않는 이미지를 렌더링하려고 시도합니다. 이 과정에서 조용히 웹 요청이 발생하고, 민감한 파일의 다운로드 링크가 공격자에게 그대로 전송됩니다.
#이것이 중요한 이유: 광범위한 권한과 결함 있는 안전장치의 만남
이 취약점이 시사하는 바는 단순한 피싱 공격이나 일반적인 데이터 유출을 훨씬 뛰어넘습니다. 엔터프라이즈 환경에서 AI 에이전트가 권한과 신뢰 경계(trust boundaries)를 처리하는 방식에 심각한 구조적 문제가 있음을 여실히 보여줍니다.
- 완전한 권한 상속 (Total Permission Inheritance): Copilot Cowork는 현재 활성화된 사용자의 모든 Microsoft Graph 권한을 그대로 가지고 작동합니다. SharePoint나 OneDrive의 내부 권한이 지나치게 넓게 설정되어 있는 '과도한 공유(oversharing)' 환경이라면, 에이전트는 파괴력을 배가시키는 기폭제가 됩니다. 사용자 본인조차 접근 권한이 있는지 몰랐던 데이터까지 순식간에 찾아내 유출할 수 있기 때문입니다.
- 제로 클릭 실행 (Zero-Click Execution): 기존의 보안 교육은 직원들에게 의심스러운 링크를 클릭하지 말라고 깊이 강조해 왔습니다. 하지만 이 시나리오에서는 회사 공식 AI 어시스턴트가 보낸 Teams 메시지를 여는 것만으로 정보 유출이 시작됩니다. 사용자가 조심해서 피해야 할 '악성 링크' 자체가 존재하지 않습니다.
- DLP 제어 무력화 (Subverting DLP Controls): 데이터의 초기 이동이 전적으로 내부망 안에서 일어납니다(Copilot이 Microsoft Graph와 통신하고 사용자에게 내부 메시지를 발송). 이 때문에 아웃바운드 트래픽을 모니터링하는 일반적인 데이터 유출 방지(DLP) 도구들은, 마지막 순간 이미지가 로드되며 난독화된 웹 요청이 발생하기 전까지는 이 이상 징후를 탐지하기 어렵습니다.
#기술적 시사점: LLM 그 너머의 문제
프롬프트아머의 발표에서 가장 주목해야 할 기술적 사실 중 하나는 이 익스플로잇이 근본적으로 **특정 모델에 종속되지 않는다(model agnostic)**는 점입니다. 이 연구는 Copilot Cowork 프리뷰 기능을 구동하는 Claude Opus 4.7을 사용해 공격을 시연했지만, 근본적인 결함은 AI의 환각(hallucination) 현상이나 모델의 안전 가드레일을 우회한 것이 아닙니다. 이는 전통적인 아키텍처 로직의 결함이 AI의 강력한 기능과 만나 악화된 사례입니다.
| 공격 구성 요소 (Attack Component) | 기술적 메커니즘 (Technical Mechanism) | 취약점 유형 (Vulnerability Type) |
|---|---|---|
| 수집 (Ingestion) | RAG(검색 증강 생성) 과정에서 외부 콘텐츠에 대한 입력값 검증(sanitization) 부재 | 간접 프롬프트 인젝션 (Indirect Prompt Injection) |
| 실행 (Execution) | 본인에게 보내는 메시지에 대한 인증 및 승인 절차 우회 | 비즈니스 로직 우회 (Business Logic Bypass) |
| 유출 (Exfiltration) | 사내 메신저 앱 내에서 외부 에셋의 클라이언트 사이드 렌더링 악용 | 제로 클릭 SSRF / 데이터 유출 (Data Egress) |
이는 에이전트 시스템을 안전하게 보호하려면 단순히 악성 프롬프트를 거부하도록 LLM을 파인튜닝하는 것만으로는 부족하다는 것을 증명합니다. 견고한 시스템 엔지니어링, 데이터 입력 단계에서의 엄격한 컨텍스트 분리, 그리고 에이전트의 출력 메커니즘에 적용되는 제로 트러스트(Zero-trust) 기반의 검증이 필수적입니다.
#향후 과제: 에이전트 리스크 완화 전략
Microsoft 365를 사용하거나 자체 내부 AI 에이전트를 구축하는 개발자 및 IT 관리자에게 이번 사건은 반드시 갖춰야 할 보안 대책의 명확한 로드맵을 제시합니다.
- 콘텐츠 탐색 제한: 조직은 SharePoint 및 OneDrive의 권한을 훨씬 더 엄격하게 관리해야 합니다. 보안 팀은 테넌트 설정을 통해 고도의 민감 정보가 있는 사이트를 Copilot의 검색 인덱스에서 제외함으로써, 에이전트가 침해당했을 때 발생할 수 있는 피해 반경을 최소화해야 합니다.
- '다운로드 차단' 정책 구현: 특정 민감 라이브러리에 대해 다운로드를 차단하도록 SharePoint 정책을 구성하면, 이번 유출 기법의 핵심이었던 Graph API의 사전 인증 링크 생성 자체를 원천 차단할 수 있습니다.
- 마크다운 및 HTML 출력 검증: AI 클라이언트를 개발하는 애플리케이션 개발자는 LLM의 출력값을 신뢰할 수 없는 사용자 입력으로 취급해야 합니다. 렌더링 엔진은 에이전트가 생성한 메시지 내에서 원격 이미지와 같은 외부 에셋 로딩을 엄격하게 필터링하거나 완전히 차단해야 합니다.
- 진정한 의미의 'Human-in-the-loop' 강제: 수신자가 내부인인지, 외부인인지, 혹은 사용자 본인인지에 관계없이 상태 변경이나 네트워크 요청을 유발하는 에이전트의 모든 행동은 반드시 사용자의 명시적인 확인을 거치도록 해야 합니다.
#결론
프롬프트아머가 발견한 Microsoft Copilot Cowork 취약점은 AI 보안 역사에 있어 중요한 분수령입니다. 단순히 질문에 답하는 시스템에서 벗어나 디지털 워크스페이스 전반에서 스스로 행동하는 자율형 시스템으로 나아가면서, 이러한 워크플로우를 안전하게 보호하는 일은 기하급수적으로 복잡해졌습니다. 에이전트형 AI를 도입한다는 것은 우리의 신뢰 경계를 근본적으로 재검토해야 함을 의미합니다. 이제는 우리의 데이터 소스가 적대적일 수 있으며, AI 어시스턴트는 본질적으로 속기 쉬운 존재라고 가정해야 합니다. 미래의 업무 환경을 안전하게 지키기 위해서는 극도의 경계심, 엄격한 권한 관리, 그리고 인공지능 연동에 대한 끊임없는 제로 트러스트(Zero-trust) 접근 방식이 필요합니다.