AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

AI 에이전트의 보안 사각지대, 코드 생성부터 파일 유출까지

바이브 코딩으로 만든 프로토타입이 프로덕션으로 올라가는 순간, 무엇이 달라질까요. Thoughtworks 마케팅 팀은 그 답을 아찔한 방식으로 배웠습니다. AI가 추천한 설정 두 가지가 통과됐더라면, 미공개 브랜드 자산이 인터넷에 노출되고 서비스 계정 하나로 전체 클라우드 워크스페이스가 뚫릴 뻔했습니다.

사진 출처: PromptArmor

Thoughtworks AI 애플리케이션 팀이 Gemini, Replit AI, Claude를 활용한 영상 제작 프로토타입을 확장하는 과정에서 겪은 두 가지 보안 위기를 기록한 글을 공개했습니다. 같은 시기, 보안 연구팀 PromptArmor는 Microsoft의 신규 에이전트 제품 Copilot Cowork에서 파일 유출이 가능한 취약점을 발견해 공개했습니다. 두 사례는 서로 다른 단계에서 발생했지만, 같은 구조적 문제를 가리키고 있습니다.

출처:

AI가 추천한 경로가 가장 위험하다

Thoughtworks 팀이 마주한 첫 번째 위험은 스토리지 설정이었습니다. AI가 클라우드 파일 저장소를 “링크가 있으면 누구나 접근 가능”으로 설정하라고 권했습니다. 이유를 묻자 “모든 기업이 이렇게 한다”고 답했고, 팀원이 강하게 거부하고 나서야 보안 대안을 제시했습니다.

두 번째는 서비스 계정 권한이었습니다. AI는 특정 작업에 필요한 최소 권한 대신, 단기 토큰을 생성하고 데이터베이스와 다른 리소스까지 접근할 수 있는 광범위한 역할을 서비스 계정에 부여하도록 제안했습니다. 코드를 실행하기 전 팀이 알아채서 막았지만, 만약 지나쳤다면 계정 하나가 탈취됐을 때 전체 클라우드 워크스페이스가 노출될 수 있었습니다.

AI 코딩 도구가 왜 이런 선택을 하는지는 설명이 됩니다. AI는 작동하는 코드를 빠르게 만들어내도록 최적화돼 있고, 최소 권한 원칙이나 보안 설정보다는 “가장 쉽게 작동하는 경로”를 먼저 제안합니다. 이 경향이 개발 속도와 결합되면 위험이 쌓입니다. 실제로 2026년 연구에 따르면 AI가 생성한 코드의 25%에서 확인된 취약점이 발견됐고, 기업 보안 침해 5건 중 1건이 AI 생성 코드와 연관됩니다.

“안전하게 해”는 안전하지 않다

Thoughtworks 팀이 이 경험에서 끌어낸 핵심은 하나입니다. 프롬프트로 보안을 지시하는 것과, 보안을 구조적으로 강제하는 것은 다릅니다.

사용자가 다르게 질문하거나, 제약을 무시하라고 요청하면 프롬프트 기반 제약은 사라질 수 있습니다. 빌드 도구에서 코드 커버리지 임계값을 강제하는 것과 TDD를 프롬프트로 요청하는 것의 차이와 같습니다. 하나는 규칙이고, 하나는 제안입니다.

이 문제는 배포 이후에도 이어집니다.

에이전트가 배포되면 공격 표면이 달라진다

PromptArmor가 발견한 Copilot Cowork의 취약점은, 개발 단계가 아닌 운영 중인 에이전트가 어떻게 악용될 수 있는지를 보여줍니다.

Copilot Cowork는 사용자의 Microsoft 권한으로 OneDrive, SharePoint, Teams, Outlook에 접근할 수 있는 에이전트입니다. Microsoft 공식 문서에는 “이메일 전송이나 Teams 메시지 게시처럼 민감한 작업은 사용자 승인을 요청한다”고 명시돼 있습니다. 그런데 수신자가 사용자 본인일 경우, 이 승인 절차가 작동하지 않았습니다.

공격 흐름은 이렇게 작동합니다.

  1. 공격자가 악성 프롬프트 인젝션을 심은 스킬 파일을 만들어 온라인에 공유합니다.
  2. 사용자가 유용해 보이는 스킬 파일을 내려받아 Copilot Cowork에 업로드합니다.
  3. 사용자가 “이번 주에 뭐 했는지 정리해줘” 같은 일반적인 요청을 합니다.
  4. 스킬 파일 안의 인젝션이 에이전트를 조작해, 사용자의 OneDrive 파일에 대한 사전 인증 다운로드 링크를 생성하게 합니다.
  5. 에이전트는 그 링크를 외부 이미지 태그로 위장해 Teams 메시지를 사용자에게 전송합니다.
  6. 사용자가 Teams를 열면 이미지 요청이 공격자 서버로 날아가고, 파일 링크가 유출됩니다.

이 과정에서 사용자에게는 어떤 승인 요청도 오지 않았고, 악성 메시지 내용도 UI에 표시되지 않았습니다. PromptArmor가 5번 시도한 결과 5번 모두 성공했고, Claude Opus 4.7을 포함한 최신 모델에서도 동일하게 작동했습니다.

더 큰 문제는 스케줄 작업입니다. “매주 월요일 아침에 지난주 정리해줘” 같은 자동화 설정이 활성화돼 있다면, 사용자가 없는 상태에서 같은 공격이 반복해서 실행될 수 있습니다.

두 사례가 가리키는 같은 지점

Thoughtworks의 사례와 Copilot Cowork의 취약점은 다른 단계에서 발생했지만, 같은 구조를 드러냅니다. AI 에이전트는 여러 시스템에 걸쳐 위임된 권한으로 작동하고, 그 권한의 범위와 행동의 결과를 사용자가 실시간으로 파악하기 어렵습니다. 개발 단계에서 AI가 제안하는 경로가 항상 안전하지는 않고, 운영 단계에서 에이전트에 부여된 권한은 공격의 폭발 반경이 됩니다.

Thoughtworks는 이 경험 이후 보안 규칙을 구조화한 컨텍스트 파일을 모든 AI 코딩 세션에 로드하고, 자동화된 보안 스캐닝 게이트를 배포 파이프라인에 추가했습니다. 두 가지 모두 프롬프트가 아닌 결정론적 제어, 즉 AI가 아무리 다르게 제안해도 통과되지 않는 구조적 장치입니다.

에이전트가 더 많은 권한을 갖고 더 많은 시스템에 연결될수록, 이 구조적 장치의 필요성은 높아집니다. 두 원문에는 각 사례의 기술적 세부사항과 공격 시연 영상, 그리고 Thoughtworks가 구체적으로 구성한 보안 컨텍스트 파일의 카테고리가 담겨 있습니다.

참고자료: Microsoft Copilot Cowork Exfiltrates Files (Simon Willison)


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다