日本時間の10月16日5時2分から16時12分まで。この約11時間に配布されたSEOプラグイン「Rank Math PRO」のバージョン3.0.123に、不正なコードが入っていました。

開発元のRank Mathが公式のサポートページで発表しています。対象は有料版のRank Math PROだけで、WordPress.orgで配布されている無料版「Rank Math SEO」は対象外です。

Rank Math PROを使っている人に向けて、自分のサイトが当てはまるかの確かめ方と、当てはまったときにやることを、公式の案内に沿ってまとめました。


WordPressで記事販売ができる「YOMERU」
記事を、そのまま収益に。
WordPressサイトで記事の有料販売ができる
無料のプラグイン「YOMERU」。

何が起きたのか

Rank Mathの発表によると、決められた時間にRank Math PRO 3.0.123をダウンロードした一部の利用者に、不正なコード(マルウェア)入りのファイルが配布されました(①)。有効化すると、サイトが乗っ取られるおそれのあるコードです。Rank Mathはすでにファイルを取り除き、修正版の3.0.124を公開しています。

Rank Math PRO 3.0.123の公式発表

無料版のRank Math SEOを使っているサイトは影響を受けておらず、何もする必要はないとされています(②)。

参考:Rank Math PRO 3.0.123 Security Incident: How to Secure Your Website(Rank Math)

発表の時刻は世界標準時(UTC)で書かれています。日本時間に直すと、次の時間です。

Rank Math PRO 3.0.123が配布されていた時間

このように、開発元の配布の仕組みに不正なコードが入り込み、正規の更新として利用者に届いてしまう攻撃を「サプライチェーン攻撃」と呼びます。利用者が正しい手順で更新していても防げないのが厄介な点です。

自分のサイトが当てはまるか確かめる

1. Rank Math PROを使っているか

管理画面の「プラグイン」を開き、「Rank Math SEO PRO」があるかを見ます。無料版の「Rank Math SEO」だけなら、当てはまりません。

2. いつ、どのバージョンを入れたか

「プラグイン」の一覧で、Rank Math PROのバージョンを確かめます。今3.0.123になっている場合や、10月16日5時2分から16時12分(日本時間)の間に更新した覚えがある場合は、次の表で当てはまるものを確かめます。

状況 公式が案内している対応
3.0.123を入れて、有効化した サイトが乗っ取られたものとして扱う。次の章の手順で対応する
3.0.123を入れたが、有効化していない 3.0.123のファイルを削除し、3.0.124を入れ、念のためセキュリティスキャンをする
ダウンロードしただけで、サイトには入れていない それだけでは乗っ取られた兆候にはならない。分からないときはRank Mathのサポートに問い合わせる

有効化していた場合にやること

公式の案内では、方法が2つ示されています。確実なのは、問題の時間より前のバックアップに戻す方法です。

方法1:問題の前のバックアップに戻す(おすすめ)

  1. 10月16日5時2分(日本時間)より前に取ったバックアップで、サイトのファイルとデータベースを元に戻す
  2. WordfenceやSucuriなどのセキュリティツールでスキャンする
  3. WordPress、サーバー、データベースのパスワードと、APIキーをすべて変える
  4. Rank Mathのアカウントから3.0.124をダウンロードして入れる

バックアップの取り方と戻し方は、こちらの記事で紹介しています。

方法2:手作業で取り除く

戻せるバックアップがないときは、手作業で取り除きます。公式の案内は、順番を守るように書かれています。この不正なコードは、誰かがサイトを開くたびに、隠れた入り口(バックドア)を作り直す仕組みになっているためです。作り直す仕組みを止める前にファイルだけ消しても、また元に戻ってしまいます。

  1. 作り直す仕組みを止める:rank-math-pro のフォルダを丸ごと削除する(無効化だけでは足りない)。データベースの wp_options から、下の表の3つの項目を削除する。サーバーやファイアウォールで rank1cdn.com への通信を止められるなら止める
  2. 残った変更を取り除く:下の表の場所を1つずつ確かめる
  3. 鍵を変える:WordPress、サーバー、FTP・SFTP、SSH、データベースのパスワードを変える。wp-config.php の認証用キー(ソルト)を作り直す。外部サービスのAPIキー、メール送信(SMTP)や決済のキーも作り直す
  4. 確かめる:もう一度スキャンし、WordPress本体とプラグインのファイルが改ざんされていないかを確かめる。消したファイルがまた現れないかを見る
  5. 3.0.124を入れる

消したファイルがまた現れる場合は、サーバー会社やセキュリティの専門家に相談するよう案内されています。手作業は見落としが出やすいので、迷ったら早めに専門家に頼みます。

公式が挙げている痕跡

確かめる場所 痕跡
データベース(wp_options) _uf6qdn2hmm、t8krdk990phb、_np5pvf754c という名前の項目
通信先 rank1cdn.com
WordPress本体 本来ないファイル wp-includes/class-wp-cache-util.php
ユーザー wpsupport_ で始まるユーザー名、または wp-mail[.]net で終わるメールアドレスの管理者
PHPファイル wp-content/mu-plugins/、ほかのプラグインのフォルダ、テーマの inc・includes・lib フォルダ、Rank Mathの includes フォルダ、uploads フォルダの中の見覚えのないPHPファイル
.htaccess .cache ファイルをPHPとして動かす設定
定期実行(cron) サーバーのcronにある #ms6v46 という印の付いた設定、身に覚えのないWordPressの予約処理

※ wp-mail[.]net は、誤ってリンクにならないよう [.] と書いています。

WP-CLIが使えるサーバーなら、管理者の一覧(wp user list –role=administrator)、本体ファイルの改ざんチェック(wp core verify-checksums)、予約処理の一覧(wp cron event list)で確かめられます。

wp user list --role=administrator
wp core verify-checksums
wp cron event list

修正版3.0.124の入れ方

rankmath.com を自分で開いてログインし、ダウンロードのページから3.0.124を取得します。Rank Mathは、ログイン用やダウンロード用のリンクをメールで送ることはないと書いています。今回の件に便乗した偽のメールのリンクは開かないようにします。

今回の対応の中で、10月13日〜16日に作られたRank Mathの無料アカウントの一部が削除されています。対象の人にはメールが届いており、同じメールアドレスで登録し直したあと、WordPressの「Rank Math SEO」→「ダッシュボード」→「Help」からつなぎ直すよう案内されています。サイトのSEO設定や記事のデータには影響はありません。

まとめ

Rank Math PROを使っているなら、今日のうちにバージョンを確かめます。3.0.123で、10月16日5時2分から16時12分(日本時間)の間に更新していたら、まずはその前のバックアップに戻せるかを確かめます。

今回のように、正規の更新そのものに不正なコードが入っていると、こまめに更新しているサイトほど早く巻き込まれます。防ぐのは難しくても、毎日のバックアップを数日分残しておけば、問題の前に戻せます。日ごとのバックアップが残っているか、この機会に確かめておくと安心です。

乗っ取られたときの症状や、ほかの対処法はこちらの記事で紹介しています。

世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「ISSUE」
WordPressテーマ「ISSUE」
人材不足を解決する求人採用サイトを。
WordPressテーマ「SEEED」
WordPressテーマ「SEEED」
Webサービスを販売するLP型テーマ。
WordPressテーマ「GENESIS」
WordPressテーマ「GENESIS」
スタイリッシュな企業サイトの決定版。
WordPressテーマ「SOLARIS」
WordPressテーマ「SOLARIS」
一流の企業のための一流の企業サイトを。