目次
マルウェアの概要
本ファイル「bvmhjs.php」は、強く難読化されたPHPバックドアです。
ランダム文字列のファイル名を使用し、検知回避を目的とした構造を持っています。
主な目的は、外部から任意コードを実行可能な状態を維持し、攻撃者が継続的に侵入できるようにすることです。
特徴
- ランダムなファイル名(bvmhjs.php)
- 変数名の無意味化
- base64 / 16進数エンコード文字列の分割結合
- eval / assert / create_function 系の動的実行構造
- 外部サーバー通信処理
正規ファイルに見せかけず「意味不明な名称」にすることで、管理者の目視確認を回避します。
無毒化したコードの一部をサンプルで表記
危険部分を無効化した可読化サンプル:
<?php
// エンコード文字列を復号
$encoded = "ZXZhbCgkX1BPU1RbJ2NtZCddKTs=";
$decoded = base64_decode($encoded);
// 本来はここで実行される
// eval($decoded); ← 無効化
実際の構造では、POSTデータや外部取得データを実行する仕組みになっていました。
感染ファイルの完全可読化ログ
解析結果の処理フロー:
- 難読化文字列を複数に分割
- 文字列結合で関数名を生成
- base64_decode 等で復号
- 外部通信またはPOST受信
- 取得内容を実行(危険部分は無効化)
擬似コード:
$func = build_function_name();
$data = receive_payload();
$decoded = decode_payload($data);
// eval($decoded); ← 無効化
典型的な「Webシェル型バックドア」の構造です。
危険性
このタイプのマルウェアが存在すると:
- 任意コマンド実行
- 管理者アカウント作成
- データベース改ざん
- SEOスパム挿入
- 他マルウェアの追加設置
- サーバー踏み台化
企業サイトでは重大な信用失墜リスクとなります。
実際の感染事例
確認される侵入経路:
- 脆弱なプラグインの放置
- 管理画面ブルートフォース攻撃
- 不正アップロード機能の悪用
- nulledテーマの利用
ランダム名称のPHPファイルが uploads 配下やテーマ直下に設置される事例が多く見られます。
駆除と復旧の方法
1. 即時隔離
- bvmhjs.php を削除
- 同階層の全PHPファイル精査
2. 再設置
- WordPressコアを公式から再アップロード
- テーマ・プラグインを正規版で再インストール
3. データベース確認
- 不審な管理者
- 不審なcron設定
- 不審なオプション値
再発防止のセキュリティ対策
- 不要プラグイン削除
- 定期アップデート
- WAF導入
- ファイル変更監視
- 二段階認証導入
- 定期バックアップ
「更新停止」と「検知遅延」が最大の被害要因です。
まとめ:早期対応がSEOと信頼回復のカギ
bvmhjs.phpのような難読化バックドアは、発見が遅れるほど被害が拡大します。
一度侵入されたサイトは「再侵入前提」で再構築することが重要です。
著者情報
WordPressのセキュリティ復旧・運用支援を専門する CreativeStudio樂のエンジニアユニット によって執筆されております。
WordPressのマルウェア駆除、改ざん復旧、セキュリティ強化の豊富な実務経験に基づき、企業サイトやブログ運営者が安心してサイトを運営できるよう支援しています。
