Noshadi-sec/IVF

GitHub: Noshadi-sec/IVF

一个基于 LLM 的多 Agent 安全测试平台,通过模拟企业安全团队层级架构,自动化协调 47 个专家 Agent 执行 SAST、DAST 及网络漏洞扫描任务。

Stars: 0 | Forks: 0

# IVF - 智能漏洞发现器 一个**多 Agent、基于 LLM 的安全测试平台**。CISO 统筹管理 Directors,Directors 指挥 Team Leads,Team Leads 指挥 47 个专家 Agent。每个 Agent 都是一个 LLM 分析师,负责决定运行哪个真实的安全工具,执行它,并 解读输出结果——LLM 是**大脑**,真实的扫描器是**肌肉**。 运行在 **Claude、GPT、Gemini 或免费的本地模型 (Ollama)** 上。你可以通过 CLI 或一个包含四个页面的本地 Web 仪表板来驱动它,在那里你可以构建、调整和管理 整个团队。 ![tests](https://img.shields.io/badge/tests-130%20passing-brightgreen) ![python](https://img.shields.io/badge/python-3.10%2B-blue) ![license](https://img.shields.io/badge/license-MIT-green) ## 目录 - [功能介绍](#what-it-does) - [团队架构(组织架构图)](#the-team-47-agents) - [安装说明](#install) - [快速开始 - 仪表板](#quickstart---dashboard) - [快速开始 - CLI](#quickstart---cli) - [团队管理(Team 标签页)](#managing-the-team-team-tab) - [LLM 提供商(包含免费的 Ollama)](#llm-providers) - [成本管理](#managing-cost) - [学习机制:知识、记忆与共享大脑](#learning--knowledge-memory-the-shared-brain) - [配置说明](#configuration) - [测试报告](#reports) - [开发与测试](#development-and-tests) - [项目结构](#project-layout) ## 功能介绍 - **SAST** - 审计源代码(`sast`、`secrets`、`deps`)和 IaC(`terraform`、 `kubernetes`、`container`)。 - **DAST + 网络** - 探测正在运行的应用/主机:侦测、端口/服务/漏洞 扫描、DNS/子域名/邮件安全、全面的 **OWASP Top 10** 和全面的 **OWASP API Security Top 10**,外加一个安全的漏洞利用/验证团队。 - **分析** - 分类评估、战略建议、威胁情报 (CWE/CVE/MITRE)、 修复路线图,以及一个 **Blue-team 安全官**。 - **持续学习** - 知识库 (RAG)、长期记忆、持久的 活动图谱、可查询的共享大脑 (SQLite),以及一个自我改进的 **Coach**。 - **全面管理** - 在仪表板上,你可以开启/关闭组织架构的任何部分, 编辑任何 Agent 的任务,添加你自己的自定义 Agent/团队/Boss,并通过调度指令来引导 经理和 Directors。 ## 团队架构 (47 个 Agent) ``` CISO (Super Boss - runs the whole engagement, always on) |- Offensive Director (Boss) | |- recon (Manager) : passive_recon, content_discovery | |- network : port_scan, service_enum, vuln_scan, template_scan, | | web_infra, subdomain_enum, dns_recon, email_security, | | smb_enum, waf_detect, tls | |- web-owasp (A01-A10) : access_control, crypto, injection, xss, design, | | misconfig, components, auth, integrity, logging, ssrf | |- api-security (API1-10) : bola, auth, bopla, resource, bfla, | | business_flow, ssrf, misconfig, inventory, unsafe_consumption | |- exploitation : validator, exploit_chain |- Code & Supply-Chain Director (Boss) | |- code-audit : sast, secrets, deps | |- cloud-iac : terraform, kubernetes, container |- Analysis & Advisory Director (Boss) |- analysis : triage, advisor, threat_intel, remediation, safety_officer ``` 这是内置的阵容;你可以在 **Team** 标签页上添加自己的 Agent、团队和 Directors。设计详情请参阅 [ARCHITECTURE.md](ARCHITECTURE.md)。 ## 安装说明 ``` python3 -m venv .venv && source .venv/bin/activate pip install -e . # installs the package + deps + the `ivf` / `ivf-web` commands cp .env.example .env # optional: put your ANTHROPIC_API_KEY here ``` 可选:运行 `pip install -e ".[embeddings]"` 以启用语义 RAG,运行 `".[dev]"` 用于测试。 外部扫描器是可选的 CLI 工具——Agent 会检测已安装的工具,并可以 按需安装受信任白名单中的工具(`nmap`、`semgrep`、`sqlmap`、`nuclei`、 `nikto`、`whatweb`、`ffuf`、`testssl.sh`、`trufflehog`、`trivy`、`checkov`、 `subfinder`)。 ## 快速开始 - 仪表板 ``` ivf-web # auto-picks a free port; open the URL it prints ``` 使用 **Ctrl+C** 停止它——而不是 Ctrl+Z(Ctrl+Z 只是将其挂起并继续占用 端口)。重启时,`ivf-web` 会停止之前运行的任何 IVF 服务器并重新使用 8000 端口; 传入 `--keep-others` 可以让它们继续运行,或者传入 `--port N` 来指定端口。 仪表板有四个页面(顶部标签页): - **Console** - 操作页:连接和保存的密钥、授权范围、目标、运行 选项(带有悬停提示)、实时监控器,以及实时发现的漏洞。点击 某个成员以定义其任务。 - **Classroom** - 团队的所有知识:教授论文、运行 Coach, 以及浏览/阅读/编辑/下载/删除知识库和团队在运行过程中学到的经验教训。 - **Library** - 运行结果:浏览、下载(按文件或按目标的 .zip,或全部下载)和删除报告(按目标、按运行:MD/JSON/SARIF),以及 活动历史记录。 - **Team** - 组织架构图。开启/关闭任何层级(Agent、Manager、Boss);编辑 任何 Agent 的任务;添加/重命名/删除你自己的自定义 Agent、团队和 Boss;并 为 Manager/Boss 提供调度指令。 典型流程: 1. **连接** - 选择一个提供商,粘贴密钥(Ollama 则不需要),设置一个 **预算上限**,然后保存。保存的密钥列在下方;点击其中一个可以切换 提供商,或点击垃圾桶图标将其删除。 2. **授权范围** - 输入一个你被授权测试的目标,然后点击授权。 3. **目标** - 输入相同的 URL/主机(或源代码路径),然后开始测试。 4. 观察成员状态亮起;随时暂停/停止;漏洞发现和花费会实时更新。 5. 打开 **Library** 下载报告,或打开 **Classroom** 进行教学/训练。 **安全演示目标:** `docker run -p 3000:3000 bkimminich/juice-shop`,然后 授权 `http://localhost:3000`。 ## 快速开始 - CLI ``` ivf --list-agents # the whole org chart (no key) ivf --source ./examples --target http://localhost:3000 --plan # dry-run routing ivf --source ./examples # SAST run (needs a key) ivf --target http://localhost:3000 # DAST + network run ``` ## 团队管理(Team 标签页) Team 标签页是一个实时的组织架构图,在每个层级都有完全的控制权: | 层级 | 开启/关闭 | 指令 | 编辑任务(专业方向 + 指令) | 重命名 | 删除 | |---|---|---|---|---|---| | **Boss** (Director) | 是 | 是 | - (协调者) | 仅限自定义 | 仅限自定义 | | **Manager** (Team lead) | 是 | 是 | - (协调者) | 仅限自定义 | 仅限自定义 | | **Agent** (Member) | 是 | - | 是(内置的保留工具;可重置) | - | 仅限自定义 | - **开启/关闭** - 禁用整个分支或单个 Agent;它将不再运行。 - **定义任务** - 点击任何成员(在此处或在 Console 上)打开一个弹窗并 编辑其**专业方向**(它负责寻找什么)和**指令**(它应该如何 工作)。内置 Agent 保留其预先绑定的扫描器,并且可以重置为默认状态; 自定义 Agent 完全由你自由编辑和删除。 - **调度指令** - 给 Manager 或 Boss 一个指示(例如“只发送 API Agent 到 REST endpoint,跳过 Web Agent”)。它引导 Manager 调度哪些 Agent, 并作为上下文向下传递给各个 Agent。 - **构建你自己的团队** - 添加自定义的 Boss、团队和 Agent。自定义 Agent 运行 相同的 Agent 循环,并获得与 内置专家相同的共享工具(知识、记忆、漏洞发现、安装工具)。 ## LLM 提供商 在仪表板中切换“大脑”(或在设置中修改 `llm.provider`): | 提供商 | 密钥 | 成本 | 备注 | |---|---|---|---| | **Claude** (Anthropic) | `ANTHROPIC_API_KEY` | 付费 | 默认,质量最佳 | | **OpenAI / GPT** | `OPENAI_API_KEY` | 付费 | gpt-4o, gpt-4o-mini | | **Gemini** | `GEMINI_API_KEY` | 免费额度,超出后付费 | gemini-2.0-flash | | **Ollama** (本地) | 无 | **免费** | 在你的机器上运行 | **使用 Ollama 免费无限运行:** ``` brew install ollama && ollama pull llama3.1:8b ``` 然后在仪表板中:提供商 -> Ollama -> 选择模型 -> 保存。花费保持在 **$0.00**。(本地模型能力较弱;请使用支持工具调用的模型,如 `llama3.1:8b` 或 `qwen2.5`。非常适合免费开发;在最终测试时请切换回 Claude/Gemini。) ## 成本管理 - **预算上限** (`engagement.max_usd`,以及仪表板上的输入框) - 硬性 USD 上限;达到上限时 Agent 将停止。运行进度条显示 `tokens . calls . $spent / $cap`。 - **降低成本的调节选项:** 使用更小的模型(`claude-haiku-4-5`、`gpt-4o-mini`),更低的 `effort`,更少的 `max_iterations`,Manager 的调度指令(减少调度的 Agent), 在 Team 标签页上关闭 Agent,或保持增量重新扫描开启。 - **免费:** Ollama。 ## 学习机制 - 知识、记忆与共享大脑 - `search_knowledge` - Agent 读取 `knowledge/`(你教授的 playbook 和论文)。 - `remember` - Agent 将持久的经验教训保存到 `knowledge/memory/`。 - `campaign_graph` - 跨测试活动持久的拓扑/漏洞发现记忆。 - **共享大脑** (`state/ivf.db`, SQLite) - 每一个漏洞发现、经验教训和资产都会 映射到一个可查询的数据库中。在运行期间,Agent 会调用 `query_findings` (“队友是否已经发现了这个?”)和 `search_memory`(“团队以前学过 这个吗?”),以便它们实时协作并**跳过会消耗 更多额度的工作**。在一个目标上学到的技术可以立即应用到 下一个目标上。Classroom 和 Library 可以浏览所有这些内容。 - **Coach** - 回顾一次测试活动并重写 playbook,以便团队下次测试得 更好。手动运行它(Classroom -> 立即训练团队),或者在 Console 运行选项中开启 **Auto-train**,使其在每次测试活动后运行。 ## 配置说明 - **`config/scope.yaml`** - 授权边界(主机、CIDR、URL 前缀、源代码路径)。请先编辑此文件。 - **`config/settings.yaml`** - 提供商/模型/effort、预算上限、 默认启用哪些团队/Agent、并行度、安全门控、增量扫描、 自动训练,以及知识库/状态/报告目录。 数据目录始终解析为项目根目录,因此无论你从哪里启动服务器,团队都会使用相同的 `knowledge/`、`state/` 和 `reports/`。 ## 测试报告 写入 `reports/`: - `reports//findings.md` + `.jsonl` - 随着漏洞发现的产生,**实时**、按站点更新。 - `reports//report-*.md` - 针对特定目标的最终报告。 - `reports/report-*.{md,json,sarif}` - 合并的测试活动报告(用于 CI 的 SARIF)。 从 Library 标签页浏览、下载并删除所有这些内容。 ## 开发与测试 ``` pip install -e ".[dev]" pytest # 130 tests, no key/network needed ruff check src tests ``` CI 在推送时运行两者 (`.github/workflows/ci.yml`)。有关添加 Agent/工具/团队/提供商的信息,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 项目结构 ``` src/ivf/ core/ ciso . director . team_lead . agent . analyst . coach . custom_org llm . providers/ . budget . control . scope . findings graph . db (shared brain) . live_report . events . message . parallel tools/ base . report_finding . safety_gate . knowledge . retrieval db . network . web . code . api . recon . findings . graph . system teams/ recon . network . web_owasp . api_security . exploitation code_audit . cloud_iac . analysis . reporting web/ server (FastAPI) + static dashboard (console/classroom/library/team) cli.py config/ scope.yaml . settings.yaml knowledge/ playbooks + memory (the classroom) state/ ivf.db (shared brain) . campaign.json . keys.json . org.json [gitignored] tests/ pytest suite ``` ## 作者 由 **Amirhossein Noshadi** 设计和构建 — 这是一个端到端架构的多 Agent LLM 系统: 包含 CISO -> Directors -> Team Leads -> 47 个专家的层级结构,一个 与提供商无关的模型循环(Claude / GPT / Gemini / Ollama),一个持久的 SQLite“共享大脑”,带有模型分层且针对单次活动的成本上限,确定性的 漏洞发现整合和严重性校准,以及一个实时的 Web 控制台。 - 电子邮件:**amir.noshadi.1994@gmail.com** - LinkedIn: 欢迎探讨**安全工程和应用 AI/LLM 相关职位**以及合作机会。 如果这个项目对你的团队有用,或者你希望对其进行调整或扩展,请与我联系。 ## 许可证 MIT - 详见 [LICENSE](LICENSE)。请负责任地使用;请参阅 [SECURITY.md](SECURITY.md)。
标签:DAST, DLL 劫持, SAST, 图数据库, 多智能体, 大语言模型, 安全测试, 实时处理, 密码管理, 恶意软件分析, 插件系统, 攻击性安全, 盲注攻击, 自动化渗透测试, 逆向工具