auditing-pre-release-security について
リリース前に2つの Git 参照間の変更を監査するスキルです。ソース差分、依存関係、パッケージの動作、CI/CD のリスクを確認し、証拠を追跡できる中国語レポートの作成を定めています。
主な機能
- 01タグ、ブランチ、コミットの比較
- 02ソースと依存関係の変更確認
- 03追加パッケージの動作調査
- 04CI/CD とビルドリスクの評価
- 05両方の参照を記した中国語レポート
活用シーン
- 01リリース候補のセキュリティ回帰確認
- 02依存関係の更新とロックファイルの確定性確認
- 03新規依存関係のインストールスクリプトとコード調査
- 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
- Yarn Berry:
-
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
コメント
Markdown 対応