라이브러리로 돌아가기
보안 및 거버넌스

MCP 보안 강화 체크리스트: 1,467대 노출 서버와 이를 닫는 컨트롤

최종 업데이트: 2026年7月26日

Trend Micro가 인터넷을 스캔하여 1,467개의 MCP 서버가 인증도 암호화도 없이 누구나 접근 가능한 상태로 노출된 것을 발견했다. Practical DevSecOps는 조사한 2,614개 서버의 82%가 경로 순회에 취약하다는 것도 발견했다. AI 에이전트를 엔터프라이즈 시스템에 연결하도록 설계된 프로토콜이 프로덕션 보안 기준선 없이 출하되었고, 배포 패턴이 이를 입증한다: 대부분의 팀이 MCP를 강화하기 전에 인터넷에 노출시켰다. 이 체크리스트가 먼저 왔어야 할 기준선이다——전송, 인증, 도구 등록, 런타임, 감사에 걸친 12개의 통제이며, MCP 서버가 프로덕션 트래픽에 닿기 전에 각각 5분 미만으로 검증할 수 있다.

핵심 요점

  • 1,467개 MCP 서버가 인증이나 암호화 없이 공개 접근 가능 — Trend Micro의 수정된 스캔, 2026년 7월. 그중 1,227대가 2026-07-28 사양이 12개월 비권장화 시계로 퇴역시키는 SSE 전송을 실행합니다.
  • 2,614대 조사 MCP 서버의 82%가 경로 탐색에 취약, OAuth를 사용하는 것은 8.5%만 — Practical DevSecOps MCP Security Statistics 2026 Report. 공격 클래스는 배포된 서버에서 광범위하게 존재하며, 이론적이지 않습니다.
  • 2026년 7월 공식 MCP Python SDK에 3개의 CVE 상륙 — CVE-2026-59950(DNS rebinding/CSRF), CVE-2026-52869(미검증 세션 요청), CVE-2026-52870(오픈 태스크 핸들러). 참조 구현은它가 지원하는 커뮤니티 서버와 같은 클래스의 결함을 출하했습니다.
  • 5개 MCP 서버가 1개 에이전트에 연결될 때 78.3% 공격 성공률 — Palo Alto Networks Unit 42. 5개 서버는 대규모 배포가 아닙니다. 전형적인 것입니다. OX Security는 150M+ 다운로드에 영향하는 아키텍처 수준의 RCE를 식별했고, Cloud Security Alliance는 MCP 보안을 시스템 설계 결함 문제로 분류했습니다.
  • MCP 2026-07-28 사양이 2026년 7월 28일 최종으로 출간 — 4개 Tier 1 SDK(TypeScript, Python, Go, C#)가 출간일에 새로운 스테이트리스 코어를 지원하며, SSE 전송에 12개월 비권장화 정책을 동반합니다. 마이그레이션과 강화는 같은 작업입니다.

이 체크리스트의 12개 컨트롤에 합격하는 프로덕션 MCP 배포는 무적이 아닙니다——어떤 시스템도 무적이 아닙니다——하지만 Trend Micro가 발견한, Practical DevSecOps가 스캔한, 또는 7월 CVE 파도가 포획한 집단에 더 이상 있지 않습니다. 체크리스트는 각 컨트롤을它가 다루는 OWASP MCP Top 10 카테고리,它가 방지하는 CVE 또는 노출, 그리고 운영자가 5분 이내에 실행할 수 있는 검증 단계에 매핑합니다. Microsoft Agent Governance Toolkit——10/10 OWASP MCP Top 10 커버리지를 가진 최초의 하이퍼스케일러 출하 오픈소스 거버넌스 런타임——이 참조 구현입니다. 이 글은 운영적 보완입니다: MCP 서버를 프로덕션 트래픽에 노출할 준비를 하는 엔지니어링 책임자 또는 플랫폼 리드를 위한 스캔 가능한 강화 리뷰.

공격면, 숫자로

OWASP MCP Top 10(Beta Release v0.1, Phase 3 of 5)은 MCP 지원 시스템 라이프사이클 전반에 걸친 10개의 명명된 리스크 카테고리를 카탈로그화합니다. 그 배후의 숫자가 "거버넌스는 좋은 실천"을 "거버넌스는 프로덕션 게이트"로 바꿉니다:

  • 1,467대 노출 서버Trend Micro의 수정된 스캔이 인증이나 암호화 없이 1,467대의 공개 접근 가능한 MCP 서버를 발견했으며, 초기 카운트 492에서 증가. 1,227대가 비권장 SSE 전송을 실행. 최소 3대가 progress_note 도구 경유로 환자 의료 기록 노출. execute_sql 도구가 70대 호스트에 등장.
  • 82% 경로 탐색 노출Practical DevSecOps가 2,614대 조사 서버에서 82% 경로 탐색 취약성과 8.5% OAuth 채택을 측정. 97M+ 월간 MCP 다운로드는 노출이 채택과 함께 스케일됨을 의미합니다.
  • 150M+ 다운로드가 아키텍처 RCE의 영향OX Security는 STDIO 명령 인젝션 근본 원인을, 고립된 CVE가 아닌 아키텍처 수준의 결함으로 틀 지었습니다. Cloud Security Alliance는 이를 AI 에이전트 인프라의 시스템 설계 결함 문제로 분류했습니다.
  • 2026년 7월 SDK에 3개 CVECVE-2026-59950(Host/Origin 검증 누락, DNS rebinding/CSRF), CVE-2026-52869(미검증 세션 요청), CVE-2026-52870(오픈 태스크 핸들러). 공식 Python SDK——모든 Python MCP 서버가 상속하는 참조 구현——은它가 지원하는 커뮤니티 서버와 같은 클래스의 결함을 출하했습니다.
  • 최종 사양의 3개 새 공격면backslash.security가 2026-07-28 사양의 스테이트리스 재설계로 도입된 3개의 새 공격면을 식별했습니다. 새로운 기능은 새로운 진입점을 만들고, 보안 커뮤니티는 여전히 매핑 중입니다.

cataam.com 분석은 MCP 보안의 현재 상태를 정확하게 틀 지었습니다: "MCP 보안은 대략 15년 전 웹 보안이 있던 위치에 있습니다——공격은 오래되었고, 표적만 새롭습니다." 아래의 강화 체크리스트는 웹 보안을 82% 경로 탐색 노출에서 프로덕션 시스템이 합격할 것으로 기대되는 베이스라인으로 이동시킨 컨트롤의 세트입니다. 동일한 컨트롤이 여기에 적용됩니다.

12개 강화 컨트롤

체크리스트는 OWASP MCP Top 10과 MCP 2026-07-28 사양 변경에 매핑되는 5개 계층으로 구성됩니다:

MCP Security Hardening Checklist 12 controls across 5 layers — maps to OWASP MCP Top 10 1 Transport & Network Spec 2026-07-28 + OWASP MCP07 2 controls CONTROL 1 SSE to Streamable HTTP migration 12-month deprecation — 1,227 servers affected CONTROL 2 Network isolation & origin validation CVE-2026-59950 — DNS rebinding defense 2 Authentication & Identity OAuth 2.1 + OIDC — spec mandate 2 controls CONTROL 3 OAuth 2.1 + OIDC enforcement RFC 8707 + RFC 9207 — 8.5% baseline CONTROL 4 Agent identity separation NIST OAuth 2.0 + SPIFFE/SPIRE 3 Tool Registration & Supply Chain OWASP MCP03 + MCP04 3 controls CONTROL 5 Tool poisoning scan MCP03 — injection + typosquatting CONTROL 6 Signed provenance MCP04 — AIBOM inventory CONTROL 7 STDIO hardening 150M+ downloads — OX Security 4 Runtime & Execution OWASP MCP05 + MCP06 + MCP10 3 controls CONTROL 8 Rate limiting Per-agent, per-tool, per-window CONTROL 9 Context boundary MCP10 — scoped per tool, no oversharing CONTROL 10 Kill-switch per module Feature-flag disable, no redeploy 5 Audit & Telemetry OWASP MCP08 + MCP09 2 controls CONTROL 11 Per-call audit logging MCP08 — immutable, structured JSON CONTROL 12 Shadow server detection MCP09 — registry vetting, drift monitoring OWASP MCP TOP 10 MAPPED OWASP MCP01-10 Spec 2026-07-28 Microsoft AGT NIST AI Agent CSA 1,467 exposed servers, zero auth 82% path traversal exposure 78.3% attack rate at 5 servers 8.5% use OAuth today 12 controls across 5 layers — ideabosque.com/library

계층 1 — 전송 및 네트워크

컨트롤 1: SSE에서 Streamable HTTP로 마이그레이션. MCP 2026-07-28 사양이 2026년 7월 28일 최종으로 출간되며, HTTP+SSE 전송에 12개월 비권장화 정책을 동반합니다. 4개 Tier 1 SDK(TypeScript, Python, Go, C#)가 출간일에 새로운 스테이트리스 코어를 지원하며, 파괴적 변경에 대한 마이그레이션 노트를 동반합니다. Trend Micro 스캔의 1,227대 비권장 SSE 서버가 가장 영향받는 집단입니다——그들은 사양이 퇴역시키는 전송을 실행합니다. 검증: 서버의 전송 설정을 확인합니다. SSE를 제공하는 경우, 비권장화 시계에 들어갔습니다. 12개월 윈도우가 닫히기 전에 Streamable HTTP로 마이그레이션하세요.

컨트롤 2: 네트워크 격리 및 오리진 검증. CVE-2026-59950——National Vulnerability Database에서 확인됨——은 공식 MCP Python SDK의 Host/Origin 검증 누락 결함입니다. 피해자가 방문하는 웹 페이지가 DNS rebinding과 CSRF 경유로 로컬 MCP 서버를 구동할 수 있습니다. 브라우저가 공격자의, 운영자가 프라이빗이라고 믿었던 루프백 서버로의 프록시가 됩니다. 검증: 서버가 모든 요청에서 Host와 Origin 헤더를 검증하는지 확인합니다. 서버가 인터넷 향인 경우, 신뢰할 수 없는 오리진에서의 직접 접근을 방지하는 네트워크 경계 뒤에 있는지 확인합니다. 공공 인터넷에서 도달할 수 없어야 할 서버는 공공 인터넷에서 접근 가능해서는 안 됩니다.

계층 2 — 인증 및 아이덴티티

컨트롤 3: OAuth 2.1 + OIDC 강제. 2026-07-28 사양은 OAuth 2.1과 OpenID Connect를 필수로 만듭니다——이전의 "자체 토큰 가져오기" 방식에서의 전환입니다. WorkOS의 인증 마이그레이션 가이드가 요건을 상세히 설명합니다: RFC 8707(Resource Indicators)로 서버 간 토큰 재생 방지, Client ID Metadata Documents가 Dynamic Client Registration을 대체, issuer 검증(RFC 9207). Practical DevSecOps의 발견——조사 서버의 8.5%만 OAuth 사용——이 이 컨트롤이 끌어올리는 베이스라인입니다. 검증: 서버의 인증 설정을 확인합니다. 미인증 요청을 수용하거나 OAuth 없는 정적 API 키를 사용하는 경우, 불합격입니다. 서버가 RFC 8707 resource indicators를 구현하는지 확인합니다.

컨트롤 4: 에이전트 아이덴티티 분리. NIST AI Agent Standards Initiative(2026년 2월)는 에이전트를 고유한 라이프사이클을 가진 별도의 비인간 아이덴티티로 취급할 것을 제안합니다: 프로비저닝, 어테스테이션, 해지. 대부분의 배포는 인간 사용자를 인증하고 그 아이덴티티를 에이전트에 전달합니다. 에이전트가 행동을 취하면, 감사 로그는 인간이 했다고 기록합니다. 검증: 각 에이전트가 인간 운영자와 별개의 자체 크리덴셜(OAuth 토큰, SPIFFE SVID)을 가지는지 확인합니다. 에이전트 아이덴티티 해지는 인간의 접근에 영향 없이 모든 에이전트 호출을 중지해야 합니다.

계층 3 — 도구 등록 및 공급망

컨트롤 5: 도구 포이즈닝 스캔. OWASP MCP03은 도구 포이즈닝을 top-10 리스크로 지명합니다: rug pulls(신뢰된 도구가 설치 후 악성 버전으로 업데이트), schema poisoning(인터페이스 정의 자체가 모델을 오도하기 위해 손상), tool shadowing(가짜 도구가 진짜에 대한 호출을 가로채기). Microsoft Agent Governance ToolkitMcpSecurityScanner가 도구 포이즈닝, typosquatting, 숨겨진 지시를 감지합니다——read_flie(read_file의 typosquatting)이라는 이름의 데모 도구가 설명에 인젝션을 가지고 85/100 리스크를 득점했습니다. 검증: 도구 등록 프로세스를 검사합니다. 보안 스캔 없이 도구가 등록되는 경우, 불합격입니다. 스캔은 설명의 prompt injection 패턴, 알려진 도구 이름에 대한 typosquatting, 숨겨진 시스템 디렉티브를 커버해야 합니다.

컨트롤 6: 서명된 프로비넌스 및 의존성 모니터링. OWASP MCP04은 공급망 공격과 의존성 변조를 커버합니다. Postmark MCP 백도어——야생에서 포착된 최초의 악성 MCP 서버——는 조용히 이메일을 가로채고 exfiltrate하는 합법적으로 보이는 npm 패키지였습니다. 레지스트리 리뷰를 통과했습니다. UpGuard의 연구는 15개 MCP 서버 중 1개가 합법적 서비스를 가장하도록 설계된 lookalike임을 발견했습니다. 검증: 배포의 모든 MCP 서버가 서명된 프로비넌스 레코드와 AIBOM(AI Bill of Materials) 인벤토리를 가지는지 확인합니다. 의존성 모니터링이 활성이고 의존성 트리의 새 CVE에 알리는지 확인합니다.

컨트롤 7: STDIO 강화. OX Security의 공개가 STDIO 설정에서 150M+ 다운로드에 영향하는 아키텍처 수준의 RCE를 식별했습니다. 근본 원인: TypeScript SDK의 shell: true가 설정 문자열 경유로 명령 인젝션을 활성화했습니다. Cloud Security Alliance는 이를 시스템 설계 결함 문제로 분류했습니다. 검증: 서버가 STDIO 전송을 사용하는 경우, shell: false 또는 동등한 강화가 설정되어 있는지 확인합니다. 명령 allowlist가 바이너리 이름뿐 아니라 인수를 검사하는지 확인합니다——Upsonic과 Flowise의 우회(CVE-2026-30625, CVE-2026-40933)는 npx -c <악성 명령>이 바이너리만 검사하는 allowlist를 통과함을 보였습니다.

계층 4 — 런타임 및 실행

컨트롤 8: 레이트 리미트. 각 도구는 등록 호출에서 자체 레이트 리미트를 선언합니다. 백본이 에이전트별, 도구별, 윈도우별로 리미트를 적용합니다. 리미트에 도달하면, 에이전트는 Retry-After 헤더와 함께 429 응답을 받습니다. 침해된 에이전트는 업스트림 API 할당량을 고갈시킬 수 없습니다, 레이트 리미트가 모듈 경계에서 적용되기 때문입니다. 검증: 모든 등록 도구에 레이트 리미트가 있는지 확인합니다. 리미트가 업스트림 API가 아닌 모듈 경계에서 적용되는지 확인합니다. 레이트 리미트가 없는 도구는 침해된 에이전트가 무제한 호출할 수 있는 도구입니다.

컨트롤 9: 컨텍스트 경계. OWASP MCP10은 컨텍스트 인젝션과 과도한 공유를 top-10 리스크로 지명합니다. 폭넓은 컨텍스트 접근을 가진 에이전트는 테넌트, 세션, 또는 사용자 간에 정보를 누출합니다——동일 에이전트가 서로 다른 데이터 접근 권한을 가진 여러 고객에게 서비스하는 B2B 배포에서 특히 우려가 큽니다. 검증: 각 도구가 특정 작업에 필요한 컨텍스트만 받는지 확인합니다. 컨텍스트 윈도우가 모든 도구 간에 전역적으로 공유되는 것이 아니라 도구별로 스코프되는지 확인합니다. 단일 필드가 필요할 때 전체 세션 컨텍스트를 받는 도구는 데이터 누출면입니다.

컨트롤 10: 모듈별 kill-switch. 각 MCP 모듈은 오케스트레이션 백본에 닿지 않고 독립적으로 비활성화 가능해야 합니다. kill switch는 코드 배포가 아닌 설정 변경입니다. 취약성이 공개될 때——7월 CVE 파도가 2주 만에 3개 SDK CVE와 7+ 서버 CVE를 공개한 것처럼——운영자의 첫 질문은: 에이전트를 중단하지 않고 이 모듈을 비활성화할 수 있는가? 거버넌스된 배포에서 답은 예입니다. 검증: 각 모듈이 feature flag 또는 설정 변경 경유로 비활성화 가능한지 확인합니다. 비활성화 경로가 테스트되었는지 확인합니다——설정만이 아닙니다. 한 번도 실행된 적 없는 kill switch는 필요할 때 실패할 kill switch입니다.

계층 5 — 감사 및 텔레메트리

컨트롤 11: 호출별 감사 로깅. OWASP MCP08은 감사와 텔레메트리 부재를 top-10 리스크로 지명합니다. 도구 호출과 컨텍스트 변경의 로그가 없으면, 토큰 도난과 인젝션이 보이지 않는 상태로 남습니다. 모든 도구 호출은 타임스탬프, 에이전트 ID, 도구 이름, 입력 해시(원시 입력이 아닌——PII 경계), 출력 상태, 지속 시간, 업스트림 시스템을 로깅해야 합니다. 로그는 관측가능성 파이프라인으로 전송되는 구조화된 JSON입니다. 검증: 모든 도구 호출이 구조화된 로그 엔트리를 생성하는지 확인합니다. 로그가 원시 입력이 아닌 입력 해시를 포함하는지 확인합니다. 로그가 불변인지 확인합니다——서버를 침해한 공격자가 감사 트레일을 재작성할 수 없습니다.

컨트롤 12: 섀도 서버 감지. OWASP MCP09는 섀도 MCP 서버를 커버합니다——거버넌스에 보이지 않는 미승인 또는 미감독 배포. UpGuard가 15개 MCP 서버 중 1개가 lookalike임을 발견했습니다. 잘못된 mcp-server-postgress(오타 주의)를 설치한 엔지니어는 조용히 SSH 키와 .env 파일을 exfiltrate하는 패키지를 얻습니다. 검증: 배포의 모든 MCP 서버 인벤토리가 있는지 확인합니다. 인벤토리가 알려진 양호 패키지 레지스트리에 대해 검사되는지 확인합니다. 인벤토리에 없는 새 서버가 나타날 때 드리프트 모니터링이 알리는지 확인합니다.

프레임워크가 체크리스트에 매핑되는 방식

컨트롤 OWASP MCP Spec 2026-07-28 Microsoft AGT NIST CSA
1. SSE 마이그레이션 12개월 비권장화
2. 네트워크 격리 MCP07 오리진 검증
3. OAuth 2.1 + OIDC MCP07 필수 인증 OAuth 2.0
4. 에이전트 아이덴티티 MCP07 AgentMesh Identity SPIFFE/SPIRE
5. 도구 포이즈닝 스캔 MCP03 MCP Security Gateway
6. 서명된 프로비넌스 MCP04
7. STDIO 강화 MCP05 시스템 설계 결함
8. 레이트 리미트 Policy Engine
9. 컨텍스트 경계 MCP10 Response sanitizer
10. 모듈별 kill-switch Hypervisor kill switch
11. 호출별 감사 로깅 MCP08 Audit + metrics
12. 섀도 서버 감지 MCP09

단일 프레임워크가 12개 컨트롤 모두를 커버하지 않습니다. 체크리스트는 OWASP, 사양, Microsoft, NIST, CSA의 교집합입니다——각 프레임워크가 다른 것이 결여한 컨트롤을 기여합니다. Microsoft Agent Governance Toolkit은 OWASP MCP Top 10 카테고리의 10/10을 커버하며(7/10 완전, 3/10 부분과 로드맵), 명시적 OWASP 매핑을 가진 최초의 하이퍼스케일러 출하 오픈소스 런타임입니다——Agent OS Policy Engine에 68 테스트, MCP Security Gateway에 127 테스트, kill switch를 포함한 Agent Hypervisor Execution Control에 80 테스트.

체크리스트 채점

프로덕션 준비된 MCP 서버는 12개 컨트롤 모두에 합격합니다. 부분적으로 준비된 서버는 8–11에 합격합니다. 8 미만에 합격하는 서버는 문서화된 remediation 계획과 각 실패 컨트롤의 목표일 없이 프로덕션 트래픽에 노출되어서는 안 됩니다.

점수 상태 행동
12/12 프로덕션 준비 모니터링과 함께 배포
8–11/12 부분 준비 문서화된 예외와 remediation 타임라인과 함께 배포
<8/12 미준비 배포하지 마세요. 먼저 실패한 컨트롤을 remediate하세요

가장 흔한 실패 패턴은 컨트롤 1–4(전송, 인증, 아이덴티티)에 합격하면서 컨트롤 5–12(공급망, 런타임, 감사)에 불합격하는 것입니다. 처음 4개는 아키텍처적이고 설계 리뷰에서 주목받습니다. 마지막 8개는 운영적이고 인시던트나 감사가 표면화할 때까지 간과됩니다. 2026년 7월의 CVE 파도——2주 만에 3개 SDK CVE와 7+ 서버 CVE——가 운영 컨트롤이 부재할 때 일어나는 일입니다.

관련 읽기


대표적 빌드: NetSuite 카탈로그를 읽고, 견적을 생성하고, 재고 가용성을 유지하고, 수락된 주문을 ERP에 다시 쓰는 MCP 모듈을 배포하는 중견 유통업체. 컨트롤 1–4(SSE 마이그레이션, 네트워크 격리, OAuth, 에이전트 아이덴티티)가 아키텍처입니다. 컨트롤 5–8(도구 포이즈닝 스캔, 서명된 프로비넌스, STDIO 강화, 레이트 리미트)가 공급망과 런타임 계층입니다. 컨트롤 9–12(컨텍스트 경계, kill switch, 감사 로깅, 섀도 감지)가 모듈이 일주일 실행되는지 일년 실행되는지를 결정하는 운영 계층입니다. 일주일의 Discovery 단계는 모듈이 프로덕션 트래픽에 닿기 전에 각 컨트롤을 검증 가능하게 하는 시스템 인벤토리와 워크플로 맵을 산출합니다.

일주일 Discovery. 시스템 인벤토리, 워크플로 맵, 고정 범위를 얻습니다——당신이 우리와 구축하든 아니든.

귀하의 시스템을 위해 이것을 구축하고 싶으신가요?

여기의 각 문서는 실제 프로덕션 작업에서 나왔습니다. 대상 시스템과 워크플로가 있다면, 1주 내에 빌드를 범위 정의할 수 있습니다.

범위 정의 빌드 요청

1주 발견. 시스템 인벤토리, 워크플로 맵, 고정 범위를 받습니다 — 우리와 빌드할지 여부와 관계없이.