セキュリティテスト自動化ツールとして現場に広く浸透しているCheckmarxのJenkins ASTプラグインが、公式のJenkinsマーケットプレイスを経由してインフォスティーラーを仕込まれるという事態が発生した。単発の事件ではなく、2026年3月末から続く同一脅威アクター(TeamPCP)による連続攻撃の第三弾——しかも突破口は「シークレットのローテーション漏れ」という、防げたはずの手口だった。

何が起きたか

2026年5月9日(土)、悪意あるバージョン「2026.5.09」がrepo.jenkins-ci.orgへ公開された。このバージョンはCheckmarxの正規リリースパイプラインを経ておらず、Gitタグも存在しない。事後に見れば異常を示すサインはあったものの、自動更新が有効な環境では無警戒にインストールされた可能性がある。

TeamPCPが利用した侵入路は、同グループが3月に実行したTrivyサプライチェーン攻撃で窃取した認証情報だ。その認証情報でCheckmarxのGitHubリポジトリにアクセスし、ASTプラグインに資格情報窃取コードを埋め込んだ。

ハッカーたちが残したメッセージが端的にすべてを語っている:

「Checkmarx fails to rotate secrets again. With love - TeamPCP.」 「またシークレットのローテーションを怠った」——技術的な嘲笑であり、同時に業界全体への皮肉でもある。

攻撃連鎖を整理する

今回の事件だけに目を向けると全容を見誤る。3ヶ月にわたる攻撃の流れは以下の通りだ:

  • 3月(第一波): npmとTrivyを標的にしたShai-Hulud/Trivyサプライチェーン攻撃。認証情報を窃取
  • 4月(第二波): 窃取した認証情報でKICS分析ツール(Docker/VSCode/Open VSX)を汚染
  • 5月(第三波): 同じ認証情報でJenkins ASTプラグインを汚染——今回の事件

「横展開(ラテラルムーブメント)」は侵入した人間だけが行うものではない。一度漏れた認証情報が数ヶ月にわたって使われ続けるという形でも起きる。

影響を受けるバージョンと対応

Checkmarxは以下を推奨している:

  • 安全なバージョン: 2.0.13-829.vc72453fa_1c16(2025年12月17日公開)以前
  • 不正バージョン: 2026.5.09(即座に削除)

不正バージョンをインストールした環境では、以下を前提に動くこと:

  • パイプライン内のすべてのシークレット・APIキー・クラウド認証情報を即座にローテーション
  • 横展開・永続化バックドアの有無を調査
  • CheckmarxのIoC(侵害の痕跡)リストをSIEMに登録

実務への影響

JenkinsはCI/CDパイプラインの中核として多くの日本企業で稼働している。ASTプラグインはパイプライン内でビルド・デプロイ権限を持つことが多く、侵害されれば本番クラウド環境のアクセスキーまで連鎖するリスクがある。

今すぐ確認すべき項目:

  • バージョン確認: Jenkins管理画面でCheckmarx ASTプラグインのバージョンを確認
  • 更新ログの確認: 2026年5月9日前後に自動更新が実行された痕跡がないか
  • シークレット棚卸し: パイプライン内の認証情報をすべてリストアップし、ローテーション実施
  • 自動更新ポリシーの見直し: プラグインの自動更新に承認フローを挟む設定を検討

筆者の見解

今回の攻撃で最も重要な教訓は、シークレットのローテーションが「やると言っているだけ」で終わっている組織が、攻撃者から見ればとても狙いやすい標的であることだ。Trivyの攻撃で漏れた認証情報が、3ヶ月後にJenkins経由で炸裂した——「今何も起きていないから安全」という判断がいかに危ういかを、この時系列が端的に示している。

そして注目すべきはNon-Human Identity(NHI)の問題だ。今回の攻撃経路は、人間ではなくCI/CDシステムが保持する認証情報だった。業務の自動化・効率化が進むほど、NHIの数は増え、管理が追いつかなくなる。Just-In-Timeのアクセス付与と、不要になった認証情報の即時失効——このサイクルを仕組みとして回せなければ、自動化を進めるほど攻撃対象領域も広がるという皮肉な状況になる。

セキュリティスキャンツールが攻撃の入口になる逆説。これはDevSecOpsの理念そのものを問い直すきっかけでもある。ツールを信頼するのではなく、ツールを含めた全体のサプライチェーンを検証する姿勢が、現代のCI/CD環境では必要不可欠だ。


出典: この記事は Official CheckMarx Jenkins package compromised with infostealer の内容をもとに、筆者の見解を加えて独自に執筆したものです。