당신의 AI 에이전트가 방금 와이어 트랜스퍼를 환각했습니다. 내가 이를 멈춘 방법

발행: (2026년 3월 3일 오전 12:15 GMT+9)
10 분 소요
원문: Dev.to

Source: Dev.to

문제

LLM 에이전트가 환각된 인보이스, 잘못 읽은 Slack 승인, 그리고 대략 일치하는 수신자를 근거로 $45,000을 공급업체에게 보내기로 결정합니다. 당신이 눈치채는 시점에는 이미 돈이 사라졌습니다.

왜 지금 이런 일이 발생하고 있는가

  • OWASP Agentic AI Top 10 (late 2025) 은 목표 탈취, 도구 오용, 도구 체이닝을 통한 권한 상승 등 공포 영화 같은 위협을 나열합니다.
  • 현재 **48 %**의 사이버 보안 전문가가 agentic AI 를 가장 큰 공격 벡터로 꼽고 있지만, 기업의 **~33 %**만이 AI‑특화 보안 통제를 갖추고 있습니다.

Source:

PIC (Provenance & Intent Contracts) 소개

PIC은 에이전트가 실행하기 전에 모든 고영향 행동을 증명하도록 강제합니다. 이는 행동 경계에 위치합니다 – “LLM이 무언가를 하기로 결정한 순간”과 “도구가 실제로 실행되는 순간” 사이의 지점입니다.

작동 방식 (요약)

  1. 제안 – 에이전트는 무엇을 하고 싶은지, 하는지, 그리고 의사결정 데이터가 어디서 왔는지를 설명하는 구조화된 JSON을 제출합니다.
  2. 검증 – PIC은 제안을 스키마에 맞게 검증하고, 출처 신뢰 수준을 확인하며, 증거를 검증합니다.
  3. 결정 – 누락되었거나 형식이 잘못되었거나 신뢰할 수 없는 경우, 제안은 차단됩니다 (fail‑closed). “어쨌든 허용” 같은 대체 옵션은 없습니다.

예시 제안

{
  "protocol": "PIC/1.0",
  "intent": "Execute wire transfer for Q4 server costs.",
  "impact": "money",
  "provenance": [
    { "id": "cfo_signed_invoice_hash", "trust": "trusted" },
    { "id": "slack_approval_manager", "trust": "semi_trusted" }
  ],
  "claims": [
    {
      "text": "Invoice hash matches authorized payment list",
      "evidence": ["cfo_signed_invoice_hash"]
    }
  ],
  "action": {
    "tool": "treasury.wire_transfer",
    "args": { "recipient": "AWS_Global_Payments", "amount": 45000 }
  }
}

필수 필드

필드무엇을 하는지
intent에이전트가 수행하려는 작업에 대한 일반 언어 설명
impact위험 등급 (예: read, write, money, privacy, irreversible, …)
provenance의사결정 데이터의 출처이며, 각각 명시적인 신뢰 수준(trusted, semi_trusted, untrusted)을 가짐
claims에이전트의 주장으로, 각각 증거 항목을 가리킴
action실제 도구 호출 (tool + args)

핵심 검증 규칙

  • 고위험 행동 (money, privacy, irreversible, …) 신뢰할 수 있는 출처의 증거에 의해 뒷받침되는 최소 하나의 주장가져야 합니다.
  • 누락된 필드, 스키마 위반, 또는 검증 오류가 발생하면 → 차단됩니다.

디자인에 따라 실패 시 차단됩니다.

Installation & CLI

pip install pic-standard

Verify a proposal

# Trusted provenance + valid evidence → passes
pic-cli verify examples/financial_irreversible.json

# Bad SHA‑256 hash → blocked
pic-cli verify examples/failing/financial_hash_bad.json --verify-evidence

첫 번째 명령은 성공합니다; 두 번째는 증거 해시가 아티팩트와 일치하지 않기 때문에 실패하며, 따라서 작업이 실행되지 않습니다.

PIC를 OWASP 에이전트 AI Top 10에 매핑하기

