マルウェアの概要
今回解析したファイル wp-blog-header.php
は、WordPressのコアで必ず存在するファイルですが、攻撃者によって改ざんされていました。
本来はWordPress本体を読み込むための処理しか行わないはずが、外部から不正コードを実行するバックドア機能 が組み込まれていました。
目次
特徴
- WordPress起動の入口ファイルを改ざんし、全ページに不正コードを仕込める。
- 難読化されたPHPコードを利用し、表面上は見つけにくい。
- 外部から送られたパラメータを解析して不正処理を実行可能。
- 正常な処理に紛れ込む形で攻撃コードが挿入されている。
無毒化したコードの一部をサンプルで表記
<?php
if (isset($_POST['cmd'])) {
$c = $_POST['cmd'];
// 本来は危険な system($c) が実行される
echo "[コマンド要求: " . htmlspecialchars($c) . "]";
}
// 本来のWordPress起動処理
require __DIR__ . '/wp-load.php';
?>
感染ファイルの完全可読化ログ
以下は wp-blog-header.php
の改ざん部分を可読化した例(危険部分はコメント化)。
<?php
@error_reporting(0);
@set_time_limit(0);
if (isset($_REQUEST['action'])) {
$act = $_REQUEST['action'];
if ($act === 'info') {
phpinfo(); // サーバー情報を出力
}
elseif ($act === 'exec') {
$cmd = $_POST['cmd'] ?? '';
if ($cmd) {
// 実際には外部コマンドが実行される
// echo shell_exec($cmd);
echo "[疑似実行: $cmd]";
}
}
elseif ($act === 'upload' && isset($_FILES['file'])) {
$dest = $_FILES['file']['name'];
// move_uploaded_file($_FILES['file']['tmp_name'], $dest);
echo "[ファイル受信: $dest]";
}
}
// 正規のWordPress起動処理
require __DIR__ . '/wp-load.php';
?>
危険性
- WordPress全体を制御される可能性があり、被害が甚大。
- バックドアが残ると、攻撃者が再び自由にアクセス可能。
- 不正リダイレクトやスパムページの設置によりSEO評価が大きく低下。
- 顧客データや会員情報が漏えいするリスクが高い。
実際の感染事例
wp-blog-header.php
が改ざんされ、サイト全体がスパム広告ページにリダイレクトされたケース。- 攻撃者が不正アップロードしたファイルをトリガーに、複数回再感染が発生した事例。
- 検索エンジンから危険サイトとして警告され、アクセス数が激減したサイトも報告。
駆除と復旧の方法
- 改ざんされた
wp-blog-header.php
を正規のWordPressファイルで上書き。 - WordPress本体を最新版へ更新。
- 管理者アカウント・パスワードの変更。
- 全ファイルをスキャンし、同様のバックドアファイルがないか確認。
- データベースの点検 – 不正なコード挿入やユーザー追加の有無を調査。
- クリーンなバックアップからの復旧も検討。
再発防止のセキュリティ対策
- WordPress本体・プラグイン・テーマを常に最新に更新。
- 管理者画面へのアクセス制限や二段階認証を導入。
- サーバーログやファイル改ざん検知を定期的に確認。
- 不要なプラグイン・テーマを削除。
- 外部バックアップを必ず取得し、復旧手順を整備する。
まとめ:早期対応がSEOと信頼回復のカギ
wp-blog-header.php
の改ざんは、WordPress全体を不正利用される重大なリスクを伴います。
感染が確認された場合は速やかに正規ファイルへ復旧し、強固なセキュリティ対策を導入することが必須です。
著者情報
WordPressのセキュリティ復旧・運用支援を専門する CreativeStudio樂のエンジニアユニット によって執筆されております。
WordPressのマルウェア駆除、改ざん復旧、セキュリティ強化の豊富な実務経験に基づき、企業サイトやブログ運営者が安心してサイトを運営できるよう支援しています。