Agent Skills by ALSEL
Anthropic Claudeビジネス・経営⭐ リポ 0品質スコア 50/100

defi-attack-patterns

DeFiプロトコルにおける攻撃パターンのプレイブック。フラッシュローン攻撃、価格オラクル操作、MEVサンドイッチ攻撃、ガバナンスエクスプロイト、ブリッジ脆弱性、トークン標準のエッジケースを分析する際に活用してください。

description の原文を見る

>- DeFi attack pattern playbook. Use when analyzing flash loan attacks, price oracle manipulation, MEV sandwich attacks, governance exploits, bridge vulnerabilities, and token standard edge cases in decentralized finance protocols.

SKILL.md 本文

SKILL: DeFi Attack Patterns — Expert Attack Playbook

AI LOAD INSTRUCTION: Expert DeFi exploitation techniques. Covers flash loan mechanics, oracle manipulation (spot vs TWAP), MEV extraction (sandwich, JIT, liquidation), precision loss attacks, governance exploits, bridge vulnerabilities, and token standard pitfalls. Base models often miss the single-transaction atomicity constraint of flash loans and the distinction between spot price and TWAP manipulation.

0. RELATED ROUTING

  • smart-contract-vulnerabilities 基礎となる Solidity 脆弱性パターン (reentrancy、integer overflow、delegatecall) の場合
  • deserialization-insecure オフチェーン bridge relayer またはインデクサーインフラストラクチャをターゲットにする場合

1. フラッシュローン攻撃

1.1 仕組み

フラッシュローンは単一トランザクション内での無担保借入を提供します。借入 → 使用 → 返済のサイクル全体がアトミックに完了する必要があります。返済に失敗すると、トランザクション全体が何も起きなかったかのように取り消されます。

プロバイダー最大額手数料
Aave V3アセットごとのプール流動性0.05% (承認されたボロワーは 0 にできる)
dYdXプール流動性0 (内部残高操作を使用)
Uniswap V3ペアごとのプール流動性0.3% (スワップ手数料ティア)
Balancerプール流動性プロトコル設定可能

1.2 価格オラクル操作

1. 100,000 WETH をフラッシュボロー
2. 100,000 WETH → TOKEN を AMM_A でスワップ
   → AMM_A 上で TOKEN のスポット価格が急上昇
3. Lending_Protocol で (AMM_A スポット価格をオラクルとして読む):
   → 少量の TOKEN 担保をデポジット (インフレされた価格で評価される)
   → 大量の WETH をそれに対して借入
4. TOKEN → WETH を AMM_A でスワップ戻す (価格を復元)
5. フラッシュローンを返済 (100,000 WETH + 手数料)
6. Lending_Protocol から借りた WETH を担保コスト分差し引いて保持

重要な洞察: AMM スポット予備金 (getReserves()) を価格オラクルとして使用するプロトコルは脆弱です。TWAP または外部オラクル (Chainlink) を使用する必要があります。

1.3 リエントランシーによるリキッドプール排出

フラッシュボロー → プールにデポジット → コールバック中にリエントランシーをトリガー → デポジット以上の額を引き出す → ローンを返済。

フラッシュローン資本とプール会計ロジックのリエントランシーの組み合わせを悪用します。

1.4 ガバナンストークンのフラッシュボロー

1. ガバナンストークンをフラッシュボロー
2. 悪意あるプロポーザルを作成/投票 (スナップショットまたはタイムロックがない場合)
3. プロポーザルが即座に可決
4. プロポーザルを実行 (財務を排出、管理者変更など)
5. ガバナンストークンを返却

防御: スナップショットベースの投票 (Compound Governor Bravo)、タイムロック、最小提案期間。


2. 価格オラクル操作

2.1 スポット価格 vs TWAP

オラクルタイプ操作コスト時間窓
スポット価格 (getReserves())単一の大規模スワップ (フラッシュローン可能)同一トランザクション
TWAP (時間加重平均)複数ブロック継続操作複数ブロック (高コスト)
Chainlink aggregatorオラクルノードの多数派以上を侵害実質的に不可能

2.2 AMM 操作フロー

通常状態: プールは 1000 ETH + 1,000,000 USDC → 価格 = 1000 USDC/ETH

攻撃:
├── 9000 ETH をプールにスワップ
│   プール現在: 10000 ETH + 100,000 USDC (定数積)
│   スポット価格: 10 USDC/ETH (100倍下落)
├── 依存するコントラクトがこの価格を読み込む
│   → 間違った価格でポジションを清算
│   → または ETH 担保に対する低コスト借入を許可
├── スワップバック: USDC で ETH を購入
│   価格は ~1000 USDC/ETH に復元
└── 純利益 = 依存するコントラクトから抽出された価値 - スワップスリッページ - 手数料

