cisco-ai-defense/mcp-scanner
Scan MCP servers for potential threats & security findings.
MCP Scanner란 무엇인가?
MCP Scanner는 Model Context Protocol(MCP) 서버와 해당 서버가 노출하는 자산(도구, 프롬프트, 리소스, 심지어 서버 코드 자체)을 검사하는 Python 기반 보안 도구입니다. 세 가지 분석 엔진을 결합합니다:
- Cisco AI Defense inspect API – MCP 페이로드를 평가할 수 있는 독점 서비스.
- YARA – 알려진 악성 코드에 대한 고전적인 패턴 매칭 규칙.
- LLM 기반 분석 – 프롬프트, 도구 및 코드의 안전성을 추론하는 대규모 언어 모델 프롬프트.
결과는 상세한 보안 보고서로, 로컬, CI/CD 파이프라인 또는 REST API를 통해 사용할 수 있습니다.
주요 기능(README에 설명됨)
| 기능 | 설명 |
|---|---|
| 다중 작동 모드 | 독립형 CLI(mcp-scanner)로 실행하거나 스캐너를 REST API(mcp-scanner-api)로 노출합니다. |
| 3-엔진 분석 | YARA, Cisco AI Defense API 및/또는 LLM을 함께 또는 개별적으로 사용합니다. |
| 취약한 패키지 스캔 | pip-audit를 통합하여 Python 종속성의 알려진 CVE를 플래그합니다. |
| 준비 상태 스캔 | 타임아웃 또는 오류 처리 누락과 같은 프로덕션 수준 문제에 대한 정적 검사. |
| 동작 코드 스캔 | Docker 샌드박스에서 실행하거나 MCP 서버의 소스 코드를 정적으로 분석하여 악의적인 동작을 감지합니다. |
| VirusTotal 바이너리 스캔 | 번들된 파일(이미지, PDF, 실행 파일, 아카이브)의 SHA-256 해시를 VirusTotal에서 조회합니다. |
| PyPI 및 npm 공급망 스캔 | 패키지를 다운로드하고 격리된 Docker 컨테이너에서 실행하여 동작을 분석합니다. |
| 정적/오프라인 스캔 | 사전 생성된 MCP JSON 파일을 허용합니다 – CI/CD 또는 에어갭 환경에 이상적입니다. |
| 세분화된 인증 | OAuth, Bearer 토큰, 사용자 지정 HTTP 헤더 및 Cisco AI Defense, LLM 공급자, VirusTotal에 대한 명시적 API 키 구성을 지원합니다. |
| MCP 2.0 프로토콜 지원 | 향후 2026-07-28 프로토콜 버전을 협상하고 레거시 핸드셰이크로 자동 폴백합니다. |
| 사용자 지정 YARA 규칙 | 사용자는 조직별 패턴을 감지하기 위해 자체 규칙 세트를 추가할 수 있습니다. |
| 포괄적인 보고 | 여러 출력 형식(요약, 표, 원시 JSON, 도구별) 및 더 깊은 통찰력을 위한 --detailed 플래그. |
실행 방법
- 사전 요구 사항 – Python 3.11+,
uv패키지 관리자 및 선택적 API 키(Cisco AI Defense, LLM 공급자, VirusTotal). MCP Python SDK(mcp>=2.0.0)가 번들로 제공됩니다. - 설치 – 전역 도구로:
또는 소스에서uv tool install --python 3.13 cisco-ai-mcp-scanneruv sync사용. - 구성 – 사용하려는 서비스에 대한 환경 변수를 내보냅니다. 예:
export MCP_SCANNER_API_KEY=… # Cisco AI Defense export MCP_SCANNER_LLM_API_KEY=… # OpenAI / Bedrock 등 export VIRUSTOTAL_API_KEY=… # VirusTotal - 빠른 스캔 실행 – YARA만 사용하여 원격 서버를 스캔하는 CLI 명령 예:
또는 REST API 시작:mcp-scanner --server-url https://mcp.example.com/mcp \ --analyzers yara --format summarymcp-scanner-api --host 0.0.0.0 --port 8080
일반적인 사용 사례
| 시나리오 | MCP Scanner가 도움이 되는 이유 |
|---|---|
| 내부 LLM 서비스의 보안 감사 | MCP 프로토콜 구현과 프롬프트/도구의 내용을 모두 확인하여 숨겨진 악의적인 동작을 감지합니다. |
| 타사 패키지의 공급망 검토 | pypi-scan / npm-scan이 패키지를 다운로드하고 샌드박스 처리한 후 동작 분석 및 YARA 검사를 실행합니다. |
| CI/CD 게이트 | 생성된 MCP JSON 파일에 static 하위 명령을 사용하여 코드가 승격되기 전에 안전성을 강제합니다. |
| 사고 대응 | 의심스러운 MCP 서버에 번들된 바이너리에 대해 virustotal을 빠르게 실행합니다. |
| 규정 준수 | vulnerable-package는 Python 종속성의 알려진 CVE를 플래그하여 LLM/YARA 결과를 보완합니다. |
제한 사항 및 고려 사항(README에서)
- LLM 분석기는 유료 API 키(OpenAI, Bedrock, Azure 등)가 필요합니다 – 도구는 모델에 프롬프트만 보내며 모델을 로컬에서 호스팅하지 않습니다.
- VirusTotal 조회에는 API 키가 필요합니다. 파일 업로드는 선택 사항이며 개인 정보 보호를 위해 기본적으로 비활성화되어 있습니다.
- PyPI/npm 패키지의 동작 분석은 기본적으로 Docker 내에서 실행됩니다. Docker를 비활성화하면(
--no-docker) 코드가 프로세스 내에서 실행되어 격리성이 떨어질 수 있습니다. - stdio 기반 MCP 서버를 스캔할 때 서버가 무거운 시작 작업을 수행하는 경우 더 긴 타임아웃(
MCP_SCANNER_STDIO_TIMEOUT)이 필요할 수 있습니다. - 이 도구는 보안 결과에 초점을 맞추며 문제를 자동으로 수정하거나 해결하려고 시도하지 않습니다.
누구에게 유용한가?
- 보안 엔지니어 – MCP 엔드포인트를 노출하는 내부 LLM 기반 서비스를 보호합니다.
- DevOps / CI 팀 – MCP 서버가 사용하는 Python 또는 JavaScript 패키지의 공급망 안전을 위한 자동 게이트를 원합니다.
- MCP 기반 애플리케이션 개발자 – 도구, 프롬프트 및 리소스가 의도치 않게 악의적이지 않은지 확인해야 합니다.
- 레드팀 / 감사 컨설턴트 – YARA 시그니처, LLM 추론 및 Cisco의 AI-Defense API를 대상 MCP 배포에 결합하는 빠른 방법을 찾고 있습니다.
결론
cisco-ai-mcp-scanner는 신흥 Model Context Protocol 생태계에 맞춰진 완전한 기능을 갖춘 Python 네이티브 보안 스캐너입니다. YARA, 상용 AI 방어 서비스 및 LLM 추론을 결합하여 실무자에게 MCP 서버, 해당 코드 및 의존하는 패키지의 안전성을 평가할 수 있는 단일 명령줄(또는 API) 인터페이스를 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트