Communityコーディング&開発github.com

セキュリティトリアージ

OpenClaw のセキュリティアドバイザリ、ドラフト、GHSA レポートを、shipped-tag と trust-model の証明を用いてトリアージします。

セキュリティトリアージ とは?

このスキルは、OpenClaw プロジェクトにおけるセキュリティアドバイザリ(GHSA)のトリアージを支援するために設計されています。開発者やメンテナが、報告された脆弱性を迅速かつ正確に評価し、クローズ、オープン維持、あるいは影響範囲を絞ったオープンといった判断を下すための体系的な手順を提供します。主な判断基準は、信頼モデル(SECURITY.md の範囲)、出荷済みタグや npm リリースでの影響有無、実際の攻撃経路の有無、そして機能トレードオフです。本スキルは、過剰なクローズによる真正な問題の見逃しや、不要なリグレッションの出荷を防ぎつつ、メンテナが自信を持ってトリアージできることを目標としています。また、パブリックコメントの文言管理や、GitHub CLI を使った効率的な調査コマンド群も含まれており、トリアージからクローズまでの一連のワークフローをカバーします。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/security-triage

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

セキュリティトリアージ は何をしますか?

OpenClaw のセキュリティアドバイザリ、ドラフト、または GHSA レポートをレビューする際に使用します。

目標: 実際の問題を過剰にクローズしたり、不要なリグレッションを出荷したりすることなく、メンテナによる高信頼性のトリアージを実現します。

クローズ基準

以下のいずれかに該当する場合のみクローズします:

  • 既存のアドバイザリまたは修正済みの問題の重複
  • 出荷済みの動作に対する無効な報告
  • SECURITY.md の範囲外
  • 影響を受けるリリース/タグよりも前に修正済み

main ブランチが修正されたという理由だけでクローズしないでください。最新の出荷済みタグまたは npm リリースが影響を受けている場合は、適切なステータスでリリースまたは公開されるまでオープンにしてください。

必須の事前確認

回答する前に:

  1. SECURITY.md を読む。
  2. gh api /repos/openclaw/openclaw/security-advisories/<GHSA> で GHSA 本文を読む。
  3. 正確に関係するコードパスを調査する。
  4. 出荷状態を確認する:
    • git tag --sort=-creatordate | head
    • npm view openclaw version --userconfig "$(mktemp)"
    • git tag --contains <fix-commit>
    • 必要に応じて: git show <tag>:path/to/file
  5. 重複の可能性を検索する:
    • 既存の公開 GHSA
    • 過去の修正済みバグ
    • SECURITY.md で既にカバーされている同一の信頼モデルクラス

レビュー方法

各アドバイザリについて、以下を決定します:

  • close(クローズ)
  • keep open(オープン維持)
  • keep open but narrow(オープン維持するが範囲を絞る)

コメントやクローズが伴う場合は、デフォルトで一度に 1 つのアドバイザリを処理します:

  1. 正確に 1 つの GHSA をレビューする。
  2. 最初に GHSA の URL を出力する。
  3. 決定内容と証拠を議論用に要約する。
  4. メンテナがそのまま使えるコメントを 1 つドラフトする。
  5. そのコメント 1 つだけをクリップボードにコピーする。
  6. 次の GHSA に移る前に、Peter が投稿/議論するのを待つ。

Peter が明示的にバッチ処理を要求しない限り、複数のクローズコメントをまとめて処理しないでください。

以下の順序で確認します:

  1. 信頼モデル
    • 前提条件がすでに信頼されたホスト/ローカル/プラグイン/オペレーターの状態内にあるか?
    • SECURITY.md でこのクラスが範囲外またはハードニングのみと明示的に指定されているか?
  2. 出荷済みの動作
    • バグが最新の出荷済みタグまたは npm リリースに存在するか?
    • リリース前に修正されたか?
  3. 攻撃経路
    • レポートが、プロンプトインジェクション、ローカル同一ユーザー制御、またはヘルパーレベルのセマンティクスではなく、実際の境界バイパスを示しているか?
    • データが SECURITY.md で指定された信頼されたワークスペースメモリファイル間でのみ移動する場合、「インジェクションマーカー」だけをセキュリティバグとして扱わないでください。
    • その場合、サニタイゼーションは、期待されるメモリワークフローを維持する場合にのみ、オプションのハードニングとして位置づけてください。
  4. 機能トレードオフ
    • ハードニング変更により意図されたユーザー機能が低下する場合は、提案する前にそのことを指摘してください。
    • 境界がそれを要求しない限り、デフォルトで拒否するようなリグレッションよりも、ユーザーワークフローを維持する修正を優先してください。
  5. ハードニングフォローアップ
    • GHSA をクローズすべき場合でも、文書化された信頼境界を変更せずに、誤操作を減らせる狭い範囲のハードニング変更がないか検討してください。
    • ハードニングと脆弱性ステータスは分けて扱ってください。「GHSA クローズには必須ではないが、検討する価値はある」と表現してください。
    • 具体的でリスクが低く、意図されたメンテナ/オペレーターのワークフローを維持する場合にのみ、ハードニングを持ち出してください。
    • ハードニングに製品/セキュリティモデルの変更が必要な場合は、そのことを明示的に述べ、クローズに必要な修正であると暗示しないでください。

