Back to Blog

Rustle:NEAR 社群首個自動化審計工具

Code Auditing
November 1, 2022
3 min read

我們很高興發布 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 缺少 sender != receiver 的檢查
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 的專家進行詳盡且徹底的審查。如有審計需求,請聯繫我們。

我們也歡迎您提交 IssuesPRs

關於 BlockSec

BlockSec 是一家開創性的區塊鏈安全公司,由一群全球知名的安全專家於 2021 年創立。公司致力於增強新興 Web3 世界的安全性和可用性,以促進其大規模採用。為此,BlockSec 提供智慧合約與 EVM 鏈的安全審計服務、用於安全開發與主動威脅封鎖的 Phalcon 平台、用於資金追蹤與調查的 MetaSleuth 平台,以及協助 Web3 開發者在加密世界中高效探索的 MetaSuites 擴充功能。

迄今為止,公司已服務超過 300 家知名客戶,如 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap,並從 Matrix Partners、Vitalbridge Capital 和分佈式資本(Fenbushi Capital)等頂尖投資人處獲得兩輪數千萬美元的融資。

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

官方 Twitter 帳號:https://twitter.com/BlockSecTeam

Sign up for the latest updates
電子報 - 2026年6月
Security Insights

電子報 - 2026年6月

本月報告涵蓋2026年6月三起最大安全事件,確認損失合計約2200萬美元。一次精密蜜罐攻擊利用未受檢查的代幣授權,從JaredFromSubway的MEV機器人抽走約1500萬美元。兩個舊版Aztec rollup部署因證明結算邊界漏洞損失約435萬美元。SecondFi的Ed25519實現缺陷暴露錢包私鑰,導致374個錢包共損失約240萬美元。三起事件共同模式:表面完整但從未真正執行的安全保證。

~$400萬損失:Taiko、SecondFi遭攻擊 | BlockSec週報
Security Insights

~$400萬損失:Taiko、SecondFi遭攻擊 | BlockSec週報

本週區塊鏈安全報告涵蓋2026年6月22-28日兩起重大事件,以太坊和Cardano確認損失約410萬美元。Taiko橋接漏洞結合了外洩的SGX飛地簽名密鑰與不完整的認證策略,未能拒絕調試飛地,使攻擊者註冊惡意證明者並偽造L2狀態證明。SecondFi錢包漏洞源於Ed25519隨機數派生中的密碼學實現缺陷,移除了秘密輸入,可從Cardano公開交易數據離線恢復私鑰。

~$18M損失:jaredFromSubway、Aztec及更多 | BlockSec每週快報
Security Insights

~$18M損失:jaredFromSubway、Aztec及更多 | BlockSec每週快報

本週區塊鏈安全報告涵蓋2026年6月15日至21日,以太坊與BNB Chain共發生3起重大事件,總損失約1830萬美元。重點分析兩起事件:jaredFromSubway事件揭示反向授權攻擊模式——MEV機器人主動將資產授權給不可信第三方合約套利,攻擊者構造假包裝代幣與交易池,發出真實事件但從未消耗授權額度,損失約1500萬美元。Aztec三日內第二次漏洞:逃生艙ZK電路中`old_data_root`兩個見證值缺少相等約束,致使攻擊者可用偽造Merkle樹證明虛假票據所有權並通過鏈上驗證。

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit