원문 캡처 · kirahowe.com
원문 캡처 · kirahowe.com

개인용 에이전트가 이메일과 파일 같은 데이터, 인터넷, 강력한 도구에 접근하려면 기존 코딩 에이전트와 다른 보안 구조가 필요하다는 주장이 나왔다. 글쓴이는 에이전트의 권한을 고정된 신원 대신 현재 세션에서 접한 정보와 사용할 수 있는 도구에 맞춰야 하며, 이를 위해 에이전트에서 셸을 없애야 한다고 주장한다.

개인용 에이전트는 유용하려면 사용자의 데이터와 인터넷에 접근해야 한다. 하지만 인터넷에는 신뢰할 수 없는 콘텐츠와 정보 유출 경로가 함께 있다. 글쓴이는 대형 언어 모델(LLM)이 악의적 지시를 따르지 않으리라는 기대에 의존하는 것은 책임 있는 보안 방식이 아니라고 본다.

사람은 피싱 메시지를 읽어도 판단 능력이 그대로지만, 에이전트는 문맥에 들어온 정보가 지시처럼 작용할 수 있다. 에이전트의 신원은 같아도 현재 에이전트를 실질적으로 움직이는 주체는 달라질 수 있다. 따라서 에이전트의 권한은 신원이 아니라 세션의 문맥과 도구 접근 권한에 따라 달라져야 한다는 설명이다.

이를 구현하려면 하네스가 모델 호출과 모든 읽기·전송·행동을 중개해야 한다. 글쓴이는 하네스가 변조할 수 없고, 모든 호출에서 작동하며, 검증할 수 있을 만큼 작아야 한다고 설명한다. 하지만 셸이 있으면 하네스가 명령의 실제 동작을 파악하기 어렵기 때문에 안전한 에이전트에는 셸이 없어야 한다고 주장한다.

셸과 승인 절차의 한계

Claude Code나 Codex 같은 코딩 에이전트는 셸을 통해 컴퓨터에서 사실상 무엇이든 할 수 있다. 글쓴이는 실행 샌드박스, 승인 요청, 분류기 같은 안전장치를 더하는 방식이 충분하지 않다고 지적한다. 앤스로픽은 사람들이 승인 요청의 97%를 받아들였고, 50번 요청 뒤에는 위험한 명령을 잡아내는 비율이 5%에 그쳤다고 밝혔다. 글쓴이는 명령이 읽기 어렵고 판단하기 힘든 형태로 제시되면 승인 피로가 커진다고 설명한다. 앤스로픽의 관련 자료

분류기도 완전한 경계가 되지 못한다는 사례를 든다. 앤스로픽의 ‘Claude containment’ 문서에 따르면 자동 모드는 무해한 명령의 약 0.4%를 차단하는 한편, 과도하게 실행하려는 행동의 약 17%를 통과시켰다. Embrace The Red의 요한 레베르거(Johann Rehberger)는 기본적인 기법으로 자동 모드를 우회해 악성 코드 실행에 최대 80% 성공했다고 보고했다. 그가 소개한 공격에서는 Claude가 도구 대신 curl을 사용하도록 유도했다. 앤스로픽의 문서 · 레베르거의 보고

글쓴이는 앤스로픽이 의뢰한 시험에서 자동 모드 탈취가 720회 시도 모두 실패했다는 결과와, 레베르거의 보고에 대한 앤스로픽의 답변도 언급한다. 앤스로픽은 자동 모드가 최선의 노력을 다하는 분류기일 뿐 보안 경계는 아니며, 운영체제 수준의 격리와 네트워크 송신 제어가 실제 경계라고 설명했다. 글쓴이는 이 방식들 역시 충분하지 않다고 본다. 시험 결과 · 레베르거의 보고에 대한 답변 · 관련 게시물

샌드박스는 에이전트가 접근할 수 있는 대상을 제한하지만, 에이전트가 어떤 정보를 읽었는지는 추적하지 않는다. 글쓴이는 Cowork 출시 이틀 뒤 PromptArmor가 파일에 심어 둔 키를 이용해 사용자의 파일을 공격자 계정으로 전송하게 한 사례를 든다. 이 공격은 셸의 curl과 허용 목록에 있던 api.anthropic.com을 이용했다. 앤스로픽은 당시 샌드박스가 정상 작동했는데도 데이터가 유출됐다고 설명했다. PromptArmor의 분석 · 앤스로픽의 설명

Aim Labs가 발견한 EchoLeak도 마이크로소프트 365 Copilot에서 정보를 빼냈다. 공격은 Copilot의 콘텐츠 보안 정책이 신뢰하는 Teams 도메인의 이미지 URL을 이용했다. EchoLeak 분석

세션에 따라 권한을 정하는 설계

글쓴이는 에이전트가 접한 정보에 따라 권한을 정해야 한다는 생각이 새롭지 않다고 설명한다. 케네스 비바(Kenneth Biba)의 1977년 무결성 모델은 주체가 읽은 정보 중 가장 낮은 무결성 수준에 맞춰 권한을 낮추는 정책을 다뤘다. 메타의 Agents Rule of Two는 한 세션에서 ‘치명적 삼중주’의 속성을 최대 두 개까지만 허용하고, 세 가지를 모두 갖추면 감독을 요구한다. 비바의 무결성 모델 · 메타의 Agents Rule of Two

