mcpField
S
secure-github-actions

secure-github-actions

github.com/vechainセキュリティ1576 回インストール4 週間前に更新
リポジトリ

secure-github-actions について

GitHub Actionsワークフローの作成、レビュー、監査を支援するセキュリティスキルです。CIを保守する開発者向けに、コミットSHAの固定、最小権限、信頼できない入力の安全な処理を重視し、作業別の参考ファイルを使います。

主な機能

  1. 01外部usesを完全なSHAに固定
  2. 02信頼できない値のシェル直挿入を回避
  3. 03最小権限を明示
  4. 04信頼境界とシークレット漏えいを確認
  5. 05作業別のセキュリティ資料を参照

活用シーン

  1. 01GitHub Actionsワークフローの作成・編集
  2. 02ワークフローの依存関係と権限の確認
  3. 03リポジトリ全体のセキュリティ監査

インストール

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

$npx skills add https://github.com/vechain/vechain-ai-skills --skill secure-github-actions

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
audit-checklist.md
secure-patterns.md
sha-pinning.md
workflows.md

詳細

セキュアな GitHub Actions

サプライチェーンの安全性を確保するデフォルト設定で、GitHub Actions のワークフローを作成、レビュー、監査します。

重大なルール

  1. まず関連するリファレンスファイルを読んでください。 ユーザーの依頼が以下のリファレンステーブルにあるトピックに関係する場合は、ほかの作業に着手する前に該当ファイルを読んでください。スキルが有効であることをユーザーが確認できるよう、どのファイルを読んでいるかを簡潔に伝えてください。
  2. ローカル以外のすべての uses: 参照は、40 文字の完全なコミット SHA に固定してください。 @v*、@main、@master、ブランチ名、短い SHA はセキュリティ上の負債として扱ってください。
  3. SHA を捏造してはいけません。 GitHub から確認するか、ユーザーに尋ねてください。正しい SHA を検証できない場合は、作り上げずにその旨を明示してください。
  4. ユーザーが明示的に求めており、かつワークフローがシークレットや書き込み権限を使って信頼できないコードを実行しない場合を除き、pull_request_target を導入してはいけません。
  5. 信頼できないコンテキストをシェルに直接埋め込んではいけません。 ${{ github.* }}、${{ inputs.* }} などの値は env: に移し、シェル変数を引用符で囲んでください。
  6. 最小権限の permissions: を明示的に設定してください。 デフォルトは読み取り専用とし、書き込みスコープは必要とする特定のジョブにのみ付与してください。
  7. リポジトリの「監査」、「強化」、「セキュリティスキャン」を依頼された場合は、必ず監査チェックリストをすべて実施してください。
  8. チェックを黙って省略してはいけません。 ツール(gitleaks、trufflehog、zizmor)がない場合は、そのことを報告し、インストール方法を提案してください。
  9. コンテキストの圧縮や喪失の後は、続行する前にこの SKILL とリファレンスファイルを読み直してください。

作業手順

ワークフローの作成または編集
  1. 作業を分類します:新規ワークフロー、ワークフローの編集、再利用可能なワークフロー、またはセキュリティレビュー。
  2. references/workflows.md と references/secure-patterns.md を読みます。
  3. すべての uses: 参照を監査します。
    • ./.github/actions/foo のようなローカルアクションは問題ありません。
    • ステップレベルのアクションとジョブレベルの再利用可能なワークフローは、完全な SHA を使用する必要があります。
    • コメントに人が読めるリリースラベル(例:# v4.3.1)を残してください。
  4. 信頼境界を監査します。
    • pull_request_target よりも pull_request を優先してください。
    • フォークからの PR データは信頼できないものとして扱ってください。
    • 信頼できないコードパスでシークレットや書き込みトークンを公開しないでください。
  5. すべての run: ステップを監査します。
    • 動的な値は env: を介して渡してください。
    • シェル変数を引用符で囲んでください。
    • どちらでも対応できる場合は、新しいサードパーティ製アクションを追加するより、シンプルなシェルを優先してください。
  6. メンテナンスのためのガードレールを追加または更新します。
    • Dependabot が github-actions エコシステムを更新するようにしてください。
    • 推移的なリスクに注意を促してください。アクションを固定しても、その内部で可変のアクションが参照されている場合があります。
セキュリティ監査の全実施

リポジトリの「監査」、「強化」、「セキュリティスキャン」を依頼された場合:

  1. references/audit-checklist.md を読みます。
  2. 可能であればサブエージェントを使って並列化し、すべてのチェックを実行します。
  3. 結果を重大度別に分類して提示します:CRITICAL、HIGH、MEDIUM、LOW。
  4. 最後に要約テーブルと、優先順位を付けた対応項目を記載します。

リファレンスファイル

トピックファイル読むタイミング
ワークフローの強化パターンreferences/workflows.mdワークフローの作成、編集、レビュー時
セキュアなワークフローテンプレートreferences/secure-patterns.mdワークフローを新規作成するとき
監査の全手順references/audit-checklist.mdリポジトリのセキュリティ監査を実施するとき
SHA 固定の自動化references/sha-pinning.mdアクションをコミット SHA に固定するとき

ツール

監査では以下のツールを確認し、見つからないものを報告します。

ツール用途インストール
gitleaksGit の履歴をスキャンしてシークレットを検出brew install gitleaks
trufflehog検証機能付きの詳細なシークレットスキャンbrew install trufflehog
zizmorGH Actions の静的解析brew install woodruffw/tap/zizmor
ghAPI 呼び出し用 GitHub CLIbrew install gh

コメント