GitHub にトークン保護機能が追加:リポジトリ・プッシュの前に自動判定

GitHub can now auto-block commits containing API keys, auth tokens

2022/04/04 BleepingComputer — 月曜日に GitHub は、GitHub Advanced Security の顧客向けに、コード・ホスティング・プラットフォームのシークレット・スキャン機能を拡張し、秘密漏えいを自動的にブロックすると発表した。 シークレット・スキャンは、GitHub Enterprise Cloud を Advanced Security ライセンスで使用している組織が、リポジトリのスキャンに追加できる高度なオプションである。

この機能は、組織が定義したパターンや、パートナーやサービス・プロバイダーが提供するパターンとの、マッチングにより動作する。それぞれのマッチングは、セキュリティ・アラートとして、レポートのセキュリティ・タブ上で報告され、パートナーのパターンにマッチした場合にはパートナーに報告される。

偶発的な機密漏洩を自動ブロック

このプッシュ・プロテクションとして提供される新機能は、リモート・リポジトリにコードをコミットする前に、誤って認証情報が公開されることを防ぐためのものだ。この新機能は、開発者のワークフロー内にシークレット・スキャンを組み込み、偽陽性を低減した上で、検出可能な 69種類のトークン (APIキー/認証トークン/アクセス・トークン/管理証明書/資格情報/プライベート・キー/秘密キーなど) に対応する。

GitHub は、「プッシュ・プロテクションを用いることで、開発者がコードをプッシュする際にシークレットの有無をチェックし、シークレットが確認された場合はプッシュをブロックする。開発の生産性を阻害することなく、それを実現するために、プッシュ保護は正確に検出できるトークン・タイプのみをサポートする」と述べている。

コードをプッシュする前に、GitHub Enterprise Cloud がシークレットを特定した場合には、git プッシュがブロックされ、開発者がリモート・リポジトリにプッシュするコードから、シークレットがレビューされ削除されるようになる。また、開発者は、これらのセキュリティ警告を誤検出/テストケースとしてタグ付けすることも可能であり、また、その後に修正するようマークすることもできる。

シークレット・スキャンのプッシュ保護を有効にする方法

GitHub Advanced Security を導入している組織は、リポジトリと組織の両方のレベルで、API/UI からワンクリックでシークレット・スキャンに関するプッシュ保護機能を有効できる。それぞれの組織が、プッシュ保護を有効にするための詳細な手順は、以下のとおりである。

  1. GitHub.com で、組織のメインページにナビゲートする。
  2. 組織名の下にある、Settings をクリックする。
  3. サイドバーの Security セクションで、Code security and analysis をクリックする。
  4. Code security and analysis の下の GitHub Advanced Security を選ぶ。
  5. Secret scanning の Push protection を Enable all に設定する。
  6. オプションの Automatically enable for private repositories added to secret scanning をクリックする。

また、リポジトリの Settings > Security & analysis > GitHub Advanced Security ダイアログで ON を選ぶことで、個々のレポジトリに対して有効を設定することも可能だ。

GitHub secret scanning push protection
Enabling GitHub secret scanning push protection (GitHub)


シークレット・スキャン機能についての、詳しい情報についてはココで参照できる。また、コマンドラインからプッシュ保護を設定する場合や、シークレットの一部に対してプッシュを許可する方法については、ココで参照できる。

GitHub は、「GitHub Advanced Security のシークレット・スキャンを利用して、現在までに数千のプライベート・リポジトリで、70万以上のシークレットを検出した。また、すべてのパブリック・リポジトリで、我々のパートナーのパターンをスキャンしている (無償)。今日、GitHub Advanced Security の顧客向けに、git push を受け入れる前にシークレット・スキャンを実施することで、リークを完全に防ぐオプションを追加した」と付け加えている。

以前に BleepingComputer が報告したように [123]、暴露された認証情報やシークレットによる、深刻な侵害が生じている。したがって、コードをコミットする前に、自動シークレット・スキャンを有効にすることで、組織は偶発的な漏洩から身を守り、サプライチェーン・セキュリティの向上に、一歩近づくことが可能となる。

3月4日の「GitHub 調査:不適切なソースコード管理によりパスワードなどの機密情報が漏洩」に、「GitHub へのコミットされた 1,000件のうち3件が機密情報を流出させ、その頻度は2020年より 50% ほど高いことが分かった。ここで言う機密情報の半分以上は、データストレージ・サービス/クラウド・プロバイダー/秘密暗号鍵/開発ツールにアクセスするための認証情報であり・・・」と記されていました。また、1月9日には、「GitHub の秘密のスキャンが PyPI や RubyGems の安全性を護る」という記事もありました。おそらく、目視では追いつかない領域で、今日の記事にあるような自動化が必要なのでしょう。

%d bloggers like this: