6 ポイント 投稿者 GN⁺ 17 일 전 | 8件のコメント | WhatsAppで共有
  • 同一の攻撃者が30本以上のWordPressプラグインを買収した後、最初のコミットでバックドアコードを挿入し、サプライチェーンを汚染
  • 悪性コードは約8か月間潜伏した後、2026年4月初旬に有効化され、多数のサイトにスパムリンクとリダイレクトを注入
  • WordPress.orgは2026年4月7日に、わずか1日で関連する31本のプラグインを恒久的に閉鎖し、強制アップデートを配布
  • 攻撃者はFlippaで「Essential Plugin」ポートフォリオを6桁金額で取得した後、Ethereumスマートコントラクトを使ってC2ドメインを隠蔽
  • 今回の事件は2017年の「Display Widgets」事例に類似した大規模サプライチェーン攻撃の再現であり、WordPressプラグイン生態系の信頼管理の欠如を露呈

WordPressプラグインのサプライチェーン攻撃事例

  • 30本以上のWordPressプラグインが同一の攻撃者に買収された後、バックドアを仕込まれる事件が発生
  • 攻撃者はFlippaで「Essential Plugin」ポートフォリオを6桁金額で買収した後、最初のコミットで悪性コードを追加
  • バックドアは8か月間非アクティブのまま潜伏し、2026年4月初旬に有効化されて多数のサイトを感染させた
  • WordPress.orgは2026年4月7日に、わずか1日で関連プラグイン31本を恒久的に閉鎖
  • 今回の事件は2017年の「Display Widgets」事件に類似したサプライチェーン攻撃パターンの再現と評価される

攻撃の発見と初動対応

  • あるクライアントサイトのwp-adminセキュリティ警告を通じて最初の感染が確認された
    • WordPress.orgプラグインチームは、「Countdown Timer Ultimate」プラグインに未認可アクセスを可能にするコードが含まれていたと警告
    • WordPress.orgは強制アップデート(v2.6.9.1)を配布したが、すでに一部サイトは破損した状態だった
  • セキュリティ点検の結果、プラグインのwpos-analyticsモジュールがanalytics.essentialplugin.comに接続してwp-comments-posts.phpファイルをダウンロードし、それを通じてwp-config.phpに大規模なPHPコード注入が行われていた

マルウェアの動作方式

  • 注入されたコードはスパムリンク、リダイレクト、偽ページをC2サーバーから受け取り、Googlebotにのみ表示
  • 攻撃者はEthereumスマートコントラクトを利用してC2ドメインを動的に管理
    • ブロックチェーンRPCエンドポイント経由でドメインを照会するため、一般的なドメインブロックでは遮断できない
  • WordPress.orgの強制アップデートはプラグインの電話ホーム機能だけを停止させ、wp-config.phpの悪性コードはそのまま残っていた

バックアップ分析による感染時点の追跡

  • CaptainCoreのresticバックアップを利用して、8つの時点ごとのwp-config.phpファイルサイズを比較
    • 2026年4月6日 04:22〜11:06 UTCの間に、ファイルサイズが3,345バイトから9,540バイトへ増加
    • 感染はこの6時間44分の間に発生したことが確認された

