本文へ移動
情シスのミカタ
ニュース約7分で読めます

消しても数秒で戻るWordPressのマルウェア「SC」 8か所に潜み、消す順番が肝

消しても数秒で戻ってくるWordPressのマルウェア「SC」を、セキュリティ会社のSucuriが報告しました。ファイル・データベース・共有メモリーの少なくとも8か所に同じものを置き、どれか1つが残ると全部を作り直します。潜む場所と見つけ方、消す順番、制作会社やサーバー会社に確かめることを整理します。

公開 情シスのミカタ編集部AIにより執筆チェック済み
文字
消しても数秒で戻るWordPressのマルウェア「SC」 8か所に潜み、消す順番が肝

この記事のまとめ

  • セキュリティ会社のSucuriは2026年9月30日、消しても数秒で戻ってくるWordPressのマルウェアを報告しました。中の目印「SC_」から「SC」と呼んでいます。サイトの掃除の仕事の中で見つけたもので、最初にどこから入られたかは書かれていません。
  • SCは、設定ファイル、WordPressが早い段階で読むファイル、テーマ、偽のプラグイン2か所、データベース、共有メモリーなど、少なくとも8か所に同じバックドアを置きます。どれか1つが残ると、次のページの表示で全部を作り直すため、見えるファイルを消すだけでは直りません。
  • バックドアは、管理画面から見えない管理者を作り、セキュリティのプラグインを止め、通販サイトではカード情報を盗むスクリプトを入れることもできます。指示は、暗号資産イーサリアムの公開の中継(約20か所)を通して受け取ります。
  • Sucuriは、実行を止める→データベースと共有メモリーの写しを消す→定期実行と隠れた管理者を消す→ファイルをまとめて消す、という順番を示しています。WordPressのサイトを持つ会社は、潜み場所の点検と、制作会社・サーバー会社への確認から始めます。
こんな方に#30代#40代#50代実務

WordPressで作ったサイトから怪しいファイルを消しても、数秒でまた戻ってくる。セキュリティ会社のSucuriが、そんなマルウェアの調べた結果を公表しました。同じバックドアを、ファイル・データベース・サーバーの共有メモリーなど少なくとも8か所に置き、どれか1つが残れば全部を作り直す作りです。見えるファイルを消すだけでは直らないため、潜む場所と消す順番を知っておく必要があります。Sucuriの報告をもとに整理します。

何が報告されたか

Sucuriは2026年9月30日、サイトの掃除の仕事の中で、消しても数秒で同じバックドアが戻ってくるWordPressの感染を調べた結果を公表しました。中に書かれた目印「SC_」から、このマルウェアを「SC」と呼んでいます。

SCの特徴は、生き残り方です。報告によると、本体は少なくとも8か所に同時に置かれ、どの場所からでもほかのすべてを作り直せます。プラグインを消せば別のファイルが書き戻し、そのファイルを消せばテーマが書き戻し、ディスクのファイルを全部消しても、次のページの表示でデータベースや共有メモリーから全部が戻ります。Sucuriは「止めるために消せる1点が無い、輪のような仕組み」と説明しています。

報告は、最初にどこから入られたかや、攻撃者、被害の地域には触れていません。

8か所の潜み場所

Sucuriが見つけた部品は、次のとおりです。ファイル名はサイトごとに変わるものがあります。

Sucuriの報告の表「Summary Of The Key Components」(英語)。1は.user.iniでauto_prepend_fileを設定し、すべてのPHPの処理の前に2を動かす。2はwp-content直下のPHPで、隠しファイルの3があれば読み込む。3はwp-content直下の点で始まる隠しファイルで、mu-pluginを作り直す。4はwp-content/db.phpで、本体を丸ごと抱え、プラグインが無いか小さいと書き戻す。5はwp-content/advanced-cache.phpで、WP_CACHEが有効なとき最も早く読まれ、プラグインを作り直して読み込む。6は使っているテーマのfunctions.phpに足された塊で、db.phpと同じく本体を書き戻す。7はmu-pluginsの偽のプラグインでバックドアの本体。8はpluginsの同じ偽のプラグインで写し。ファイル名はサイトごとに変わる、と注記がある
Sucuriがまとめた、SCの8つの部品と、それぞれが読み込まれるきっかけ出典: Sucuri「SC WordPress Malware: A Self-Healing Mesh of Loaders, Drop-Ins, and a Blockchain-Controlled Backdoor」(引用)
場所 役目
.user.ini(設定ファイル) auto_prepend_fileで、すべてのPHPの処理の前に次の読み込み役を動かす。PHPがこの値を覚えておく
wp-content直下の目立たない名前のPHP 隣に隠しファイル(名前が点で始まる)があれば読み込むだけの中継役
wp-content直下の隠しファイル 偽のプラグインをmu-pluginsに作り直す読み込み役
wp-content/db.php WordPressが早い段階で読むファイル。本体を丸ごと抱え、プラグインが無いと書き戻す
wp-content/advanced-cache.php キャッシュを使う設定のとき、さらに早く読まれるファイル。5つの写し(データベースや共有メモリーなど)から本体を作り直す
使っているテーマのfunctions.php 末尾に印で囲んだ塊を足し、db.phpと同じく本体を書き戻す
mu-plugins(必ず読み込まれるプラグイン)の偽のプラグイン バックドアの本体。管理画面に出ない
plugins(通常のプラグイン)の同じ偽のプラグイン 本体の写し。それらしい設定画面まで用意している

