mcpField
A
auditing-pre-release-security

auditing-pre-release-security

github.com/onekeyhqセキュリティ2.5k61 回インストール今日更新
リポジトリ

auditing-pre-release-security について

リリース前に2つの Git 参照間の変更を監査するスキルです。ソース差分、依存関係、パッケージの動作、CI/CD のリスクを確認し、証拠を追跡できる中国語レポートの作成を定めています。

主な機能

  1. 01タグ、ブランチ、コミットの比較
  2. 02ソースと依存関係の変更確認
  3. 03追加パッケージの動作調査
  4. 04CI/CD とビルドリスクの評価
  5. 05両方の参照を記した中国語レポート

活用シーン

  1. 01リリース候補のセキュリティ回帰確認
  2. 02依存関係の更新とロックファイルの確定性確認
  3. 03新規依存関係のインストールスクリプトとコード調査
  4. 04リリース前のワークフローとビルド設定の監査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/onekeyhq/app-monorepo --skill auditing-pre-release-security

インストール後、Claude Code で/auditing-pre-release-securityを入力して読み込まれたか確認します。

詳細

リリース前のセキュリティ監査(任意の2つのGit参照間)

このスキルでは、任意の2つのGit参照(タグ/ブランチ/コミットSHA)を比較し、次の項目を監査します。

  • ソースコードの差分におけるセキュリティ上のデグレード
  • 依存関係の変更(直接依存+推移的依存)とロックファイルの決定性
  • node_modules 内で新たに導入されたパッケージの挙動
  • .github/workflows とビルド設定(Expo/EAS)におけるCI/CDワークフローのリスク

出力は中国語のMarkdownレポートです。上書きを避けるため、一意のタイトルと、参照名を含むファイル名を付けます。

0)必須:監査範囲の確認(BASE_REF、TARGET_REF)

参照のルール
  • 指定可能なもの:タグ/ブランチ/コミットSHA
  • BASE_REF =開始地点、TARGET_REF =終了地点(リリース候補)
ユーザーが参照を明示していない場合

作業を始める前に、次のとおり一度だけ尋ねてください。

比較する2つのGit参照を指定してください。(例:v5.19.0 → release/v5.20.0、または main → feature/xxx)

参照が1つだけ指定されている場合

不足している参照を尋ねてください。ユーザーが次のように明示していない限り、既定値を推測しないでください。

  • 「最新タグ → HEAD」
  • または同等の指示。

1)出力要件(必須)

  • レポートの言語:中国語
  • 上書きを避けるため、レポートのファイル名に参照を含めてください。
    • security-audit__${BASE_REF_SAFE}__to__${TARGET_REF_SAFE}.md
    • ファイルシステム上の安全性を確保するため、BASE_REF_SAFE/TARGET_REF_SAFE の / は __(または -)に置き換えてください。
  • レポートのタイトルに参照を含めてください。
    • # 安全预审报告(${BASE_REF} → ${TARGET_REF})
  • 根拠を追跡できるようにしてください。ファイルパス、行番号(可能な場合)、短い抜粋を記載します。

2)安全ルール(必ず守ること)

  • シークレット(ニーモニック/シードフレーズ、秘密鍵、署名ペイロード、APIキー、トークン、Cookie、セッションID)を決して出力または貼り付けないでください。
  • コマンド出力にシークレットが含まれる可能性がある場合(環境変数の出力、ログなど)、レポートに記載する前に必ずマスキングしてください。
  • 短い抜粋を優先し、大量のデータを貼り付けないでください。

3)実行チェックリスト

ステップA — 参照を検証し、コンテキストを収集する
  • 両方の参照が存在することを確認します。
    • git rev-parse --verify "${BASE_REF}^{commit}"
    • git rev-parse --verify "${TARGET_REF}^{commit}"
  • 次の項目を記録します。
    • BASE_SHA、TARGET_SHA
    • 作業ツリーがクリーンかどうか:git status --porcelain
  • 変更されたファイルを一覧表示します。
    • git diff --name-status "${BASE_REF}..${TARGET_REF}"