현재 많은 에이전트는 요청이 아니라 프로그램의 신원에 권한을 부여하는 ‘주변 권한(ambient authority)’을 사용한다. 글쓴이는 이를 1988년 노엄 하디(Norm Hardy)가 설명한 ‘혼란한 대리인(Confused Deputy)’ 문제와 연결한다. 에이전트의 문맥에 외부인이 지시를 끼워 넣으면 에이전트가 자신의 권한으로 그들의 요청을 수행할 수 있다는 것이다. 주변 권한을 다룬 자료 · 하디의 논문

셸은 하네스가 명령의 읽기와 전송을 구분하기 어렵게 만든다. cat, curl, git push, rm -rf, DNS 조회, 동기화 폴더에 파일 쓰기는 모두 bash에 전달되는 문자열로 보일 수 있다. 명령을 제한해도 URL 요청의 쿼리 매개변수로 정보를 빼내는 등 읽기와 전송을 함께 하는 명령이 있고, 모델 문맥을 거치지 않고 디스크에서 네트워크로 데이터를 옮기는 경로도 있다.

모든 파일·프로세스·소켓의 정보 흐름을 추적하는 방법도 이론상 가능하지만, 글쓴이는 세밀한 추적이 사용성을 떨어뜨리고 사람이 판단하기 어려운 승인 요청을 만든다고 지적한다. 임의의 프로그램이 무엇을 하는지 실행 전에 판별하는 문제는 일반적으로 결정 불가능하다는 라이스 정리(Rice's theorem)도 근거로 제시한다. Asbestos · HiStar · Flume · 라이스 정리 관련 논문

레베르거의 공격 사례에서는 Claude가 직접 작성한 짧은 Python 디코더가 자동 모드를 통과했다. 압축을 푼 폴더에 표준 라이브러리의 struct.py를 가리는 악성 파일이 있었고, Claude가 import base64를 실행하면서 악성 코드가 작동했다. 글쓴이는 개별 명령이 무해해 보여도 파일 시스템과 실행 환경의 상태에 따라 결과가 달라질 수 있다고 설명한다. 셸의 명령을 제한된 목록과 검증된 인수로 묶으면, 결국 사용성이 더 나쁜 형태로 도구를 다시 만드는 셈이라고 덧붙인다.

셸 없는 하네스의 조건과 남는 위험

글쓴이가 제안하는 하네스는 모든 행동을 중개하고, 각 도구가 읽기·쓰기·외부 전송·현실 세계의 행동 여부와 출력에 포함되는 내용을 선언하도록 한다. 데이터에는 비공개·신뢰할 수 없음 같은 표지를 붙이고, 요약이나 복사를 거쳐도 표지가 사라지지 않게 한다. 정책은 모델 바깥의 작고 결정적인 코드로 처리해야 하며, 세션에 비공개 정보와 신뢰할 수 없는 정보가 함께 있으면 사람의 승인 없이 네트워크로 내보낼 수 없도록 해야 한다. 표지를 바꾸는 권한은 데이터 소유자에게만 주고, 승인은 에이전트가 위조할 수 없는 신뢰된 경로에서 이뤄져야 한다는 내용도 포함한다.

신뢰할 수 없는 정보를 에이전트가 활용하되 지시권을 주지 않는 방법으로는 사이먼 윌리슨(Simon Willison)의 이중 LLM 제안, Google의 CaMeL 논문, 마이크로소프트의 FIDES 논문을 든다. FIDES는 기밀성·무결성 표지를 추적하고 신뢰할 수 없는 값을 모델에 보이지 않게 하는 방식이며, 마이크로소프트 Agent Framework에서 실험적 미들웨어로 제공된다. 이중 LLM 제안 · Google의 CaMeL 논문 · 마이크로소프트의 FIDES 논문 · Agent Framework 보안 문서

이런 설계는 위험을 줄이는 대신 사용자의 주의를 요구한다. 세 가지 위험 요소를 모두 갖춘 에이전트를 완전히 자율적으로 쓰려면 그에 따르는 위험을 받아들여야 한다. 반대로 사용자를 유일한 신뢰 주체로 두고 권한 상승이나 위험한 행동마다 승인을 받게 하면 승인 피로가 생길 수 있다. 데이터 표지가 빠르게 확산되는 문제와, 검증된 형식으로 전달한 답도 틀릴 수 있다는 한계도 남는다. 도구를 통해서만 행동하게 하면 기능이 제한되고, 새로운 기능마다 전용 도구를 만들어야 한다.

글쓴이는 코딩 에이전트에는 임의의 셸 명령으로 코드를 빌드하고 시험하며 버전 관리를 하는 일이 중요하므로 셸이 필요하다고 본다. 다만 저장소와 그 의존성에 권한을 주는 일은 받은 편지함·일정·연락처에 접근하는 개인용 에이전트에 권한을 주는 것보다 범위가 좁다고 구분한다. 개인용 에이전트가 기기에서 높은 권한으로 작동하면 이메일을 보낼 수 있는 사람도 에이전트의 사용자가 되는 셈이므로, 데이터 중개와 표지 관리 같은 오래된 보안 원칙을 에이전트에 적용할 새 하네스가 필요하다는 것이 글의 결론이다. 제임스 앤더슨의 1972년 연구