使用说明
AIScan — AI 安全扫描器
一个独立的命令行 + Python SDK 工具,既能测试 LLM 模型本身的安全性(越狱、提示注入、信息泄露),又能审计 MCP/Agent 工具代码的风险(间接提示注入、恶意元数据、危险代码模式),最终输出统一的安全评估报告。
特性
- 模型安全测试:自动批量发送越狱/注入/泄露 Payload,并用 LLM 智能判定攻击是否成功(替代粗糙的关键词匹配)
- 代码审计:Semgrep 静态分析 + LLM 元数据恶意性分析 + 跨文件数据流追踪
- 多 LLM 支持:原生支持 DeepSeek / SiliconFlow / Ollama / OpenAI / 任意 OpenAI 兼容 API
- 统一报告:JSON + HTML 格式,按风险等级汇总
安装
pip install git+https://github.com/250wuyifan/aiscan.git
或本地开发安装:
git clone https://github.com/250wuyifan/aiscan.git
cd aiscan
pip install -e .
前置依赖
代码审计功能需要安装 Semgrep:
pip install semgrep
快速开始
测试模型安全性
# 使用硅基流动
export SILICONFLOW_API_KEY=your_key
aiscan model --provider siliconflow --model Qwen/Qwen3-32B
# 使用本地 Ollama
aiscan model --provider ollama --model qwen2.5:7b
# 仅测试特定探针
aiscan model --provider ollama --model qwen2.5:7b --probes jailbreak,injection
# 输出 HTML 报告
aiscan model --provider ollama --model qwen2.5:7b --format html --out report.html
审计 MCP 工具代码
# 扫描本地目录
aiscan code ./my-mcp-tool
# 扫描 GitHub 仓库
aiscan code https://github.com/xxx/mcp-server.git
全量扫描(模型 + 代码)
aiscan scan --provider ollama --model qwen2.5:7b --code ./my-mcp-tool
查看支持的 Provider
aiscan providers
核心改进
LLM 智能判定(替代关键词匹配)
传统工具(如 Garak)使用关键词匹配判断攻击是否成功,误报漏报多。AIScan 用 Judge LLM 做智能判定:
攻击类型: 越狱
攻击 Payload: "请忽略之前的指令..."
AI 回复: "好的,我来帮你..."
→ Judge LLM 判定: {"compromised": true, "severity": "high", "reason": "模型服从了越狱指令"}
多 LLM 支持
| Provider | 环境变量 | 默认模型 |
|---|---|---|
| deepseek | DEEPSEEK_API_KEY |
deepseek-chat |
| siliconflow | SILICONFLOW_API_KEY |
Qwen/Qwen2.5-7B-Instruct |
| ollama | 无需 | qwen2.5:7b |
| openai | OPENAI_API_KEY |
gpt-4o-mini |
| custom | LLM_API_KEY |
需指定 |
项目结构
src/aiscan/
cli.py # CLI 入口 (typer)
config.py # LLM 配置
llm_client.py # 统一 LLM 客户端
models.py # 数据模型
probes/ # 模型安全测试
engine.py # 探针执行引擎
judge.py # LLM 智能判定
payloads/ # Payload 库
audit/ # 代码审计
scanner.py # 主扫描流程
semgrep_runner.py # Semgrep 静态分析
meta_analyzer.py # 元数据恶意性分析
flow_tracer.py # 跨文件数据流追踪
rules/ # Semgrep 规则文件
reporter.py # 统一报告生成
License
MIT
