BenediktSchackenberg/local-ai-audit-stack
GitHub: BenediktSchackenberg/local-ai-audit-stack
一套完全本地运行的 LLM 驱动代码与二进制安全审计工具链,无需云端或外部 API 即可在 Windows 工作站上完成漏洞发现、逆向分析和报告生成。
Stars: 0 | Forks: 0
# 本地 AI 审计技术栈
在你自己的 Windows 工作站上运行完整的、由 LLM 驱动的代码审计工具链。无需云端,无需 API 密钥离开本机,也无需进行合规性审查。
专为单一应用场景打造:查看未知软件(DLL、二进制文件、脚本、配置文件)并完全在本地硬件上生成安全报告。
## 你将获得
- **Ollama** 作为本地模型 runtime(通过 CUDA 直接使用 GPU)。
- **Open WebUI** 作为浏览器界面,支持文件上传、RAG、网络搜索和多用户账户。
- **LiteLLM** 作为 Ollama 前端的 OpenAI 兼容代理,使任何支持 OpenAI API 的工具都能正常运行。
- **SearXNG** 用于本地网络搜索。
- **Aider** 和 **OpenCode** 作为与 LiteLLM 通信的编码 CLI。
- **Vulnhuntr** 用于在源代码中进行 LLM 驱动的漏洞发现。
- **Trivy** 用于 CVE 和依赖项扫描。
- **Ghidra** 用于原生逆向工程。
- **ilspycmd** 用于 .NET 反编译。
- 审计 prompt 模板,用于生成结构一致的报告(管理摘要、场景、详细发现、攻击路径、缓解措施)。
## 为什么选择本地
- 敏感代码或客户数据永远不会离开本机。
- 无需依赖外部服务。
- 拉取模型后无需互联网即可工作。
- 兼容禁止使用外部 AI 服务的公司规定。
## 硬件要求
已在 Windows 11 + RTX 5090(32 GB VRAM、64 GB 系统 RAM、具有足够可用空间用于存储模型的 NVMe SSD)上测试。配置较低的显卡可运行较小的模型——12 GB 显卡可以轻松运行 7B 变体。
磁盘空间:推荐的模型集大约需要 90 GB。
## 安装说明
顺序很重要。每个步骤都假定前一个步骤已完成。
### 1. NVIDIA 驱动程序
将 NVIDIA 驱动程序安装或更新到当前版本。对于 Blackwell 显卡(RTX 50 系列),至少需要 566.x 版本。验证:
```
nvidia-smi
```
### 2. 启用虚拟化
Docker Desktop 需要 Hyper-V 或 WSL2。在管理员 PowerShell 中:
```
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
重启电脑。然后:
```
wsl --set-default-version 2
wsl --update
```
### 3. 安装工具链
在管理员 PowerShell 中,切换到包含此 repo 的文件夹:
```
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\install-stack.ps1
```
该脚本使用 `winget`、`npm`、`pip` 以及直接从 GitHub 下载来安装 Ghidra。已安装的工具会被跳过。
注销并重新登录一次,以便新的 PATH 条目在新的 shell 中生效。
### 4. 启动 Docker Desktop
从“开始”菜单打开 Docker Desktop。首次启动时,它会要求使用 WSL2 后端——请接受。等待直到左下角显示“Engine running”。
如果 Docker Desktop 报告“Virtualization not detected”,但 `systeminfo` 显示有 hypervisor:请打开 Docker Desktop 设置,关闭再打开“Use the WSL 2 based engine”开关,然后应用。
### 5. 启动 Ollama
如果 Ollama 尚未在系统托盘中运行,请启动它:
```
ollama serve
```
保持该 shell 打开,或者直接从“开始”菜单启动 Ollama 应用程序——随后它将作为托盘服务运行。
验证:
```
ollama list
```
### 6. 拉取模型
在第二个 PowerShell 中:
```
.\pull-models.ps1
```
这将下载大约 90 GB 的数据。具体时间取决于带宽。
### 7. 启动容器栈
在 repo 文件夹中:
```
docker compose up -d
```
这将在端口 3000 上启动 Open WebUI,在 4000 上启动 LiteLLM,在 8888 上启动 SearXNG。
### 8. 配置 Open WebUI
1. 打开 。
2. 注册第一个账户(将成为管理员)。
3. Settings → Connections → Ollama:`http://host.docker.internal:11434`。
4. Settings → Documents → Embedding model:`nomic-embed-text`。
5. 可选:Settings → Web Search → 启用 SearXNG。
### 9. 配置 CLI 工具
将 OpenAI 兼容 endpoint 设置为 LiteLLM:
```
[Environment]::SetEnvironmentVariable("OPENAI_BASE_URL", "http://localhost:4000/v1", "User")
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-local-master", "User")
```
打开一个新的 shell,然后:
```
aider --model openai/qwen2.5-coder:32b
opencode --model openai/deepseek-r1:32b
```
## 用于审计
Repository 在 [`audit-prompts/`](audit-prompts/) 中提供了 prompt 模板:
- `security-audit-system-prompt.md` — 设置风格和方法的 system prompt
- `decompile-and-analyze.md` — 针对二进制 / .NET 目标的具体工作流
- `report-template.md` — 最终报告骨架
典型运行流程:
1. 将目标软件放入工作目录中。
2. 使用 `ilspycmd` 进行反编译(适用于 .NET)或在 Ghidra 中打开(适用于原生代码)。
3. 运行 `decompile-and-analyze.md` 中的模式搜索。
4. 打开一个加载了 system prompt 的聊天,在 Open WebUI 中将源码/反编译目录树作为知识库附加。
5. 迭代发现结果,要求验证,并在有用的情况下构建 PoC。
6. 使用模板撰写报告。
## 限制
这些是真实情况,而非营销话术:
- 本地 32B 模型可以发现明显的漏洞类型(硬编码密钥、弱加密、未验证的 endpoint、注入模式)。它会遗漏多文件结构性问题——例如在 runtime 编译其 `