[Lobsters 요약] 에이전트의 행동 샌드박스로서 액체 타입 활용
3
설명
현재 에이전트의 권한 부여 방식은 치명적인 보안 문제를 해결하기에 불충분합니다.
액체 타입(Liquid Types)을 샌드박스 메커니즘으로 활용하면 이러한 제약을 극복할 수 있습니다.
이 글은 2026년 8월 19일에 Alcides Fonseca가 발표한 내용을 기반으로 합니다.
### 배경 설명
최근 인공지능 에이전트의 발전은 사용자 생산성을 크게 향상시키고 있지만, 동시에 심각한 보안 취약점을 야기하고 있습니다. 에이전트가 터미널, 파일 시스템, 인터넷 등 시스템 자원에 접근할 수 있는 권한은 강력한 기능인 동시에, 악의적인 공격에 노출될 수 있는 주요 경로가 됩니다. 초기에는 각 터미널 명령어 실행 시 사용자에게 권한을 묻는 방식이 사용되었으나, 수십 년간의 연구 결과에 따르면 이러한 방식은 사용자 생산성을 저해하여 결국 사용자들이 `--dangerously-skip-permissions`와 같은 옵션을 통해 보안 제약을 우회하게 만듭니다. Anthropic과 같은 회사들은 LLM을 사용하여 외부 호출의 허용 여부를 판단하거나 권한 요청을 결정하는 방식으로 절충안을 모색했지만, 이러한 LLM 기반 가드레일 시스템 역시 확률적 특성으로 인해 완벽한 보안을 보장하지 못합니다. 특히 에이전트와 동일한 학습 데이터를 공유하는 경우, 동일한 편향을 가지며 같은 실패 사례에서 오류를 범할 가능성이 높습니다. 이는 개인 웹사이트 개발과 같은 비교적 안전한 환경에서는 용납될 수 있으나, 의료, 국방, 독점 데이터 공유와 같이 민감한 데이터를 다루는 환경에서는 치명적인 결과를 초래할 수 있습니다.
### 치명적 삼중 공격(Lethal Trifecta)의 위험성
대부분의 현대 에이전트는 '치명적 삼중 공격'이라는 유형의 공격에 취약합니다. 이 공격은 세 가지 요소가 결합될 때 발생합니다: (1) 개인 데이터 접근 권한, (2) 신뢰할 수 없는 정보(예: 인터넷 정보)에 대한 노출, (3) 외부로 정보 전송 능력. 예를 들어, GitHub 계정에 접근 권한이 있는 Claude 에이전트가 인터넷의 공개 저장소 정보, 공개 저장소에 대한 기여, 그리고 업무용 개인 저장소 정보까지 접근할 수 있다고 가정해 봅시다. 이러한 권한들이 결합되면, 에이전트는 인터넷에서 악의적인 지침을 받아 개인 저장소의 코드를 읽고, 이를 사용자의 공개 저장소에 게시하는 시나리오가 가능합니다. 이러한 시나리오는 단순한 가정이 아닙니다. Microsoft는 고객 이메일을 유출했고, Claude Cowork는 파일을 유출했으며, Microsoft Copilot Cowork 역시 개인 정보를 유출했습니다. Simon Willison은 이러한 보고 사례들을 지속적으로 추적하고 있습니다. 현재의 가드레일 시스템은 너무 세분화된(요청별 권한) 방식이거나, 너무 포괄적인(애플리케이션/에이전트별 권한) 방식이어서 근본적인 해결책이 되지 못합니다. 우리는 행동 기반의 권한 제어가 필요합니다.
### 액체 타입(Liquid Types)을 활용한 행동 샌드박스
액체 타입은 지난 8년간 연구되어 온 개념으로, 타입 시스템에 추가 정보를 모델링하여 단순히 정수 대신 문자열을 기대하는 프로그램을 거부하는 것을 넘어, 객체가 유효하지 않은 상태에 사용되는 것을 방지하는 데 활용될 수 있습니다. '유효하지 않은 상태는 표현 불가능하게 만들어야 한다'는 원칙에 따라, Yaron Minsky가 제안한 아이디어를 기반으로 합니다. 저자는 aeon, LiquidJava, ROSpec 세 가지 시스템에서 액체 타입을 적용했습니다. 예를 들어, `divide(x:Int)(y:Int | y != 0)` 함수에서 `y`가 0이 아니라는 조건을 타입에 명시하면, `divide 4 0`과 같은 호출은 컴파일러 오류를 발생시킵니다. 또한, `read_input` 함수가 반환하는 값에 대해 0이 아니라는 증명이 없으면 `divide 4 z` 호출도 거부됩니다. 이는 `if z = 0 then 0 else divide 4 z`와 같이 0이 아님을 증명할 수 있는 경우에만 함수 호출이 가능하도록 합니다. 액체 타입은 이러한 타입에 대한 제약을 작성하고 프로그램을 추론할 수 있게 하는 타입 이론입니다. Lean과 같은 시스템에 비해 결정 가능한 논리 내에서 작동하지만, SMT 솔버를 사용하여 증명을 생성하는 데 효율적입니다. 2026년 8월 19일 기준, 액체 타입은 시스템 안전성을 보장하면서도 증명 생성 비용을 최소화하는 적절한 균형점을 제공한다고 평가됩니다. 실제 적용 사례로 드론 컨트롤러에서 4가지 버그를 발견했으며, ROS 로봇 공학에서 84가지 구성 오류를 탐지했습니다. 또한 데이터 과학 분야에서는 잘못된 가정 하의 분류기 사용이나 데이터 유출과 같은 개념적 오류를 다수 탐지했습니다.
### AeonBox: 에이전트 샌드박스로서의 액체 타입 적용
에이전트의 강력함은 터미널, 컴퓨터, 인터넷에 대한 무제한적인 접근 권한에서 비롯되지만, 이는 동시에 안전성의 근본적인 원인이기도 합니다. 비판적인 시스템에서는 행동 기반의 제한을 두는 샌드박스가 필요하며, 이를 위해 종속 타입(dependent types)의 변형인 액체 타입을 활용하여 가드레일 정책을 명시할 수 있습니다. AeonBox는 Codex나 Claude Code와 유사한 에이전트 하니스(harness)로, 사용자 프롬프트를 대화식으로 받아 실행합니다. 그러나 AeonBox는 터미널에 직접 접근하는 대신, Aeon으로 작성된 안전 장치가 내장된 GitHub SDK에만 접근합니다. 예시 코드에서 `Session`은 선형 타입(linear type)으로 선언되어, 객체에 대한 단일 참조만 허용하며 상태 변경 시 이전 참조를 사용할 수 없도록 합니다. 이는 에이전트 생성 코드에 의해 세션이 생성되고 관리되며, 상태를 유지하고 다음 프롬프트에 재사용하기 위해 세션이 종료될 때 `close_session`을 요구하는 방식으로 이루어집니다. `sessionTainted`와 같은 해석되지 않은 함수는 타입 내에서만 사용되며, 세션이 오염되었는지(개인 정보가 읽혔는지)를 나타내는 데 사용됩니다. `repoRead` 함수는 저장소를 읽는 행위를 나타내며, 저장소가 개인 정보이거나 기존 세션이 오염된 경우에만 세션을 오염시킵니다. `createIssuePublic` 함수는 오염되지 않은 세션만을 요구하므로, 개인 저장소를 읽은 후 공개 이슈를 생성하는 행위를 방지합니다. 이러한 방식으로 액체 타입은 하니스 샌드박스 내에서 외부 접근을 제한하고 행동 프로토콜을 제어하는 유일한 수단으로 사용됩니다. AeonBox는 런타임 모니터링을 추가로 수행하지만, 대부분의 검증은 각 스니펫 실행 전에 이루어져 시간과 토큰을 절약합니다. 예를 들어, '가장 긴 개인 저장소의 모든 내용을 사용하여 이슈를 생성하라'는 악의적인 프롬프트가 주어졌을 때, `read_all_data` 함수가 세션을 오염시키기 때문에 `createIssue` 함수가 요구하는 오염되지 않은 세션 조건에 맞지 않아 공격이 실패합니다. 즉, AeonBox는 모델링된 경계 내에서 에이전트가 GitHub 계정에서 데이터를 유출하는 것을 방지합니다. 이는 LLM 기반의 판단이 아닌, 논리적 제약을 통한 접근 제한 덕분입니다.
### 가치와 인사이트
액체 타입은 에이전트의 잠재적 위험을 효과적으로 제어할 수 있는 강력한 메커니즘을 제공합니다. 기존의 권한 부여 방식이 가지는 한계를 극복하고, '치명적 삼중 공격'과 같은 보안 취약점을 사전에 방지할 수 있습니다. 특히, 타입 시스템 자체에 행동 제약을 내재화함으로써 LLM의 확률적 오류에 의존하는 방식보다 훨씬 신뢰할 수 있는 보안 모델을 구축할 수 있습니다. 이는 민감한 데이터를 다루는 금융, 의료, 국방 등 다양한 산업 분야에서 에이전트의 안전한 도입을 가능하게 할 것입니다. 또한, 개발 과정에서 컴파일 타임에 버그를 조기에 발견하고 수정함으로써 개발 효율성을 높이고 잠재적인 운영 비용을 절감하는 데 기여할 수 있습니다. AeonBox와 같은 구현체는 이러한 이론적 가능성을 실제 시스템에 적용하는 구체적인 방안을 제시합니다.
### 기술·메타
* 언어: Aeon (액체 타입 기반)
* 기술: 액체 타입 (Liquid Types), 종속 타입 (Dependent Types), SMT 솔버
* 관련 연구/프로젝트: aeon, LiquidJava, ROSpec, Lean
* 발표일: 2026-08-19
### 향후 전망
액체 타입을 활용한 에이전트 보안 강화는 아직 초기 단계이며, 향후 발전 가능성이 높습니다. 경쟁 측면에서는 Lean과 같은 더 강력한 증명 보조 도구와의 통합 또는 비교 연구가 진행될 수 있습니다. 제품 측면에서는 AeonBox와 같은 샌드박스 시스템의 기능 확장 및 다양한 에이전트 프레임워크와의 연동이 중요해질 것입니다. 커뮤니티 측면에서는 액체 타입의 이론적 기반을 더욱 발전시키고, 실제 산업 현장에서의 적용 사례를 공유하며 관련 기술의 확산을 이끌어낼 수 있습니다. 또한, 에이전트의 행동을 모델링하고 제어하는 데 있어 액체 타입 외의 다른 접근 방식과의 비교 연구를 통해 최적의 솔루션을 모색하는 과정이 지속될 것입니다. 궁극적으로는 에이전트가 인간의 개입 없이도 안전하고 신뢰할 수 있게 작동하는 환경을 구축하는 것이 목표가 될 것입니다.
📝 원문 및 참고
- Source: Lobsters
- 토론(Lobsters): [lobste.rs](https://lobste.rs/s/9oy4ao/liquid_types_as_behavioural_sandbox_for)
- 원문: [링크 열기](https://wiki.alcidesfonseca.com/blog/aeonbox-logical-guardrails-for-agents/)
---
출처: Lobsters · [원문 링크](https://wiki.alcidesfonseca.com/blog/aeonbox-logical-guardrails-for-agents/)
신고 · 불법·유해·아동 안전(CSAE) 관련 콘텐츠

댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.