MCP扫描器安全实验室

一个通过Cisco MCP Scanner工具进行MCP安全实践的实验室,用于学习和实践MCP安全扫描技术。

  • by barryqy
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 barryqy/mcplab

使用说明

MCP扫描仪实验室

使用思科MCP扫描器学习模型上下文协议(MCP)安全的实践安全实验室。

概述

该实验室通过直接实践经验教授MCP安全 mcp-scanner CLI工具。学生扫描真实的MCP服务器,查看实际的威胁检测。

快速开始

1.安装MCP扫描仪

# Clone and install
git clone https://github.com/cisco-ai-defense/mcp-scanner
cd mcp-scanner

# Install uv if you don't have it
pip install uv

# Create a virtual environment with Python 3.13
export PATH="$HOME/.local/bin:$PATH"
uv venv --python 3.13
source .venv/bin/activate

uv pip install .

# Verify installation
mcp-scanner --version

2.克隆实验室存储库

cd /home/developer/src
git clone https://github.com/barryqy/mcplab
cd mcplab
uv pip install -r requirements.txt

如果要手动运行模块4 LLM练习,请先加载辅助程序:

source ./lab-env.sh

3.运行第一次扫描

# Scan the safe MCP server
mcp-scanner --analyzers yara --format table \
  --stdio-command python3 \
  --stdio-args examples/safe-mcp-server.py

# Scan the malicious MCP server
mcp-scanner --analyzers yara --format table \
  --stdio-command python3 \
  --stdio-args examples/malicious-mcp-server.py

实验室方法

直接CLI使用 -核心练习使用 mcp-scanner 直接,然后模块5添加了自动化模式的演示脚本:

  1. 点 mcp-scanner 在提供的服务器示例中
  2. 运行mcp扫描仪 用真正的CLI命令来对抗它
  3. 查看实际威胁检测 来自YARA图案
  4. 了解真实世界的工具使用方法 转移到生产

这种方法是:

  • ✅ 真实的 -真正的安全扫描,不是模拟的
  • ✅ 透明 -学生们确切地看到了正在发生的事情
  • ✅ 教育的 -了解实际的命令行用法
  • ✅ 实用的 -技能直接应用于现实世界场景

包含什么

MCP服务器示例

  • examples/safe-mcp-server.py -正确保护的服务器(输入验证,无危险模式)
  • examples/malicious-mcp-server.py -故意易受攻击(命令注入、凭证获取)
  • examples/prompt-injection-server.py -带有危险提示的服务器
  • examples/mixed-security-server.py -安全和不安全工具的混合

演示脚本

  • demo-prompt-scanning.sh -快速扫描演练
  • demo-api-scanning.sh -REST API工作流演示
  • demo-complete-audit.sh -具有报告输出的多服务器审计

实验练习

完整的实验室指南可在以下网址获得: https://github.com/barryqy/llabsource-mcp

练习1:环境验证

验证 mcp-scanner 安装和可用分析仪

练习2:扫描安全服务器

扫描一个安全可靠的MCP服务器,了解“安全”是什么样子的

练习3:扫描恶意服务器

检测命令注入、凭证收集和数据泄露

主要特点

YARA分析仪(无需API密钥!)

  • 基于模式的威胁检测
  • 检测:命令注入、凭证获取、系统操作
  • 脱机工作,无需凭据
  • 非常适合学习和发展

LLM分析仪(可选)

  • 工具行为的语义分析
  • 检测:及时注射、工具中毒、意图操纵
  • lab-env.sh 准备本实验室中使用的LLM设置
  • 在实验室之外,使用任何与OpenAI兼容的Bedrock或其他支持的LLM端点

API分析器(可选-企业版)

  • 思科AI防御威胁情报
  • 零日检测和合规性检查
  • 要求:思科人工智能防御订阅

示例命令

基本扫描(标准模式)

# Scan with YARA (no API key needed)
mcp-scanner --analyzers yara --format summary \
  --stdio-command python3 --stdio-args examples/safe-mcp-server.py

# Detailed output with findings
mcp-scanner --analyzers yara --format detailed \
  --stdio-command python3 --stdio-args examples/malicious-mcp-server.py

# Table format
mcp-scanner --analyzers yara --format table \
  --stdio-command python3 --stdio-args examples/malicious-mcp-server.py

HTTP/SSE服务器扫描

使用附带的启动器将任何MCP服务器作为HTTP端点启动:

# Start server
python3 launch_mcp_http.py examples/malicious-mcp-server.py &

# Scan it
mcp-scanner --analyzers yara --format detailed \
  remote --server-url http://127.0.0.1:8000/sse

# Works with any server file
python3 launch_mcp_http.py examples/safe-mcp-server.py 8001  # custom port

配备多台分析仪

# Load the helper used for the LLM exercises
source ./lab-env.sh

# Scan with multiple analyzers
mcp-scanner --analyzers yara,llm --format by_severity \
  --stdio-command python3 --stdio-args examples/malicious-mcp-server.py

# Optional: add Cisco AI Defense API analyzer credentials
export MCP_SCANNER_API_KEY="your-cisco-api-key"

需求

  • Python 3.13 推荐用于本实验室
  • MCP扫描仪 从 思科ai防御/mcp扫描仪
  • 不需要API凭据 YARA分析仪
  • LLM配置 LLM分析器练习
  • 可选API密钥 用于Cisco AI Defense API分析器

适用于Alpine Linux/masl系统

可能需要特殊安装:

apk add python3-dev gcc musl-dev yara yara-dev build-base libffi-dev
pip install --no-binary yara-python yara-python

检测到的威胁类别

  • 命令注入: subprocess, os.system,shell执行
  • 凭证收集:环境变量、API密钥、机密
  • 系统操作:文件访问、路径遍历、权限升级
  • 数据外泄:外部网络请求、数据传输
  • 脚本注入:SQL注入、代码注入、模板注入
  • 提示注入:LLM操作,系统提示覆盖

支持

问题或议题?
联系袁bayuan@cisco.com

许可证

Apache 2.0

了解更多

  • MCP扫描仪: https://github.com/cisco-ai-defense/mcp-scanner
  • 实验室模块: https://github.com/barryqy/llabsource-mcp
  • 思科人工智能防御: https://www.cisco.com/site/us/en/products/security/ai-defense/