Skip to content

ci: Actionsのセキュリティチェックを追加 - #6

Merged
ryuuji merged 1 commit into
mainfrom
chore/actions-security-check
Aug 1, 2026
Merged

ci: Actionsのセキュリティチェックを追加#6
ryuuji merged 1 commit into
mainfrom
chore/actions-security-check

Conversation

@ryuuji

@ryuuji ryuuji commented Aug 1, 2026

Copy link
Copy Markdown
Member

何をする PR か

GitHub Actions のワークフロー自体に潜むセキュリティ上の問題を検査する zizmor を、CI に追加します。

なぜ必要か

ワークフローには、書き方によって次のような穴ができます。

問題 何が起きるか
サードパーティ Action をタグ参照している タグは書き換え可能。提供元が乗っ取られると、同じ v1 の中身がすり替わって任意のコードが動く
checkout の資格情報を残している 書き込み権限つきトークンが .git/config に残り、後続ステップや外部ツールから読める
permissions: が広い ワークフローが侵害されたとき、影響範囲がそのまま権限の広さになる
${{ }}run: に直書き PR タイトル等の外部入力からシェルコマンドを注入できる(template injection)

先日 org 全体を調べたところ 62リポジトリで354件の指摘がありました。機械的に直せるものを修正して166件まで減らしましたが、新しく書いたワークフローで同じ問題が再発するのを防ぐ仕組みがありません。これを CI で止められるようにします。

このリポジトリの状態

現在 findings はゼロです。そのため、このまま入れても CI は緑のままです。以降、新たに問題のある書き方が入ったときだけ落ちます。

設定について

  • .github/ 配下が変わったときだけ実行します(通常の開発では動きません)
  • permissions: {} を宣言し、ジョブには contents: read だけ与えています
  • GitHub Advanced Security は不要です(advanced-security: false)。SARIF モードは finding があっても失敗しないため、ゲートとして機能する annotations モードを使っています
  • 落ちたときは、日本語の対処手順がジョブのサマリに出ます。 zizmor を知らなくてもその場で直し方が分かるようにしてあります
  • 意図的な書き方は # zizmor: ignore[ルール名] で個別に除外できます

すでに acme-delivery で同じ構成が動いており、それに合わせています。


🤖 Generated with Claude Code

zizmor でワークフローの静的解析を行う。現状 findings はゼロのため緑のまま導入できる。
落ちたときの対処手順は日本語でジョブサマリに出力する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ryuuji
ryuuji merged commit 959caa8 into main Aug 1, 2026
5 checks passed
@ryuuji
ryuuji deleted the chore/actions-security-check branch August 1, 2026 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant