CraftedTrust가 4,275개 MCP 서버를 스캔하여 평균 신뢰도 점수 54/100(F등급)이며 3가지 반복되는 취약점 패턴 발견
We Scanned 4,275 MCP Servers. Most of Them Shouldn't Be Trusted.
AI 요약
Context
Model Context Protocol(MCP)은 Claude, Cursor, VS Code Copilot 등 AI 도구가 외부 서비스, 데이터베이스, API에 연결되는 핵심 연결고리로 기능하며, 16,000개 이상의 MCP 서버가 존재하고 매주 수백 개가 증가하고 있다. 기존 API는 개발자가 제어하는 애플리케이션에 데이터를 제공하지만, MCP 서버는 다음 행동을 추론하는 AI 모델에 데이터와 기능을 제공하므로 손상되거나 잘못 구축된 MCP 서버는 잘못된 데이터뿐 아니라 전체 에이전트 동작에 영향을 미칠 수 있다.
Technical Solution
- 12개 보안 카테고리별 정적 분석 도입: CoSAI 위협 분류 체계에 따라 4,275개 서버 평가
- 반복되는 3가지 취약점 패턴 분류 및 분석: (1) 과도한 권한과 부족한 보호조치 (2) 공급망 신뢰 부재 (3) 도구 설명 외 공격 지표
- chrome-local-mcp 패키지 사례: 임의 JavaScript 실행(CWE-94), SSRF를 통한 비제한 URL 네비게이션(CWE-918), 인증 없는 HTTP API(CWE-306) 3개 연쇄 취약점 발견
- 공급망 신뢰 검증 체계: 공식 게시자 확인, npm provenance attestation, 다중 유지보수자, OAuth 2.1 with PKCE 인증 기준 제시
- 도구 포이즈닝 공격 표면 확대 발견: CyberArk 연구에서 도구 설명뿐 아니라 매개변수명, 타입, enum 값, 도구 출력까지 모두 주입 벡터 확인
Impact
- npm 패키지 정적 분석 평균 신뢰도 점수: 54/100(F등급)
- chrome-local-mcp 주간 다운로드: 332건
- Astrix Security 분석: MCP 서버 53%가 정적 시크릿(구성에 내장된 API 키) 사용
- BlueRock Security 분석: 7,000개 이상 서버 중 36.7%가 SSRF 취약점 위험
- CyberArk 도구 포이즈닝 성공률: auto-approval 활성화 시 84.2%
- Invariant Labs 분석: Claude 3.7 Sonnet의 도구 포이즈닝 거부율 3% 미만
- OpenClaw 생태계: 12개 공격자 계정에서 800개 이상 악성 skill 발표(ClawHub 레지스트리의 약 20%)
Key Takeaway
MCP 서버는 전통적 API와 달리 AI 모델의 의사결정을 영향을 미치므로, 개발자가 '모든 모델이 의도한 대로 정확히 동작한다'는 가정으로는 보안을 보장할 수 없다. 에이전트 연결 플로우에 신뢰 검증을 조기에 내장해야 생태계 보안이 개선된다.
실천 포인트
MCP 서버를 사용하는 엔지니어는 설치된 서버를 mcp.craftedtrust.com에서 신뢰도 점수 확인(40점 이하 D/F등급 제거), 공식 게시자 선호(제3자 재발행 대신 @notionhq처럼 공식 조직 계정), npm provenance attestation 확인, 도구 호출 승인 플로우 활성화(파일시스템/네트워크/코드 실행 기능) 등으로 적용하면 손상된 MCP 서버에 의한 자격증명 탈취 및 에이전트 오동작 위험을 크게 줄일 수 있다.