
mcp-attack-detection-sentinel — Updated!
# MCP 공격 체인을 위한 센티널 탐지 랩: CVE-2026-26118 SSRF 토큰 탈취, 도구 오염, 서버 간 데이터 유출, 신원 사후 침투. OWASP Agentic Top 10에 매핑됨. 분석 규칙 5개, 헌팅 쿼리 7개, 워크북 포함. nineliveszerotrust.com의 동반 도구.
MCP 공격 탐지 — Sentinel 연구소
MCP(Model Context Protocol) 공격 패턴에 대한 Sentinel 탐지 연구: MCP 관련 이벤트 이후의 비정상적인 ID 액세스, 도구 정의 변조, 리소스 간 액세스, 그리고 가능한 사후 악용(Post-Exploitation) 동작. 이 규칙들은 OWASP 에이전틱 애플리케이션 Top 10 (2026)에 매핑됩니다.
게시 상태: 이 저장소에는 현재 게시된 Nine Lives 동반 기사가 없으며, 웹사이트의 Labs 카탈로그에도 의도적으로 등재되지 않았습니다. 독립적인 연구 자료로 유지됩니다.
CVE-2026-26118 규칙은 Azure MCP 서버 SSRF 공개를 기반으로 한 동작 기반 휴리스틱입니다. 이는 CVE가 악용되었거나 토큰이 도난당했음을 증명하지 않습니다. Microsoft는 이 문제를 인증된 네트워크 공격자가 권한을 상승시킬 수 있는 SSRF로 설명하며, 영향을 받는 패키지 범위와 공급업체 권고는 NIST NVD에 기록되어 있습니다.
배포되는 항목
| 리소스 | 유형 | OWASP 에이전틱 |
|---|---|---|
| LAB - MCP SSRF 기반 ID 액세스 이상 징후 (CVE-2026-26118) | 동작 분석 규칙 (높음) | ASI03 |
| LAB - MCP 도구 정의 변조 (러그 풀 탐지) | 분석 규칙 (높음) | ASI01, ASI04 |
| LAB - MCP 서버 간 데이터 유출 패턴 | 분석 규칙 (중간) | ASI02, ASI03 |
| LAB - 비정상적인 MCP 도구 호출 급증 | 분석 규칙 (중간) | ASI02 |
| LAB - MCP ID 사후 악용 체인 | 분석 규칙 (높음) | ASI03 |
| MCP 공격 탐지 — 보안 태세 | 통합 문서 | 전체 |
| 헌팅 쿼리 7개 | KQL (수동) | ASI01–ASI07 |
MITRE ATT&CK 적용 범위
| 기법 | ID | 규칙 / 쿼리 |
|---|---|---|
| 유효한 계정: 클라우드 | T1078.004 | ID 액세스 이상 징후, 사후 악용 체인 |
| 중간자 공격 | T1557 | 에이전트 간 통신 헌팅의 컨텍스트; 쿼리 자체는 차단이 아닌 조건부 액세스 격차를 탐지합니다 |
| 공급망 손상 | T1195.002 | 도구 정의 변조, 공급망 |
| 클라우드 스토리지 데이터 | T1530 | 서버 간 유출 |
| 보호되지 않은 자격 증명 | T1552 | 서버 간 유출, 사후 악용 |
| 클라우드 API | T1059.009 | 호출 급증, 코드 실행 |
| 서버리스 실행 | T1648 | 코드 실행 |
| 저장 데이터 변조 | T1565.001 | 메모리 및 컨텍스트 오염 |
빠른 시작
# 정확한 계획을 검토합니다. 어떠한 변경도 수행하지 않습니다.
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab" `
-WhatIf
# 분석 규칙(비활성화), 헌팅 쿼리, 통합 문서를 배포합니다.
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab"
# 쿼리를 검토한 후 규칙 활성화를 선택합니다.
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab" `
-EnableRules
# 매니페스트 기반 배포를 검증합니다.
./scripts/Test-MCPDetections.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab"
사전 요구 사항
- Microsoft Sentinel이 활성화된 Azure 구독
- Entra ID 진단 설정:
AuditLogs,ServicePrincipalSignInLogs,ManagedIdentitySignInLogs - Sentinel에서 Azure 활동 로그 커넥터 활성화
- Azure CLI가 포함된 PowerShell 7.0 이상
- 대상 리소스 그룹에서 Sentinel 분석 규칙, Log Analytics 저장된 검색, 통합 문서를 관리할 수 있는 충분한 역할. 해당 작업을 충족하는 가장 좁은 테넌트별 역할 할당을 사용하세요.
안전 및 소유권 모델
- 모든 규칙 및 통합 문서 ID는 결정적이며 정확한 작업 영역으로 범위가 지정됩니다.
- 배포는 첫 번째 클라우드 변경 전에 소유자 전용
.mcp-attack-detection-state.json매니페스트를 작성합니다. - 기존 리소스는 모든 쓰기 전에 사전 점검됩니다. 스크립트는 예상 출처가 없는 동일 ID 리소스를 거부하며 매니페스트 없이는 절대 채택하지 않습니다.
- 분석 규칙은
-EnableRules가 명시적으로 제공되지 않는 한 비활성화된 상태로 배포됩니다. -WhatIf는 쓰기 없이 동일한 읽기 및 충돌 검사를 수행합니다.- 정리는 매니페스트의 정확한 ID만 사용하고 출처를 다시 검증하며 표시 이름 접두사, 범주 또는 하위 문자열로 검색하지 않습니다.
- 이 저장소의 이전 버전으로 만든 배포는 자동으로 채택되거나 삭제되지 않습니다. 이 버전을 사용하기 전에 해당 리소스를 수동으로 목록화하세요.
데이터 소스
| 테이블 | 용도 |
|---|---|
AADManagedIdentitySignInLogs | MCP 이름의 관리 ID 액세스 패턴 조사 |
AADServicePrincipalSignInLogs | MCP 서비스 주체 인증 패턴 모니터링 |
AzureActivity | MCP 리소스 작업, 배포, 구성 변경 추적 |
정리
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab" `
-Destroy
정확한 삭제 항목을 미리 보려면 동일한 명령을 -WhatIf와 함께 먼저 실행하세요. 매니페스트가 없거나, 다른 구독/작업 영역을 가리키거나, 리소스가 더 이상 이 연구소의 출처를 보유하지 않는 경우 정리는 안전하게 실패합니다.
증거 경계
이 쿼리들은 연구 출발점입니다. 명명 휴리스틱과 테넌트별 Entra 및 Azure 활동 스키마에 의존합니다. 활성화하기 전에 비프로덕션 작업 영역에서 테이블 가용성, 필드 이름, 기준선, 허용 목록, 쿼리 비용 및 오탐 동작을 검증하세요. 이들은 악용 귀속이 아닌 의심스러운 동작 증거를 제공합니다.
참고 자료
- CVE-2026-26118 — Microsoft 공급업체 권고
- CVE-2026-26118 — NIST NVD 기록 및 영향을 받는 버전
- OWASP 에이전틱 애플리케이션 Top 10 2026
라이선스
MIT