competition-race-condition-state-drift について
CTF チャレンジの競合状態や状態ドリフトを分析するセキュリティスキルです。`$ctf-sandbox-orchestrator` がサンドボックスと証拠の優先順位を定めた後に使い、再現可能なタイミング窓と最小の競合手順を特定します。
主な機能
- 01可変状態とトランザクション境界の整理
- 02制御された並行リクエストの再現
- 03ベースラインと競合実行の比較
- 04タイミングと状態変化の追跡
- 05再実行可能な最小競合手順への集約
活用シーン
- 01古い読み取りやロックの隙間の検証
- 02重複リクエストと冪等性の調査
- 03遅延コミットや再試行の副作用の追跡
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zhaoxuya520/ reverse-skill --skill competition-race-condition-state-driftインストール後、Claude Code で/competition-race-condition-state-driftを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlreferences/race-condition-state-drift.md
詳細
競合状態による状態ドリフト
このスキルは、$ctf-sandbox-orchestrator がすでに有効であり、サンドボックスの前提、ノードの所有権、証拠の優先順位を確立した後の、下流の専門分野としてのみ使用してください。まだそれが行われていない場合は、まず $ctf-sandbox-orchestrator に戻ってください。
決定的な動作がリクエストのタイミング、非同期の順序、ロックの隙間、または古い状態に依存する場合に、このスキルを使用します。
ユーザーが明示的に英語を要求しない限り、簡体字中国語で回答してください。
クイックスタート
- まず可変状態を特定します: 行、キャッシュキー、キューペイロード、セッションフィールド、カウンター、またはファイル。
- 最小の並行シーケンスと固定されたタイミング前提で再現します。
- ベースライン実行と、1 つの変数のみを変更した競合実行を 1 回ずつキャプチャします。
- 読み取り、チェック、書き込み、エンキュー、コミットの境界を個別に追跡します。
- クリーンなリセットからの最終的な状態ドリフトを証明します。
ワークフロー
1. 可変境界をマッピングする
- トランザクションスコープ、ロックの動作、リトライロジック、冪等性キー、キャッシュ無効化、キューハンドオフを記録します。
- 読み取り-チェック-書き込みがリクエスト、ワーカー、またはサービスをまたいで分割されている箇所に注目します。
- 各境界を正確なタイムスタンプまたはシーケンス番号に結び付けます。
2. タイミングウィンドウを再現する
- 制御された遅延、重複リクエスト、またはワーカー実行の並べ替えを用いて、決定論的な並行入力を構築します。
- 同一のペイロードの下で、受け入れられた経路と拒否された経路を比較します。
- 順序が変わったときに、どの条件が反転するかを記録します。
3. 決定的な競合チェーンに還元する
- 次のように圧縮します: リクエスト A と B の順序 -> 古いチェックまたはロックの隙間 -> 競合する書き込み -> 結果として生じるケイパビリティまたは成果物。
- 根本原因が、ロックの欠如、弱い冪等性、古いキャッシュ読み取り、遅延した非同期コミット、またはリトライの副作用のいずれであるかを述べます。
- 経路がキュー支配的になった場合は、キューワーカードリフトスキルに引き継ぎます。
このリファレンスを読む
- 競合ハーネスのアイデア、証拠ブロック、パリティチェックについては、
references/race-condition-state-drift.mdを読み込んでください。
保持すべきもの
- 可変キー、トランザクション境界、ロックの動作、冪等性マーカー
- ベースライン実行と競合実行のタイムスタンプ付きまたはシーケンス付きトレース
- ドリフトを証明する、最小で再現可能な並行シーケンス 1 つ
コメント
Markdown 対応