CodeReview/docs/SECURITY_TOOLS_SETUP.md

203 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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