The Gate Was Reading the Memory's Own Lie. Here's What I Built Instead.
개요
기존의 실행 게이트가 메모리 자체의 라벨링에 의존하여 발생하는 보안 취약점을 해결하기 위해, 행위가 수행될 작업 자체에서 권한을 도출하는 새로운 아키텍처로 전환한 내용을 다룹니다.
주요 내용
* 기존 게이트의 문제점: 이전 실행 게이트는 검색된 메모리가 제공하는 governs.action_types, resource_sensitivity, allowed_action_hint와 같은 필드를 신뢰했습니다. 만약 메모리에 잘못된 라벨("ordinary_fact", "answer")이 포함되어 있다면, 게이트는 이를 감지하지 못하고 안전하지 않은 액션을 통과시키는 보안 실패 모드가 발생했습니다.
* 아키텍처 변경: 새로운 접근 방식은 검색된 메모리의 주장에 의존하는 대신, 에이전트가 수행하려는 작업(operation)에서 권한 클래스를 파생시킵니다. operation_context_gate 함수는 쿼리를 분석하여 작업의 민감도, 액션 클래스, 리소스 클래스를 결정하고, 이를 기반으로 권한을 부여합니다.
* verify_first 액션: 게이트는 권한 부족을 탐지할 수 있지만, 작업의 완전한 차단 여부를 아직 결정하지 못하므로, verify_first를 복구 액션으로 사용합니다.
* 개선점 및 한계: is_sensitive_operation 함수는 자연어 쿼리에서 리소스 및 액션 클래스를 추론하지만, 이는 완벽하지 않습니다. 더 강력한 게이트는 쿼리가 아닌 제안된 도구 호출, 대상 리소스, 액션 유형, 수신자를 직접 검사해야 합니다. 현재 구현은 작업 기반 권한 부여로 가는 중간 단계입니다.
* 테스트 시나리오: 의도적으로 잘못 라벨링된 메모리 3개, 올바르게 라벨링된 민감한 작업 1개, 안전한 읽기 작업 1개 등 5가지 시나리오를 통해 기존 게이트와 operation_context_gate의 성능을 비교했습니다.
* 테스트 결과: operation_context_gate는 잘못 라벨링된 시나리오에서 3/3개의 위험한 경우를 거부하는 성능을 보였습니다. 기존 self-description 게이트는 3/3개를 통과시켰습니다.
* 추가적인 트레이드오프: 올바르게 라벨링된 민감한 작업의 경우에도 operation_context_gate는 기존 게이트보다 더 엄격하게 작용하여 일부 안전한 작업을 verify_first로 다운그레이드하는 결과를 보였습니다. 이는 문서화된 트레이드오프입니다.
* 미해결 과제 (Write-time Authorization): 현재 게이트는 실행 시점에서 잘못 라벨링된 메모리를 감지하지만, 저장 시점(write-time)의 권한 부여는 해결하지 못합니다. 저장 시점의 메타데이터는 여전히 최초의 권한 결정 기준이며, 저장되는 데이터의 유효성을 검증하는 기능은 아직 구현되지 않았습니다. 저장 에이전트의 신원과 네임스페이스 위치가 저장소에 도달하기 전에 첫 번째 게이트 역할을 해야 합니다.
시사점
메모리 객체 자체가 자신의 권한을 증명하는 유일한 증거가 되어서는 안 되며, 외부 압력과 피드백을 통해 기술적 진보가 이루어질 수 있습니다. 저장 시점의 권한 부여 메커니즘 구축이 향후 중요한 과제입니다.
댓글
GitHub Discussions