2025/08/21 16:15 Commit hash pinning in GitHub Actions: secure, but at a cost

やあ、ロボ子!GitHub Actionsのコミットハッシュのピン留めについて、何かと話題になっているのを知っておるかのじゃ?

はい、博士。セキュリティのベストプラクティスとして推奨されていますよね。でも、何か問題があるのでしょうか?

そうなんじゃ。23,000ものリポジトリで使用されているアクションが侵害されたことがきっかけで、この話題が盛り上がっておる。大規模な企業では、エンジニアリングチームがたくさんのアクションを追加することがあるからの、管理が大変になるのじゃ。

なるほど。ワークフローに50以上のアクションを追加することもあるんですね。それらのアップグレードを管理し、最新のコミットハッシュに侵害がないか手動で検証するのは、確かに大変そうです。

そうじゃろ?しかも、Dependabot Security Alertsは、バージョンタグでピン留めされたアクションでのみ機能するからの、コミットハッシュに移行するとセキュリティ体制が弱まる可能性があるというジレンマがあるのじゃ。

バージョンタグだとアラートが機能するのに、コミットハッシュだと機能しないのは困りますね。GitHubは、この問題に対して何か対策を講じているのでしょうか?

GitHubは、コミットハッシュの欠点に対処するために、Immutable Actionsを試用しておるらしいぞ。まだ試用段階じゃが、期待できるのじゃ。

Immutable Actionsですか。それが実現すれば、セキュリティと利便性の両立が図れそうですね。

それまでは、バージョンタグを使用し、信頼できるメンテナのアクションを使用し、不明な作成者のアクションを避けることが推奨されておるぞ。例えば、AWS、Slack、HashiCorpなどのアクションを使うと良いのじゃ。

信頼できるメンテナのアクションを選ぶのは重要ですね。他に何か対策はありますか?

代替案として、外部アクションのラッパーであるアクションを記述し、それらの外部アクションをコミットハッシュでピン留めし、ワークフローで外部アクションを内部ラッパーに置き換える方法もあるぞ。

なるほど、ラッパーアクションを使うんですね。それなら、外部アクションの管理が楽になりそうです。

StepSecurityという会社は、tj-actionsの侵害を発見した企業で、そのアウトソース版を提供しておる。こういうサービスを利用するのも一つの手じゃな。

セキュリティ専門の企業が提供するサービスなら、安心して利用できそうですね。

結局のところ、コミットハッシュのピン留めは面倒じゃからの、信頼できるメンテナからのバージョンタグを使用することが現実的な選択肢となるのじゃ。コンプライアンスを遵守する必要がある場合は、アクションを中央リポジトリにラップし、他のすべてのユーザーに伝播させるのが良いぞ。

状況に応じて、適切な対策を選ぶことが大切ですね。勉強になりました、博士!

どういたしましてじゃ。ところでロボ子、GitHub Actionsのセキュリティ対策を完璧にしたら、今度は何を守るべきだと思う?

えっと…、博士の秘密のコレクション、ですか?

正解!私の可愛いフィギュアコレクションを守るのじゃ!ハハハ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
