Hackers Injecting Malicious Code into GitHub Actions Workflows to Steal PyPI Publishing Tokens
2025/09/15 CyberSecurityNews — Python Package Index (PyPI) の公開トークンを盗み出すという広範なキャンペーンの一環として、攻撃者たちは GitHub Actions ワークフローに悪意のコードを挿入した。それにより、一部のトークンが GitHub シークレットから盗まれたが、PyPI 管理者によると、プラットフォーム自体は侵害されておらず、盗まれたトークンが使用された証拠も確認されていないという。

この攻撃キャンペーンでは、複数のリポジトリの GitHub Actions ワークフローが改竄された。挿入された悪意のコードは、シークレットとして保存された PyPI 公開トークンを取得し、攻撃者が管理する外部サーバへと送信するよう設計されていた。
GitHub Actions への悪意のあるコード
9月5日に GitGuardian のセキュリティ研究者たちは、fastuuid プロジェクト内で不審な GitHub Actions ワークフローを発見し、この活動について最初の報告を行った。この報告は PyPI のマルウェア・レポート・ツールを通じて提出され、潜在的なトークン窃取の試みを、PyPI のセキュリティ部門に警告した。
攻撃者は一部のトークンを盗み出したが、それらが悪意のパッケージ公開やアカウント侵害に使用された形跡は、PyPI では発見されていない。この最初の報告の後に、GitGuardian の研究者たちは PyPI Security へ向けて、詳細をメールで送信したが、誤ってスパム・フォルダに振り分けられたことで、対応は 9月10日まで遅れた。
PyPI 管理者は、攻撃の全容を把握した後にトリアージを開始し、GitGuardian と連携して調査を進め、URL 形式の追加侵害指標 (IoC) を共有した。
その間において、影響を受けたプロジェクトのメンテナーの多くは、研究者からの課題追跡システムを介して通知を受けていた。彼らが実施したのは、改竄されたワークフローの回復/強制プッシュによるリポジトリ履歴からの削除/PyPI トークンのローテーションなどの対応である。
9月15日に PyPI のセキュリティ・チームは、アカウントへの不正アクセスが発生していないことを確認した上で、影響を受けたすべてのトークンを無効化し、プロジェクト・メンテナーたちに正式に通知した。
緩和策
このインシデントを受けた PyPI が、開発者に対して強く推奨するのは、長期間にわたり有効な API トークンを用いたパッケージ公開の停止である。なお、最も効果的な防御策は、Trusted Publishers の導入である。
Trusted Publishers は、特定のワークフロー実行時において、有効期間が短期間のリポジトリ・スコープ・トークンを自動生成するため、仮にトークンが盗まれたとしても、攻撃の機会が大幅に削減される。
GitHub Actions を利用してパッケージを公開する、すべてのユーザーに対して PyPI 管理者が勧告するのは、Trusted Publishers の速やかな導入である。さらに、開発者に対して推奨されるのは、PyPI Web サイトでアカウントのセキュリティ履歴を確認し、不審なアクティビティの有無を検証することである。
このインシデントの封じ込めが成功した理由は、PyPI と GitGuardian のセキュリティ研究者の協力にある。
GitHub Actions のワークフローが改竄され、PyPI 公開トークンが盗まれました。何らかの方法で、ワークフローに挿入された悪意のコードが、GitHub シークレットからトークンを取得して外部に送信したことです。PyPI 自体は侵害されていませんが、開発者が利用する仕組みの中で、直接にシークレットが狙われた点が重要です。なお、盗まれたトークンの悪用は確認されず、早期に発見されたことで被害は広がらなかったと、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、GitHub で検索も、ご参照ください。
You must be logged in to post a comment.