novaondesk/aegis
GitHub: novaondesk/aegis
Aegis 是一个基于漏洞库驱动的智能合约安全审计工具。
Stars: 0 | Forks: 1
# Aegis
**基于漏洞库驱动的智能合约安全审计。**
Aegis 通过将目标合约或协议与精心挑选的 *研究过的、现实世界的 DeFi 漏洞库* 进行比较来评估它们,这样您就可以在攻击者之前发现漏洞并证明修复。每个研究过的漏洞都成为了一个结构化的 **检测器**;审计目标意味着将其与整个库进行扫描,通过可运行的 PoC 证明每个命中,然后发布一个经过证明的修复方案,该方案通过一个 `Safe` PoC 打败了相同的漏洞。两个可组合的代理技能:**`aegis-audit`**(红队)和**`aegis-defender`**(蓝队)。
## 方法(目标 → 发现 → 修复)
```
1. RECON & SCOPE pull source (or decompile via heimdall-rs); pin chain + archetype;
map roles, trust boundaries, value flows
2. SWEEP evaluate the target against EVERY catalog entry whose archetype fits.
Each entry's `applies_when` preconditions + `root_cause` + `variant_queries`
are checked against the code → a coverage table (HIGH/MED/LOW/N-A).
Nothing studied is skipped.
3. REVIEW general engines (state-invariant inference + semantic-guard consistency)
+ the exploit-derived checklists catch novel bugs the catalog doesn't list
4. PROVE Foundry/Anchor/Move PoC that breaks the entry's invariant (vulnerable + safe).
For a *deployed* target, prove on a fork of real state (see sim/) — exploit the
live contract + its real deps; only the attacker is deployed.
5. SCORE & REPORT severity (Immunefi V2.2) + confidence score — lead with the fix
6. PROTECT `aegis-defender` turns each finding into a fix proven by a `Safe` PoC,
and release-gates the deploy/upgrade
```
扫描使得这个过程可重复:“我们已检查了所有 N 个已知漏洞与该目标”是一个覆盖率声明,而不是感觉。请参阅[`catalog/README.md`](catalog/README.md)和[`docs/methodology/prior-art.md`](docs/methodology/prior-art.md),了解 Aegis 与 DeFiHackLabs / QuillShield / Trail of Bits 的比较情况。
## 漏洞库
[`catalog/exploits.yaml`](catalog/exploits.yaml) 是唯一的事实来源。每个条目都将一个真实事件提炼成一个检测器:目标形状它应用的(`archetypes`/`chains`),`applies_when` 预设条件,一个单行的 `root_cause` 声明,`variant_queries` grep-family 检索目标中的错误,`invariant` 破坏,以及深入研究的案例研究、可运行的 PoC 和(如果有的话)DeFiHackLabs 主网分叉重放(`fork_poc`)的链接。
| 漏洞 | 类型 | 链 | 状态 |
|---|---|---|---|
| ERC-4626 share-inflation | SC07/SC02 | EVM | ✅ 编码 PoC |
| 只读重入性(Curve 类) | SC08 | EVM | ✅ 编码 PoC |
| Balancer V2 四舍五入($128M) | SC07 | EVM(6 条链) | ✅ 编码 PoC |
| Cashio 无限铸造($52.8M) | SC05/SC02 | Solana(EVM 模型) | ✅ 编码 PoC |
| Cetus CLMM 溢出($223M) | SC07/SC09 | Sui/Move(EVM 模型) | ✅ 编码 PoC |
| Loopscale 即时价格预言机($5.8M) | SC03/SC02 | Solana(EVM 模型) | ✅ 编码 PoC |
| Loopscale 未验证 CPI($5.8M) | SC03/SC05 | Solana(EVM 模型) | ✅ 编码 PoC |
| Mango 预言机操纵($114M) | SC03/SC02 | Solana(EVM 模型) | ✅ 编码 PoC |
| Beanstalk 治理闪电贷($181M) | SC02/SC04 | EVM | ✅ 编码 PoC |
| Rhea Finance 多跳滑点($18.4M) | SC02/SC07 | NEAR(EVM 模型) | ✅ 编码 PoC |
| cToken 空市场汇率膨胀(~$7M+) | SC07/SC02 | EVM | ✅ 编码 PoC |
| 路由任意调用批准耗尽(Socket/Seneca) | SC05/SC01 | EVM | ✅ 编码 PoC |
| 可升级代理存储槽冲突($6M) | SC01 | EVM | ✅ 编码 PoC |
| 签名重放 + ecrecover 可变 | SC01 | EVM | ✅ 编码 PoC |
| 在特权 fn 上缺少访问控制(PAID) | SC01 | EVM | ✅ 编码 PoC |
| 可预测的链上随机性 | SC09 | EVM | ✅ 编码 PoC |
| 传输费 / 奇怪的 ERC20 会计 | SC02 | EVM | ✅ 编码 PoC |
| MasterChef 奖励债务不同步(双重索赔) | SC02 | EVM | ✅ 编码 PoC |
| 未验证的闪电贷 / 外部回调 | SC05/SC01 | EVM | ✅ 编码 PoC |
| 桥接信用无代码代币存款(Qubit $80M) | SC02 | EVM | ✅ 编码 PoC |
| AMM 对第一存款 / 分享窃取 | SC07 | EVM | ✅ 编码 PoC |
`coded` = 在[`poc/`](poc/)中的可运行 PoC。*(EVM 模型)* = 事件发生在非 EVM 链(Solana/Move/NEAR)上,PoC 在 Solidity 中重现了相同的损坏不变量,因此它在 Foundry harness 中运行;一个本地的 Anchor/Move 端口是后续的保真度跟进。
## 作为代理技能使用
Aegis 作为两个可组合的 [Agent Skills](skills/) 提供:
- **[`aegis-audit`](skills/aegis-audit/SKILL.md)**(红队)——侦察与范围 → 目录扫描 → 状态不变量 + 语义保护引擎 → PoC → 评分报告。
- **[`aegis-defender`](skills/aegis-defender/SKILL.md)**(蓝队)——将发现转化为 **由 `Safe` PoC 证明的修复方案**,以及部署/升级发布门。
将存储库的 `skills/` 目录注册到本地(以便 `../../catalog` 链接解析)——例如,创建符号链接,或将它添加到 Hermes 的 `skills.external_dirs`;请参阅[`skills/`](skills/)。然后请求“审计此合约”/“评估此目标与已知漏洞”(审计)或“修复这些发现”/“这是否可以部署?”(防御者)。
## 工具
扫描通过自动初筛工具加速;完整的景观 + 集成说明请参阅[`docs/methodology/security-tooling-landscape.md`](docs/methodology/security-tooling-landscape.md)。
- **Slither / semgrep**——静态初筛。`tools/slither/`,`tools/semgrep/`(每个提取的模式一个规则)。大多数目录条目都不是静态标记的——预设条件是您如何找到那些的。
- **Foundry (`forge`)**——主要的 PoC + 模糊/不变量 harness。PoCs 存在于 `poc/`。
- **Echidna / Medusa,Halmos / Certora**——属性模糊和符号/形式,在算术/精度类别(SC07)上最强。
- **heimdall-rs**——将未验证的字节码反编译成可审查的伪源代码,用于侦察。
## 存储库布局
| 路径 | 这里有什么 |
|---|---|
| `catalog/` | **漏洞库**——`exploits.yaml`(扫描源)+ 架构 |
| `skills/` | Aegis 作为可加载的代理技能(`aegis-audit` 红队,`aegis-defender` 蓝队) |
| `docs/exploits/` | 深入研究的案例研究——每个事件/类别一个文件 |
| `docs/vuln-classes/` | 分类(OWASP SC Top 10 2026 + X-类别) |
| `docs/methodology/` | 行业实践、工具堆栈、来源 |
| `checklists/` | 漏洞支持的每个类别的审查清单 |
| `tools/` | Slither 配置、semgrep 规则、Foundry 不变量模板 |
| `poc/` | 可运行的 Foundry PoCs——目录模式的简化 *模型*(有漏洞 + 安全 + 测试) |
| `sim/` | **分叉模拟**——在分叉链上攻击 *实际部署的目标*(针对实时目标的 PROVE 阶段);4 个真实事件重放 |
| `ethernaut/` | **对抗演练验证**——Aegis 通过目录扫描解决了 Ethernaut CTF(31/31);请参阅[报告](docs/ethernaut-wargame.md) |
| `research-log/` | 我们研究了什么以及我们发现了什么的日期日志 |
## 贡献(代理与人类)
首先阅读**[`AGENTS.md`](AGENTS.md)**——这是 Nova 和其他代理如何贡献以使工作成倍的合同。核心循环:研究一个漏洞 → 使用可运行的 PoC 进行重现 → 编写案例研究 → **添加目录条目** + 清单项 + 检测器 → 记录。
## 基本规则
- **仅限防御/负责任披露。**我们评估 *范围内的* 奖金目标、公开的总结报告或我们自己的部署——以修复错误。不允许范围外的合约,不允许实时利用。
- 每个声明的发现都需要一个 **可重现的 PoC** 才能计入。
- 每个目录条目都记录了 *为什么* 模式很重要,并附有真实损失——不允许只有理论的条目。
## 状态 — v2.1.0
请参阅[`CHANGELOG.md`](CHANGELOG.md)和[`research-log/`](research-log/)。
- **目录**:34 个漏洞检测器(29 个带有可运行模型 PoC,5 个研究),机器可读 + 代理驱动。v2.0.0 添加了 11 个 DeFiHackLabs 矿工类别;v2.1.0 添加了 Nova 的 5 个 2026 年 5 月研究(3 个编码)和分叉模拟功能;v2.4.0 添加了 4 个对抗演练挖掘的类别(元交易欺骗、ABI 诱骗、强制以太币、DoS 悲剧)。
- **分叉模拟(`sim/`):**在分叉链上针对 *实际部署的目标* 证明发现。4 个真实事件重放通过了主网状态——Socket Gateway(批准耗尽,~656k USDC)、Audius(代理存储冲突,~18.56M AUDIO)、DAO Maker(未受保护的初始化,5.76M DERC)和 Beanstalk(闪电贷治理,~$42M USDC 利润在一个 ~$1B Aave 贷款上)。
- **技能**:`aegis-audit`(红——目录扫描 + 通用引擎 + 评分 PoC 报告,现在带有 Fork-PROVE 模式)和 `aegis-defender`(蓝——由 `Safe` 证明的修复方案,部署/升级发布门)。
- **模式库**:OWASP SC Top 10(2026)分类法;370 项 Solodit EVM 后备;漏洞支持的正面清单,带有原型剧本。
- **下一步**:将分叉模拟指向一个实时范围内的目标(RECON → 扫描 → Fork-PROVE);非 EVM 目标的本地 Solana/Move harness。
标签:可视化界面, 服务器监控, 逆向工具