NSA가 방금 MCP 보안 매뉴얼을 공개했습니다. 우리는 에이전트 신뢰 전송 프로토콜 ATTP를 만들었으며, 오늘 MCPS와 함께 적용하세요.
출처: Dev.to
2026년 5월, 미국 국가안보국(NSA)은 Model Context Protocol (MCP): Security Design Considerations 라는 사이버보안 정보 공지를 발표했습니다.
MCP를 기반으로 서버, 클라이언트, 게이트웨이, 오케스트레이터, 프레임워크, 혹은 에이전트 런타임을 구축하고 있다면 반드시 읽어야 합니다. 그리고 아래 내용도 함께 읽으세요. NSA가 설명한 표준은 이미 존재하고, 오늘 바로 통합할 수 있기 때문입니다.
NSA가 강조한 내용
문서 전체에 걸쳐 네 가지 운영 요구사항이 제시됩니다.
-
MCP 메시지에 대한 암호 서명 및 검증
NSA를 직접 인용(p. 12): “표준은 JSON 페이로드 내부에 암호 서명을 직접 삽입하도록 확장될 수 있다… MCP 메시지는 만료 타임스탬프와 재생 방지 메타데이터를 포함해야 한다… 요청을 시간·컨텍스트와 암호적으로 결합해 변조, 의도적인 재생 공격을 방지한다.”
번역: TLS만으로는 충분하지 않다. MCP 페이로드 자체에 서명, 논스, 타임스탬프, 신선도 윈도우를 포함한 봉투가 필요하다. -
에이전트를 위한 암호식 신원(베어러 토큰이 아님)
p. 4: MCP는 “인스턴스화 시점에 역할 기반 접근 제어(RBAC) 권한 교환을 지원하지 않는다.” 베어러 토큰은 탈취·재생·위장될 수 있다. 에이전트는 구조화된 신원이 필요하다. -
암호 무결성을 갖춘 구조화된 감사 로깅
p. 12‑13: 모든 도구 호출, 파라미터, 결과를 암호 해시와 함께 기록해 XDR이나 SIEM이 정확히 무슨 일이 있었는지 재구성하고 증명할 수 있게 한다. -
MCP 전용 CVE를 추적하고 패치 적용
p. 13: MCP 패키지 표면에 대한 취약점 모니터링 프로세스를 구축한다. 이는 다른 생산 의존성에 적용하는 방식과 동일하다.
오늘 이미 존재하는 것
여기서 약간 어색한 부분이 있다. 여러분이 어느 입장에 있든, 네 가지 요구사항 각각에 대해 공개 사양, 레퍼런스 구현, 그리고 최소 하나 이상의 구현체가 이미 존재한다는 점이다.
MCPS – MCP를 위한 암호 서명 레이어
draft-sharif-mcps-secure-mcp (IETF Datatracker, 2026‑03부터)
네 가지 기본 요소:
- Agent Passports – 특정 출처에 묶인 암호식 신원.
- Signed message envelopes – 정규화된 서명 문자열에 대해 ECDSA P‑256을 사용하고, 타임스탬프·논스를 포함해 무결성과 부인 방지를 제공.
- Tool definition signatures – 전체 도구 객체에 서명해 하위 클라이언트가 도구 변조나 스키마 변조를 감지할 수 있게 함.
- Nonce + timestamp replay protection – 전사 바인딩(transcript binding)으로 다운그레이드 공격을 방지.
와이어 포맷은 JSON‑on‑the‑wire, 서명 문자열은 정규화된 형태이며 MCP 메시지 본문 안에 머문다. 전송 계층이나 프로토콜 포크는 필요 없다.
ATTP – MCPS 위에 얹는 에이전트‑신뢰 전송 프로토콜
draft-sharif-attp (2026‑05‑01부터 라이브)
MCPS가 메시지‑레벨 서명을 담당한다면, ATTP는 프로토콜에 구애받지 않는 신뢰 전송 계층을 정의한다. 다섯 단계의 계층 구조를 제공한다.
실제 브라우저에서 ECDSA P‑256을 사용한 데모(조작·스트립‑ATTP 버튼 포함):
https://attp.cybersecai.co.uk
AgentPass – NSA가 말한 신원 / RBAC 레이어
- L0‑L4 신뢰 등급, OFAC·HMT 제재 스크리닝(75,784개 항목 내장), 단계적 지출 한도, 해시‑체인 감사 추적, 에이전트‑간 결제 등 제공
👉 https://agentpass.co.uk
Go SDK(agentpass-go)는 네트워크 호출 없이 로컬 암호만으로 에이전트 신원 인증서를 검증한다. 순수 표준 라이브러리만 사용, CGo 없음. 신뢰 앵커는 TLS와 동일하게 로드한다.
x-agent-trust – OpenAPI에 첫 번째 클래스 선언으로 추가된 에이전트 신뢰
2026‑04‑11, OpenAPI Initiative Extension Registry에 병합(헨리 앤드류스·마이크 키슬터(Microsoft) 승인)
https://spec.openapis.org/registry/extension/x-agent-trust.html
components:
x-agent-trust확장.- 이제 모든 OpenAPI‑기술 서비스는 어떤 에이전트 신뢰 수준이 어느 오퍼레이션에 필요한지 선언할 수 있다. 이 확장을 이해하는 툴은 자동으로 검증한다.
OWASP MCP Security Cheat Sheet, Section 7
PR #2065(2026‑03‑26 병합)를 통해 섹션 7 “Message‑Level Integrity and Replay Protection”이 추가되었다. 이 치트시트는 NSA가 나중에 제시한 패턴을 이미 문서화하고 있다.
OWASP AISVS 1.0, Chapter C10
MCP 보안 전용 챕터가 추가됐으며, L1‑L3 수준의 검증 가능한 요구사항을 제공한다. 두 요구사항이 MCPS 사양과 직접 매핑된다:
- 10.2.11 (L2) – 에이전트는 베어러 토큰이 아닌 암호적으로 결합된 신원 자격증명을 사용해 인증한다. 이는 신원이 전송·재생·위장될 수 없게 만든다.
- 10.4.10 (L3) – MCP 서버는 고유 논스와 타임스탬프를 포함해 도구 응답에 서명하고, 제한된 시간 창 안에서 호출 에이전트가 출처·무결성·신선도를 검증하도록 한다. 이를 통해 스푸핑·변조·재생을 방지한다.
CVE‑2026‑39313 및 추가 5건
- CVE‑2026‑39313 –
mcp-framework의 무제한 메모리 할당 취약점(CWE‑770, High). 2026‑04‑16에 할당·공개됨. - 약 5,700만 주간 다운로드(공식 MCP TypeScript·Python SDK 포함)를 가진 MCP 패키지에 대해 추가 5건의 CVE가 조정 공개 단계에 있다.
이는 NSA 권고 #4가 실제로 적용되는 모습이다. 패키지 표면을 감사하고, 발견된 격차를 메우고 있다.
현재 프로덕션에서 사용 중인 사례
-
moov-io / watchman (Apache 2.0, ★≈460) – SEC 등록 이체 에이전트와 BaaS 플랫폼에서 제재 스크리닝에 활용. MCPS와 AgentPass가 메인에 병합돼 있으며, 배포 가이드에
AgentPass설정 블록이 포함됨:
👉 https://github.com/moov-io/watchman/blob/master/docs/mcp.md -
Cisco AI Defense – Cisco 상용 에이전트 보안 제품에 MCPS 프로토콜이 에이전트‑디펜스 스택의 일부로 포함됨.
https://www.cisco.com/site/us/en/products/security/ai-defense/index.html -
Kong API Gateway – Kong 뒤의 모든 API를 MCPS‑서명 엔드포인트로 전환하는 플러그인. NDA 하에 디자인 파트너에게 제공.
-
AEBA‑XDR – 모든 에이전트의 런타임 행동 분석. 밀리초 단위 이상 탐지, 8가지 행동 차원, 에이전트마다 암호식 식별 제공.
https://aeba.co.uk
이번 주에 해야 할 일
-
프로덕션에 MCP를 배포한다면
- MCP 패키지 버전을 고정하고, 모든 MCP‑관련 의존성에 대한 CVE 피드를 구독한다. 우선
CVE‑2026‑39313부터 시작.
- MCP 패키지 버전을 고정하고, 모든 MCP‑관련 의존성에 대한 CVE 피드를 구독한다. 우선
-
가장 민감한 도구 호출에 MCPS 메시지 서명을 추가
- 사양이 작아
draft-sharif-mcps-secure-mcp를 스프린트 하나만으로 구현 가능.
- 사양이 작아
-
OpenAPI 문서에
x-agent-trust로 에이전트‑신뢰 요구사항 선언- 런타임이 아직 강제하지 않더라도, 하위 시스템에 기계가 읽을 수 있는 형태로 요구사항을 제공한다.
-
도구 호출을 변조 증거가 남는 감사 로그에 연결