内容
# 安全AI — 静态AI能力与风险分析工具
[](https://github.com/ikaruscareer/SafeAI/actions/workflows/ci.yml)
[](https://safeai-analyzer.ikaruscareer.com)
**安全AI** 是一款静态分析工具,用于扫描AI应用源代码中的安全风险、能力暴露和治理空白。它完全在离线环境下运行,从不执行代理或调用LLM,并可集成到CI/CD管道中。
> 🌐 [safeai-analyzer.ikaruscareer.com](https://safeai-analyzer.ikaruscareer.com) — 项目主页
<img width="1024" height="1024" alt="SafeAI_Agent_Software_Static_Analyzer" src="https://github.com/user-attachments/assets/de40f40b-14b9-4cd6-bc2c-27e81e8253fe" />
---
## 为什么选择安全AI?
传统应用安全工具(SAST、SCA、IaC扫描)并非为AI代理系统设计。AI应用引入了新的风险表面:
- **提示注入** — 不受信任的输入流进入模型提示
- **代理工具滥用** — 具有文件系统、shell或数据库访问权限的代理
- **能力扩散** — 框架暴露能力但缺乏可见性
- **MCP暴露** — 模型上下文协议端点和工具
- **治理空白** — 缺失身份验证、权限、审计跟踪
安全AI通过在静态分析框架、代理、工具、能力和MCP集成,在部署前填补这一空白。
安全AI在不执行AI应用的情况下帮助开发者发现能力、识别潜在风险并改善软件生命周期早期的治理。
设计为轻量级、可解释且社区驱动,安全AI旨在成为AI能力和风险分析的开放基础。
安全AI位于运行时防护和红队工具之前的安全生命周期中。它在提交时扫描代理源代码 — 在将代理部署到预发布环境之前检测框架特定能力、MCP配置错误和提示注入模式 — 它不会取代运行时工具(Microsoft AGT)、评估框架(LangSmith、DeepEval)或红队扫描器(Promptfoo、Garak)。它与它们相互补充:在代码中发现风险,然后在运行时验证。
<img width="1024" height="1024" alt="SafeAI_Concept" src="https://github.com/user-attachments/assets/c07999b2-79d5-4200-9eec-ce1ab4e63cc8" />
---
## 主要功能
| 功能 | 描述 |
|---------|-------------|
| **框架检测** | 检测并解析15种AI代理框架 |
| **能力发现** | 确定文件系统、shell、网络、数据库等能力 |
| **AI风险分析** | 将发现结果分为7类风险,并具有加权信任评分 |
| **提示风险分析** | 检测注入模式、分隔符问题、系统泄漏、角色覆盖 |
| **工具分析** | 确定代理绑定工具及其风险配置文件 |
| **内存分析** | 检测代理工作流中的内存/检查点使用情况 |
| **MCP分析** | 发现MCP服务器、客户端、工具、资源并验证配置 |
| **数据泄露检测** | 标记硬编码的机密、令牌和API密钥 |
| **CI/CD集成** | SARIF输出、退出代码、GitHub Actions工作流 |
| **多格式报告** | 终端摘要、JSON、SARIF 2.1.0、HTML |
| **跨文件分析** | 导入图、符号解析和项目图 |
| **置信度仲裁解析** | 每个文件多个解析器,带有出处 |
---
## 工作原理
```
源代码
│
▼
框架检测 — 通过导入、配置、依赖项识别AI框架
│
▼
静态分析 — AST解析、能力模式、依赖项扫描
│
▼
能力映射 — 将框架对象映射到标准化的风险类别
│
▼
风险规则 — 应用具有可配置严重性和权重的规则引擎
│
▼
信任评分 — 从0到100的确定性类别加权评分
│
▼
报告 — 终端、JSON、SARIF、HTML
```
<img width="1024" height="1024" alt="SafeAI_AI_Capability_Risk_Analyzer" src="https://github.com/user-attachments/assets/618f9ebc-030b-40c9-a98e-b0a5c41e07cc" />
---
## 支持的框架
| 框架 | 检测 | 发现 | 能力分析 | 风险分析 | 状态 |
|-----------|-----------|-----------|-------------------|---------------|--------|
| LangGraph | ✔ | 部分 | 部分 | 部分 | 早期预览 |
| CrewAI | ✔ | 部分 | 部分 | 部分 | 早期预览 |
| LangChain | ✔ | 部分 | 部分 | 部分 | 早期预览 |
| Semantic Kernel | ✔ | 部分 | 部分 | 部分 | 早期预览 |
| OpenAI Agents SDK | ✔ | 部分 | 部分 | 部分 | 早期预览 |
| Microsoft Agent Framework | ✔ | 部分 | 部分 | 部分 | 早期预览 |
| Azure AI Foundry | ✔ | 最小 | 最小 | 最小 | 早期预览 |
| Bedrock Agent | ✔ | 最小 | 最小 | 最小 | 早期预览 |
| Claude Code | ✔ | 最小 | 最小 | 最小 | 早期预览 |
| Google ADK | ✔ | 部分 | 最小 | 最小 | 早期预览 |
| Mastra | ✔ | 部分 | 最小 | 最小 | 早期预览 |
| Haystack | ✔ | 部分 | 最小 | 最小 | 早期预览 |
| LlamaIndex | ✔ | 部分 | 最小 | 最小 | 早期预览 |
| Dify | ✔ | 最小 | 最小 | 最小 | 早期预览 |
| n8n | ✔ | 部分 | 最小 | 最小 | 早期预览 |
### 框架支持详情
- **LangGraph** — 检测`StateGraph`、`add_edge`、`bind_tools`、节点、模型
- **CrewAI** — 检测`Agent`、`Task`、工具、模型
- **LangChain** — 检测`AgentExecutor`、`Chain`、`Tool`、`PromptTemplate`、模型
- **Semantic Kernel** — 检测`Kernel.invoke`、插件、函数、技能、内存
- **OpenAI Agents SDK** — 检测`Agent`、工具、交接、MCP引用
- **Microsoft Agent Framework** — 检测`AgentClient`、工具、工作流、Azure模型
- **Azure AI Foundry** — 检测具有Azure资源的YAML配置
- **Bedrock Agent** — 检测具有Bedrock资源的JSON配置
- **Claude Code** — 检测`CLAUDE.md`和`.claude/`配置引用
- **Google ADK** — 检测ADK代理、工作流、工具和模型模式
- **Mastra** — 检测Mastra代理、工作流、工具和模型引用
- **Haystack** — 检测Haystack管道、代理、工具和检索器
- **LlamaIndex** — 检测代理、工具、索引和模型引用
- **Dify** — 检测Dify工作流和代理配置文件
- **n8n** — 检测n8n工作流导出、节点和连接
上述七个框架是早期预览适配器。检测和基本工件发现可用,但其框架特定分析尚未达到已建立适配器的水平。
---
## 支持的能力
安全AI在框架对象级别和通过回退正则表达式模式指纹能力。每个能力都包括证据、置信度评分、解析定义和出处。
<img width="1024" height="1024" alt="SafeAI_Capability_Risk_Report" src="https://github.com/user-attachments/assets/ae924e9d-650f-4480-b5b2-2984e5c57087" />
| 能力 | 类别 | 风险影响 |
|------------|----------|-------------|
| Shell执行 | Shell | 命令注入、主机泄露 |
| 文件系统访问 | 文件系统 | 数据泄露、文件篡改 |
| 浏览器自动化 | 浏览器 | 基于UI的攻击、凭证盗窃 |
| 规划/编排 | 规划器 | 自主决策链风险 |
| 代理委托 | 委托 | 未检查的子代理权限 |
| 内存/检查点 | 内存 | 跨会话数据保留 |
| RAG/检索 | RAG | 文档泄露、通过文档的提示注入 |
| GitHub集成 | GitHub | 仓库访问、机密泄露 |
| Slack集成 | Slack | 通道监控、消息注入 |
| 电子邮件集成 | 电子邮件 | 钓鱼、数据泄露 |
| 数据库访问 | 数据库 | SQL注入、数据泄露 |
| 云服务 | 云 | 云资源滥用、成本升级 |
| 外部API | 外部API | 第三方数据泄露 |
| MCP服务 | MCP | 暴露的端点、未经授权的工具访问 |
| 人工审批 | 人工审批 | 审批绕过风险 |
| 多代理 | 多代理 | 基于委托的权限提升 |
> **注意:** 某些能力(浏览器、GitHub、Slack、电子邮件、RAG、人工审批)主要通过MCP配置分析检测。计划为这些能力提供框架适配器检测。
---
## 安装
### 要求
- Python 3.11 或 3.12
- PyYAML(用于YAML配置解析)
### 从源代码安装
```bash
git clone https://github.com/ikaruscareer/SafeAI.git
cd SafeAI
pip install -e .
```
### 安装开发依赖项
```bash
pip install -e ".[dev]"
```
---
## 命令行界面使用
```bash
python -m safeai scan <目录> [选项]
```
### 选项
| 选项 | 默认值 | 描述 |
|--------|---------|-------------|
| `目录` | 必需 | 要扫描的路径 |
| `--sarif` | `report.sarif` | SARIF输出路径(空字符串则跳过) |
| `--json` | — | JSON输出路径 |
| `--html` | — | HTML报告输出路径 |
| `--rules` | 内置 | 自定义规则目录 |
| `--fail-on` | `critical` | 退出代码阈值:`critical`、`high`、`medium` |
| `--verbose` | — | 启用详细输出 |
### 退出代码
| 代码 | 条件 |
|------|-----------|
| 0 | 没有达到或超过阈值的发现 |
| 1 | 检测到达到或超过阈值的发现 |
---
## 示例输出
### 终端
```
安全AI扫描摘要
文件:12
框架:langgraph、crewai
MCP资产:2
整体AI风险评分:73
严重:1
高:3
中:5
发现:
[严重] app.py:10 - 不受信任的输入插入到提示中
[高] app.py:22 - 检测到能力:shell_execution
[高] mcp.json:1 - MCP配置未定义身份验证
```
### 示例:带有MCP的LangGraph代理
```json
{
"框架": "LangGraph",
"能力": ["规划器", "内存", "文件系统", "MCP"],
"风险评分": 73,
"发现": 9,
"严重": 1,
"高": 3
}
```
---
## CI/CD集成
### GitHub Actions
工作流包含在`.github/workflows/ci.yml`中。要在您的项目中使用:
```yaml
jobs:
safeai-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: 安装安全AI
run: |
pip install -e .
- name: 运行扫描
run: |
python -m safeai scan . --sarif results.sarif --html report.html
- name: 上传SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
```
### GitLab CI
```yaml
safeai-scan:
image: python:3.12
script:
- pip install -e .
- safeai scan . --sarif results.sarif --html report.html
artifacts:
paths:
- results.sarif
- report.html
```
### Azure DevOps
```yaml
- task: PythonScript@0
inputs:
scriptSource: 'inline'
script: |
import subprocess
subprocess.run(["pip", "install", "-e", "."])
subprocess.run(["safeai", "scan", ".", "--sarif", "$(Build.ArtifactStagingDirectory)/results.sarif"])
```
### SARIF集成
安全AI输出SARIF 2.1.0格式,与GitHub高级安全、Azure DevOps和其他支持SARIF的工具兼容。
---
## 路线图
参见 [ROADMAP.md](./ROADMAP.md) 了解所有5个阶段的详细路线图:
- **第一阶段** — 静态AI风险扫描器(开源)— *正在积极开发中*
- **1.5阶段** — AI组件安全
- **第二阶段** — AI安全测试(可选未来)
- **第三阶段** — 测试包
- **第四阶段** — 企业(商业)
- **第五阶段** — 社区情报
<img width="1024" height="1024" alt="SafeAI_Roadmap" src="https://github.com/user-attachments/assets/2cdd1a8a-b4ae-4e1f-8f85-0108fdeb3194" />
---
## 许可证
安全AI在Apache 2.0许可证下发布。
连接信息
猜你喜欢
暂无推荐服务器