BlockSec がNEARコミュニティ向けに提供する初の自動監査ツール、Rustle をリリースできることを大変嬉しく思います。
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 | コールバック関数でのパニックがコントラクトをロックする可能性があります | 中 |
| yocto-attach | 特権関数に assert_one_yocto がありません | 中 |
| prepaid-gas | ft_transfer_call でプリペイドガスのチェックがありません | 低 |
| 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でテスト済みです。
-
GitHubページのインストールマニュアルに従ってください。Dockerを使用したい場合は、これをスキップしてDockerマニュアルに進んでください。
-
Rustleが分析するためのNEARコントラクトを準備します。
git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR -
./rustleを実行して分析を開始します。./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear

audit-result/summary.csvでレポートを確認します。

- 使用する検出器や重要度グループを指定できます。
詳細については、./rustle -hを参照してください。
例:
./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear -d high,medium,complex-loop
もう一つ
Rustleは開発プロセスで使用して、NEARスマートコントラクトを反復的にスキャンできます。これにより、多くの手作業を節約し、潜在的な問題を一部軽減できます。ただし、複雑なロジックやセマンティクスに関連する脆弱性は、依然としてRustleの限界です。複雑なセマンティックな問題を見つけるには、BlockSecの専門家による網羅的かつ徹底的なレビューが必要です。監査サービスについては、お問い合わせください。
BlockSecについて
BlockSecは、2021年に世界的に著名なセキュリティ専門家グループによって設立された、先駆的なブロックチェーンセキュリティ企業です。当社は、Web3の普及を促進するために、新興のWeb3の世界のセキュリティと使いやすさを向上させることに尽力しています。この目的のため、BlockSecはスマートコントラクトとEVMチェーンのセキュリティ監査サービス、セキュリティ開発とプロアクティブな脅威ブロックのためのPhalconプラットフォーム、資金追跡と調査のためのMetaSleuthプラットフォーム、そしてWeb3ビルダーが暗号世界を効率的にサーフィンするためのMetaSuites拡張機能を提供しています。
現在までに、MetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300社以上の著名なクライアントにサービスを提供し、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalなどの著名な投資家から2回の資金調達で数千万米ドルを受け入れています。
公式ウェブサイト:https://blocksec.com/
公式Twitterアカウント:https://twitter.com/BlockSecTeam



