Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

cosmos-vulnerability-scanner

Cosmos SDKのブロックチェーンモジュールおよびCosmWasmコントラクトを対象に、チェーン停止・資金損失・ステート分岐といったコンセンサスクリティカルな脆弱性をスキャンします。コアパターン25種・IBC16種・EVM10種・CosmWasm3種に対応し、カスタムx/モジュールの監査、IBCインテグレーションのレビュー、ローンチ前のチェーンセキュリティ評価時に活用できます。SDK v0.53.x向けに更新済み。

description の原文を見る

Scans Cosmos SDK blockchain modules and CosmWasm contracts for consensus-critical vulnerabilities — chain halts, fund loss, state divergence. 25 core + 16 IBC + 10 EVM + 3 CosmWasm patterns. Use when auditing custom x/ modules, reviewing IBC integrations, or assessing pre-launch chain security. Updated for SDK v0.53.x.

SKILL.md 本文

Cosmos Vulnerability Scanner

目的

Cosmos SDK モジュールおよび CosmWasm コントラクトをスキャンして、チェーンハルト、コンセンサス障害、資金喪失を引き起こす脆弱性を検出します。複数の脆弱性カテゴリを専門とするスキャンエージェントを並列実行し、各エージェントの検出結果をメインスキルに返し、メインスキルがそれらを個別のマークダウンファイルとして出力ディレクトリに書き込みます。

出力ディレクトリ: デフォルトは .bughunt_cosmos/ です。ユーザーがプロンプトで別のディレクトリを指定した場合は、それを使用します。

使用するべき場面

  • Cosmos SDK モジュール(カスタム x/ モジュール)の監査
  • CosmWasm スマートコントラクトのレビュー
  • Cosmos チェーン起動前のセキュリティ評価
  • チェーンハルト事象の調査

使用してはいけない場面

  • Cosmos SDK なしの純粋な Solidity/EVM 監査 — Solidity 特化ツールを使用してください
  • CometBFT コンセンサスエンジン内部 — このスキルは SDK モジュール対象であり、コンセンサスレイヤー自体ではありません
  • ブロックチェーンコンテキストなしの一般的な Go コードレビュー
  • コンセンサスクリティカルでない Cosmos SDK アプリケーションロジック(例:CLI コマンド、REST エンドポイント)
  • カスタム SDK モジュールがないチェーン上の CosmWasm コントラクトのみの監査 — CosmWasm チェックリスト項目のみを使用してください

本質的な原則

  1. コンセンサスパスが最優先 — バグがチェーンハルト/資金喪失に該当するのは、それがコンセンサスクリティカルな実行パス(BeginBlock、EndBlock、FinalizeBlock、msg_server ハンドラ、AnteHandler)上にある場合のみです。常にコンセンサスから到達可能であることを確認してから報告してください。
  2. 状態分岐 = チェーンハルト — 検証者が異なる状態ルートを計算させる非決定的な動作は、チェーンをハルトさせます。これは最高重要度のクラスです。すべての検証者が同時に影響を受けるためです。
  3. バージョンを確認 — Cosmos SDK はメジャーバージョン間で破壊的変更があります(v0.47 では GetSigners 削除、v0.50 では ABCI 2.0 追加、v0.53 では ValidateBasic 非推奨化)。パターンを適用する前に常に go.mod バージョンを確認してください。
  4. 誤検知は監査時間を浪費 — CLI コマンド内のマップイテレーションはコンセンサスバグではありません。クエリハンドラ内のパニックはチェーンをハルトさせません。フラグを立てる前に実行コンテキストを検証してください。
  5. クロスモジュール相互作用にバグは隠れている — 最も重大な検出結果(IBC リエントランシー、EVM/Cosmos 状態不同期、authz 昇格)は、単一モジュール内のバグではなく、モジュール間の相互作用に関わるものです。

スキャンワークフロー

フェーズ 1:探索(同期)

入力: ユーザーが提供するターゲットコードベースパス。コードベースには Go ソース(例:x/ モジュール、go.mod)または cosmwasm_std を含む Rust コントラクトが含まれます。

同期サブエージェント(Agent ツール)を実行し、DISCOVERY.md の完全な内容をそのプロンプトとして使用します。エージェントは以下を実施する必要があります:

  1. Discovery ワークフローに従い、ターゲットコードベースを調査
  2. レスポンスで CLAUDE.md の完全な内容(技術インベントリと脅威モデル)を返す
  3. 以下のフィールドを持つ構造化サマリーを返す:
