CodeReview/docs/SECURITY_TOOLS_SETUP.md

203 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

# 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 到项目仓库