先週、GitHubはEnterprise向けセルフサービスによる認証情報の無効化機能をリリースしました。この機能により、組織の所有者は、インシデント発生時に個々のトークンを一つずつ追跡する手間を省き、組織全体で侵害された認証情報を一括して無効化できるようになります。
この修正は待望のものだった。ここ数ヶ月の出来事は、認証情報の無効化が遅れたり不完全だったりするとどのような事態を招くかを如実に示していたからだ。3月に発生したTrivyへの攻撃が再燃したのは、最初のクリーンアップ作業で少なくとも1つの認証情報が残されていたためであり、その影響は数日後にCheckmarxにまで波及した。6月には、以前の攻撃後に完全にクリーンアップされなかったアカウントを介して、マイクロソフト自身のdurabletaskリポジトリが攻撃を受けた。
マイクロソフトは最近 、セキュリティ修正のリリースを次々と 行っています。ほんの数日前には、アカウント変更後の公開待機期間を導入したほか、6月上旬にはnpmを更新して、インストール後の自動スクリプトの実行を停止する措置も講じました。今後、マイクロソフトがどのような機能を提供していくのか、またそれがオープンソースソフトウェアに対する攻撃にどのような影響を与えるのか、引き続き注視していきます。
GitHubがリリースした内容
「エンタープライズ認証情報の管理」権限を持つエンタープライズ所有者は、組織内のすべてのユーザーの認証情報を一括で無効化または削除したり、特定のアカウントを対象に操作を行ったりできるようになりました。これには、パーソナルアクセストークン(PAT)、SSHキー、およびOAuthトークンのSSO認証が含まれます。エンタープライズ管理ユーザー(EMU)組織では「すべて削除」オプションが利用可能であり、組織レベルのREST APIでは、組織ごとのよりきめ細かな無効化処理が可能です。 すべての操作に対して監査ログが作成され、影響を受けるユーザーにはメール通知が送信されます。
個人ユーザーには、アカウントに関連付けられているすべての認証情報(SSO認証済みおよび個人用)を表示する新しい「設定」>「認証情報」画面が提供されます。この画面から、1回の操作で、SSOによって保護された企業リソースへのアクセス権をすべての認証情報から一括で削除できるため、トークン一覧を1つずつ確認するという時間のかかる作業が不要になります。また、EMU組織のメンバーには、自身のすべてのトークンとSSHキーを完全に削除するための個別のオプションも用意されています。
この「緊急解除」機能が導入される前は、1つのアカウントの認証情報を無効にするために、いくつかの異なるツールを併用する必要がありました。きめ細かなPATは、組織トークン画面から取り消すことができました。一方、クラシックトークンは、トークンごとのSSO認証の取り消しを通じてのみ無効化でき、しかもSAML SSOが有効になっている場合に限られていました。 認証API トークンをAPI 、それはトークン文字列をすでに手元に持っている場合に限られ、秘密鍵の漏洩といったケースでは有効でも、アカウントが侵害されたケースでは機能しませんでした(これは複雑さのほんの一端に過ぎませんが、ここではこの程度にしておきます)。要するに、この仕組みでは認証情報の変更を調整するのが非常に煩雑な作業となっていました。
注:GitHub Actionsのトークンは、ジョブごとに発行され、ジョブが終了すると失効するため、取り消す対象となるものが存在しないことから、ここでは対象外となります。インシデント発生時の被害を最小限に抑えるには、リポジトリでActionsを無効にしてください。
なぜ今なのか?
最近のマルウェア攻撃は、マイクロソフトにとってまさに身にしみるような打撃となっている。
5月19日、攻撃者は以前に盗み出した認証情報を利用して、 マイクロソフトの3つの悪意のあるバージョン 耐久性のあるタスク パッケージ Miasmaワーム攻撃キャンペーンの一環としてPyPIに公開された。マイクロソフトは数時間以内にこれらのパッケージを削除した。しかし、6月5日、同じアカウントがGitHubのリポジトリ「Azure/durabletask」に悪意のあるコミットをプッシュし、再びワームを仕込んだ。これに対しGitHubは、マイクロソフトの4つのGitHub組織にまたがる73のリポジトリを無効化した。これには、多くのチームがデプロイに利用しているAzure Functionsのツール群も含まれており、マイクロソフト以外のCI/CD 機能しなくなった。 研究者たちはこの再発についていくつかの可能性を挙げているが、最も有力な説は、5月の認証情報が完全に更新されていなかったというものである。その後、ある監視企業が、4月まで遡る情報窃取ツールのログの中に、当該アカウントのGitHub認証情報が記録されていることを発見した。正確なメカニズムが何であれ、両方の侵害事件で同じアカウントが使用されていた。
しかし、これは新しいことではなく、この問題は今年に入ってからすでに何度も発生している。2026年2月下旬、ある悪意のある AIボットは、設定ミスを悪用して pull_request_target Trivyのリポジトリにある GitHub Actions ワークフロー, これにより、攻撃者はAqua SecurityのGitHub組織内の33以上のワークフローに対して書き込み権限を持つPATを盗み出すことが可能となった。Aqua Securityはこの侵害を発見し、認証情報を更新した。しかし、残念ながら更新は完了しておらず、認証情報がすべて同時に無効化されることはなかった。
3月19日、攻撃者は、不完全なローテーションを免れた認証情報を利用して、aquasecurity/trivy-action にある76個のバージョンタグのうち75個に対して、悪意のあるコミットを強制的にプッシュしました。このペイロードは各パイプラインにおいて、本物のTrivyスキャンが実行される前に実行されたため、すべてのワークフローは正常に完了したように見えました。 Trivyを実行していたCI/CD 、SSHキー、クラウド認証情報、Kubernetesトークン、GitHub PATなど、自身のランナーから認証情報を収集していました。
その4日後、これらのパイプラインから盗まれた認証情報が使用され、CheckmarxのGitHub Actionsに 同一のステラーペイロードが仕込まれた 。Checkmarxは、4月22日まで自社環境内で脅威アクターの活動が続いていたことを確認しており、盗み出されたデータは4月25日にダークウェブ上に公開された。
TrivyからCheckmarxに至る一連の経緯は、すべてローテーションが不完全だったことに起因しています。もしAqua Securityが2月の侵害発生後、侵害されたサービスアカウントのすべての認証情報を即座に無効化できていれば、攻撃はそこで阻止されていたはずです。
原子回転って何?
アトミック・ローテーションとは、認証情報の切り替えを「すべてか、まったくか」という単一の操作として行うことを意味するため、新旧の認証情報が同時に有効になる瞬間は一切ありません。その目的は、システムのダウンタイムを完全に防ぐことにあります。理論上は素晴らしい考え方ですが、分散システムにおいては、実際にはそうはいかないのです。必要な調整作業があまりにも多すぎるからです。GitHubのような組織の規模では、アトミック・ローテーションは現実的ではありません。
つまり、実際のローテーションでは、どちらも不完全な2つの方法のうちいずれかを選択することになります。通常のローテーションでは、一定期間、両方の認証情報を有効に保つことで、システムが正常に動作し続けます。これは問題がない場合は問題ありませんが、古い認証情報がそのまま残ってしまいます。一方、インシデント対応ではその逆の方法をとり、古い認証情報を即座に無効化し、再発行されるまでの間はシステムに不具合が生じることを容認します。
「緊急停止ボタン」を使えば、実際に「アトミック」と言える唯一の操作、つまり対象範囲内のすべての認証情報を一挙に無効化することができます。確かに、CI/CD停止してしまいます。しかし、攻撃者をインフラから排除することの方がはるかに重要であり、ビルドが数時間あるいは数日間停止する程度の代償は払う価値があります。
これまで、すべての認証情報を一度に切り離すことは、実行するのが困難でした。この新しい「ワンアクションでの切り離し」機能こそが、プレッシャーのかかる状況下でも実行可能にするものであり、完全なアトミックな切り替えは依然として実現が難しいものの、これにより理想的な状態に一歩近づくことができます。
どうすればいいか
GitHub 組織内で、「エンタープライズ認証情報の管理」権限が、直ちに対応できる担当者に割り当てられていることを確認してください。また、インシデントが発生する前にこの作業を行ってください。今すぐ [設定] > [認証情報] を確認し、対象範囲を把握しておきましょう。
また、セキュリティ設定を更新する際は、GitHub Actions をバージョンタグではなく、コミットの SHA に固定するようにしてください。タグは、まったく別のコードを指すように強制プッシュされる可能性があり、これが Trivy への不正アクセス事件の背後にある核心的な手法です。固定されたコミットの SHA は移動できません。
Aikido 、アプリケーション内の不正なパッケージをリアルタイムで監視します。パイプライン内の何かが改ざんされた場合、認証情報窃取ツールが実行される前にアラートが通知されます。これは、新しいパッケージのバージョンが公開されるやいなや分析を行う「Aikido 」によって実現されています。
マイクロソフトさん、これまでのアップデート、ありがとうございます。これからもよろしくお願いします。🙏