OWASP 위협PIC가 이를 완화하는 방법
ASI01 – Goal Hijack (prompt injection)신뢰할 수 없는 출처는 신뢰된 증거 없이는 고위험 행동을 트리거할 수 없으며, 전송이 차단됩니다.
ASI02 – Tool Misuse (hallucination)환상적인 주장에는 검증 가능한 증거가 없으므로 → 차단됩니다.
ASI03 – Privilege Escalation via Tool Chaining각 도구 호출은 독립적으로 평가됩니다; 낮은 영향의 읽기 작업이 이후 금전 이체에 대한 신뢰를 이어받지 않습니다.
ASI04 – Untrusted Data Laundering출처 신뢰 수준(trusted, semi_trusted, untrusted)이 적용됩니다; 신뢰할 수 없는 데이터는 암호학적 증거 없이는 신뢰된 주장으로 “세탁”될 수 없습니다.
(그리고 나머지 여섯 가지 위협)PIC의 검증 레이어, 증거 요구 사항 및 실패‑닫힘(fail‑closed) 의미론이 이를 유사하게 처리합니다.

통합 (플러그‑앤‑플레이)

통합PIC 추가 방법
LangGraphpip install "pic-standard[langgraph]" – 제안을 디스패치하기 전에 검증하는 도구 실행기 PICToolNode를 사용합니다.
MCP (Model Context Protocol)pip install "pic-standard[mcp]" – 모든 MCP 도구를 guard_mcp_tool으로 감싸서 실패‑닫힘 검증, 요청 추적 및 DoS 제한을 적용합니다.
OpenClaw (TypeScript)TS 플러그인을 설치 – 세 가지 훅: pic-gate (실행 전 차단), pic-init (세션 전체 인식), pic-audit (구조화된 감사 로그).
Cordum (Go)pic-standard 팩을 추가 – job.pic-standard.verify 워커 토픽을 생성하고 라우트: proceed, fail, require_approval.
Language‑agnostic HTTP bridgepic-cli serve 실행 – HTTP를 사용할 수 있는 모든 언어(Go, Rust 등)에서 로컬 검증기에 제안을 제출할 수 있습니다.

보안 및 강화 세부 사항

  • 테스트: 18개 파일(스키마, 검증자 규칙, 증거 처리, 키링, 통합, HTTP 브리지, 파이프라인)에서 108개의 테스트.

  • 영향 클래스: 명시적 증거 요구 사항이 있는 7개의 공식 클래스.

  • 증거 유형: SHA‑256 해시 검증 Ed25519 디지털 서명.

  • 키링: 만료 타임스탬프와 폐기 목록이 포함된 신뢰된 키.

  • DoS 강화:

    • 최대 제안 크기: 64 KB
    • 평가 예산: 제안당 500 ms
    • 최대 증거 파일: 5 MB
    • 최대 HTTP 본문: 1 MB
    • 소켓 타임아웃: 5 s
  • 정식 사양: RFC‑0001 (7‑위협 모델 확장 포함).

TL;DR

  • Guardrails (NeMo Guardrails, Guardrails AI, 등)은 모델이 말하는 내용을 보호하지만 모델이 수행하는 행동보호하지 않습니다.
  • PIC행동 경계에서 출처, 의도, 증거를 강제함으로써 그 격차를 메웁니다.
  • 이는 fail‑closed, deterministic, zero‑dependency(로컬 검증) 특성을 가집니다.
  • 단일 pip 설치 또는 작은 HTTP 브리지로 기존 LLM‑agent 스택에 플러그인할 수 있습니다.

에이전트를 안전하게 보호하세요. 행동하기 전에 검증하십시오.

PIC‑Standard 개요

  • 핵심 개념: 인과 오염 의미론, 행동 경계 게이팅, 출처 연결
  • 라이선스: Apache 2.0 (방어적 공개 – 개념이 문서화되고 타임스탬프되어 특허를 방지함)

빠른 시작

pip install pic-standard
pic-cli verify examples/financial_irreversible.json

첫 번째 제안을 검증하는 명령은 이 한 줄입니다. 이후에 할 수 있는 일은:

  • Quickstart 가이드 읽기
  • 예시 제안서 살펴보기 (통과와 실패 모두)
  • 공식 사양을 위한 RFC 확인

이 문서를 사용해야 하는 경우

금전, 사용자 데이터 또는 되돌릴 수 없는 작업을 처리하는 AI 에이전트를 구축하고 있다면, 이것이 누락된 안전 계층입니다.

리소스

  • GitHub:
  • PyPI:
  • License: Apache 2.0

기여

이것이 유용하다고 생각되면, ⭐️ 저장소에 별표를 달아 주세요 – 생각보다 큰 도움이 됩니다.

0 조회
Back to Blog

관련 글

더 보기 »

일이 정신 건강 위험이 될 때

markdown !Ravi Mishrahttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fu...