라떼군 이야기
AI 에이전트를 절대 믿지 마세요: 제로 트러스트 기반의 새로운 보안 아키텍처
TL;DR AI 에이전트는 프롬프트 인젝션이나 환각으로 인해 언제든 오작동할 수 있으므로 절대 신뢰해서는 안 됩니다. 애플리케이션 레벨의 필터링 대신, OS 수준의 컨테이너 격리와 최소 권한 원칙을 적용하여 피해 반경을 원천적으로 제한하는 ‘제로 트러스트’ 아키텍처가 필수적입니다.
최근 자율적으로 작업을 수행하는 AI 에이전트의 활용이 급증하고 있지만, 이들의 보안은 여전히 취약한 상태입니다. 많은 개발자들이 프롬프트 엔지니어링이나 애플리케이션 단의 권한 체크만으로 에이전트를 통제할 수 있다고 믿습니다. 하지만 프롬프트 인젝션이나 모델의 환각 현상을 완벽히 막는 것은 불가능에 가깝습니다. 이 글은 AI 에이전트가 언제든 악의적으로 변할 수 있다는 가정하에, 피해를 최소화하는 아키텍처적 접근법을 제시합니다.
핵심 내용
기존의 시스템들은 기본적으로 호스트 환경에서 실행되며, 애플리케이션 레벨의 허용 목록(Allowlist)에 의존하는 ‘암묵적 신뢰’를 바탕으로 합니다. 반면 NanoClaw는 에이전트가 오작동할 것을 전제로, 각 에이전트마다 일회성 컨테이너를 할당하여 OS 수준의 격리(Isolation)를 강제합니다. 또한 여러 에이전트가 환경을 공유할 때 발생하는 데이터 유출을 막기 위해, 에이전트 간에도 서로를 신뢰하지 않도록 파일시스템과 세션 기록을 완전히 분리합니다. 보안의 또 다른 핵심은 코드베이스의 최소화입니다. 수십만 줄의 모놀리식 코드 대신, 핵심 엔진만 남기고 필요한 기능(Skill)만 코드로 직접 병합하여 사용자가 모든 코드를 감사(Audit)할 수 있도록 공격 표면(Attack Surface)을 극단적으로 줄였습니다.
기술적 인사이트
소프트웨어 엔지니어링 관점에서 이 글의 가장 큰 통찰은 AI의 통제 방식을 ‘행동 제어’에서 ‘환경 격리’로 전환했다는 점입니다. LLM의 비결정적(Non-deterministic) 특성상, 에이전트가 ‘안전하게 행동하도록’ 만드는 것은 근본적으로 불가능합니다. 따라서 에이전트 외부(OS, 컨테이너, 파일시스템 마운트 제한)에서 하드 리미트를 거는 심층 방어(Defense-in-depth) 아키텍처가 훨씬 견고합니다. 또한, 수많은 통합 기능을 미리 구현해 둔 ‘모놀리식’ 접근법이 AI 시대에는 오히려 거대한 보안 취약점이 된다는 지적은 뼈아픕니다. 필요한 기능만 코드로 생성해 병합하는 방식은 편의성과 보안 사이의 트레이드오프에서 투명성을 극대화한 훌륭한 엔지니어링 결정입니다.
시사점
이 접근법은 앞으로 엔터프라이즈 환경에서 AI 에이전트를 도입할 때 반드시 참고해야 할 표준 보안 모델이 될 수 있습니다. 실무 개발자들은 더 이상 시스템 프롬프트나 단순한 API 필터링에 보안을 의존해서는 안 됩니다. 대신, 에이전트가 실행되는 런타임 환경 자체를 샌드박싱하고, 최소 권한의 원칙(PoLP)을 인프라 레벨에서 강제하는 데 집중해야 합니다. 이는 AI 서비스 개발이 프롬프트 튜닝을 넘어, 전통적이고 강력한 시스템 인프라 보안 영역으로 회귀하고 있음을 시사합니다.
AI 에이전트는 강력한 도구이지만, 그만큼 예측 불가능한 리스크를 동반합니다. 여러분의 팀이 개발 중인 AI 에이전트는 만약 해킹당하거나 환각을 일으켰을 때, 시스템에 어느 정도의 피해를 입힐 수 있나요? 이제는 ‘어떻게 똑똑하게 만들 것인가’를 넘어 ‘어떻게 안전하게 가둘 것인가’를 진지하게 고민해야 할 때입니다.