ステップB — 主な差分を収集する

次の項目を確認します。

  • ソース:**/*.{js,ts,tsx}
  • 依存関係:**/package.json、yarn.lock
  • CI:.github/workflows/**
  • Expo/EASの設定:eas.json、app.json、app.config.*、ビルドスクリプト
ステップC — 依存関係の差分(直接依存)
  • 変更された各 package.json について、次を算出します。
    • 追加/削除/更新された依存関係(ワークスペースのパスを含む)
  • バージョン範囲のポリシーを確認します。
    • */latest は高リスクとして指摘します。
    • ^/~ は中リスクとして指摘し、リリースの決定性に影響する理由を説明します。
  • 依存関係が変更されているのに yarn.lock が変更されていない場合は、高リスクとして指摘します。
ステップD — ロックファイルの決定性(可能な範囲で確認)
  • Yarnの種類を確認します:yarn -v
  • 次のいずれかを試します。
    • Yarn Berry:yarn install --immutable
    • Yarn Classic:yarn install --frozen-lockfile
  • resolutions、patches、レジストリ以外のソース、予期しないダウンロードなどの異常を記録します。
ステップE — 既知の脆弱性スキャン(可能な範囲で実施)
  • yarn audit(利用可能な場合)
  • yarn.lock に対する osv-scanner(利用可能な場合)
  • ツールがない場合は、「未実行+理由」を記載します。
ステップ F — 新規依存関係の詳細調査(node_modules)

新たに追加された直接依存関係ごとに、以下を実施します。

  • <pkg>/package.json を確認します。
    • preinstall、install、postinstall スクリプト
    • エントリーポイント(main、module、exports)
    • バイナリ/ネイティブアーティファクト(bin/、.node)
  • インストール済みコード内をキーワード検索します(大文字と小文字を区別しません)。
    • 機密情報:privateKey|mnemonic|seed|keystore|passphrase
    • ストレージ:localStorage|indexedDB|AsyncStorage|keychain|keystore
    • ネットワーク:fetch|axios|XMLHttpRequest|http|https|WebSocket|ws
    • 動的実行:eval|new Function|child_process|spawn|exec
    • インストールフック:preinstall|install|postinstall
  • 該当箇所がある場合は、パス + 行番号 + 短い抜粋を記載し、想定される動作か不審な動作かを説明します。
  • リスク評価を割り当てます:低/中/高。
ステップ G — ソース差分のセキュリティレビュー(AI による推論ステップ)

${BASE_REF}..${TARGET_REF} の差分では、以下を優先します。

  • 署名フロー/鍵の取り扱い/ニーモニック
  • ネットワーク層/RPC/テレメトリー
  • ストレージ層(ローカル/セキュアストレージ)
  • ロギング/分析/エラー報告

不審な変更の一覧を出力します(それぞれ、概要、影響、根拠となる抜粋を記載)。

ステップ H — CI/CD とビルドパイプラインのリスク

.github/workflows/** とビルド設定を調査します。

  • uses: ...@latest を検出します(高)。
  • SHA に固定されていない可変タグを検出します(中、リスクを記載)。
  • permissions: のスコープが広すぎないか確認します。
  • リモートスクリプトの実行パターン(curl|bash、リモートからのダウンロード)を検出します。
  • インストール時の安全性(--ignore-scripts など)を確認します。
  • Expo/EAS:リモートコードのダウンロード、任意のスクリプトの実行、またはログへの環境変数の漏えいにつながるフックを検出します。

4) レポートのテンプレート(必ず従うこと。中国語で出力)

レポートを次のファイルに書き込みます。 security-audit__${BASE_REF_SAFE}__to__${TARGET_REF_SAFE}.md

コメント