バックドアの挿入時点とコード構造

  • プラグインバージョン2.6.7(2025年8月8日)で191行の新規コードが追加され、バックドアが挿入
    • 変更ログには「WordPress 6.8.2互換性確認」と記載されていた
  • 追加されたコードの主な機能
    1. fetch_ver_info()が攻撃者サーバーのデータを@unserialize()で処理
    2. version_info_clean()がリモートデータから受け取った関数名を実行
    3. 認証なしで呼び出せるREST APIエンドポイントを作成(permission_callback: __return_true
  • この構造は**任意関数実行(RCE)**を可能にし、8か月間非アクティブのまま維持された後、2026年4月5〜6日に有効化された

プラグイン買収の経緯

  • 元の開発チームはインド拠点のWP Online Supportで、2015年からプラグインを開発
    • その後Essential Pluginへとリブランディングし、30本以上の無料・有料プラグインを運営
  • 2024年末に売上が35〜45%減少すると、Flippaに事業全体を売りに出した
  • 2025年初頭、「Kris」という人物がSEO・暗号資産・オンラインギャンブルのマーケティング経験を持つ状態で買収
    • Flippaは2025年7月、この取引を成功事例としてブログに掲載
  • 買収後最初のSVNコミット(2025年8月8日)で、即座にバックドアコードが追加された
  • 2026年4月5〜6日、analytics.essentialplugin.comが全サイトに悪性ペイロードの配布を開始
  • 2026年4月7日、WordPress.orgがEssential Pluginの全プラグイン(31本)を恒久的に閉鎖

閉鎖されたプラグイン一覧

  • Accordion and Accordion Slider、Countdown Timer Ultimate、Popup Anything on Click、WP Blog and Widgets、WP Team Showcase and Sliderなど、30本以上のプラグイン
  • WordPress.orgで当該作者を検索しても結果は表示されない
  • analytics.essentialplugin.comは現在{"message":"closed"}という応答を返す

過去の類似事例

  • 2017年、「Daley Tias」という人物がDisplay Widgetsプラグイン(20万インストール)を$15,000で買収後、スパムコードを挿入
  • その後、9本以上のプラグインを同じ方法で感染させた
  • 今回の事件は同じ手口を**より大きな規模(30本以上)**で再現した事例と確認された

被害復旧とパッチ作業

  • WordPress.orgの強制アップデートは一時的措置にすぎない
    • wpos-analyticsモジュール自体は依然として存在
  • 独自にバックドアモジュールを完全に除去したパッチ版を作成
    • 22の顧客サイトのうち12サイトでEssential Plugin系プラグインを発見し、10本を直接パッチ適用
    • パッチ版はwpos-analyticsディレクトリを削除し、ローダー関数を除去、バージョン名に-patchedを追加
  • 例: Countdown Timer Ultimate、Popup Anything on Click、WP Testimonial with Widget など

直接パッチする方法

  • wpos-analytics/ディレクトリを削除
  • メインのプラグインファイルで「Plugin Wpos Analytics Data Starts」またはwpos_analytics_anlブロックを削除
  • Version:ヘッダーに-patchedを追加して再圧縮
  • wp plugin install your-plugin-patched.zip --forceでインストール
  • wp-config.phpファイルサイズが約6KB増えているなら、アクティブな感染状態とみなし、全面的な復旧が必要

WordPressプラグイン生態系の信頼問題

  • 直近2週間でサプライチェーン攻撃が連続発生
    • 信頼されていたプラグインを買収後、悪性コードを挿入
    • WordPress.orgのコミット権限をそのまま引き継ぎ、検証なしで配布
  • WordPress.orgには所有権変更の監視やコード再審査手続きがない
    • 新しいコミッター登録時のユーザー通知や自動レビュー機能が不在
  • プラグインチームの対応は迅速だったが、バックドア挿入後8か月間検出されなかった
  • WordPressサイト運営者はプラグイン一覧を点検し、Essential Plugin系プラグインを直ちに削除またはパッチ適用し、wp-config.phpファイルも必ず確認する必要がある

8件のコメント

 
tebica 16 일 전

何十年も使っているWordPress..
必要最小限のプラグインだけ使っていますが、それでもやはりいつも不安です。
それでも静的サイトよりはまだ便利なので、移行したいとは思いません!

 
turastory 17 일 전

最近はサプライチェーン攻撃関連のニュースが多いですね…

 
tangokorea 16 일 전

そういうことです。急増しました

 
xguru 17 일 전

WordPress は本当に……問題が絶えませんね。すでに使っているなら、関連スレの EmDash のようなものを参考にしてください。
私はもう見限って、単なる静的ページに移しました。

 
colus001 16 일 전

EmDash はインストールしてみましたが、とにかく遅いです。TTFB が基本で 3 秒は出るので、これを本当に使えというつもりで作ったのかと思ってしまいます。

 
xguru 16 일 전

へえ、なるほど。じゃあ自分はそのまま静的サイトで満足することにします(笑)

 
tangokorea 16 일 전

AIによる静的ページ管理なら、レガシーコードに覆われたCMSを置き換えられるのではないか、と思わされます。

 
GN⁺ 17 일 전
Hacker Newsの意見
  • Mythosに対する大げさな反応はいつも滑稽だと思う
    自動化された脆弱性検出技術がセキュリティ業界を揺るがす可能性はあるが、本当に心配すべきなのはそこではない
    今の技術スタックと企業ガバナンスは、すでに時代遅れになっている
    状況を悪化させた主犯を挙げるなら暗号資産だ。これによってハッキングは数十億ドル規模の産業になり、北朝鮮のような国家まで巻き込まれた
    いまや単に依存関係を買収したり、従業員に金を渡して「ミス」を誘発したりできるのが現実だ
    私たちはほとんどバグのないソフトウェアを書くことはできるが、大企業をこの環境で安全に保つための計画はない
    自律型LLMエージェントはランサムウェア組織で使われるだろうが、FreeBSDエクスプロイトを使う必要はない

    • 「ほとんどバグのないソフトウェアを書ける」という話には疑問がある
      実際、毎週のようにPrimeVueVueSpring BootOracleドライバAnsibleNvidiaドライバなどでバグに遭遇している
      現実的に完全な無欠コードが可能なのは航空機や宇宙船くらいだろう
      ほとんどの開発者はバグのないコードを書きたくないのではなく、環境的制約のせいで不可能な場合が多い
    • **LAPSUS$**の事例のように、単純に従業員を買収して内部アクセス権を得たハッカー集団もあった
      これは理論ではなく現実だ。国家規模の資金力があれば、内部者の買収ははるかに容易になる
    • この問題は技術よりも組織文化の問題だと見ている
      OSSプロジェクトは大企業のソフトウェアより「WTFバグ」が少ない
      一人で開発していれば常識的にやらないようなミスでも、組織では承認プロセスや慣行のせいでそのままリリースされる
      「これが最善なのか?」という問いを投げかけられない異常な文化がバグを量産している
      小さなチームなら変えやすいが、大規模組織ではコストが大きい
    • 攻撃者がEthereumスマートコントラクトを通じてC2ドメインを更新できるなら、ファイアウォールはすべてのEthereumエンドポイントを遮断すべきなのだろうか
    • The Registerの記事が述べるように、攻撃者がサプライチェーンを費用対リスク分析の対象として見るのは合理的な戦略だ
  • Webプロジェクトを見ると、いつも「npm install」から始まり、何十ものライブラリが自動でインストールされる
    書いた本人ですら、どんな推移的依存関係が含まれているのか知らないことが多い
    こうした構造では、サプライチェーン攻撃を検証できる可能性はほとんどない

    • こういう理由で、私は外部パッケージをできるだけ避けている
      最近はPython標準ライブラリだけで天気同期ツールを書いた
      requestsのような外部パッケージを使わなくても十分で、依存関係のない安らぎを得られた
    • 「車輪の再発明をするな」とは言うが、適切な中間点が必要だ
      暗号化のような中核ロジックを自前実装すべきではないが、単純な機能までライブラリに依存するのは行き過ぎだ
    • これはWebだけの問題ではなく、mavenPythonRubyなどすべてのエコシステムに共通する問題だ
    • Lockfileは思った以上に大きな助けになる
      バージョンが固定されていれば、パッケージが売却されてバックドアを仕込まれても、直接アップデートするまでは影響を受けない
      むしろDependabotが自動で「パッチバージョン」のPRを上げてリスクを持ち込むほうが怖い
    • もっと悪いのは sudo curl URL | bash のような習慣だ
  • ソフトウェアアップデートの理念そのものが問題だと思う
    アップデートにはセキュリティパッチという利点がある一方で、開発者が望まない変更を強制したり、悪意あるものに変質したりするリスクもある
    特に個人開発者によるWordPress拡張機能では、自動アップデートは絶対に許可しないほうがよいと思う
    wordpress.orgのマーケットプレイスはこうした構造を支援しておらず、危険だ
    以前Chrome拡張機能に関するコメントを書いたが、ChromeをWordPressに置き換えてもそのまま当てはまる

  • WordPressプラグインのサプライチェーン攻撃面は昔から危険だった
    個人開発者が作った小さなプラグインを多数インストールさせるエコシステム構造のせいだ
    すでに信頼を得ているプラグインを買収後に悪用するのは、非常に効率的な攻撃手法だ
    「アップデート通知」がそのまま信頼のシグナルとして機能するため、ユーザーは作者が変わったことにすら気づかない
    パッケージ署名と透明性システムが必要だが、WordPressはセキュリティインフラ改善の速度が遅い

    • ほとんどのユーザーは無料プラグインしか使いたがらないので、サイトがプレミアム+広告プラグインだらけになる
      管理ページがまるでIE6ツールバーのミームのように見えるほどだった
    • クライアント向けWordPressサイト制作をやめた理由もこれだ
      無料版のSecuriWordfenceをインストールするだけで設定もせず、完全なセキュリティを期待するケースが多かった
    • wp.orgは悪意ある行為者に寛大すぎる
      明白なマルウェアはブロックするが、サードパーティドメインから広告ウィジェットを挿入するようなbait-and-switchは黙認している
      このレベルになると、ほとんど意図された設計と見なすべきだ
  • FAIRパッケージマネージャープロジェクトが成功しなかったのは残念だ
    fair.pmatprotoに着想を得た分散型構造で、中央リポジトリなしに誰でも運営できる
    パッケージはDIDで識別され、Socketのような組織が分析結果を「ラベラー」として付与できる
    ユーザーは特定のラベルが付いたパッケージをブロックしたり、AIベースのセキュリティ分析ラベラーを自分で運用したりもできる
    完璧ではないが、中央集権型パッケージマネージャーよりはるかに優れたアプローチだ

    • 諦めたのではなく、技術中心に転換した
      現在はTypo3コミュニティと協力しており、他のエコシステムにも拡張中だ(筆者はFAIRの共同議長)
    • npm代替として興味深いプラットフォームになり得る
      WordPressよりインセンティブ構造は良いが、それでも十分ではないかもしれない
    • 多数のリポジトリがSEO用マルウェアで埋め尽くされる可能性が高いなら、検索エンジンだけで安全なリポジトリを見つけるのは不可能だ
      分散化は自由を与える一方で、ユーザーの立場では不便が大きい
    • FAIRはWordPress専用なのだろうか
  • 今回の件で興味深いのは、プラグインがFlippaで買収されていたことだ
    FlippaはWP専用ではない、一般的なソフトウェア売買マーケットプレイスだ
    善意で買収されたインディーアプリや拡張機能が後から武器化される可能性が高く、懸念している
    こうしたアプリは本来の運営者よりも、攻撃者にとってのほうが価値が高い

  • 最も恐ろしいのはバックドアそのものではなく、買収があまりにも正常に見えたこと
    信頼されていたプラグインを買ってアップデートを配信する行為が、正当なメンテナンスと区別できない
    ユーザーが疑うべきシグナルがまったくない

  • 市場競争を制限するM&Aは政府の承認を受けることもある
    それなら、セキュリティに重大な影響を与える買収にもマーケットプレイスや政府の承認手続きが必要ではないかと思う
    Mergers and acquisitionsのWikipedia記事を参照

  • WordPressはプラグインのおかげで素晴らしかったが、今ではそのプラグイン構造のせいで危険なエコシステムになってしまった
    私はHugoへ移行し、他の人にも移行ガイドを勧めている

  • 企業は「ITアウトソーシング」を進める中で、どれほど多くの統制権を失ってきたのか、きちんと認識していないように思う