cisco-ai-defense/mcp-scanner

Scan MCP servers for potential threats & security findings.

MCP Scanner란 무엇인가?

MCP Scanner는 Model Context Protocol(MCP) 서버와 해당 서버가 노출하는 자산(도구, 프롬프트, 리소스, 심지어 서버 코드 자체)을 검사하는 Python 기반 보안 도구입니다. 세 가지 분석 엔진을 결합합니다:

  1. Cisco AI Defense inspect API – MCP 페이로드를 평가할 수 있는 독점 서비스.
  2. YARA – 알려진 악성 코드에 대한 고전적인 패턴 매칭 규칙.
  3. 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 플래그.

실행 방법

  1. 사전 요구 사항 – Python 3.11+, uv 패키지 관리자 및 선택적 API 키(Cisco AI Defense, LLM 공급자, VirusTotal). MCP Python SDK(mcp>=2.0.0)가 번들로 제공됩니다.
  2. 설치 – 전역 도구로:
    uv tool install --python 3.13 cisco-ai-mcp-scanner
    
    또는 소스에서 uv sync 사용.
  3. 구성 – 사용하려는 서비스에 대한 환경 변수를 내보냅니다. 예:
    export MCP_SCANNER_API_KEY=…          # Cisco AI Defense
    export MCP_SCANNER_LLM_API_KEY=…      # OpenAI / Bedrock 등
    export VIRUSTOTAL_API_KEY=…           # VirusTotal
    
  4. 빠른 스캔 실행 – YARA만 사용하여 원격 서버를 스캔하는 CLI 명령 예:
    mcp-scanner --server-url https://mcp.example.com/mcp \
                --analyzers yara --format summary
    
    또는 REST API 시작:
    mcp-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) 인터페이스를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트