near-contract-audit について
Rust製NEARスマートコントラクト向けのセキュリティ監査スキルです。監査担当者やコーディングエージェントが自動解析と手動レビューを行い、重要度別に指摘事項をまとめられます。
主な機能
- 01一般的な脆弱性パターンのスキャン
- 02ビジネスロジックとアクセス制御のレビュー
- 03指摘事項の悪用可能性の評価
- 04重要度別の監査レポート作成
- 05脆弱性検出器のリファレンス
活用シーン
- 01NEAR Rustコントラクトのセキュリティ監査
- 02スキャン結果が実際の脆弱性か検証
- 03指摘事項の修正案を作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ near/ agent-skills --skill near-contract-auditインストール後、Claude Code で/near-contract-auditを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/high-severity.mdlow-severity.mdmedium-severity.md詳細
NEAR コントラクトの監査
Rust 製の NEAR スマートコントラクト向けセキュリティ監査スキルです。
監査ワークフロー
フェーズ 1:自動分析
お好みの Rust 静的解析ツールと NEAR に特化したセキュリティツールをコントラクトに対して実行し、次の項目を確認します。
- よくある脆弱性パターン(再入可能性、安全でない算術演算、未処理のプロミス、アクセス制御の問題など)をスキャンします
- さらに詳しい手動レビューが必要となる可能性のある危険なパターンを特定します
フェーズ 2:手動レビュー
自動分析の後、次の項目を手動でレビューします。
- ビジネスロジックの脆弱性
- アクセス制御のパターン
- 経済的な攻撃ベクトル
- コントラクト間の安全な連携
フェーズ 3:コード固有の分析
各検出事項について、次の項目を確認します。
- 誤検知ではないか?
- 悪用可能性はどの程度か?
- 推奨される修正方法は何か?
フェーズ 4:レポートの作成
検出事項を、深刻度、該当箇所、説明、修正方法とともに記録します。
脆弱性クイックリファレンス
| 深刻度 | 検出器 ID | 説明 |
|---|---|---|
| 高 | non-private-callback | コールバックに #[private] マクロがありません |
| 高 | reentrancy | コントラクト間呼び出し後に状態が変更されています |
| 高 | incorrect-argument-or-return-types | JSON インターフェースでネイティブ整数型を使用しています |
| 高 | unsaved-changes | コレクションの変更が永続化されていません |
| 高 | owner-check | 呼び出し元/所有者の検証がありません |
| 高 | yocto-attach | 機密性の高い関数で assert_one_yocto がありません |
| 高 | storage-collision | 異なるコレクションで同じストレージプレフィックスを使用しています |
| 高 | required-initialization-macro | 初期化メソッドに #[init] がありません |
| 中 | gas-griefing | 上限のないループによって DoS が発生する可能性があります |
| 中 | insecure-random | ブロックデータから予測可能な乱数を生成しています |
| 中 | prepaid-gas | コールバック用に予約されるガスが不十分です |
| 低 | cover-storage-cost | ストレージ預託金の検証がありません |
| 低 | unsafe-math | オーバーフローチェックのない算術演算 |
| 低 | float-math | 金融計算に浮動小数点型を使用しています |
参考ファイル
コード例を含む脆弱性の詳細なドキュメントについては、次を参照してください。
- high-severity.md - 重大な脆弱性(8 個の検出器)
- medium-severity.md - 中程度の脆弱性(4 個の検出器)
- low-severity.md - 低深刻度の検出事項(3 個の検出器)
コメント
Markdown 対応