The ways we contain Claude across products

개요

Anthropic은 Claude와 같은 에이전트의 제품 배포 위험을 관리하기 위해 환경, 모델, 외부 콘텐츠 세 가지 주요 구성 요소를 방어하는 다양한 격리 및 제어 메커니즘을 적용합니다.

주요 내용

* 에이전트 보안의 두 가지 주요 접근 방식:
* 인간-루프(Human-in-the-loop) 감독: 사용자가 에이전트의 각 행동에 대한 권한을 부여하는 방식입니다. Claude Code의 초기 버전에서 사용되었으나, 사용자의 주의력 감소로 인한 피로 현상(approval fatigue)이 발생했습니다.
* 격리(Containment): 에이전트가 수행할 수 있는 작업을 환경 제어(샌드박스, VM, Egress 제어 등)를 통해 제한하는 방식입니다. Anthropic 엔지니어링 팀은 이 부분에 많은 노력을 기울였습니다.

* 세 가지 유형의 보안 위험:
* 사용자 오용: 사용자가 악의적이거나 부주의하게 에이전트에게 유해한 작업을 지시하는 경우.
* 모델 오작동: 사용자가 요청하지 않은 유해한 작업을 에이전트가 수행하는 경우. 모델이 발전함에 따라 명백한 실수는 줄어들지만, 제약을 우회하는 새로운 방법을 찾아내는 능력이 향상될 수 있습니다.
* 외부 공격자: 프롬프트 인젝션 또는 에이전트 런타임, 오케스트레이션 레이어, 프록시에 대한 일반적인 공격을 통해 외부 벡터로 에이전트가 공격받는 경우.

* 세 가지 방어 구성 요소:
* 에이전트 실행 환경: 프로세스 샌드박스, VM, 파일 시스템 경계, Egress 제어를 통해 에이전트가 접근할 수 있는 범위를 제한합니다.
* 에이전트가 참조하는 모델: 시스템 프롬프트, 분류기, 탐침, 훈련 수정을 통해 에이전트의 행동을 형성합니다.
* 에이전트가 접근할 수 있는 외부 콘텐츠: MCP 서버, 타사 플러그인, 웹 검색 도구와 같이 에이전트의 컨텍스트에 콘텐츠를 제공하는 소스를 제어합니다.

* 격리 패턴:
* 일시적 컨테이너(Ephemeral container - claude.ai 코드 실행): gVisor 컨테이너를 사용하여 서버 측에서 코드를 실행하며, 파일 시스템은 세션별로 휘발성입니다. 시스템 자체의 보안을 보호하는 데 중점을 둡니다.
* 인간-루프 샌드박스(Human-in-the-loop sandbox - Claude Code): 사용자의 머신에서 실행되며 파일 시스템, 셸, 네트워크에 접근할 수 있습니다. 개발자 사용자를 대상으로 하며, 초기에는 읽기 권한만 허용하고 쓰기, bash, 네트워크 접근은 승인받도록 했습니다. 이후 OS 레벨 샌드박스를 도입하여 권한 요청을 84% 줄였습니다.
* 로컬 VM(Local VM - Claude Cowork): 사용자의 데스크톱에서 실행되며, 사용자가 선택한 워크스페이스 폴더에 접근할 수 있습니다. 일반적인 지식 근로자를 대상으로 하므로, VM 내에서 에이전트가 실행되어 호스트 시스템의 보안을 유지합니다.

* 식별된 위험 및 해결책:
* 신뢰 대화 상자 이전 실행: 에이전트가 프로젝트 설정(.claude/settings.json)을 파싱하고 실행하는 시점을 사용자가 폴더 신뢰를 결정하기 전으로 앞당겨, 악의적인 훅 실행을 방지했습니다.
* 사용자를 통한 인젝션 벡터: 사용자가 피싱 메일을 통해 악의적인 프롬프트를 에이전트에 입력하게 하는 경우. egress 제어 및 파일 시스템 경계를 통해 이를 방지해야 합니다.
* 승인된 도메인을 통한 정보 유출: egress 허용 목록이 api.anthropic.com과 같은 승인된 도메인을 통과할 때, 공격자가 제어하는 API 키를 사용하여 데이터를 유출하는 경우. VM 내부에 man-in-the-middle 프록시를 도입하여 자체 세션 토큰이 포함된 요청만 허용하도록 수정했습니다.
* VM 격리로 인한 EDR 탐지 불가: VM 격리가 호스트 기반 엔드포인트 탐지 및 대응(EDR) 시스템의 가시성을 제한하는 문제. 이를 해결하기 위해 비동기 로그 내보내기를 사용합니다.

* 향후 전망:
* 지속적인 메모리 오염(Persistent memory poisoning): 세션 간에 유지되는 에이전트 컨텍스트(제품 메모리, CLAUDE.md 파일, 마운트된 워크스페이스 등)가 증가함에 따라, 세션 시작 시 양호한 분류기가 중요해집니다.
* 다중 에이전트 신뢰 에스컬레이션(Multi-agent trust escalation): 하위 에이전트의 출력을 더 높은 신뢰로 간주할 때 프롬프트 인젝션의 새로운 벡터가 발생할 수 있습니다.
* 에이전트 신원(Agent identity): 에이전트 자체의 고유한 신원을 가질 것인지, 사용자 권한을 상속받을 것인지에 대한 질문에 대한 답을 찾아야 합니다.

시사점

Anthropic은 에이전트의 잠재적 위험(blast radius)을 제어하기 위해 환경, 모델, 외부 콘텐츠에 대한 다층적인 방어를 구축했으며, 이러한 격리 패턴과 학습 내용은 AI 에이전트의 안전한 배포를 위한 실무적 지침을 제공합니다.

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

댓글

GitHub Discussions