2.3 Chainlink オラクル陳腐化

(, int price, , uint updatedAt, ) = priceFeed.latestRoundData();
// 不足しているチェック:
// 1. price > 0
// 2. updatedAt != 0
// 3. block.timestamp - updatedAt < HEARTBEAT
// 4. answeredInRound >= roundId

オラクルが陳腐な場合 (ネットワーク輻輳、L2 シーケンサーダウン)、価格は数時間古い可能性があります → 陳腐な価格に対するアービトラージ。

L2 シーケンサーリスク: Arbitrum/Optimism シーケンサーがダウンすると、Chainlink 価格が凍結します。復帰時に価格が跳ねます → 間違った価格での大規模清算。


3. MEV (最大抽出可能価値)

3.1 サンドイッチ攻撃

メモリプール観察: 被害者が TOKEN_A → TOKEN_B スワップをスリッページ 1% で提出

フロントラン:  TOKEN_B を購入 (価格上昇)
被害者 tx:      スワップはより悪い価格で実行 (スリッページ許容範囲内)
バックラン:     TOKEN_B を売却 (価格影響から利益)

利益 = 被害者の価格影響 - ガスコスト × 2

3.2 JIT (ジャストインタイム) リキッドプロバイダー

1. メモリプール内の大規模ペンディングスワップを観察
2. 正確な価格範囲 (Uniswap V3 ティック) に集中流動性を提供
3. 被害者のスワップが実行 → JIT LP がほぼすべての手数料を獲得
4. スワップ直後に流動性を除去
5. 利益 = 獲得手数料 - ガス - インパーマネント損失 (単一ブロックではミニマル)

3.3 清算 MEV

1. 清算閾値に近づいているレンディングプロトコルのポジションを監視
2. 価格オラクルが更新 → ポジションが清算可能になる
3. 他の清算人をフロントラン → 清算を実行
4. 清算ボーナスを受け取る (通常は担保の 5-15%)
5. 担保を売却して利益化

3.4 MEV 保護メカニズム

メカニズム動作方法
Flashbots Protectプライベートメモリプールに tx を送信; ブロックビルダーのみがそれを見る
MEV BlockerMEV 認識のリレイヤーを通じてルーティングする RPC エンドポイント
Cow Protocol (バッチオークション)バッチマッチング削除順序利点
暗号化メモリプール閾値暗号化; ブロック構築時にのみ復号化
MEV-Shareユーザーが tx から抽出された MEV の一部を獲得

4. 精度損失の悪用

4.1 トークン計算の丸め誤差

Solidity には浮動小数点がありません。整数除算は切り捨てます:

shares = depositAmount * totalShares / totalAssets

totalAssetsdepositAmount * totalShares に対して非常に大きい場合、結果は 0 に丸められます → デポジターはシェアを受け取りませんが、プールはデポジットを保持します。

4.2 初期デポジター / Vault インフレーション攻撃

1. 攻撃者が 1 wei をデポジット → 1 シェアを受け取る
2. 攻撃者が 1,000,000 トークンを vault に直接ドネート (デポジット経由ではなく)
3. Vault 状態: 1,000,001 トークン、1 シェア
4. 被害者が 999,999 トークンをデポジット:
   shares = 999,999 * 1 / 1,000,001 = 0 (整数切り捨て)
5. 被害者は 0 シェアを獲得; 攻撃者は vault の 100% を所有 (現在 2,000,000 トークン)
6. 攻撃者がすべてを引き出す

防御:

  • 初期デポジット時にデッドシェアをミント (OpenZeppelin ERC4626 オフセット)
  • 最小初期デポジットを要求
  • 仮想オフセット付きの内部会計

4.3 精度切り捨てによるダスト攻撃

各切り捨てで 1 wei が失われる繰り返される小規模操作。数千の操作に渡って累積 → 実質的な損失。


5. ガバナンス攻撃

5.1 フラッシュローンガバナンス

ガバナンストークンをボロー → 投票 → 返却。投票前にプロトコルが残高をスナップショットしない場合にのみ機能します。

5.2 タイムロック迂回

ベクトルメソッド
タイムロックが 0 に設定管理者はプロポーザルを即座に実行できる
emergencyExecute 関数「緊急時」のタイムロックをバイパス
Guardian/マルチシグオーバーライド単一障害点
攻撃者によるプロポーザルキャンセルしきい値を満たす場合はキャンセルでフロントラン

5.3 定足数操作

プロトコルは 10% の定足数を要求 (100M トークンのうち 10M)
├── 10M のガバナンストークンをフラッシュボロー
├── プロポーザルを作成: admin = attacker に設定
├── 借りたトークンで投票 → 定足数を満たす
├── タイムロックがない場合: 即座に実行
└── トークンを返却

