blocksharkcom/blockshark
GitHub: blocksharkcom/blockshark
一款智能合约自主漏洞验证引擎,通过在 Foundry EVM 上生成并执行可工作的 PoC 来证明漏洞的存在,而非仅做风险评估。
Stars: 0 | Forks: 0
# 🦈 BlockShark
**智能合约的自主漏洞验证引擎。**
我们不*评估*风险——我们**证明**风险。
[](https://github.com/blocksharkcom/blockshark/actions/workflows/ci.yml)
[](./LICENSE)
[](https://www.python.org)
[](https://getfoundry.sh)
## 功能介绍
BlockShark 会生成候选的漏洞利用代码,**在 Foundry 的真实 EVM 上执行它**,并让链来决定资金是否实际发生了转移——然后保留第一个有效的漏洞利用(支持 N 中取优及自我修复)。
```
┌──────────┐ Attacker.sol ┌───────────────┐ pass/fail ┌──────────┐
│ generate │ ───────────────▶ │ execute on │ ────────────▶ │ EVM is │
│ (LLM) │ ◀─── self-repair │ Foundry (fork)│ funds moved?│ judge │
└──────────┘ forge output └───────────────┘ └──────────┘
```
由于发现的结果就是一个**有效的概念验证(PoC)**,因此准确率在构建之初就接近 100%。我们优化的指标是**召回率(recall)**——即我们实际捕获了多少可利用的漏洞。每次运行都会打印出我们*自己*的召回率数值,这是实测得出的,而非口头宣称的。
## 为什么与众不同
- **Oracle 由测试框架(harness)控制。** 模型只负责编写 `Attacker` 合约。判定通过/失败的 `require()` 语句位于每个目标的 `template.sol` 中,因此模型**无法伪造成功**——EVM 才是裁判,而不是 LLM。
- **基于执行验证,而非启发式算法。** 与那些只输出概率的风险扫描器(GoPlus、TokenSniffer、QuickIntel)不同,BlockShark 会返回一个可重现的、已转移资金的 PoC——或者什么都不返回。
- **无 runtime 依赖。** 纯标准库测试框架;目标都是自包含的,且 cheatcodes 以内联方式声明。只要安装了 Foundry,它就能运行。
## 快速开始
```
# 前提条件:Foundry (https://getfoundry.sh) 和 Python 3.11+
pip install -e ".[dev]"
# 1. 端到端验证 harness + oracle(无需 API key):
blockshark run --mode mock
# 2. 真正的自主 exploitation:
cp .env.example .env # add your ANTHROPIC_API_KEY
source .env
blockshark run --mode llm --samples 5 --repairs 2 --jobs 4
# 列出 benchmark:
blockshark list
```
## 基准测试
`targets/` 目录中提供了涵盖四类漏洞的五个目标(mock 模式可以 100% 验证全部五个目标——这是 CI 的回归测试门禁):
| 目标 | 漏洞类别 | 漏洞详情 |
|-------------------|----------------------|---------|
| `ether_store` | reentrancy | `withdraw()` 在清零余额前发送了 ETH |
| `shares_vault` | reentrancy | `redeem()` 在 `unchecked` 减少份额前进行了转账 |
| `access_control` | access-control | `setOwner()` 未设权限保护 → 任何人都能夺取所有权并清空资金 |
| `price_oracle` | oracle-manipulation | 依赖可被原子操纵的 AMM 现货价格进行借款 |
| `delegatecall` | delegatecall | 代理合约 `delegatecall` 到调用者提供的目标 → 所有权被劫持 |
## 文档说明
- [`docs/architecture.md`](./docs/architecture.md) — 循环流程、组件以及由测试框架控制的 oracle 设计
- [`docs/adding-targets.md`](./docs/adding-targets.md) — 几分钟内编写一个新目标(包含 mainnet-fork 相关字段)
- [`docs/benchmarking.md`](./docs/benchmarking.md) — 召回率/准确率是如何测量的,以及为什么我们从不宣称“安全”
- [`docs/roadmap.md`](./docs/roadmap.md) — 从当前的 MVP → 推理时搜索 → RLVR → 持续监控
## 项目结构
```
blockshark/ the package: cli · engine · forge_runner · providers · targets · report
src/ vulnerable victim contracts (the benchmark set)
targets/标签:Foundry, Maven, Web3安全, 以太坊, 智能合约审计, 漏洞验证, 自动化利用, 逆向工具