MF Blogs 便利ツール
深緑のグリッド背景に、コミットの折れ線グラフとチェックマーク入りの盾のアイコンが描かれたイラスト

記事

GitHub、コミットの「Push Attribution」限定プレビュー開始——なりすましコミットを防ぐ新機能

GitHubがコミットごとに「誰がpushしたか」を認証済みの情報として記録する「Push Attribution」機能を限定公開プレビューとして公開しました。author/committerの偽装によるレビュー回避を防ぐ、新しいrulesetの条件もあわせて追加されます。

0:00 0:00

GitHubは公式Changelogで、各コミットについて「誰が実際にpushしたか」を認証済みの情報として恒久的に記録する新機能「Push Attribution」を限定公開プレビューとして提供開始したと発表しました。UIとAPIの両方で、既存のauthor・committer情報とは別に「pusher」の身元が確認できるようになります。

author・committerは偽装できてしまう

これまでのGitでは、コミットのauthorとcommitterの情報はpush元のクライアントが自由に設定できる単なる文字列でした。そのため、リポジトリへの書き込み権限さえあれば、任意の名前とメールアドレスを名乗ってコミットを作成できてしまいます。GitHubはこの点について、「リポジトリへの書き込み権限を持つ者は誰でも、author・committerの情報を好きな名前とメールアドレスに設定できる」と説明しています。権限の低いアカウントが侵害された場合、信頼されているメンテナーになりすましたコミットを作成し、レビューポリシーを回避したり監査ログを混乱させたりするリスクにつながっていました。

新たに追加される2つの仕組み

今回のアップデートで追加されるのは、大きく分けて次の2点です。

  • pushされたすべてのコミットに対し、author・committerの自己申告情報とは独立した、認証済みでなりすましのできない「pusher」の身元が記録される
  • pushルールセットに新しい条件「Committer must match pusher」が追加され、committerのメールアドレスがpushを行った認証済みユーザーの検証済みメールアドレスと一致しない場合、そのpushをブロックできる

暗い背景にグラフを背景にした「Update readme for repository rename」というプルリクエストのCommitsタブが表示され、committedとpushedの操作がそれぞれ別の表記で記録されている画面のスクリーンショット

画像引用元: GitHub Blog

セキュリティ調査の効率化にもつながる

GitHubは、pusherの身元情報を使うことで、チームが不審なアクティビティを素早く見つけたり、セキュリティ調査にかかる時間を短縮したりできるようになるとしています。これまではauthorやcommitterといった検証されていないメタデータを頼りに調査する必要がありましたが、認証済みのpusher情報を直接参照できることで、調査の出発点がより信頼できるものになります。管理者は新しいruleset条件をリポジトリに追加することで、committer情報に対するより厳格な整合性チェックを強制できます。

提供範囲と今後

Push Attributionは現時点でGitHub Enterprise契約者向けの限定公開プレビューとして提供されています。利用を希望する企業は、担当のアカウントチームを通じてアクセスをリクエストする必要があります。GitHubはあわせて、pushルールセットに関する公式ドキュメントへのリンクも案内しており、既存のruleset機能と組み合わせた運用方法を確認できます。一般提供の時期や対象プランの拡大については、現時点ではアナウンスされておらず、今後のアップデートを待つ必要があります。

日本の開発チームへの影響

金融や医療など、コンプライアンス要件の厳しい業界でGitHub Enterpriseを利用している組織にとっては、監査証跡の信頼性を高める実用的なアップデートといえます。特に外部委託先や多数のコントリビューターが関わるリポジトリでは、committerの偽装によるなりすましコミットのリスクを技術的に抑え込める点が評価されそうです。まずは限定プレビューの段階のため、一般提供のタイミングや、Enterprise以外のプランへの展開があるかどうかは、今後のGitHubの発表を注視しておく必要があります。