マルウェアの概要
本ファイル「amp.php」は、難読化(obfuscation)されたPHPコードを含むバックドア型マルウェアです。
一見すると意味不明な文字列や goto 文を多用し、実際の処理内容を隠蔽しています。主な目的は「外部から任意のコードを実行できる状態」を作り、攻撃者が継続的にサイトへアクセスできるようにすることです。
特徴
- goto文を大量に使用したフロー難読化
- 16進数・エスケープ文字による文字列組み立て
- 外部URLの動的生成
- 任意コード実行の可能性
- ファイル名を「amp.php」など正規ファイルに見せかける偽装
このタイプは、WordPressのテーマやプラグイン配下に設置されることが多く、Wordfence等のスキャンで検出される典型的な構造を持ちます。
無毒化したコードの一部をサンプルで表記
以下は危険な実行部分を無効化した可読化サンプルです。
<?php
// 文字列を分割してURLを構築
$base = "https://";
$path = "remote-server.example";
$endpoint = "/api/";
$url = $base . $path . $endpoint;
// ※実際のマルウェアではここで外部通信や eval() 実行が行われる
// eval($remote_code); ← 無効化
本来は分割された文字列を結合し、外部サーバーへ接続して取得したコードを実行する構造になっています。
感染ファイルの完全可読化ログ
難読化を解除すると、構造は以下の流れでした。
- 文字列をエスケープコードで分割保存
- goto文で処理順をランダム化
- URLを組み立て
- 外部通信
- 取得した内容を実行(危険部分は無効化)
擬似構造:
// ① 文字列再構築
$domain = build_string();
// ② 外部通信
$response = file_get_contents($domain);
// ③ 危険処理(無効化)
// eval($response);
この構造は典型的な「リモートコード実行型バックドア」です。
危険性
このマルウェアが設置された場合、以下のリスクがあります。
- 管理者アカウントの追加
- SEOスパムページの自動生成
- フィッシングページの設置
- マルウェアの二次感染
- サーバーを踏み台にされる
- Google検索結果からの除外
特に企業サイトでは、信用毀損・商談停止などの二次被害が深刻になります。
実際の感染事例
実務上、以下のケースで確認されています。
- 更新停止したプラグイン経由の侵入
- パスワード総当たり攻撃
- nulledテーマの利用
- サーバー権限設定の不備
本件のような amp.php は、既存ファイルに紛れ込ませることで発見を遅らせる手法です。
駆除と復旧の方法
1. 即時対応
- amp.php を削除
- 同ディレクトリ配下の全ファイルを比較確認
- 不審な管理者ユーザーの削除
2. コア・テーマ・プラグイン再設置
- WordPress本体を公式から再アップロード
- テーマ・プラグインを正規版で再インストール
3. データベース確認
- 不審なオプション値
- 不審なユーザー
- 不審な投稿(SEOスパム)
再発防止のセキュリティ対策
- 不要プラグインの削除
- 強固なパスワード
- WAF導入
- ファイル改ざん検知の導入
- 定期バックアップ
- 管理画面URLの変更
特に「更新停止」が最大の原因になるため、保守体制の構築が重要です。
まとめ:早期対応がSEOと信頼回復のカギ
amp.phpのような難読化バックドアは、発見が遅れるほど被害が拡大します。
「動いているから問題ない」という状態は非常に危険です。
定期的なスキャンと専門的な解析により、被害を最小限に抑えることができます。
著者情報
WordPressのセキュリティ復旧・運用支援を専門する CreativeStudio樂のエンジニアユニット によって執筆されております。
WordPressのマルウェア駆除、改ざん復旧、セキュリティ強化の豊富な実務経験に基づき、企業サイトやブログ運営者が安心してサイトを運営できるよう支援しています。
