返回博客

Rustle:NEAR社区首个自动化审计工具

Code Auditing
2022年11月1日

我们很高兴发布 Rustle —— BlockSec 为 NEAR 社区提供的首个自动化审计工具。

Rustle 具有以下优点:

  • Rustle 目前可以检测 NEAR 合约中 20 多种类型的漏洞。请参阅“检测器”部分获取完整的检测器列表。
  • Rustle 易于使用。我们提供了详细的安装命令和教程。此外,我们还为用户准备了 Docker,以便快速上手。
  • Rustle 非常快速,大多数 NEAR 合约分析可以在 3 分钟内完成。
  • Rustle 用户友好,报告格式支持 CSV 和 JSON。我们还提供了一个脚本,帮助您将结果导入 Notion。

检测器

Rustle 可以检测的所有漏洞。详细文档可在此处找到。

检测器 ID 描述 严重程度
unhandled-promise 检测未处理的 Promise 高
non-private-callback 回调函数缺少 #[private] 宏 高
reentrancy 查找易受重入攻击的函数 高
unsafe-math 算术运算缺少溢出检查 高
self-transfer 缺少发送方 != 接收方的检查 高
incorrect-json-type 参数或返回值中使用错误的类型 高
div-before-mul 由于操作顺序不正确导致的精度损失 中
round 未指定 ceil 或 floor 的四舍五入 中
lock-callback 回调函数中的 panic 可能导致合约被锁定 中
yocto-attach 特权函数中缺少 assert_one_yocto 中
prepaid-gas ft_transfer_call 中缺少预付费 gas 检查 低
non-callback-private 在非回调函数中使用 #[private] 宏 低
unused-ret 函数结果未被使用或检查 低
upgrade-func 合约中没有升级函数 低
tautology 条件分支中使用重言式 低
inconsistency 使用相似但略有不同的符号 低
timestamp 查找所有时间戳的使用 信息
complex-loop 查找所有具有复杂逻辑的循环,可能导致 DoS 信息
ext-call 查找所有跨合约调用 信息
promise-result 查找所有 promise 结果的使用 信息
transfer 查找所有转账操作 信息

如何使用

我们使用 Rustle 分析了一个流行的 NEAR 合约(例如 LiNEAR)。命令已在 Ubuntu 20.04 LTS 中进行测试。

  1. 按照 GitHub 页面上的安装手册进行操作。如果您想使用 Docker,请跳过此步骤,直接转到 Docker 手册。

  2. 准备要让 Rustle 分析的 NEAR 合约。

     git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR
    
  3. 通过运行 ./rustle 开始分析。

     ./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear
    
  1. 在 audit-result/summary.csv 中检查报告
  1. 您可以指定要使用的检测器或严重性组。

./rustle -h 查看详细信息。

示例:

./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear -d high,medium,complex-loop

额外说明

Rustle 可用于开发过程,以迭代方式扫描 NEAR 智能合约。这可以节省大量手动工作并减轻部分潜在问题。但是,复杂逻辑或与语义相关的问题仍然是 Rustle 的局限性。定位复杂的语义问题需要 BlockSec 的专家进行全面细致的审查。请联系我们进行审计服务。

也欢迎提交 Issue 和 Pull Request。

关于 BlockSec

BlockSec 是一家开创性的区块链安全公司,由一群享誉全球的安全专家于 2021 年创立。公司致力于提高新兴 Web3 世界的安全性和可用性,以促进其大规模采用。为此,BlockSec 提供智能合约和 EVM 链安全审计服务、用于安全开发和主动威胁拦截的 Phalcon 平台、用于资金追踪和调查的 MetaSleuth 平台,以及用于 Web3 构建者在加密世界中高效冲浪的 MetaSuites 扩展。

迄今为止,公司已为 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap 等 300 多家知名客户提供服务,并在两轮融资中从 Matrix Partners、Vitalbridge Capital 和 Fenbushi Capital 等知名投资者处获得了数千万美元的投资。

官方网站:https://blocksec.com/

官方 Twitter 账号:https://twitter.com/BlockSecTeam

订阅最新动态
Bitget 3.875亿美元链下漏洞事件:不止于密钥与合约
Security Insights

Bitget 3.875亿美元链下漏洞事件:不止于密钥与合约

2026年9月24日,攻击者利用第三方安全产品漏洞,获取内部凭证并伪造提现指令,导致Bitget部分运营钱包资金转出约3.875亿美元,涉及以太坊、其他EVM网络、XRP Ledger、Zcash和TRON,私钥及冷钱包未受影响。本文梳理事件路径与资金流向,分析资产快速转换及生态恢复应对,提出机构纵深防御体系,并说明授权区块链渗透测试如何验证跨层安全假设。

损失约1130万美元:Multicall Router、Nostra | BlockSec Weekly
Security Insights

损失约1130万美元:Multicall Router、Nostra | BlockSec Weekly

本报告覆盖2026/09/14至09/20,分析以太坊与Starknet上两起共约1130万美元损失的安全事件。较大一起中,多重调用路由器将自身地址当作调度目标,致嵌套调用以路由器已授权身份而非外部调用者身份进入Safe钱包的Gateway模块,约2900个aEthrsETH被转入攻击者创建的Uniswap v4池。Starknet上,Nostra预言机仅需一个聚合来源,三个价格源中仅两个参与聚合时,被操纵的浅池报价与正常报价平均,使NSTR估值约49.52美元,支持约350万美元超额抵押借贷。

~3.2亿美元损失:Liquid Network、Symbiosis 遭利用攻击 | BlockSec
Security Insights

~3.2亿美元损失:Liquid Network、Symbiosis 遭利用攻击 | BlockSec

本报告覆盖2026/09/07-09/13,分析两起共损失约3.2亿美元的安全事件,含此前未覆盖的Liquid Network于09/06遭利用事件。较大事件中,Elements的rangeproof验证缓存因字段拼接无分隔符导致验证结果错配,攻击者伪造4000枚无支撑L-BTC并几乎全部兑出。Symbiosis跨链桥比特币路线因手续费未做负值校验,330聪存款铸造出46,116,860,184.27388234 syBTC,流动性池仅存11.26 syBTC,致约970万美元损失(约9.97 BTC)。

Web3 最佳安全审计方

在上线之前验证设计、代码与业务逻辑,对标业内最高安全标准。

BlockSec 审计