Beyond the Mandate: Agent Payments Protocol(AP2) 보안 체계 분석
Beyond the Mandate: A Systematic Security Analysis of the Agent Payments Protocol (AP2)
TL;DR Highlight
AP2 위협 48개 분류, 서명이 유효해도 사용자 의도와 다른 결제 가능
Who Should Read
LLM 쇼핑·결제 에이전트에 A2A·MCP를 붙여 서명 기반 결제 승인을 설계하는 백엔드 개발자
Core Mechanics
- 서명이 맞아도 의도는 틀릴 수 있다
- AP2는 서명된 mandate(결제 승인서)의 무결성만 지킨다.
- 서명 전 카탈로그·툴 결과·A2A 메시지는 보호 범위 밖이다.
- 그래서 위조 없이 컨텍스트만 조작해도 유효한 mandate가 나온다.
- 위협 48개, 높음 등급은 8개
- MAESTRO 프레임워크로 위협 48개를 5개 공격 계열로 나눴다.
- AIVSS로 점수를 매기니 8개가 최소 한 아키텍처에서 High였다.
- 아키텍처(단일 에이전트, MCP, 마켓플레이스 등)마다 위협이 달라진다.
- 공유 MCP는 위험을 키운다
- 판매자·쇼핑 에이전트가 같은 MCP 서버를 쓰면 한 서버 침해가 양쪽에 번진다.
- 툴 이름 충돌로 컨텍스트가 샌 뒤 CP 전용 호출까지 당하는 연쇄 공격을 시연했다.
- 사소한 URI 한 글자가 다운그레이드를 만든다
- 확장 URI를 느슨하게 비교하면 protocol을 protoco1로 바꾼 가짜 주소가 통과한다.
- 그러면 v0.1로 조용히 내려가 replay 방어를 잃는다.
- risk_data를 에이전트가 쓰면 사기 통과
Evidence
- STRIDE-GPT와 비교하니 66.7%만 겹쳤다
- STRIDE-GPT 5회 실행은 124행을 냈다.
- 카탈로그 48개 중 32개(66.7%)만 Full 또는 Partial로 매핑됐다.
- 나머지 16개는 주석자 판단상 모두 Distinct였다.
- 전문가 8명이 점수 대역을 재현했다
- 25개 위협에서 Gwet's AC2가 0.984였다(95% CI 0.963~1.000).
- Krippendorff's α는 0.802였고 CI는 0.520~0.978이었다.
- 단일 평가자 기준 대역을 120건 중 111건(92.5%) 재현했다.
- 스캐너 층별 재현율이 갈렸다
- Full 구성은 A2 .80, A3 .60, A4 .50, A5 1.00이었다.
- A2에서 Only-Passive는 .60, Only-CDSE는 .00이었다.
- 어떤 층도 다른 층을 대체하지 못했고 T-2, T-1, T-9, T-3은 모두 놓쳤다.
- T-1 점수 계산 예시
- CVSS base 8.3, AARS 6.5로 AIVSS 7.2(High)가 나왔다.
- 반면 T-31 replay는 A1에서 6.3, A3에서 6.7로 올랐다.
How to Apply
- 확장 URI를 정확히 일치 비교로 바꾸기
- 오늘 SA의 AgentCard 확장 URI 검증 코드를 찾아 느슨한 비교를 고정값 exact match로 교체하라.
- 불일치하면 레거시로 내려가지 말고 거래를 중단하라.
- risk_data를 서명 안으로 넣기
- SA가 붙이는 mutable 필드를 없애고 서명된 Payment Mandate 안이나 TS가 발급한 서명 증명만 받아라.
- CP와 MPP는 서명 없는 risk payload를 거부하라.
- 승인 한도를 모델 밖 정책으로 강제하기
- 금액 상한과 payee 제한 에스컬레이션 규칙을 버전 관리되는 결정적 코드로 옮겨라.
- TS에서는 amount_range.max 정확한 값과 payee 제한 부재를 명시 표시하고 렌더링한 바이트만 서명하라.
- MCP 서버와 호출자 역할 묶기
- 세션 시작 때 툴마다 응답할 서버를 고정하고 이름 충돌을 거부하라.
- MCP 호출마다 호출자·역할·거래 ID 서명을 붙이고 CP는 전송 채널이 아닌 그 서명으로 인가하라.
Try It
# Claude나 ChatGPT에 붙여넣기 (논문 방법의 간이 버전: AP2 위협 점검 프롬프트)
우리 결제 에이전트 구성은 다음과 같다.
{{아키텍처 설명: SA/MA 단일 or 멀티, MCP 사용 여부와 공유 여부, 마켓플레이스 여부}}
아래 관점으로 점검해 줘.
1. 서명 전에 SA가 받는 입력(카탈로그, 툴 결과, A2A 메시지) 중 mandate 필드에 영향을 주는 경로를 모두 나열해.
2. 각 경로를 조작하면 금액 상한, payee 제한, risk_data 중 무엇이 바뀔 수 있는지 써 줘.
3. 각 항목에 대해 정확 일치 검증, 서명 바인딩, 모델 밖 정책 강제 중 필요한 방어를 하나씩 제안해.
이어서 해 볼 것: 가장 위험한 경로 하나를 골라 테스트 케이스를 만들어 줘.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Related Resources
Original Abstract (Expand)
The Agent Payments Protocol (AP2), introduced by Google, enables large language model (LLM)-driven shopping agents to authorize and execute payments on behalf of users. Its signed Checkout and Payment Mandates protect the integrity of transaction data after signing. Agent interactions and external inputs that shape a transaction before authorization remain outside that protection, including Agent-to-Agent Protocol (A2A) messages and Model Context Protocol (MCP) tool calls. Prior work identified replay and prompt-injection attacks in AP2 v0.1. AP2 v0.2 addresses some of these issues but adds capabilities and deployment assumptions that require renewed analysis. We present a systematic security analysis of AP2 v0.2 based on its roles, transaction lifecycle, deployment architectures, and trust boundaries. We divide the lifecycle into five phases and identify five deployment architectures. Using MAESTRO (Multi-Agent Environment, Security, Threat, Risk, Outcome), we model four threat actors, eleven attack surfaces, eighteen adversary capabilities, and six attacker goals. The resulting catalog contains 48 threats spanning five attack families. We score these threats with the Artificial Intelligence Vulnerability Scoring System (AIVSS), identifying eight that reach the High band in at least one architecture. Because no complete public AP2 deployment was available, we build a testbed spanning all five architectures and develop five proof-of-concept demonstrations covering all eight High-risk threats and their mitigations. We also develop a deployment-aware scanner that maps applicable threats to static, cross-role consistency, and adversarial checks. Our analysis shows that valid mandate signatures alone do not ensure that an agent-mediated transaction reflects the user's intent when its pre-authorization context is manipulated.