rnveternal/sc-access-auditor

GitHub: rnveternal/sc-access-auditor

开源 CLI 工具,审计 EVM 智能合约的访问控制风险——所有权、多签、Timelock 与代理可升级性,覆盖 60+ 链。

Stars: 1 | Forks: 0

# 🛡️ sc-access-auditor **究竟是谁在控制你的智能合约 —— 这种控制权有多容易被窃取?** _由 **RNVETERNAL** 驱动_ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](package.json) [![Status](https://img.shields.io/badge/status-v1%20active-blue)]()
## 解决的问题 大多数审计工具会扫描合约的*代码*以查找漏洞 —— 重入攻击、溢出、 未检查的调用。这很重要。但数据讲述了另一个故事: 年复一年,Web3 最大的损失并非来自高明的漏洞利用 —— 而是源于**谁掌握了密钥**。一个被盗用的单一所有者钱包。 一个实际上是 1-of-3 的“多签”。一个无人审查的 可升级代理。没有 timelock,使得恶意更改在零预警的情况下 立即生效。 Slither、Mythril 和 Foundry 的内置检查基本不涉及 这一层。**sc-access-auditor 专门负责 —— 并且只负责这件事。** 范围虽小, 但专心做好这一项工作。 ## 为什么使用它 - ⚡ **30 秒分诊,而不是 3 周的审计。** 将它指向任何已部署的 地址,在几秒钟内获得风险评分 —— 在你存入资金之前, 在集成之前,在投资之前。 - 🔍 **检查真正导致损失的层面。** 所有权模式、 多签阈值、timelock 的存在、代理可升级性 —— 这些正是 现实中绝大多数 Web3 安全事件背后的核心类别。 - 🧩 **适用于任何已部署的合约,无论是否经过验证。** 代理检测 直接读取原始的 EIP-1967 存储槽 —— 无需 ABI。经过验证的 源码(通过 Etherscan)是锦上添花,而非先决条件。 - 🌐 **一个工具,支持 60 多条链。** Etherscan 统一的 V2 API 意味着 Ethereum、 BSC、Polygon、Arbitrum 以及其他数十条链都可以通过单个 API 密钥支持。 - 📦 **零锁定。** 免费开源,采用 MIT 许可证。将其作为 CLI 使用, 或将其作为库 `import` 到你自己的工具/CI pipeline 中。 - 📤 **对 CI/CD 友好的输出。** 直接导出为 JSON 或 CSV,用于 仪表板、监控 pipeline,或在交易达成前留下记录。 如果你是**部署合约的 dev**、进行尽职调查的**投资者**, 或是**在集成前审查协议的 DAO** —— 这 是你应该运行的第一款工具,在进行深入审计之前。 ## 安装 ``` git clone https://github.com/rnveternal/sc-access-auditor.git cd sc-access-auditor npm install cp .env.example .env # fill in at least one RPC URL ``` ## 用法 ``` node src/cli.js scan 0xYourContractAddress --chain ethereum # 导出结果以替代(或伴随)terminal report node src/cli.js scan 0xYourContractAddress --chain ethereum --format json --out report.json node src/cli.js scan 0xYourContractAddress --chain ethereum --format csv --out report.csv ``` 或作为库使用: ``` import { auditContract } from "./src/index.js"; const result = await auditContract("0xYourContractAddress", "ethereum"); console.log(result.risk.level, result.risk.score); ``` 完整示例请参见 `examples/scan-example.js`。 ## 检查内容 (v1) - **所有权模式** — 合约是否暴露了 `owner()`、`admin()` 或 类似方法,以及该地址是单一钱包 (EOA) 还是智能合约? - **多签设置** — 如果所有者是智能合约,它是公认的 Gnosis Safe 吗,其签名者阈值是多少? - **Timelock** — 在 admin 操作 生效之前,是否有延迟(以及公开的可见时间窗口)? - **代理可升级性 (EIP-1967)** — 合约是否为可升级 代理,如果是,允许替换新逻辑的账户是 EOA、 多签,还是无法识别的合约? - **源码验证(可选)** — 如果设置了 `ETHERSCAN_API_KEY`,则检查 合约源码是否已在相关的区块 浏览器上验证(通过 Etherscan 统一的 V2 API —— 一个密钥即可覆盖 Ethereum、BSC、 Polygon、Arbitrum 及其他 60 多条链)。 - **综合风险评分 (0–100)**,附带 HIGH/MEDIUM/LOW/MINIMAL 评级以及 具体发现列表。 完整方法论:[`docs/RISK_SCORING.md`](docs/RISK_SCORING.md) 已知的局限性也在其中记录说明 —— 这是一款快速分诊工具, 不能替代全面的手动审计。 ## 路线图 v1 是免费且开源的(本仓库)。计划推出 v2 高级版,用于 持续监控和实时警报 —— 详情 请参见 [`docs/ROADMAP.md`](docs/ROADMAP.md)。 ## 许可证 MIT

RNVETERNAL

标签:MITM代理, Web3, 区块链, 文档结构分析, 智能合约, 自定义脚本