본문으로 건너뛰기

ACP가 모델 밖에서 에이전트 권한을 판정하는 구조

ACP는 Prompt Injection 성공을 전제로도 AI 에이전트의 비인가 작업을 정책과 서명된 승인으로 차단합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

ACP는 AI 에이전트의 출력이 곧 실행 권한이 되는 구조를 끊기 위해 모델과 실행기 사이에 구조화된 제어 평면을 둡니다. 모델은 오염된 문서나 티켓의 지시를 따르더라도 typed proposal만 만들 수 있고, ACP는 서명된 정책에서 위험도·가역성·capability를 다시 계산한 뒤 필요하면 사람의 quorum 승인을 요청합니다. 저장소의 Python reference와 테스트 명령은 이 흐름을 로컬에서 재현하며, 179개 업무일 제안 중 공격 제안 14개가 모두 실행되지 않았다는 결과를 제시합니다. 다만 Rust·TypeScript 서비스 대부분은 scaffold이고 독립적인 adversarial review도 아직 없으므로, 현재 저장소는 배포판보다 아키텍처와 검증 주장을 평가하는 연구용 증거에 가깝습니다.

섹션별 상세

01
AI 에이전트에 credential을 직접 주는 방식은 인증 정보와 실행 권한을 같은 것으로 취급해 Prompt Injection에 취약합니다. 오염된 문서나 악성 티켓이 모델의 입력에 섞이면 모델이 정상 데이터와 구속력 있는 지시를 구별할 수 없고, 모델을 조작한 사람이 에이전트 권한으로 행동하게 됩니다. ACP는 이 문제를 모델의 판단 품질이 아니라 정책, capability, quorum으로 판정해야 하는 권한 부여 문제로 재정의합니다.
bash
python3 -m pip install --break-system-packages cryptography dilithium-py
./tools/verify.sh

암호화 라이브러리를 설치한 뒤 무결성, 서명, 정형 검증, 테스트 스위트를 재현합니다.

02
ACP는 모델과 실행기 사이에 별도의 제어 경로를 두고 모델의 출력을 명령이 아닌 typed proposal로 제한합니다. 모델은 도구, 네트워크, function calling 없이 텍스트를 읽고 제안만 보내며, 정책 엔진은 모델이 볼 수 없는 서명된 bundle에서 위험도와 가역성을 다시 계산합니다. 따라서 Prompt Injection이 완전히 성공해도 제안이 허용된 작업과 일치하지 않으면 실행 대신 거부나 보류로 끝납니다.
python
python3 reference/suites/demo_flow.py

로컬 웹 서버를 실행해 오염된 문서가 모델을 따르는 상황을 통제 평면 유무에 따라 비교합니다.

03
실행 가능한 작업은 등록된 유한 집합으로 제한되며 task_type, 매개변수 schema, capability whitelist를 통과해야 합니다. HTTP 인터페이스는 제안을 canonical bytes로 결정하고, 고위험 작업은 해당 요청의 proposal hash에 묶인 사람의 acknowledgement와 quorum을 요구합니다. 등록되지 않은 작업은 8.4-3, schema 밖의 매개변수는 V-1, 허용 목록 밖의 대상은 CW-1에서 거부되므로 자연어 내용의 의심 여부가 아니라 구조화된 권한 조건이 결과를 좌우합니다.
bash
docker compose -f deploy/docker-compose.yml up -d ingress
curl -s localhost:8848/actions

HTTP 서비스로 실행 가능한 작업 목록과 각 작업의 대상, 매개변수, 가역성 정보를 조회합니다.

bash
export ANTHROPIC_API_KEY=sk-ant-... # console.anthropic.com → API keys
docker compose -f deploy/docker-compose.yml up -d ingress
python3 -m sim.llm_agent --invent

Anthropic API를 사용하는 비신뢰 에이전트가 문서를 읽고 작업 제안을 ACP 서버로 전달합니다.

