返回部落格

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

Code Auditing
2022年11月1日
閱讀約 3 分鐘

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

我們也歡迎您提交 Issues 和 PRs。

關於 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

訂閱最新動態
Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇
Security Insights

Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇

2026年9月24日,攻擊者利用第三方安全產品漏洞,獲取內部憑證並偽造提款指令,導致約3.875億美元從Bitget部分營運錢包(涵蓋Ethereum、其他EVM網絡、XRP Ledger、Zcash及TRON)轉出;私鑰及冷錢包未受影響。本文深入梳理事件路徑與資金流向,分析快速轉換為原生資產及生態恢復應對,提出機構縱深防禦框架,並說明授權區塊鏈滲透測試如何驗證跨層假設。

約1130萬美元損失:Multicall Router、Nostra|BlockSec Weekly
Security Insights

約1130萬美元損失:Multicall Router、Nostra|BlockSec Weekly

本報告涵蓋2026/09/14至2026/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至2026/09/13,探討兩起造成約3.2億美元損失的安全事件,包括前份報告未提及、發生於2026/09/06的Liquid Network漏洞事件。較大者為該Liquid Network漏洞:Elements中的rangeproof驗證快取藉由雜湊四個欄位(其中兩個長度可變)串接而成金鑰,且未標示欄位邊界,導致某輸出的驗證結果被錯誤套用至另一個未經檢驗證明的輸出,使攻擊者得以憑空創造4,000枚無擔保L-BTC,並將幾乎全數兌回比特幣。在橫跨BNB Smart Chain、Ethereum與Rootstock的Symbiosis跨鏈橋比特幣路徑中,讀取比特幣存款的鏈下程式碼從存款人可自行控制的欄位取得其身份,並在未檢查手續費是否為負值的情況下自存款中扣除,使330聰的存款鑄造出`46,116,860,184.27388234 syBTC`;其須賣出所經之資金池僅有11.26 syBTC,致使流動性提供者與用戶損失約9.97 BTC(約77萬美元)。

Web3 最佳安全審計方

在上線之前驗證設計、程式碼與業務邏輯,對標業內最高安全標準。

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