203 lines
4.1 KiB
Markdown
203 lines
4.1 KiB
Markdown
# DeepAudit 安全工具安装指南
|
||
|
||
本文档介绍如何一键安装 DeepAudit Agent 审计所需的外部安全工具和沙盒环境。
|
||
|
||
## 安装的工具
|
||
|
||
| 工具 | 用途 | 安装方式 |
|
||
|------|------|----------|
|
||
| **Semgrep** | 静态代码分析,支持 30+ 语言 | pip |
|
||
| **Bandit** | Python 专用安全扫描 | pip |
|
||
| **Safety** | Python 依赖漏洞扫描 | pip |
|
||
| **Gitleaks** | Git 密钥泄露检测 | 二进制/brew |
|
||
| **OSV-Scanner** | 多语言依赖漏洞扫描 | 二进制/brew |
|
||
| **TruffleHog** | 高级密钥扫描 (可选) | pip/二进制 |
|
||
| **Docker 沙盒** | 漏洞验证隔离环境 | Docker |
|
||
|
||
## 快速开始
|
||
|
||
### macOS / Linux
|
||
|
||
```bash
|
||
# 进入项目目录
|
||
cd /path/to/XCodeReviewer
|
||
|
||
# 运行安装脚本
|
||
./scripts/setup_security_tools.sh
|
||
```
|
||
|
||
### Windows
|
||
|
||
**方式 1: 双击运行**
|
||
```
|
||
直接双击 scripts\setup_security_tools.bat
|
||
```
|
||
|
||
**方式 2: PowerShell**
|
||
```powershell
|
||
# 进入项目目录
|
||
cd C:\path\to\XCodeReviewer
|
||
|
||
# 运行 PowerShell 脚本
|
||
.\scripts\setup_security_tools.ps1
|
||
```
|
||
|
||
**方式 3: 命令行参数**
|
||
```powershell
|
||
# 全部安装
|
||
.\scripts\setup_security_tools.ps1 -InstallAll
|
||
|
||
# 仅安装 Python 工具
|
||
.\scripts\setup_security_tools.ps1 -PythonOnly
|
||
|
||
# 仅验证安装状态
|
||
.\scripts\setup_security_tools.ps1 -VerifyOnly
|
||
```
|
||
|
||
## 安装选项
|
||
|
||
脚本提供以下安装选项:
|
||
|
||
1. **全部安装 (推荐)** - 安装所有工具 + 构建 Docker 沙盒
|
||
2. **仅 Python 工具** - `pip install semgrep bandit safety`
|
||
3. **仅系统工具** - 下载 gitleaks, osv-scanner 二进制
|
||
4. **仅 Docker 沙盒** - 构建 `deepaudit-sandbox:latest` 镜像
|
||
5. **仅验证安装状态** - 检查已安装的工具
|
||
|
||
## 手动安装
|
||
|
||
如果自动脚本无法工作,可以手动安装:
|
||
|
||
### Python 工具
|
||
|
||
```bash
|
||
pip install semgrep bandit safety
|
||
|
||
# 可选
|
||
pip install trufflehog
|
||
```
|
||
|
||
### macOS 系统工具
|
||
|
||
```bash
|
||
brew install gitleaks osv-scanner
|
||
|
||
# 可选
|
||
brew install trufflehog
|
||
```
|
||
|
||
### Windows 系统工具
|
||
|
||
**使用 Scoop (推荐):**
|
||
```powershell
|
||
# 安装 Scoop (如果没有)
|
||
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||
irm get.scoop.sh | iex
|
||
|
||
# 安装工具
|
||
scoop install gitleaks
|
||
```
|
||
|
||
**使用 Winget:**
|
||
```powershell
|
||
winget install --id=Gitleaks.Gitleaks -e
|
||
```
|
||
|
||
**手动下载:**
|
||
- Gitleaks: https://github.com/gitleaks/gitleaks/releases
|
||
- OSV-Scanner: https://github.com/google/osv-scanner/releases
|
||
- TruffleHog: https://github.com/trufflesecurity/trufflehog/releases
|
||
|
||
### Docker 沙盒
|
||
|
||
```bash
|
||
cd docker/sandbox
|
||
docker build -t deepaudit-sandbox:latest .
|
||
|
||
# 验证
|
||
docker run --rm deepaudit-sandbox:latest python3 --version
|
||
```
|
||
|
||
## 环境配置
|
||
|
||
安装完成后,确保 `backend/.env` 包含以下沙盒配置:
|
||
|
||
```env
|
||
# 沙盒配置
|
||
SANDBOX_IMAGE=deepaudit-sandbox:latest
|
||
SANDBOX_MEMORY_LIMIT=512m
|
||
SANDBOX_CPU_LIMIT=1.0
|
||
SANDBOX_TIMEOUT=60
|
||
SANDBOX_NETWORK_MODE=none
|
||
```
|
||
|
||
## 验证安装
|
||
|
||
运行以下命令验证安装:
|
||
|
||
```bash
|
||
# 检查各工具版本
|
||
semgrep --version
|
||
bandit --version
|
||
safety --version
|
||
gitleaks version
|
||
osv-scanner --version
|
||
|
||
# 检查 Docker 沙盒
|
||
docker image inspect deepaudit-sandbox:latest
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### Q: pip install 失败?
|
||
|
||
尝试使用 pip3 或指定 Python 版本:
|
||
```bash
|
||
python3 -m pip install semgrep bandit safety
|
||
```
|
||
|
||
### Q: Windows 上 PATH 未生效?
|
||
|
||
重启终端或手动添加工具目录到系统 PATH:
|
||
```
|
||
%LOCALAPPDATA%\DeepAudit\tools
|
||
```
|
||
|
||
### Q: Docker 构建失败?
|
||
|
||
1. 确保 Docker Desktop 已启动
|
||
2. 检查网络连接
|
||
3. 尝试手动拉取基础镜像:
|
||
```bash
|
||
docker pull python:3.11-slim-bookworm
|
||
```
|
||
|
||
### Q: 某些工具不可用?
|
||
|
||
工具有回退机制:
|
||
- `semgrep_scan` 失败 → 使用 `pattern_match`
|
||
- `bandit_scan` 失败 → 使用 `pattern_match`
|
||
- 沙盒不可用 → 跳过动态验证
|
||
|
||
## 工具配置
|
||
|
||
工具的超时和开关可以在 `backend/app/services/agent/config.py` 中配置:
|
||
|
||
```python
|
||
# 工具开关
|
||
semgrep_enabled: bool = True
|
||
bandit_enabled: bool = True
|
||
gitleaks_enabled: bool = True
|
||
|
||
# 超时配置
|
||
semgrep_timeout_seconds: int = 120
|
||
bandit_timeout_seconds: int = 60
|
||
```
|
||
|
||
## 支持
|
||
|
||
如有问题,请:
|
||
1. 查看日志输出
|
||
2. 运行 `-VerifyOnly` 检查安装状态
|
||
3. 提交 Issue 到项目仓库
|