04
저장소의 검증 경로는 MANIFEST.sha256에 포함된 118개 파일의 무결성, 오프라인 Ed25519 서명, Dafny 검증, 10개 테스트 스위트를 차례로 확인합니다. 전체 공격 레지스트리는 74/74, conformance suite는 45/45, executor mutation은 20/20 결과를 내며, 보안 검사를 하나씩 삭제한 mutation 테스트에서는 대응 공격이 성공해야 검사가 실제 효과를 가진 것으로 간주합니다. 다만 이 수치는 로컬 명령으로 재현되지 않으면 믿지 말아야 한다는 전제가 붙고, release 서명과 매 커밋 검증의 요구 조건도 서로 다릅니다.
bash
python3 -m sim.scoreboard
python3 -m sim.acceptance
python3 -m sim.supervise

업무일 시뮬레이션의 실행, 보류, 거부, 공격 제안 결과와 수용 기준을 계산합니다.

05
업무일 시뮬레이션은 네 개의 program context, 세 곳의 site, 여섯 명의 사람, 하나의 에이전트가 제안한 179개 작업을 측정합니다. 이 중 146개인 81.6%는 notifier, approver, anchor, hold를 거치지 않고 실행됐고, 32개는 사람에게 보류됐으며 그중 19개가 release되고 13개는 fail closed 됐습니다. 공격 제안 14개는 모두 정상적인 형식으로 도착했지만 실행된 것은 0개였고, 이는 공격 탐지보다 비인가 작업의 실행 경로 차단을 핵심 근거로 삼는 설계와 맞닿아 있습니다.

용어 해설

Prompt Injection
Prompt Injection은 모델이 읽는 문서나 티켓에 공격자의 지시를 삽입해 원래 작업과 무관한 행동을 유도하는 기법입니다. ACP는 이 공격이 성공하더라도 모델의 출력이 실행 권한으로 바뀌지 않도록 제안과 실행 경로를 분리합니다.
Control Plane
Control Plane은 요청을 실제 실행으로 넘기기 전에 정책, 권한, 위험도, 승인 조건을 판정하는 별도 계층입니다. ACP에서는 모델이 볼 수 없는 서명된 정책 번들을 사용해 에이전트 행동의 실행 가능 여부를 다시 계산합니다.
Quorum Attestation
Quorum Attestation은 특정 작업에 대해 정해진 수의 승인자가 동의했다는 증거를 해당 작업의 정규화된 해시에 묶는 방식입니다. ACP는 고위험·비가역 작업에 단일 승인이나 침묵을 허용하지 않고, 새롭고 일회성인 다중 서명을 요구합니다.
Fail Closed
Fail Closed는 검증이나 승인에 문제가 생겼을 때 작업을 계속 진행하지 않고 실행을 중단하는 보안 기본값입니다. ACP는 정책 확인, 승인 바인딩, 감사 앵커링 중 하나라도 실패하면 외부 효과를 발생시키지 않는 경로를 선택합니다.
Formal Verification
Formal Verification은 프로그램의 성질을 수학적 명세와 검증기로 확인하는 방법입니다. 이 저장소는 Dafny 모델에서 36개 검증 결과를 재현하지만, 검증 대상과 실제 서비스 사이의 경계 및 일부 운영 가정까지 보장하지는 않습니다.

기술

  • ACP
  • Python
  • Dafny
  • Ed25519
  • Dilithium
  • Rust
  • TypeScript
  • Docker
  • Anthropic API

활용 사례

  • Cloud 및 infrastructure 운영
  • Finance 및 payment 승인
  • Pharma·research 자동화
  • Customer support 및 CRM
  • Software delivery와 CI/CD
  • Healthcare 기록·규제 데이터 처리
  • Legal 문서 전송과 계약 처리
  • MCP 및 tool-calling 배포

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 18.수집 2026. 08. 18.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.