solidity-auditor について
solidity-auditorは、スマートコントラクトのレビュアー向けSolidity監査スキルです。バージョン別のチェック項目を用いて、セキュリティ、ガス、ストレージ、アーキテクチャを確認し、所見を整理します。
主な機能
- 01依頼に応じた監査範囲の選択
- 02Solidityバージョン別の脆弱性確認
- 03ガスとストレージの最適化レビュー
- 04アーキテクチャと攻撃対象の評価
- 05重要度別の所見整理
活用シーン
- 01コントラクトの脆弱性確認
- 02ガスやストレージの改善点調査
- 03DeFiプロトコルの構成レビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ schwepps/ skills --skill solidity-auditorインストール後、Claude Code で/solidity-auditorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/architecture-review.mdgas-optimization.mdreport-template.mdsecurity-checklist.mdstorage-optimization.mdversion-specific.md詳細
Solidity スマートコントラクト監査
セキュリティ脆弱性、ガス最適化、ストレージパターン、コードアーキテクチャを対象とする、プロフェッショナル水準のスマートコントラクト監査スキルです。Solidity のバージョン固有の仕様に合わせて調整されています。
監査の種類
ユーザーのリクエストに基づいて、監査の種類を判断します。
| ユーザーのリクエスト | 監査の種類 | 主なリファレンス |
|---|---|---|
| 「全面監査」「包括的なレビュー」 | 全面監査 | すべてのリファレンス |
| 「セキュリティ監査」「脆弱性スキャン」 | セキュリティ重視 | references/security-checklist.md |
| 「ガス最適化」「ガスコストの削減」 | ガス最適化 | references/gas-optimization.md |
| 「ストレージ最適化」「ストレージパターン」 | ストレージ最適化 | references/storage-optimization.md |
| 「コードレビュー」「アーキテクチャレビュー」 | アーキテクチャレビュー | references/architecture-review.md |
| 「DeFi 監査」「プロトコルレビュー」 | DeFi プロトコル | セキュリティとアーキテクチャのリファレンス |
監査の基本ワークフロー
フェーズ 1:準備
-
Solidity のバージョンを特定する:pragma 文を確認します。バージョン固有の考慮事項については、
references/version-specific.mdを読みます。- 0.8.0 より前:SafeMath の使用状況と算術演算の脆弱性を確認します
- 0.8.0 以降:
uncheckedブロックを確認し、カスタムエラーの使用状況をチェックします
-
対象範囲を把握する:
- すべてのコントラクト、インターフェース、ライブラリを列挙します
- 外部依存関係(OpenZeppelin など)を特定します
- 継承階層を確認します
- エントリーポイント(external/public 関数)を記録します
-
コンテキストを収集する:提供されていない場合は、以下を確認します。
- プロトコルの目的と意図された動作
- デプロイ先のチェーン
- 想定されるユーザーフロー
- 管理者の役割と権限
フェーズ 2:静的解析
-
セキュリティチェックリストのパターンを使って、頭の中で自動チェックを実施します。
- アクセス制御のパターン
- 状態を変更する操作のフロー(チェック・効果・相互作用)
- 外部呼び出しのパターン
- 算術演算(特に
uncheckedブロック内)
-
攻撃対象領域をマッピングします。
- External/public 関数
- ETH/トークンを扱う関数
- アクセス制御のある関数
- アップグレードの仕組み
フェーズ 3:脆弱性評価
references/security-checklist.md を読み、各カテゴリを評価します。
最優先(最初に確認):
- アクセス制御の脆弱性(OWASP SC-01) - 損失額は 9億5300万ドル超
- ロジックエラー(OWASP SC-02) - 損失額は 6400万ドル超
- 再入可能性(OWASP SC-03) - 損失額は 3600万ドル超
高優先度: 4. フラッシュローン攻撃の手段(OWASP SC-04) 5. 入力検証(OWASP SC-05) 6. オラクル操作(OWASP SC-06) 7. 未チェックの外部呼び出し(OWASP SC-07)
中優先度: 8. 整数のオーバーフロー/アンダーフロー(バージョンによる) 9. サービス拒否の攻撃手段 10. フロントランニングの脆弱性
フェーズ 4:最適化の分析(リクエストがあった場合)
ガス最適化の場合:references/gas-optimization.md を読みます
ストレージ最適化の場合:references/storage-optimization.md を読みます
フェーズ 5:レポートの作成
references/report-template.md のテンプレートを使用して、指摘事項をまとめます。
深刻度の分類
| 深刻度 | 基準 | 対応 |
|---|---|---|
| Critical | ユーザーの操作なしで資金損失が発生する可能性がある | 直ちに修正が必要です。デプロイしないでください |
| High | 特定の条件下で資金損失が発生する可能性があり、影響が大きい | デプロイ前に必ず修正してください |
| Medium | 影響が限定的で、悪用される可能性が低い、またはガバナンス上の問題がある | 修正し、リスクを評価してください |
| Low | 軽微な問題、ベストプラクティスへの違反 | 修正を推奨します |
| Informational | コード品質、ガス最適化、提案事項 | 任意の改善です |
クイックリファレンス:主な攻撃ベクトル(2024~2025年)
OWASP Smart Contract Top 10(2025年)から、実際の損失額を示します。
- アクセス制御($953.2M):修飾子の欠落や誤り、管理者関数の公開
- ロジックエラー($63.8M):ビジネスロジックの欠陥、計算の誤り
- リエントランシー($35.7M):外部呼び出し後の状態更新
- フラッシュローン($33.8M):価格操作、ガバナンス攻撃
- 入力検証($14.6M):境界チェックの欠落、パラメーターの未検証
- オラクル操作($8.8M):TWAP 操作、古い価格情報
出力ガイドライン
必ず以下を記載してください。
- 明確な検出事項のタイトルと深刻度
- 場所:コントラクト名、関数、行番号
- 説明:問題の内容
- 影響:想定される影響
- 概念実証:悪用される方法(該当する場合)
- 推奨事項:コード例を含む具体的な修正方法
可能な場合は、実行可能なコード変更として推奨事項を記載してください。
参照ファイル
監査の種類に応じて、必要なファイルを読み込んでください。
references/security-checklist.md- 検出パターンを含む、脆弱性チェックリストの全項目references/gas-optimization.md- ガス最適化の手法とパターンreferences/storage-optimization.md- ストレージレイアウトと最適化references/architecture-review.md- コードアーキテクチャのベストプラクティスreferences/version-specific.md- Solidity のバージョンに関する考慮事項references/report-template.md- プロフェッショナルな監査レポートのテンプレート