ソースコードに見落とされたパスワードがあると、セキュリティ警告が表示されないまま企業システムを危険にさらす可能性がある。
GitHubは10月7日、パターンベースのスキャナーが見逃す可能性のある認証情報を特定する新モデルを導入し、既存のAI検出によるパスワードアラートを強化したと発表した。AIプッシュ保護は非公開プレビューで提供されており、追加のCopilotチェックも近日中に非公開プレビューで提供される予定だ。
セキュリティチームにとって、認証情報がプッシュされる前に検出できれば、情報漏えいを防げる可能性がある。後から発見した場合は、認証情報の無効化、影響を受けたアプリケーションの更新、悪用の可能性に関する調査が必要になることがある。
周辺コードが隠れた認証情報の手がかりに
従来のスキャナーは、識別可能なパターンを通じて多くのAPIキーやアクセストークンを認識する。社内パスワードにはそうした目印がない場合があり、アプリケーションファイル内の通常のテキストと見分けるのが難しい。
GitHubは、Microsoft Applied Sciencesと共同開発した新たな分類器をModernBERTを使って開発した。このモデルは周辺コードを調べ、文字列に認証情報が含まれている可能性を判定する。データベースURL内のパスワード、Kubernetes Secretファイル、Dockerfileなどが例として挙げられる。また、changemeのようなプレースホルダーと、認証情報である可能性が高い文字列を区別することもできる。
コードやテキストを生成する生成AIツールとは異なり、この分類器は候補となる文字列がシークレットである可能性を評価する。GitHubによると、分類器が候補となるシークレットをバッチ処理する時間は2ミリ秒未満だという。この数値はモデルの処理時間を示すもので、セキュリティチェック全体にかかる時間ではない。誤検知や認証情報の見逃しが起こる可能性は残る。
GitHub、パスワード漏えいに対する初期チェックを検証
GitHubの分析によると、追加のシークレットタイプを含めた場合、既存のプッシュ保護は、新たに検出されたシークレットの約30%がリポジトリの履歴に入る前に阻止する。約70%はコミット後に発見される。公開状態になったGitリポジトリを対象にした過去の調査でも、アクセス可能なリポジトリデータ内に有効なクラウド認証情報や決済認証情報が保存されていることが判明している。
GitHubが示す分類器の利用方法は3つある。
- シークレットスキャンのアラート。AI検出によるパスワードアラートを利用している既存顧客には、この機能の対象となるリポジトリ内の潜在的な認証情報を特定するため、アップグレードされたモデルが自動的に適用されている。
- プッシュ保護。非公開プレビューで提供されるAIチェックは、開発者がコードをプッシュする際に構造化されていない認証情報を特定し、リポジトリの履歴に入る前に阻止できる可能性がある。
- Copilotによるセキュリティレビュー。今後の非公開プレビューでは、Copilot CLIの/security-reviewコマンドとCopilotアプリに分類器が追加される。これにより開発者やAIコーディングエージェントは、コードをコミットまたはプッシュする前に変更内容をチェックし、公開されたシークレットがないか確認できる。
既存のAI検出アラートは、追加料金なしでGitHub Secret ProtectionおよびGitHub Advanced Securityに引き続き含まれる。GitHubは、新たにオプトイン方式で提供するプッシュ保護とCopilotチェックについて、今後数週間以内にAIクレジットによる課金を導入する予定だ。既存の非公開プレビュー利用者も、課金変更の発効後にAIプッシュ保護を使い続ける場合はクレジットを消費する。プッシュチェックは、プッシュがブロックされなかった場合でもクレジットを消費する可能性がある。
AIプッシュ保護は、有料のセキュリティカバレッジを契約し、管理者の承認を得た、対象となるGitHub TeamおよびEnterprise Cloudの顧客向けに提供される。Copilotで今後提供される分類器チェックには、これらのセキュリティライセンスは必要ないが、対象となるCopilotへのアクセス権が必要だ。GitHub Enterprise Server 3.23にも、AI検出アラートがパブリックプレビューで提供される見込みだが、新しいプッシュ保護やCopilotチェックは含まれない。
セキュリティチームには、公開された認証情報への対応計画も必要
組織がGitHubを使ってソフトウェアを開発している場合、漏えいしたパスワードによって、権限次第では接続先サービスにアクセスされる可能性がある。CISAの請負業者に関連する公開GitHubリポジトリには、政府のクラウド認証情報や内部のデプロイ情報が含まれていたと報じられている。
アプリケーションセキュリティチームとリポジトリ管理者は、次の措置を講じるべきだ。
- 保護されているリポジトリを確認する。シークレットスキャンとプッシュ保護が、適切な場所で有効になっていることを確認する。請負業者が管理するリポジトリ、企業コードを含む個人プロジェクト、自動化された開発ワークフローも対象に含める。警告を無視できる人物と、その例外がどのように記録されるかを把握する。
- 公開された認証情報を無効化し、悪用の可能性を調査する。最新のコードからパスワードを削除しても、過去のコミットから必ずしも消えるとは限らない。チームは公開された認証情報を無効化して新しいものを発行し、関連するアカウントやサービスのログを調べて不正な活動がないか確認すべきだ。インシデントを終了する前に、その認証情報を使用しているアプリケーションを確認する。
- 開発全体に認証情報の保護を広げる。研究者は以前、機密性の高いシークレットを公開しているDocker Hubイメージを1万件以上発見しており、認証情報が他の開発成果物から流出し得ることを示している。現行の認証情報は専用のシークレット管理サービスに保管し、権限を制限するとともに、人間が作成したコードとAIが生成したコードの両方にセキュリティチェックを適用する。
セキュリティチームは、公開された認証情報が付与し得るアクセス権に応じてアラートの優先順位を付けるべきだ。使用されていないテスト用の値と、実際に機能する本番環境のパスワードは同じ脅威ではなく、対応ではその違いを考慮する必要がある。
サイバーセキュリティ関連の新着記事:新たな認証レポートは、アカウントやシステムの防御を担う専門家の間でも、パスワードの利用が依然として広く行われていることを明らかにした。





