WordPressがハッキングされた時の対処方法

1年間で、世界では3億8千万人(このうち日本が400万人)がサイバー攻撃の被害を受けています。
2020年にはアメリカの国務省や国防総省でも被害が発生しましたし、このウェブサイトも攻撃を受けました。
遠い世界の出来事ではないです……なかったです!

そこで、同様なWordPressによる構築サイトで攻撃を受けた方の一助になればと考え、このハバスで行った対処方法を公開します――

Googleからハッキング通知

発見のきっかけは、Googleからの通知でした。

お客様のサイトが第三者によってハッキングされ、一部のページで不正なコンテンツが作成されていることが判明いたしましたので、お知らせいたします。

まずは侵入を防ぐ

これ以上の侵入を防ぐため、まずセキュリティを向上させます。
このために無料のプラグイン「SiteGuard WP Plugin」を導入しました。
WordPressにインストールするだけで、不正ログインを中心としたセキュリティを強化してくれるシンプルなプラグインです。
有効化すると基本機能が適用されますが、その1つとしてログインURLが変更されます。
単純ですが、ログインURLを推測しにくくなることは不正ログイン対策として有効です。

不正なコードを除去する

Googleで「site:ドメイン名」を検索すると、検索結果の上位に見覚えのないページが並んでいました。
マルウェア(サイトに不正に埋め込まれたファイルやコード)が原因です。
この発見のためにプラグイン「Wordfence Security無料版」を導入しました。
有効化しておけば、今後のマルウェア監視も行ってくれます。

感染した状態でスキャンを行うと、以下が見つかります。

    1. 拡張子icoに偽装したPHPファイル
    2. ランダムな名称のPHPファイル
    3. マルウェアを読み込むための「@include」命令が追記された既存のPHPファイル
1の中身(一例、一部を抜粋)

「eval」は、呼び出し元の権限で文字列に書かれた命令を実行する関数です。
「非常に大きなセキュリティリスクを伴うため使用は薦めません」とリファレンスでもわざわざ明記されています。
ということは、WordPress上にあるファイルを検索してみてこの「eval」が見つかった場合は、ハッキングが疑わしいということになります。

2の中身(一例、一部を抜粋)

画像のファイルでは、ランダムな名称の変数が定義されており、1で実行するための命令が格納されています。


3の中身(一例、一部を抜粋)

文字コード表記で分かりにくくなっていますが、1を読み込む命令が既存ファイルに追記されていました。

1と2は、本来、WordPressには存在しないファイルですので丸ごと削除します。
3の場合は、追記された部分を削除します。
サイト生成時に作られる「wp-config.php」以外の場合は、WordPressやプラグインのバージョンが同じであれば、別にインストールしたWordPress等から、感染していないファイルを持ってきて上書きしてしまうことも可能です。

Googleの警告を削除してもらう

Googleから通知が来ていた場合、対応が終われば警告が削除されないと困りますよね。
通知メール内のリンク先で問題ないことを検証できれば、警告は削除してもらえます。

ハッキングされたと慌てないでください。
落ち着いて1つずつ対処していくことが、解決への道ですからね。