gesh75/argus
GitHub: gesh75/argus
Argus 是一款默认只读、由 fail-closed 防护栏驱动的智能体式 AI 渗透测试工具,通过证据链推理在安全可控的前提下发现多步攻击路径。
Stars: 1 | Forks: 0
▶ Open the live architecture site · ▶ Watch the demo
# Argus       大多数“AI 渗透测试”工具只是在扫描器上外挂了一个聊天机器人:它们运行线性的检查清单并做总结。**Argus 的构建方式恰恰相反** —— 每个动作首先都会经过一个 7 层的 fail-closed 防护栏,一个 agent loop 会根据已有的证据决定接下来运行什么,而一个确定性引擎会将发现链接成多步攻击路径。其结果是,它既足够安全,可以在受监管的系统附近运行;又足够智能,能够发现检查清单遗漏的内容。 ## 为什么需要它 如果你曾见过“AI 安全工具”在没有证据的情况下幻觉出一个严重发现,或者因为可能造成破坏而拒绝在生产环境附近运行——这就是它的解药。 - **Agent 提出建议,防护栏进行处理。** 规划器选择的每一步都会被防护栏重新授权:范围、工具防火墙、预算、审计。自主性永远无法逃脱授权的 CIDR、武装一个 exploit,或触及被拒绝的工具——无论模型如何“推理”。 - **默认只读。** 没有 exploitation、凭证爆破、写入或 DoS。凭证检查仅使用 null/guest/audit-mode。唯一能发出超出侦察范围动作的组件——PoC 验证器——被三重限制在隔离实验环境中。 - **没有证据就没有发生。** 每个攻击路径都被标记为 `proof: observed`(每个链接都有收集到的证据支持)或 `proof: theoretical`(合理的,但尚未演示)。没有静默的猜测。 - **你的数据保留在原处。** 可切换的 AI 大脑:云端的 Claude、本地的 Ollama(数据安全,$0),或者完全离线的启发式引擎,它无需网络即可始终运行。 - **防篡改。** 每次授权 / 执行 / 拒绝都被写入 HMAC-SHA256 链式审计日志中;`argus audit` 可以重放并验证整个链条。 ## 工作原理 ``` targets ─▶ guardrail ─▶ sandbox ─▶ collectors ─▶ AI triage ─▶ chain reasoning ─▶ report (fail- (internal (network·host (Haiku→ (observed | (CSV·MD· closed) Docker) ·AD·web) Sonnet) theoretical) JSON) ▲ │ └────────────── agentic re-plan loop ◀──────────────┘ observe → decide next action → AUTHORIZE → collect → repeat ``` Agent 只会提出接下来要运行的 profile;防护栏会在任何操作执行之前对其进行授权。正是这条规则使得自主性在敏感网络中变得安全。 ## 架构 ``` flowchart TD OP["🎛️ Operator Console — CLI + FastAPI GUI"] --> GR subgraph GR["🛡️ Guardrail — 7 layers, fail-closed"] direction LR G1[Scope guard] --> G2[Tool firewall] --> G3[Arg hygiene] --> G4[Budget/time] --> G5[HMAC audit] --> G6[Output sanitizer] end GR --> SB["📦 Sandbox — internal Docker net, argv-only exec"] SB --> CO["🔬 Collectors, read-only — network · Linux/SSH · Windows/WinRM · AD/LDAP · web"] CO --> EN["✨ Enrichment — shadow-AI · segmentation · cred-exposure"] EN --> AI["🧠 AI triage to correlation — Claude · Ollama · offline"] AI --> CH["🔗 Chaining engine — proof: observed or theoretical"] CH --> RP["📊 Report — CSV · Markdown · JSON"] AI -. re-plan .-> PL["🤖 Planner loop"] PL -. next action .-> GR ``` ## Agentic Loop ``` flowchart LR O["observe — evidence set"] --> D["decide — next read-only profile"] D --> A{"🛡️ guardrail authorize?"} A -- denied --> X["skip + audit"] A -- allowed --> C["collect in sandbox"] C --> R{"new evidence? budget? depth?"} R -- continue --> O R -- stop --> F["chain + report"] X --> R ``` ## 功能特性 | 领域 | Argus 的功能 | |---|---| | 🌐 **Network** | 跨越 9 个 profile 的 16 个只读工具 —— nmap、masscan、nuclei、sslscan、whatweb、enum4linux-ng、smbmap、snmp、ldapsearch | | 🐧 **Host · Linux** | 授权的 SSH 审计 —— SUID/GTFOBins、NOPASSWD sudo、弱 sshd、world-writable、Lynis | | 🪟 **Host · Windows** | WinRM 审计 —— SMB signing、AlwaysInstallElevated、unquoted services、WDigest、UAC、LAPS | | 🗂️ **Active Directory** | 匿名 LDAP 枚举 —— RootDSE 泄露、null-bind、user enum | | 🕸️ **Web / API** | 精选的只读探测 —— `.env`、`.git`、actuator、Swagger/OpenAPI surface | | 🧩 **Segmentation** | 标记从用户 VLAN 可达的数据库 / 管理 / 目录层面 | | 🤖 **Shadow-AI** | 发现不受管控的本地 LLM/notebook —— Ollama、Jupyter、Gradio、vLLM、vector DB | | 🔑 **凭证暴露** | 检测 GPP cpassword、暴露的凭证 —— 报告**路径**,从不报告凭证 | | 🔗 **链式推理** | 确定性决策树推导出带有证据标注的多步攻击路径 | ## 为什么与众不同 | | 典型的“AI 扫描器” | **Argus** | |---|---|---| | 安全模型 | 运行,然后祈祷 | **fail-closed 防护栏授权每一个动作** | | 自主性 | 线性检查清单 | **Agent 根据证据重新规划,依然受防护栏约束** | | 发现结果 | 孤立的,通常未经验证 | **链式攻击路径,标记为 observed/theoretical** | | AI 隐私 | 仅限云端 | **Claude · 本地 Ollama · 完全离线** | | Exploitation | 默认主动 | **只读;PoC 被三重限制在隔离实验环境中** | | 可审计性 | 可能有日志 | **HMAC 链式,防篡改,自我验证** | ## 快速开始 ``` cd aegis python3 -m venv .venv && . .venv/bin/activate && pip install -r requirements.txt export PENTEST_AUDIT_HMAC_KEY=$(openssl rand -hex 32) # required — refuses to run unaudited # 可选 AI:export ANTHROPIC_API_KEY=… 或 export AEGIS_OLLAMA_MODEL=qwen2.5:7b-instruct # Web console + 动画架构页面 uvicorn aegis.web:app --host 127.0.0.1 --port 8800 # http://127.0.0.1:8800 # 或者使用 CLI python -m aegis scan 172.30.0.10 172.30.0.11 --profile full # network recon + AI python -m aegis web 172.30.0.11 # web/API recon python -m aegis agent 172.30.0.11 --seed network # agentic loop python -m aegis host 172.30.0.20 # Linux host audit python -m aegis ad 172.30.0.21 # AD/LDAP python -m aegis audit # verify the HMAC chain ``` 超出范围或混淆的目标会在任何操作执行之前被拒绝: ``` $ python -m aegis scan 10.0.0.5 --dry-run REFUSED target 10.0.0.5: scope: 10.0.0.5/32 outside allowed scope $ python -m aegis scan 167772165 --dry-run # decimal-encoded 10.0.0.5 REFUSED target 167772165: scope: 10.0.0.5/32 outside allowed scope ``` ## 内置实验环境 一个完全隔离、带有预期漏洞的实验环境,用于安全地测试每个模块 —— 它位于一个 `internal: true` 的 Docker 网络上,**无法路由到主机 LAN 或互联网**(由 `scripts/verify-isolation.sh` 证明)。 ``` targets/ Juice Shop · DVWA · Samba · misconfigured Linux SSH host · anonymous-bind LDAP · Kali attacker frrlab/ simulated 2-router OSPF network (FRR, native arm64) for containerlab scripts/ verify-isolation.sh — proves the lab cannot reach the real LAN/internet ``` ``` cd targets && docker compose up -d LAN_GW=192.168.1.1 ../scripts/verify-isolation.sh # verify isolation FIRST ``` ## 安全态势 ## 测试 72 个通过 —— 防护栏 (21)、agent/chains/planner/PoC (15)、Windows+AD (8)、web 侦察 (8)、侦察模块 (8)、Linux 主机 (6)、启发式 (4)、端到端集成 (2)。 ``` cd aegis && PENTEST_AUDIT_HMAC_KEY=test python -m pytest -q ``` ## 文档 - [`aegis/docs/AGENTIC_ROADMAP.md`](aegis/docs/AGENTIC_ROADMAP.md) —— agentic 设计与模块映射图 - [`aegis/BUILD_AND_TEST_LOG.md`](aegis/BUILD_AND_TEST_LOG.md) —— 完整的构建 + 实时验证记录 - [`aegis/SECURITY.md`](aegis/SECURITY.md) —— 严格的安全态势契约 - **实时页面:** Web 控制台在 `/architecture` 提供动画架构指南Argus · 仅限授权的内部安全测试 · Agent 提出建议,防护栏进行处理
标签:Agent, AI风险缓解, DLL 劫持, Python, 人工智能, 大语言模型, 密码管理, 插件系统, 无后门, 无线安全, 用户模式Hook绕过, 网络安全, 自动化渗透测试, 请求拦截, 逆向工具, 隐私保护
