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 编译其 `