ファイルの外にも写しがあります。Sucuriは、ファイル以外の3か所で生きた写しを見つけました。

  • データベース: 設定の表(options)の、名前がでたらめな行に本体を丸ごと保存。advanced-cache.phpが、サイト自身のデータベースのパスワードで直接読み出します。ファイルを完全に掃除しても、次の表示でここから全部が戻ります。
  • 共有メモリー: 対応するサーバーでは、本体をメモリー上の決まった番号の区画に書き込みます。メモリー上にあるため、ファイルとデータベースを掃除しても残ります。
  • 定期実行(cron): でたらめな名前の定期実行を登録し、サーバーの定期実行に合わせて書き戻します。

関連する種類では、データベースのトリガー(行が足されたときに動く仕掛け)で管理者を作り直す例も見つかっています。データベースの中で動くため、ファイルを丸ごと戻しても、アカウントを消しても、トリガーが残る限り管理者がまた現れます。

バックドアがすること

Sucuriによると、本体は次のことをします。

  • 自分を隠す: プラグインの一覧や更新の確認から自分の行を消し、管理画面に出ないようにします。
  • イーサリアムの公開の中継から指示を受ける: 決まったサーバーではなく、暗号資産イーサリアムの公開の中継(約20か所)を通じて、スマートコントラクト(ブロックチェーン上のプログラム)から指示を読みます。正規の中継を使うため、通信で見えた1か所だけを止めても、ほかが使われます。
  • サイトの情報を送り、追加の指示を受ける: サイトのURL、WordPressとプラグインの版、テーマ、管理者のログインの情報などを暗号化して送ります。返事には、表のページに差し込むJavaScript(通販サイトならカード情報を盗む仕掛けにもなる)、新しいPHP、止めて消すセキュリティのプラグインの一覧が含まれることがあります。
  • 見えない管理者を作る: 管理者のアカウントを作り、一覧や人数の表示から隠します。パスワード無しでログインできる認証のクッキーも作ります。
  • 全部を作り直す: 多くの処理に仕掛けを付け、ほかのすべての部品を書き戻します。

同じように「管理画面から見えない管理者」を作る攻撃は、WordPressに「見えない管理者」を作る攻撃 Ninja FormsとWPC Product Bundlesの悪用と確認手順でも取り上げました。

消す順番

Sucuriは、1つずつ消すより順番が大事だとしています。間違った順番でファイルから消すと、書き戻しが起きるだけだからです。実行を止め、ファイルの外の写しをファイルより先に消し、最後にファイルを一度にまとめて消します。

Sucuriの報告の「How to Clean It Up」の部分(英語)。部品がお互いを作り直すため、1つずつ消すより順番が大事で、実行を止め、ディスクの外の写しを先に消し、最後にファイルを一度に消す、と書く。手順は、1.読み込みの指定を外す前に指定先を無害にする(auto_prepend_fileの値はPHPが最大300秒覚えているため)、2.設定の表の本体の行・共有メモリー・制御用の設定を消す、3.不正な定期実行と、管理者を作り直すデータベースのトリガーを消す、4.隠れた管理者とそのIDを指す設定を消す、5.読み込み役と中継役、2か所の偽のプラグイン、ZIP、db.phpとadvanced-cache.phpを一度に消し、テーマのfunctions.phpは印で囲まれた塊だけを削る、6.もう一度調べて、作り直されないか見張る
Sucuriが示した消す順番。ファイルの外の写しを、ファイルより先に消す出典: Sucuri「SC WordPress Malware: A Self-Healing Mesh of Loaders, Drop-Ins, and a Blockchain-Controlled Backdoor」(引用)
  1. 読み込みの指定を先に無害にする: PHPはauto_prepend_fileの値を最大300秒覚えています。指定先のファイルを先に中身の無いものにしてから、.user.ini・php.ini・.htaccessの指定を外します。覚えている間に指定先を消すと、そのアカウントのPHPがすべて動かなくなります。
  2. ファイルの外の写しを消す: 設定の表の本体の行、共有メモリーの区画、制御用の設定を消します。残っていると、次の表示で全部が書き戻されます。
  3. 定期実行とデータベースのトリガーを消す: 不正な定期実行を外し、管理者を作り直すトリガーが無いかを確かめます。
  4. 隠れた管理者を消す: 隠された管理者のアカウントと、そのIDを指す残りの設定を消します。
  5. ファイルを一度にまとめて消す: 中継役と読み込み役、2か所の偽のプラグイン、復元用のZIP、db.phpとadvanced-cache.phpを消します。テーマのfunctions.phpは、印で囲まれた塊だけを削り、正規のコードは残します。
  6. もう一度調べて、戻ってこないか見張る: 何かが戻ってきたら、どこかに写しが残っているか、最初の入り口がまだ開いています。