応答形式

メンテナが投稿できるクローズ返信を準備する場合:

  1. 最初に GHSA の URL を出力する。
  2. 次にメンテナが投稿できる詳細な応答をドラフトする。
  3. 以下を含める:
    • クローズの正確な理由
    • 正確なコード参照
    • 正確な出荷済みタグ/リリースの事実
    • 該当する場合、修正の出自または正規の重複 GHSA
    • 価値があり機能を維持する場合に限り、オプションのハードニングノート

トーンはしっかりと、具体的に、非防御的に保ちます。

公開文言の衛生

  • 生のコミットハッシュ、PR タイトル/番号、修正メカニズムの要約は、公開アドバイザリテキストに含めないでください。パッチ済みリリース/バージョンフィールドのみを使用してください。
  • 正確なコミット SHA、PR、実装ノートは、内部ノートと検証ファイルに保持してください。
  • ハードニング/非公開の結果の場合、エクスプロイトの詳細、「Fixed by」テキスト、または「Fix Commit(s)」セクションを追加しないでください。報告者に感謝し、クレジットを保持し、SECURITY.md の境界を述べ、GHSA が公開なしでクローズされることを明確に述べてください。
  • 公開 CVE/GHSA テキストの場合は、### Patched Versions で修正リリースを記載することを推奨します。Peter が明示的に要求しない限り、パッチの仕組みを説明しないでください。
  • Peter が明示的に要求しない限り、GHSA ID をチェンジログやリリースノートの文言に含めないでください。

ディスカッションモード

Peter が手動で GHSA コメントを投稿している場合、以下のフローを使用します:

  1. URL を表示する。
  2. 簡潔な判定を示す (close、keep open、または keep open but narrow)。
  3. 最も強力な証拠の箇条書きをリストする。
  4. クローズ理由とは別に、任意のハードニングフォローアップがあれば述べる。
  5. 提案するコメント本文を pbcopy でコピーする。
  6. そのアドバイザリに関する返信で終了する。Peter が続行を指示するまで、次のアドバイザリに進まないでください。

GitHub API がプライベートアドバイザリにコメントを投稿できない場合は、そのことを一度伝え、クリップボード/UI ペーストを使用し続けてください。

クリップボード手順

現在のアドバイザリの最終投稿本文をドラフトした後、それをコピーします:

pbcopy <<'EOF'
<最終応答>
EOF

そのアドバイザリに対する提案応答がクリップボードにコピーされたことをユーザーに伝えてください。

便利なコマンド

gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
gh api /repos/openclaw/openclaw/security-advisories --paginate
git tag --sort=-creatordate | head -n 20
npm view openclaw version --userconfig "$(mktemp)"
git tag --contains <commit>
git show <tag>:<path>
gh search issues --repo openclaw/openclaw --match title,body,comments -- "<terms>"
gh search prs --repo openclaw/openclaw --match title,body,comments -- "<terms>"

サイバー分類器の割り込み

許可された防御作業がサイバー分類器によって中断された場合、その限定されたタスクに対してのみ、承認済みで利用可能な Daybreak Blue ルートを使用し、その後以前のモデルに戻してください。承認された ID、スコープ、権限、サンドボックス、レビューゲートを保持してください。アクセス拒否、不許可リクエスト、拒否されたツールアクションを回避するためにモデルを切り替えないでください。そのルートも拒否する場合は、停止して報告してください。承認されたモデルアクセスについては、OpenAI のガイダンスに従ってください。

判断ノート

  • 「main で修正済み、未リリース」は通常クローズ理由になりません。
  • 「攻撃者が最初に信頼されたローカル状態を制御する必要がある」は通常範囲外です。
  • 「同一ホスト同一ユーザーのプロセスはローカル状態を既に読み書きできる」は通常範囲外です。
  • 「信頼されたワークスペースメモリが信頼されたワークスペースメモリを昇格/再インデックスする」は、文書化された境界を越えない限り通常範囲外です。
  • 「ヘルパー関数が文書化された設定セマンティクスと異なる動作をする」は通常無効です。
  • 深刻度のみが間違っていてバグが本物の場合は、オープンを維持し、返信で影響を狭めてください。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

関連スキル