PLATFORM: pure-cosmos | evm | wasm        (1つを選択; 複数の場合はカンマ区切り)
IBC_ENABLED: true | false
SDK_VERSION: <go.modのバージョン>
IBC_GO_VERSION: <go.modのバージョン、またはn/a>
CUSTOM_MODULES: <x/*モジュールのカンマ区切りリスト>

サブエージェントが返した後、あなた(メインスキル)が CLAUDE.md をターゲットリポジトリのルートに書き込みます。そのパスと探索値を保存 — これらがフェーズ 2 に供給されます。

出力: CLAUDE.md がメインスキルにより書き込まれます。PLATFORM、IBC_ENABLED、SDK_VERSION、IBC_GO_VERSION、CUSTOM_MODULES がキャプチャされました。

フェーズ 2:並列脆弱性スキャン

スキャンエージェントを単一メッセージでスポーン(最大並列性のため)。以下の Agent Prompt Template を使用し、各エージェントの参照ファイルを入力します。サブエージェントは読み取りアクセスのみ必要(Grep、Glob、Read)— 検出結果をレスポンスで返し、メインスキルがファイルを書き込みます。

常にこれら 3 つのエージェントをスポーンします:

エージェント名参照ファイルスコープ
core-scannerVULNERABILITY_PATTERNS.md§1-9: 非決定性、ABCI、署名者、検証、ハンドラ、ante セキュリティ
state-scannerSTATE_VULNERABILITY_PATTERNS.md§11-23: 簿記、バンク、ページング、イベント、トランザクション リプレイ、ガバナンス、算術、エンコーディング、非推奨モジュール
advanced-scannerADVANCED_VULNERABILITY_PATTERNS.md§24-27: ストレージキー、コンセンサス検証、サーキットブレーカー、暗号

条件付きでスポーン(同じ並列メッセージで):

エージェント名条件参照ファイル
evm-scannerPLATFORM に evm が含まれるEVM_VULNERABILITY_PATTERNS.md
ibc-scannerIBC_ENABLED が true であるIBC_VULNERABILITY_PATTERNS.md
cosmwasm-scannerPLATFORM に wasm が含まれるCOSMWASM_VULNERABILITY_PATTERNS.md

Agent Prompt Template

{REFERENCE_FILE_PATH} を参照ファイルへの完全パス({baseDir}/resources/ 下)に、{CLAUDE_MD_PATH} をフェーズ 1 で書き込まれた CLAUDE.md へのパスに置き換えて、各エージェントのプロンプトを構成します:

Cosmos SDK コードベースの特定の脆弱性パターンについて、非常に徹底的なセキュリティスキャンを実行してください。

コンテキスト:
{CLAUDE_MD_PATH} を読み取り、コードベースコンテキスト(SDK バージョン、モジュール、脅威モデル、キーファイル)を確認してください。

パターン:
{REFERENCE_FILE_PATH} を読み取ります — 番号付き脆弱性パターンが含まれます。各パターンについて:
1. 検出パターンと「確認する項目」を読み取る
2. Grep と Glob を使用してターゲットコードベースで各パターンを検索
3. マッチが見つかったら、周辺コードを読み取り、それがコンセンサスクリティカルパス(BeginBlock、EndBlock、FinalizeBlock、msg_server ハンドラ、AnteHandler)上にあることを確認
4. 以下のガイドラインに従い重要度を分類

ルール:
- コンセンサスパスのみ:コンセンサスクリティカルな実行から到達可能なコードのみフラグを立てます。CLI/クエリ/テストコードは検出結果ではありません。
- パターンを適用する前に go.mod の SDK バージョンを確認してください(v0.47 では GetSigners 削除、v0.50 では ABCI 2.0 追加、v0.53 では ValidateBasic 非推奨化)。
- 常に Grep ツールを使用してください。bash grep ではなく、参照ファイルに含まれる検索パターンを直接 Grep ツールで使用します。
- 他のリソースファイルへのクロスリファレンスは無視してください(例:IBC または COSMWASM パターンへのリンク)。それらのパターンは他のスキャンエージェントでカバーされます。
- これらの言い訳を棄却します:
  - 「ValidateBasic がキャッチする」— SDK v0.53 以降非推奨かつ任意的
  - 「ガバナンスの背後にあるため安全」— ガバナンス提案は悪意のあるものになり得る
  - 「IBC カウンターパーティは信頼できる」— すべてのチェーンがチャネルを開くことができる
  - 「パニックは起きない、入力は検証される」— 完全な呼び出し チェーンをトレースしてください
  - 「丸め誤差はわずかなトークン」— 時間経過で複合化し、ループで増加可能
  - 「EVM プリコンパイルがロールバック処理」— 多くは不完全なロールバック

重要度:
- Critical(資金喪失):署名者不一致、壊れた簿記、AnteHandler バイパス、バンクキーパー誤用、IBC トークン インフレーション、EVM/Cosmos 不同期、マークルプルーフ偽造、算術オーバーフロー
- High(チェーンハルト):非決定性、ABCI パニック、低速 ABCI、非決定的 IBC ack、コンセンサス ギャップ、CacheContext イベント リーク
- Medium(DoS):無制限ページング、トランザクション リプレイ、検証欠落、ガバナンス スパム、レート制限、サーキットブレーカー バイパス、ストレージキー衝突
- Low(ロジック):丸め誤差、スタブ ハンドラ、イベント オーバーライド、モジュール順序付け

出力 — 返却フォーマット:
ファイルを書き込まないでください。すべての検出結果とサマリーをレスポンスで返してください。

各パターンについて、以下のいずれかを返してください:
  §NUM PATTERN_NAME: Not applicable — [1行の理由]
  §NUM PATTERN_NAME: FINDING(以下の検出結果ブロックに続く)

各検出結果について、以下のテンプレートを使用した完全なコンテンツを含めてください:

FINDING_FILE: {SEVERITY}-s{SECTION_NUM}-{kebab-description}.md
## [SEVERITY] タイトル
**場所**: `file:line`
**説明**: バグは何で、なぜ重要なのか
**脆弱なコード**: [スニペット]
**攻撃シナリオ**: [番号付きステップ]
**推奨事項**: 修正方法
**参考資料**: [関連アドバイザリまたは building-secure-contracts へのリンク]

参照ファイル内のすべてのパターンについて報告する必要があります — スキップしないでください。

出力: すべてのスキャンエージェントが返却されました。各エージェントが参照ファイル内のすべてのパターンについて報告しました。

フェーズ 3:検出結果の書き込み

すべてのスキャンエージェントが返却された後、出力ディレクトリ(デフォルト .bughunt_cosmos/)に検出結果ファイルを書き込みます:

  1. 各エージェントのレスポンスから FINDING_FILE: ブロックを解析
  2. 各検出結果について、{OUTPUT_DIR}/{filename} に内容を書き込み(FINDING_FILE: から取得したファイル名を使用)
  3. 存在しない場合は出力ディレクトリを先に作成

フェーズ 4:完全性の確認

すべての検出結果を書き込んだ後、すべてのパターンが評価されたことを確認します:

  1. 各エージェントが返却したサマリーラインを集約(§NUM エントリ)
  2. 期待値に対するパターン数を確認:
    • core-scanner: 8 パターン(§1-9、§8 レガシーのみを除外)
    • state-scanner: 13 パターン(§11-23)
    • advanced-scanner: 4 パターン(§24-27)
    • evm-scanner(スポーン時): 10 パターン(§1-10)
    • ibc-scanner(スポーン時): 16 パターン(§1-16)
    • cosmwasm-scanner(スポーン時): 3 パターン(§1-3)
  3. サマリーからパターンが欠落している場合は、フラグを立てそのエージェントに再度プロンプトします
  4. *.md に対する Glob を使用して、出力ディレクトリに書き込まれたすべての検出結果ファイルを一覧表示

出力: すべてのパターンが説明されました。検出結果ファイルはユーザーに一覧表示されました。


成功基準

  • Discovery CLAUDE.md が完全な技術インベントリと脅威モデルで書き込まれた
  • すべてのスキャンエージェントが完了し、参照ファイル内のすべてのパターンについて報告
  • パターン数が期待値に対して検証(スキップされたパターンなし)
  • すべての検出結果が出力ディレクトリに個別のマークダウンファイルとして書き込まれた
  • 各検出結果ファイルに以下を含む:重要度、場所、脆弱なコード、攻撃シナリオ、推奨事項

リソース

  • Discovery & CLAUDE.md: DISCOVERY.md
  • コアパターン(§1-9): VULNERABILITY_PATTERNS.md
  • 状態 & モジュールパターン(§11-23): STATE_VULNERABILITY_PATTERNS.md
  • アドバンスパターン(§24-27): ADVANCED_VULNERABILITY_PATTERNS.md
  • IBC 脆弱性: IBC_VULNERABILITY_PATTERNS.md
  • CosmWasm 脆弱性: COSMWASM_VULNERABILITY_PATTERNS.md
  • EVM 脆弱性: EVM_VULNERABILITY_PATTERNS.md
  • Building Secure Contracts: building-secure-contracts/not-so-smart-contracts/cosmos/
  • Cosmos SDK ドキュメント: https://docs.cosmos.network/
  • CodeQL for Cosmos SDK: https://github.com/crypto-com/cosmos-sdk-codeql

ライセンス: CC-BY-SA-4.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
trailofbits
リポジトリ
trailofbits/skills
ライセンス
CC-BY-SA-4.0
最終更新
不明

Source: https://github.com/trailofbits/skills / ライセンス: CC-BY-SA-4.0

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: trailofbits · trailofbits/skills · ライセンス: CC-BY-SA-4.0