AN-06 L3 적합성 수준: Guard 그룹: 권한
Trust Labels 신뢰 라벨
작은 라벨 두 개와 세션 오염으로 Rule of Two를 강제합니다.
Trust Labels는 데이터에 붙는 아주 작은 라벨 집합 두 개, 출처(owner, agent, external)와 민감도(public, private, secret), 그리고 세션 오염입니다. NAS는 Rule of Two를 세션 불변식으로 강제합니다. 한 세션이 [A] 외부 콘텐츠를 읽었고, [B] 민감한 데이터를 건드리고, [C] 보호된 상태를 바꾸거나 외부와 통신하는 세 가지를 모두 가질 수는 없습니다. 세 번째를 완성하려면 Human Gate가 필요합니다.
해결하려는 문제
프롬프트 인젝션이 통하는 이유는 모델이 “지시”와 “데이터”를 구별하지 못하기 때문입니다. 모델 계층의 방어(분류기, 프롬프트 강화)는 샐 수밖에 없고, 공격자는 적응할 수 있습니다. 2025년 10월 말 Meta는 Agents Rule of Two를 제안했습니다. 인젝션이 확실히 해결되기 전까지 한 세션은 세 가지 속성 중 최대 두 가지만 가져야 한다는 것입니다.
더 믿을 만한 방법은 모델 바깥에서 결과를 제한하는 것입니다. 스토리지는 모든 읽기와 쓰기가 지나가는 바로 그 자리이므로, 이 규칙을 검증할 수 있는 불변식으로 바꾸기에 자연스러운 곳입니다.
동작 방식
- 라벨. 세 가지 출처, 세 가지 민감도, 그리고
reviewed플래그(게이트 승인으로 설정). 가져오는 지점(웹 페이지, 이메일, 업로드)은 기본이external입니다. 시크릿 스캐너가 자격 증명을 찾으면 자동으로secret라벨을 붙입니다. - 세션 오염. 실행이 읽은 모든 것(읽기 매니페스트에서)의 요약입니다. 세션 안에서는 늘어나기만 하고, 새 세션은 깨끗하게 시작합니다.
- 불변식. A = 세션이
external을 읽었다. B = 리스가private이상을 읽을 수 있다(임곗값은 설정 가능). C = 리스가 보호된 트리로의 병합을 제안하거나, 공유, 삭제, 데이터 전송을 할 수 있다. 한 세션에서 셋이 모두 성립하면 C를 일으키는 호출은 거부되거나 게이트로 넘어갑니다. - 실제로는: B와 C를 모두 가진 리스에서 세션이 외부 콘텐츠를 한 번 읽으면, 그 뒤의 모든 C 유형 동작에는 사람이 필요합니다. 이 마찰을 피하려면 “외부 콘텐츠를 읽는” 작업을 B가 없는 별도의 세션에서 하고, 결과는 구조화된 인계로만 넘기세요.
- 전파. NAS 자체가 만드는 파생물(인덱스, 요약)은 입력 라벨의 합집합을 결정론적으로 물려받습니다. 실행이 쓰는 파일은 실행의 세션 오염을 물려받습니다(보수적인 선택).
- 기밀 해제. Human Gate를 거치거나 구조화된 인계를 통해서만 가능합니다. 오염된 세션의 출력을 JSON Schema로 검증되는 필드(열거형, ID, 길이가 제한된 문자열)로 한정하고, 검증을 마친 뒤에야 권한 있는 세션이 읽을 수 있습니다. 결정론적으로 검증할 수 있는 것만 믿을 수 있습니다.
- 강제는 게이트웨이와 마운트에서 합니다. 이 둘은 리스와 세션을 알고 있습니다. 모델 안에서가 아닙니다.
작게 시작하기
- 딱 두 가지만 합니다. 가져오기 디렉터리의 파일에
external라벨을 붙이고,external을 읽은 실행에는 기본적으로 외부 전송을 주지 않고 게이트 없이는 보호된 병합도 허용하지 않습니다. - 정책은 Cedar나 Rego의 결정론적 규칙으로 쓰고, 거부할 때는 읽을 수 있는 이유를 제시합니다.
- 일주일 동안 “기록만 하는” 모드로 돌려 실수로 무엇을 막았을지 확인한 뒤 강제를 켭니다.
인터페이스 스케치
설명을 위한 예시입니다. 필드 이름은 명세 v0.3 이전에 바뀔 수 있습니다.
# Deterministic policy (Cedar- or Rego-style rules can express the same thing)
session_invariant: rule_of_two
properties:
A: session.read_origin includes "external"
B: lease.sensitivity_max >= "private"
C: lease allows propose_protected | share | delete | egress
on_would_complete_ABC: gate # never "allow"
rules:
- id: r-merge-1
when: session.A and op == "merge" and target.protected
then: gate
- id: r-secret-1
when: session.read_sensitivity == "secret" and op == "egress"
then: deny 명세가 요구하는 것
- 가져오는 지점마다 기본 라벨을 지정해야 하며, 외부 콘텐츠에는
external라벨을 붙여야 합니다. - 세션 오염은 세션 안에서 늘어나기만 해야 합니다.
- 정책 평가는 결정론적이어야 하며 LLM을 호출해서는 안 됩니다.
- 세션이 A+B+C를 완성하게 되는 호출은 거부하거나 게이트로 보내야 합니다.
- 기밀 해제는 게이트나 스키마로 검증된 구조화된 인계를 거쳐야 합니다.
- 파생 데이터는 입력 라벨의 합집합을 물려받아야 합니다.
빌려 온 것과 새로운 것
아래에 나오는 것은 모두 이미 자리 잡은 생각입니다. 새로운 것은 읽기 매니페스트로 세션 오염을 스토리지 경계에서 구현하고, 라벨을 메모리 쓰기와 파생 데이터에 적용한 것입니다. 라벨 격자는 일부러 3×3으로 유지합니다. 세밀한 격자는 실제로 라벨 폭발로 이어지기 때문입니다. OpenClaw는 이미 하나의 런타임 안에서 출처 라벨과 격리를 하고 있습니다. 우리의 차이는 이것을 공유 스토리지에 둔다는 점뿐입니다.
- Agents Rule of Two (Meta)
- The lethal trifecta
- CaMeL
- Fides
- Design Patterns for Securing LLM Agents against Prompt Injections
- OpenClaw memory architecture
솔직한 한계
- 프롬프트 인젝션에 대한 방어가 아니며, 결과를 제한할 뿐입니다.
- NAS는 바깥의 도구(브라우저, 이메일)를 볼 수 없으므로 런타임의 협조가 필요합니다.
- 오염 표시는 보수적이어서 마찰과 오탐을 낳습니다. 구조화된 스키마 밖의 자유 형식 텍스트에는 여전히 공격자의 말이 실릴 수 있습니다.
- 은닉 채널은 없앨 수 없습니다.
열린 질문
- 라벨의 입도는 파일이어야 하는가, 문단이어야 하는가?
- 테넌트를 넘나드는 라벨 어휘는 어떻게 거버넌스하는가?
- 오탐은 어떻게 줄일 수 있는가?
자주 묻는 질문
Rule of Two가 프롬프트 인젝션을 막아 주나요?
인젝션이 일어나는 것은 막지 못합니다. 인젝션을 당한 세션이 “신뢰할 수 없는 콘텐츠를 읽었고, 민감한 데이터를 건드리고, 보호된 상태를 바꾸거나 데이터를 내보낼 수 있다”는 세 가지를 모두 가질 수 없게 해서 결과를 제한합니다. Meta 스스로도 이것은 위험을 줄이는 경험칙이며 최소 권한을 대체하지 않는다고 강조합니다.
왜 출처와 민감도가 각각 세 가지뿐인가요?
세밀한 라벨 격자는 부풀기 쉽고 실제로는 꺼지는 경우가 많기 때문입니다. 3×3이면 “누가 썼고 얼마나 민감한가”를 말하기에 충분하고, 거부 이유도 이해하기 쉽습니다. 더 세밀한 구분은 경로와 리스로 할 수 있습니다.
세션 오염 때문에 에이전트가 아무것도 못 하게 되지는 않나요?
세 가지 동작만 제한합니다. 보호된 트리 변경, 공유와 삭제, 데이터 전송입니다. 브랜치 안에서의 읽기와 쓰기는 영향을 받지 않습니다. 마찰을 피하려면 외부 콘텐츠를 읽는 작업을 민감한 데이터가 없는 세션에서 하고, 스키마로 검증된 결과만 돌려받으세요.
관련 개념
- Human Gate (사람 승인 게이트) 되돌릴 수 없거나, 외부로 나가거나, 권한을 높이는 동작 앞에만 나타나며, 실제 diff를 보여 줍니다.
- Agent Memory (에이전트 메모리) 읽고 고칠 수 있는 노트가 진실입니다. 인덱스는 버려도 되는 캐시입니다.
- Capability Lease (권한 리스) 한 번의 실행을 위한 좁은 인가. 만료 시점과 예산이 있고, 하위 리스는 더 좁아지기만 합니다.
이 페이지 인용하기
사람, 검색 엔진, 에이전트를 위한 고정 주소와 권장 인용 형식입니다.
- 권장 인용 형식
- Agent NAS project. “Trust Labels (신뢰 라벨).” agentnas.com, 2026-11-11. https://agentnas.com/ko/concepts/trust-labels/