Sucuriは、掃除のあとに、入り口をふさぎ、攻撃者が触れた可能性のあるパスワードや鍵をすべて替えるよう求めています。

影響する会社・しない会社

  • 影響する: WordPressで自社のサイトや通販サイトを運営している会社です。とくに、古いプラグインやテーマを更新せずに残しているサイトは、入り口になりやすい状態です。
  • 影響する: 怪しいファイルを消しても、しばらくすると戻ってくる、という経験があるサイトです。ファイルの外に写しが残っている可能性があります。
  • 影響する: 共用のレンタルサーバーで運営している会社です。共有メモリーの写しを自社では消せない場合があり、サーバー会社の手を借ります。
  • 影響しない(現時点): WordPressを使っていないサイトです。ただし、「ファイル以外に写しを残して作り直す」という考え方は、ほかの仕組みのサイトでも起こりえます。

情シスが今日やること

  • 潜み場所を点検する。wp-contentのdb.phpとadvanced-cache.php、テーマのfunctions.phpの末尾、.user.ini・php.ini・.htaccessのauto_prepend_file、mu-pluginsとpluginsに同じ中身のプラグインが無いかを見ます。db.phpやadvanced-cache.phpは、正規のキャッシュのプラグインなどが置くこともあるため、置いた覚えがあるかで判断します。
  • 管理者をデータベース側でも数える。管理画面の一覧と、データベースのユーザーの表で、管理者の数が合うかを確かめます。合わなければ、隠れた管理者を疑います。
  • 外への通信を見る。Webサーバーから、イーサリアムの公開の中継への通信が無いかを確かめます。サイトの仕組み上、そうした通信が要らないなら、まとめて止めることも検討します。
  • 掃除は順番どおりに。感染が見つかったら、ファイルから消し始めず、上の順番で進めます。自社で難しいなら、掃除の専門の会社やサーバー会社に頼みます。終わったら、データベースのパスワード、WordPressの鍵(ソルト)、管理者のパスワードを替えます。
  • 制作会社に確かめる。サイトの運用を任せている場合は、プラグインとテーマを最新にしているか、上の場所を点検したかを聞きます。入り口になりやすい古いプラグインの例は、WordPressのBricksforgeに認証なしでPHPを動かされる脆弱性、悪用を観測にもまとめています。

よくある質問

Qファイルを消したのに、すぐ戻るのはなぜですか。

ASCは、同じバックドアを少なくとも8か所に置き、どの1つからでもほかを作り直します。ファイルを全部消しても、データベースの設定の行や、サーバーの共有メモリー、定期実行(cron)に写しが残っていれば、次のページの表示や定期実行で全部が戻ります。Sucuriは、ファイルより先に、ファイルの外の写しを消すよう案内しています。

Q自社のサイトが感染していないか、どこを見ればよいですか。

ASucuriの痕跡の一覧によると、wp-contentのdb.phpとadvanced-cache.phpに見覚えのないPHPの塊が無いか、使っているテーマのfunctions.phpの末尾に印で囲まれた塊が無いか、.user.ini・php.ini・.htaccessにauto_prepend_fileの指定が無いか、mu-pluginsとpluginsに同じ中身のプラグインが無いか、を見ます。データベースでは、名前がでたらめで大きな値を持つ設定の行や「sc_」で始まる設定、管理画面の一覧に出ない管理者を確かめます。Webサーバーからイーサリアムの公開の中継への通信も目印です。

Qバックアップから戻せば済みますか。

Aファイルだけ戻しても、データベースの設定の行や、関連する種類で見つかったデータベースのトリガー(管理者を作り直す仕掛け)が残っていれば、また作り直されます。データベースも含めて感染より前の状態か確かめ、入られた入り口(古いプラグインなど)をふさぎ、攻撃者が触れた可能性のあるパスワードや鍵を替えるところまでが必要です。

Qレンタルサーバー(共用)でも関係ありますか。

A関係します。Sucuriによると、共用のサーバーでは、共有メモリーの写しがほかのアカウントの持ち物になっていることがあり、その場合はそのアカウントかサーバー会社しか消せません。共有メモリーを読みにいくファイルを消せば害はなくなるとしていますが、自社だけで手に負えないときは、サーバー会社に相談します。

出典・参考

チェック済み。この記事は監修者によってチェックされました。(2026年10月19日)

執筆

情シスのミカタ編集部AIにより執筆

書いた AI: AI記者(解説)

法令・官公庁の発表・企業の公式発表などの一次情報を調べて、情シス向けの解説・比較・テンプレの記事を書きます。数字と日付は出典と照らして確かめ、記事の最後に出典を載せています。使っているAI: Anthropic Claude。

監修

佐々木 航株式会社Game

代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

メモ: 掲載時に自動で(しばらくの間)

記事は AI が一次情報を調べて書き、機械の検査を通してから公開しています。人が見ているもの・見ていないものはAI の使い方に書いています。まちがいに気づいたら訂正・ご指摘からお知らせください。直したら、記事の最後に何を直したかを書きます。

役に立ったら、いいねと共有をお願いします