cairo-vulnerability-scanner
作成者 trailofbitscairo-vulnerability-scanner は、felt252 の算術エラー、L1-L2 メッセージングの不具合、アドレス変換のバグ、署名リプレイを含む 6 つの重大な問題について Cairo/StarkNet スマートコントラクトをスキャンします。StarkNet コントラクトの Security Audit レビューに、この cairo-vulnerability-scanner スキルを使用してください。
このスキルは 78/100 で、Cairo/StarkNet 向けの監査ワークフローを求めるディレクトリ利用者にとって十分に有力な掲載候補です。リポジトリには具体的な脆弱性パターンと使用の手がかりが揃っており、汎用的なセキュリティプロンプトよりも、エージェントが迷わず呼び出して適用しやすくなっています。一方で、導入手順と実行ガイドはまだ弱めで、オンボーディング面の強化余地があります。
- StarkNet/Cairo コントラクト、L1-L2 ブリッジ、署名検証、L1 ハンドラーの監査という明確な用途があり、適切に起動しやすい。
- 本文は十分な分量と構成を備え、6 つの脆弱性パターンとチェックリスト形式の検出ガイダンスにより、エージェントが実務で使える。
- リポジトリの根拠として code fences、repo/file 参照、脆弱性パターン専用の resources ファイルがあり、運用上の明瞭さと信頼性が高い。
- インストールコマンドやセットアップ手順がないため、ディレクトリ利用者はスキルの有効化や組み込み方を自分で判断する必要がある。
- 補助資料は 1 つの resources ファイルに限られ、scripts/tests もないため、エッジケースや自動化重視の運用ではワークフローが十分に完結しない可能性がある。
cairo-vulnerability-scanner skill の概要
cairo-vulnerability-scanner でできること
cairo-vulnerability-scanner skill は、Cairo/StarkNet コントラクトをレビューするときに、一般的な Solidity 風の監査では見落としやすいプラットフォーム固有のセキュリティ問題を洗い出すための skill です。felt252 の算術ミス、L1-L2 メッセージングのリスク、アドレス変換の問題、署名リプレイなど、6 つの重要パターンに焦点を当てています。
どんな人に向いているか
StarkNet アプリ、ブリッジコード、Cairo コントラクトロジックの Security Audit を行うなら、cairo-vulnerability-scanner skill が向いています。すでにコントラクトファイルが手元にあり、より深い手動解析に入る前に、まず狙いを絞った脆弱性レビューを行いたい場合に特に有効です。
何が違うのか
価値は単に「バグをスキャンする」ことではなく、「Cairo 特有のバグをスキャンする」ことにあります。このエコシステムでは、目立つ再入可能性や一般的なアクセス制御よりも、型の選び方、クロスレイヤー前提、ハンドラロジックに起因する失敗が多いからです。既知の Cairo リスクパターンを、素早く構造化されたチェックリストで見たいときに最も力を発揮します。
cairo-vulnerability-scanner skill の使い方
インストールして、対象範囲を正しく絞る
Trail of Bits の skills パッケージにある cairo-vulnerability-scanner install の流れを使い、実際にレビューしたいリポジトリ、またはコントラクトのサブセットに適用します。主な入力は Cairo ソース、特に .cairo ファイルです。加えて、StarkNet の挙動に関わるブリッジ、ハンドラ、署名検証モジュールも対象に含めてください。
曖昧な依頼ではなく、セキュリティレビューとして指示する
良いプロンプトでは、対象のコントラクト領域、信頼境界、気にしている論点を明示します。たとえば、「この Cairo StarkNet モジュールを、L1 handler の誤用、felt252 の算術問題、署名リプレイリスクの観点で監査してください。外部到達可能な関数とメッセージ検証に重点を置いてください」といった形です。「脆弱性をチェックして」よりもこちらのほうが、6 つの想定パターンにスキャンを誘導できます。
先に読むべきファイル
まず SKILL.md を開いて想定ワークフローを確認し、次に resources/VULNERABILITY_PATTERNS.md で具体的な検出ロジックと緩和策を確認します。リポジトリにサポートファイルが 1 つしかない場合は、実コードに適用する前にそのファイルを読むのが先です。
スコープを絞ったワークフローで進める
最初に見るべきなのはコントラクトの入口です。外部関数、コンストラクタ、#[l1_handler] 関数から始めてください。次に、残高まわりの算術、felt252・ContractAddress・EthAddress 間の変換、そしてコントラクト外部から受け取るメッセージや署名を処理するロジックを確認します。この順番は、cairo-vulnerability-scanner が高価値な問題を素早く見つけるよう設計されている流れに合っています。
cairo-vulnerability-scanner skill FAQ
これはすべてのスマートコントラクト向けか
いいえ。cairo-vulnerability-scanner skill は Cairo と StarkNet コントラクト向けであり、一般的な EVM 監査向けではありません。コードベースの大半が Solidity だったり、オフチェーンの Rust サービスだったりするなら、得られる価値は小さいでしょう。
Cairo を十分に知らなくても使えるか
基本的な理解があれば有利ですが、Cairo 特有の失敗モードを確認するためのガイド付き Security Audit の出発点として、初心者にも十分役立ちます。特に、アプリケーションの流れは分かっているものの、Cairo 固有の落とし穴をどう確認すべきか迷う場合に有効です。
通常のプロンプトとどう違うのか
通常のプロンプトは、表面的な問題を拾うだけで終わることがよくあります。cairo-vulnerability-scanner skill は、既知の StarkNet の弱点に対して再現性のあるレビュー枠組みを提供するため、見落としを減らし、監査結果をコントラクト間で比較しやすくします。
使わないほうがよいのはいつか
本番リリース前の唯一のレビュー手段として使うべきではありません。また、リポジトリに Cairo コントラクトがない場合も使わないでください。これは焦点を絞ったスキャナであり、完全な形式検証や脅威モデリングの代替ではありません。
cairo-vulnerability-scanner skill を改善する方法
監査内容を左右するコントラクトの文脈を与える
最も良い入力は、コントラクトの役割、リスクのある資産、クロスレイヤーの経路を明示しています。たとえば、「このブリッジ入金コントラクトは L1 メッセージを受け取り、StarkNet 上で mint する。リプレイ、アドレス変換、handler 検証を確認してほしい」といった形です。ファイル名だけを並べるよりもはるかに有効で、どの脆弱性パターンが重要かを skill に伝えられます。
具体的なデータ型と信頼前提を明記する
Cairo で起きやすいバグを左右する型や不変条件を含めると、結果がよくなります。felt252 の計算、残高ストレージ、u256 変換、ContractAddress の扱い、署名方式などです。コントラクトが単調増加の nonce、メッセージの一意性、上限付き金額を前提にしているなら、それも明示してください。
初回の指摘を踏まえて反復する
最初のパスで怪しい算術やメッセージ処理が見つかったら、その箇所だけに絞った再レビューを依頼し、観察結果だけでなく exploit path まで求めてください。たとえば、「この 2 つの関数を、replay または underflow の悪用可能性の観点で確認し、最小修正案を示してください」といった指示です。こうしたほうが、全体を同じ条件で回し直すよりも、cairo-vulnerability-scanner usage の結果が実務に使いやすくなることが多いです。
適切なリポジトリの切り出しを渡す
混在言語の巨大な monorepo 全体を送るよりも、関連する .cairo ファイルだけを分離して渡したほうが、出力は確実に良くなります。cairo-vulnerability-scanner for Security Audit で最もシグナルが高いのは、コントラクトファイル、handler モジュール、そしてアドレス、署名、クロスレイヤー payload を変換する補助コードです。
