MCPThreatHive: Model Context Protocol 생태계를 위한 자동화된 Threat Intelligence 플랫폼
MCPThreatHive: Automated Threat Intelligence for Model Context Protocol Ecosystems
TL;DR Highlight
MCP 기반 AI 에이전트의 보안 위협을 자동 수집·분류·시각화하는 오픈소스 Threat Intelligence 플랫폼
Who Should Read
Claude, GitHub Copilot, Cursor 등 MCP를 통해 외부 도구를 연결한 AI 에이전트를 운영하거나 개발하는 보안 담당자 및 백엔드 개발자. MCP 서버를 배포하거나 아직 보안 체계를 갖추지 못한 AI 제품팀에게도 유용.
Core Mechanics
- MCP(Model Context Protocol)는 LLM이 외부 도구를 자연어 설명 기반으로 선택하기 때문에 기존 보안 프레임워크로는 커버 안 되는 새로운 공격 벡터가 존재함 — tool description poisoning, indirect prompt injection, parasitic tool chain 등.
- 기존 MCP 보안 도구들(MCP-Scan, Ramparts, MCP-Guardian 등)은 개별 도구를 점검할 뿐, 여러 도구가 조합될 때 발생하는 compositional attack(도구 체이닝 공격)을 탐지하지 못함.
- MCPThreatHive는 CVE DB, GitHub Security Advisories, 보안 블로그, ArXiv RSS 등 다중 소스에서 위협 정보를 지속적으로 수집하고 LLM으로 자동 분류하는 4단계 파이프라인을 구현함.
- MCP-38 위협 분류 체계(38개 MCP 특화 위협 패턴)를 STRIDE, OWASP LLM Top 10, OWASP Agentic Top 10 프레임워크에 동시 매핑해서 단일 뷰로 제공함.
- DREAD(위협 위험도 계산 방법론) 기반 복합 위험 점수 공식을 사용하며, agentic 시스템 특화 가중치(semantic 공격 ×1.20, parasitic chaining ×1.15, 낮은 관측성 ×1.10)를 적용함.
- 위협 간 관계를 Neo4j 지식 그래프(knowledge graph)로 저장해 '이 도구에서 시작하면 어떤 공격 경로로 데이터가 유출되나'를 그래프 쿼리로 추적 가능.
Evidence
- GitHub MCP 프롬프트 인젝션 실제 사고(2025년 공개)를 파이프라인에 넣었을 때, 관련성 점수 0.94(임계값 0.70 초과)로 필터 통과 후 MCP-20(Indirect Prompt Injection)·MCP-24(Data Exfiltration) 분류 결과가 전문가 레이블과 일치.
- Direct Prompt Injection(MCP-19)의 복합 위험 점수 계산 예시: R = 0.855, inference-time 멀티플라이어 1.20 적용 시 Rfinal = 10.0(Critical) — 실험적으로 가장 위험한 공격 클래스임이 수치로 확인됨.
- Table 2 비교 기준 6개 핵심 역량(MCP-38 커버리지, 지속 모니터링, 지식 그래프, AI 리스크 플랜, 멀티 프레임워크 매핑, MCP-UPD 체인 분석) 모두 MCPThreatHive만 지원, 나머지 5개 도구는 모두 미지원.
How to Apply
- MCP 서버를 운영 중인데 보안 감사를 주기적으로 못 하고 있다면, MCPThreatHive를 Docker Compose로 띄우고 NVD API·GitHub Security Advisories를 연결해두면 새 CVE가 등록될 때마다 자동으로 MCP-38 분류와 위험 점수가 생성됨.
- 여러 MCP 도구를 체이닝해서 쓰는 워크플로우(예: 웹 검색 → 파일 쓰기 → 이메일 전송)를 개발 중이라면, 지식 그래프의 CHAINS_INTO 엣지를 조회해 'T2T → UPD' 패턴(parasitic tool chain)이 있는지 확인하고 위험한 조합을 사전 차단하는 용도로 활용 가능.
- OWASP나 STRIDE 기반 보안 컴플라이언스 보고서가 필요한 팀이라면, MCPThreatHive의 멀티 프레임워크 매핑 기능으로 동일 위협을 STRIDE 카테고리와 OWASP LLM Top 10·Agentic Top 10에 동시 매핑한 결과를 뽑아 보고서 작성에 바로 쓸 수 있음.
Code Example
# MCPThreatHive 빠른 시작 (Docker Compose)
# 1. 저장소 클론
git clone https://github.com/VulcanLab/MCPThreatHive
cd MCPThreatHive
# 2. 환경 변수 설정 (.env 파일)
LLM_PROVIDER=openai # 또는 anthropic, local
LLM_MODEL=gpt-4o
OPENAI_API_KEY=sk-...
NEO4J_URI=bolt://neo4j:7687
NEO4J_PASSWORD=your_password
# 3. 실행
docker-compose up -d
# 4. 위협 수집 트리거 (REST API)
curl -X POST http://localhost:5000/api/gather \
-H 'Content-Type: application/json' \
-d '{"query": "MCP tool description poisoning", "sources": ["nvd", "github", "rss"]}'
# 5. 위험 점수 조회
curl http://localhost:5000/api/threats?min_score=7.0
# 반환 예시:
# {
# "threats": [
# {"id": "MCP-19", "name": "Direct Prompt Injection",
# "risk_score": 10.0, "level": "Critical",
# "stride": "Tampering", "owasp_llm": "LLM01",
# "owasp_agentic": "ASI01"}
# ]
# }
# 6. 지식 그래프에서 공격 체인 쿼리 (Neo4j Cypher)
# MATCH path = (t:Tool)-[:CHAINS_INTO*]->(u:Threat {type: 'UPD'})
# RETURN path LIMIT 10Terminology
Related Resources
Original Abstract (Expand)
The rapid proliferation of Model Context Protocol (MCP)-based agentic systems has introduced a new category of security threats that existing frameworks are inadequately equipped to address. We present MCPThreatHive, an open-source platform that automates the end-to-end lifecycle of MCP threat intelligence: from continuous, multi-source data collection through AI-driven threat extraction and classification, to structured knowledge graph storage and interactive visualization. The platform operationalizes the MCP-38 threat taxonomy, a curated set of 38 MCP-specific threat patterns mapped to STRIDE, OWASP Top 10 for LLM Applications, and OWASP Top 10 for Agentic Applications. A composite risk scoring model provides quantitative prioritization. Through a comparative analysis of representative existing MCP security tools, we identify three critical coverage gaps that MCPThreatHive addresses: incomplete compositional attack modeling, absence of continuous threat intelligence, and lack of unified multi-framework classification.