PitoLis/flash-loan-detector
GitHub: PitoLis/flash-loan-detector
一款基于攻击行为模式签名和评分机制的以太坊闪电贷攻击链上实时检测工具。
Stars: 0 | Forks: 0
# Flash Loan Attack Detector
链上闪电贷攻击实时检测器 — 扫描以太坊区块,识别符合已知攻击模式的可疑交易。
## 核心思路
DeFi 安全已从"代码漏洞审计"进入"经济逻辑安全"阶段。闪电贷赋予攻击者零成本、无限资本的原子性武器,将 AMM 数学曲线和协议激励结构的轻微错位放大为确定性套利。
本工具不做代码层面的静态分析,而是**在交易级别识别攻击的行为模式**:
闪电贷借款 → 多协议跳转 → DEX砸盘/拉盘 → 借贷协议套利 → 单区块还款
### 检测的攻击模式
| 模式 | 特征 | 历史案例 |
|------|------|----------|
| 预言机操纵 | flash_loan + dex + lending 三跳 | bZx, PancakeBunny, Cream |
| 治理攻击 | 闪电贷治理代币 → 投票 → 金库转移 | Beanstalk ($182M) |
| 跨链桥铸币 | 闪电贷 + 跨链消息伪造 → 凭空铸币 | Kelp DAO ($292M) |
| 多跳套利 | 3+ DEX 复杂套利路径 | 常态化 MEV |
| 重入+闪电贷 | 闪电贷放大重入攻击资本 | CREAM ($130M) |
## 快速开始
# 1. 安装依赖
pip install -r requirements.txt
# 2. 获取免费 Etherscan API Key
# https://etherscan.io/register → https://etherscan.io/myapikey
# 3. 设置环境变量
export ETHERSCAN_API_KEY=你的APIKEY
# 4. 运行扫描
python main.py # 扫描最近 50 个区块
python main.py --blocks 200 # 扫描最近 200 个区块
python main.py --start 19200000 # 从指定区块开始
python main.py --export findings.json # 导出 JSON 报告
## Demo
### 常规扫描(无告警)
绝大多数区块不包含可疑交易,检测器正常结束:
[SCAN] 扫描区块范围: 25093271 >>> 25093272 (1 个区块)
======================================================================
[BLOCK] Block 25093272: 185 txs, analyzing...
======================================================================
[OK] 未发现可疑交易 — 扫描区块内无可疑闪电贷攻击模式
======================================================================
### 检测到预言机操纵攻击
模拟 bZx 类预言机操纵模式:闪电贷 → DEX 砸盘 → 借贷套利,一笔交易内完成。
[SCAN] 扫描区块范围: 19200000 >>> 19200050 (50 个区块)
======================================================================
[BLOCK] Block 19200034: 212 txs, analyzing...
[ALERT] [75pts] 0xabcd...1234
[!] 闪电贷协议交互: AAVE V3 Pool
[x] 跨协议组合: flash_loan >>> dex >>> lending
[WARN] 闪电贷 + DEX + 借贷 = 预言机操纵风险模式
[TRACE] 协议交互链路:
flash_loan | AAVE V3 Pool | 10000.0000 ETH | 0x87870bca...
dex | Uniswap V3 | 9500.0000 ETH | 0xe592427a...
lending | Compound V3 | 5000.0000 ETH | 0xc3d688b6...
======================================================================
[ALERT] 发现 1 笔可疑交易
======================================================================
#1 [HIGH] 高风险 — 评分: 75/100
交易哈希: 0xabcd...1234
区块号: 19200034
匹配签名: Flash Loan Oracle Manipulation
Etherscan: https://etherscan.io/tx/0xabcd...1234
扫描统计: 1 笔可疑交易
======================================================================
## 评分机制
每笔交易 0-100 分,>=30 分触发告警:
| 规则 | 分值 | 说明 |
|------|------|------|
| 闪电贷协议交互 | +30 | tx 中有已知闪电贷提供者(AAVE、Balancer、Maker 等) |
| 跨协议组合 | +20 | flash_loan + dex / flash_loan + lending |
| 多协议跳转 | +15 | 3 个以上已知协议参与 |
| 预言机风险模式 | +20 | flash_loan + dex + lending 同时出现 |
| 大额资金流 (>1000 ETH) | +25 | 异常资金规模 |
| 中等资金流 (>100 ETH) | +10 | 值得关注 |
## 项目结构
flash-loan-detector/
├── main.py # CLI 入口
├── detector.py # 核心检测引擎(Etherscan API + 评分)
├── config.py # 已知协议地址库(闪电贷/DEX/借贷)
├── signatures.py # 攻击模式签名库
├── requirements.txt
└── README.md
## 扩展方向
- [ ] WebSocket 实时监控(监听 mempool + 新区块事件)
- [ ] 支持更多 EVM 链(BSC, Arbitrum, Polygon)
- [ ] 集成 Phalcon/Tenderly 交易模拟
- [ ] 机器学习异常检测(替代规则评分)
- [ ] Telegram/Discord 告警机器人
## 背景阅读
本工具的理论基础来自 [DeFi 经济安全架构:基于状态机的业务逻辑漏洞与预言机攻击深度拆解](https://www.notion.so/35c2e8ca43a3804a9429ec48ceeca51c?source=copy_link),涵盖了:
- 闪电贷的数学本质(CPAMM 不变量操纵)
- PoW → PoS 时代 TWAP 预言机的安全降级
- STRIDE 威胁模型在 DeFi 中的迁移
....
## License
MIT
标签:CEX/DEX, CISA项目, DeFi安全, Etherscan API, MEV机器人, Python, Web3安全, 交易行为分析, 以太坊监控, 以太坊节点, 区块链安全, 套利检测, 安全态势感知, 文档结构分析, 无后门, 智能合约审计, 模拟器, 资金盘风控, 逆向工具, 链上数据分析, 闪电贷攻击, 预言机操纵, 黑客攻击溯源