6. ブリッジエクスプロイト

6.1 一般的なブリッジ攻撃ベクトル

ベクトル
署名検証バイパスRonin Bridge ($624M) — 5/9 バリデータが侵害された
メッセージリプレイ複数チェーン上にデポジット証明をリプレイ
フェイクデポジット証明非存在の L1 デポジット用に証明を提出
バリデータ共謀ブリッジバリデータの多数派が侵害された
スマートコントラクトバグWormhole ($320M) — 未初期化の guardian セット
アップグレード可能なプロキシエクスプロイト攻撃者がアップグレード権限を取得 → 実装をスワップ

6.2 クロスチェーンメッセージ検証

セキュアなパターン:
├── ソースチェーン: イベント発行 (destination、amount、nonce、chainId)
├── リレイヤー: 証明提出 (イベント包含のマークル証明)
├── デスティネーションチェーン: 既知のソースブロックヘッダーに対して証明を検証
│   ├── nonce がリプレイされていないことを確認
│   ├── chainId が一致することを確認
│   ├── マークル証明を信頼されたルートに対して検証
│   └── トークンをミント/リリース

脆弱なパターン:
├── リレイヤー: N-of-M バリデータによって署名された (destination、amount) を提出
└── M が小さいまたはキーが侵害された場合 → 署名を偽造

7. トークン標準エッジケース

7.1 ERC-20 承認フロントランニング

1. Alice が Bob に 100 トークンを承認
2. Alice が承認を 50 トークンに変更したい
3. Bob がメモリプール内の承認変更 tx を見る
4. Bob がフロントラン: transferFrom(Alice, Bob, 100) — 古い承認を使用
5. Alice の承認変更が実行: 承認 = 50
6. Bob が transferFrom(Alice, Bob, 50) を呼び出す — 新しい承認を使用
7. Bob は 150 トークンを抽出 (50 の代わりに)

防御: 最初に approve(0) を実行してから approve(newAmount) を実行。または increaseAllowance/decreaseAllowance を使用。

7.2 フックによる ERC-777 リエントランシー

ERC-777 トークンは、転送完了前に受取人で tokensReceived() フックを呼び出します → 古典的なリエントランシーベクトル。

transfer(attacker, amount)
├── _beforeTokenTransfer フック
├── 残高更新
├── tokensReceived() コールバック受取人へ  ← リエントランシーウィンドウ
│   └── 攻撃者がリエントリー: transfer、swap、deposit など
└── _afterTokenTransfer フック

7.3 転送時手数料トークン

各転送で手数料を差し引くトークン。プロトコルは amount より少ないを受け取ります:

// 脆弱: 受取が == amount と仮定
token.transferFrom(msg.sender, address(this), amount);
deposits[msg.sender] += amount; // 手数料額分過剰計算

// 固定: 実際の残高変化を測定
uint before = token.balanceOf(address(this));
token.transferFrom(msg.sender, address(this), amount);
uint received = token.balanceOf(address(this)) - before;
deposits[msg.sender] += received;

7.4 リベーシングトークン

自動的に残高を調整するトークン (例: Aave aTokens、stETH)。リベーシングトークンを保有するプロトコルは、残高をキャッシュすると会計ミスマッチが発生する可能性があります。


8. 注目すべき DeFi エクスプロイト参考資料

エクスプロイト日付損失主なベクトル
Ronin Bridge2022年3月$624Mバリデータキーが侵害された
Wormhole2022年2月$320M署名検証バグ
Beanstalk2022年4月$182Mフラッシュローンガバナンス
Mango Markets2022年10月$114Mオラクル操作
Euler Finance2023年3月$197Mドネーション攻撃 + 清算ロジック
Curve (リエントランシー)2023年7月$73MVyper コンパイラリエントランシーバグ

9. デシジョンツリー

