使用说明
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添加了自动化模式的演示脚本:
- 点
mcp-scanner在提供的服务器示例中 - 运行mcp扫描仪 用真正的CLI命令来对抗它
- 查看实际威胁检测 来自YARA图案
- 了解真实世界的工具使用方法 转移到生产
这种方法是:
- ✅ 真实的 -真正的安全扫描,不是模拟的
- ✅ 透明 -学生们确切地看到了正在发生的事情
- ✅ 教育的 -了解实际的命令行用法
- ✅ 实用的 -技能直接应用于现实世界场景
包含什么
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/