DeFi プロトコルを分析中?
├── 価格オラクルを使用しているか?
│   ├── スポット価格 (AMM 予備金)? → フラッシュローン操作 (セクション 1.2)
│   │   └── オラクルは単一 tx で操作可能か? → 高リスク
│   ├── TWAP? → マルチブロック操作が必要 → 中リスク
│   ├── Chainlink? → 陳腐化処理を確認 (セクション 2.3)
│   │   ├── ハートビートチェック存在? → OK
│   │   └── L2? → シーケンサーアップタイムオラクルを確認
│   └── フォールバック付き複数オラクル? → 各オラクルを評価
├── 外部トークンを受け入れるか?
│   ├── はい → 転送時手数料処理を確認 (セクション 7.3)
│   ├── ERC-777 トークンを受け入れるか? → フックによるリエントランシー (セクション 7.2)
│   └── リベーシングトークン? → 会計ミスマッチ (セクション 7.4)
├── ガバナンスを持っているか?
│   ├── はい → フラッシュローンガバナンス可能? (セクション 5.1)
│   │   ├── スナップショットベース投票? → より安全
│   │   └── ライブ残高投票? → フラッシュボロー攻撃
│   ├── タイムロック存在? → バイパスを確認 (セクション 5.2)
│   └── 定足数しきい値 vs フラッシュローン可能供給? (セクション 5.3)
├── Vault / 利回り集約者か?
│   ├── はい → 初期デポジター攻撃 (セクション 4.2)
│   │   └── 仮想オフセットまたはデッドシェア? → 軽減済み
│   └── シェア計算の精度損失? (セクション 4.1)
├── ブリッジか?
│   ├── はい → ブリッジベクトルをロード (セクション 6)
│   │   ├── バリデータセットサイズとキー管理?
│   │   ├── リプレイ保護 (nonce + chainId)?
│   │   └── アップグレード可能? → アップグレードキーの所有者は?
│   └── いいえ → 続行
├── ユーザー向けスワップ機能?
│   ├── はい → MEV エクスポーション (セクション 3)
│   │   ├── スリッページ保護が強制される?
│   │   └── プライベートメモリプール統合?
│   └── いいえ → 続行
└── 基礎となる Solidity レベルのバグについて [smart-contract-vulnerabilities](../smart-contract-vulnerabilities/SKILL.md) をロード

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

詳細情報

作者
yaklang
リポジトリ
yaklang/hack-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/yaklang/hack-skills / ライセンス: MIT

関連スキル

Anthropic Claudeビジネス・経営⭐ リポ 20,903

3-statement-model

3種類の財務諸表テンプレート(損益計算書、貸借対照表、キャッシュフロー計算書)を作成・記入・完成させることができます。モデルテンプレートの記入、既存のモデル枠組みの完成、財務モデルへのデータ入力、部分的に完成した損益/貸借/キャッシュフロー枠組みの完成、または既存テンプレート構造内での統合財務諸表の連携に対応しています。3種類の財務モデルテンプレートの記入、完成、またはデータ入力に関するご依頼で自動的に機能します。

by anthropics
汎用ビジネス・経営⭐ リポ 1,982

strategic-decision

CEO・経営層向けの戦略的意思決定支援です。前提条件に異議を唱え、問題を診断し、確実な戦略を設計できます。4つのモード(AGGRESSIVE:大きな夢を見る、SELECTIVE:基盤を維持しつつ有望な拡張を厳選、DIAGNOSTIC:最大限の厳密性、VALIDATION:本質に絞る)を備えています。創業者、経営幹部、プロダクトリーダーが製品開発、成長戦略、市場戦略、技術選定、リソース配分に関する戦略的判断が必要な場面で活用できます。

by LeoYeAI
汎用ビジネス・経営⭐ リポ 521

value-realization

エンドユーザーが製品アイデアから明確な価値を感じるかどうかを分析します。以下の場面で活用できます:製品コンセプトの議論、機能の評価、製品改善の方向性提示、マーケティング戦略の企画、導入・継続率の問題分析、コピーが価値を伝えているかの検証、機能と利用シーンの対応付け、または製品方向性・ポジショニング・エンドユーザーの需要の有無が不確かな場合(例:「これは良いアイデアか」「この製品をどう思うか」「ユーザーは必要とするか」「この機能は何に役立つのか」「機能の価値をどう説明するか」「このコピーをどう思うか」「利用シーンを作成する手助けが欲しい」「ユーザーが継続利用しない理由は何か」「どうポジショニングすべきか」)。

by Done-0
Anthropic Claudeビジネス・経営⭐ リポ 42,795

creating-financial-models

このスキルは、投資判断に必要な高度な財務モデリング機能を提供します。DCF分析、感度分析、モンテカルロシミュレーション、シナリオプランニングなど、複数の分析手法を組み合わせることで、より正確で信頼性の高い財務予測が可能になります。

by anthropics
汎用ビジネス・経営⭐ リポ 4,194

pestel-analysis

政治的、経済的、社会的、技術的、環境的、法的な外部要因を分析します。市場環境の変化が製品、ロードマップ、または戦略に大きな影響を与える可能性がある場合に活用できます。

by deanpeters
Anthropic Claudeビジネス・経営⭐ リポ 380

chemical_safety_assessment

化学安全性評価 - 化学物質の安全性を評価します。PubChemの化合物情報、FDAの医薬品データ、ADMET予測、ChEMBLの構造警告を活用します。このスキルを使用することで、化合物名から一般情報を取得したり、医薬品名から警告および注意事項を取得したり、分子のADMETを予測したり、化合物の構造警告を検出したりできます。4つのSCPサーバーから4つのツールを統合しています。

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