WordPressバックドアハッキングとは?症状・発見方法・修正手順を徹底解説
WordPressバックドアとは?
毎年何千ものWordPressサイトがマルウェアに感染しており、その数は年々増加しています。ハッキングされたサイトは、詐欺やスパムの拡散に利用されることが多く、サイトオーナーや開発者自身が感染に気づいていないケースも少なくありません。感染は一時的な場合もあれば、長期にわたり潜伏する場合もあります。この「持続性」を支えているのが、まさにWordPressバックドアなのです。
WordPressバックドアとは、攻撃者にサーバーへの不正かつ永続的なアクセスを許してしまうコードのことです。多くの場合、どこかに隠された悪意あるファイルとして存在し、感染したプラグインであるケースもあります。新しいタイプのバックドアハックは毎月のように発見されており、油断は禁物です。
ハッカーは常にWordPressへのバックドア設置を試みており、過去には複数のプラグインが感染拡大の温床となりました。つまり脅威はどこからでもやってくる可能性があります。一度仕込まれたバックドアの除去は時間と労力のかかる作業になりますが、事前の予防策で被害を大幅に抑えることは可能です。セキュリティが堅牢なWordPressサイトなら、攻撃を完全に防げない場合でも、少なくとも侵入を遅らせることはできます。本記事では、WordPressバックドアの発見方法と修復手順を詳しく解説します。
関連ガイド – WordPressセキュリティ完全ステップバイステップガイド(ハッキングリスクを90%削減)
WordPressバックドアハッキングにつながる主な要因
WordPressサイトの構築は比較的容易ですが、いくつかの脆弱性がバックドア侵入の経路になり得ます。主な要因は以下の通りです。
- バグを含むプラグインやテーマの使用
- 脆弱な、または初期設定のままのログイン情報
- 不適切なファイル権限による機密ファイルの露出
- ファイアウォールなどのセキュリティソリューション未導入
- 古いまま更新されていないインストール環境
- 他サイトと共有するサーバー自体の感染(ホスティング業者にサブネット運用について確認しましょう)
WordPressバックドアの発見方法
テーマ内に潜むバックドアを見つける
使用していない(非アクティブな)テーマは、バックドアを隠すのに絶好の場所です。ハッカーもそれを熟知しており、こうしたテーマを積極的に狙います。非アクティブなテーマはオーナーが確認しない可能性が高いためです。WordPressテーマにはfunctions.phpという重要なファイルが含まれています。このファイルはPHPネイティブ関数やWordPress関数を呼び出す役割を担っており、端的に言えばあらゆる操作を実行できてしまいます。そのため、攻撃者はしばしばこのファイルへコードを注入しようとします。
例えば、www.yoursite.com/wp-includes/registration.php というURLに攻撃者がアクセスすると発動し、次のような新規管理者ユーザーを作成する悪意あるコードが挙げられます。
ID: backdooradmin
パスワード: Pa55W0rd.
ユーザーを削除しても、このURLに再アクセスされれば復活してしまいます。これこそ典型的なWordPressバックドアの例です。ただし、このようなコードを注入するには、まずサーバーへのアクセス権が必要です。開放されたFTPポートなどの脆弱性が侵入口となります。
プラグイン内に潜むバックドアを見つける
WordPressバックドアハックは、脆弱性のあるプラグインが原因であることが少なくありません。近年では500万以上のアクティブインストールを持つContact Form 7において、特権昇格につながる脆弱性が話題になりました。プラグインファイルが改ざんされても、ダッシュボード上では気づきにくいことがありますが、FTP経由でファイルを検索すれば発見できる場合があります。また、正当性を装うために、バックドアファイルには「ヘルパーファイル」のような無害な名前が付けられることもあります。プラグインにバックドアが潜みやすい理由は以下の通りです。
- 未使用のプラグインは長期間バックドアを隠せるため、狙われやすい
- 信頼性の低い無名プラグインはコーディング品質が低く、リスクが高い
- 古いプラグインは更新されないまま使い続けられるため標的になりやすい
- こうした脆弱なプラグインは、他のコアファイル改ざんの足掛かりにもなる
したがって、見覚えのないプラグインをすべて精査し、未使用のプラグインは速やかに削除しましょう。
インストールファイル内に潜むバックドアを見つける
コアファイルの改ざんは、プラグイン経由の感染後に発生することが多いです。コアファイル内に不正なコードが紛れ込んでいたり、見慣れないファイルが出現したりします。バックドアは、以下のような意味不明な文字列として現れることもあります。
$t43="l/T6\\:aAcNLn#?rP}1\rG_ -s`SZ\$58t\n7E{.*]ixy3h,COKR2dW[0!U\tuQIHf4bYm>wFz<admin@wsxdn.com&(BjX'~|ge%p+oMJv^);\"k9";
$GLOBALS['ofmhl60'] = ${$t43[20].$t43
このコードは既知の技術で難読化されているため、人間には読み取りにくくなっています。不審に感じたコードは注意深く調査し、該当ファイルは削除しましょう。また、バックドアはxml.php、media.php、plugin.phpなど、一見正当なファイル名を装っていることもあります。どのファイルも安易に飛ばさず、必ず確認してください。
さらに、ファイル内から「FilesMan」というキーワードも検索してみてください。これは悪名高いFilesManシェルに関連するキーワードです。このバックドアは検知が非常に難しく、ログにも痕跡を残しません。パスワードなどの機密情報を盗み出す目的で使用されます。
<?php
$auth_pass = "";
$color = "#df5";
$default_action = "FilesMan";
$default_charset = "Windows-1251";
?>
この例では、$default_action = "FilesMan" の行にキーワードが含まれています。この感染の亜種には共通してこのキーワードが現れます。また、コードが16進数やbase64でエンコードされている場合は、無料のオンラインデコーダーツールを活用して内容を確認しましょう。さらに、.htaccess などの機密ファイルが書き換えられている可能性もあるため、必ず点検してください。
WordPressバックドアハックの修復方法
チェックサムの比較
最初のステップはチェックサムの比較です。これはファイルの整合性を判定する実用的な手法で、手動での確認も可能ですが、無料の自動ツールも多数公開されています。対象はコアファイルだけでなく、プラグインやテーマのチェックサムも提供されています。加えて、公開されているブラックリストを参考に、独自の拒否リストを管理するのも有効です。チェックサムが一致しなかったファイルについては、手動でのバックドア除去に進みます。
コアファイルの整合性確認
チェックサムが異なる値を示したファイルは、目視で詳細に調査します。バックドアハックによって改ざんされている可能性が高いからです。まず、WordPressのクリーンなコピーを取得しましょう。
$ mkdir WordPress
$ cd WordPress
このコマンドで「WordPress」ディレクトリを作成し、移動します。
$ wget https://github.com/WordPress/WordPress/archive/4.9.8.zip
$ tar -zxvf 4.9.8.zip
1行目でWordPressの最新版(この例では4.9.8)をダウンロードし、2行目で展開します。続いて重要なのが差分比較です。$ diff -r path/to/your/file.php /Wordpress/wp-cron.php のように実行すると、2つのファイルの違いが表示されます。バックドアによって改ざんされていれば、変更箇所が明らかになるでしょう。ただし、xmlrpc.php のように動的に変化するファイルもあります。このファイルはRPC経由でユーザーや外部サービスがサイトと通信するために使われるもので、ハッカーもそれを理解しており、ここにバックドアを隠そうとすることが多いため、特に慎重な確認が必要です。
エンコーディングの調査
ファイルが改ざんされていても、そのままでは人間に読めない形式であることがあります。そんなときは、base64エンコードの検索から始めましょう。grepコマンドが威力を発揮します。
find . -name "*.php" -exec grep "base64" '{}' \; -print &> output.txt
このコマンドは、検出されたbase64文字列をすべてoutput.txtに出力します。あとはオンラインツールで平文にデコードできます。PHPファイル以外も検索したい場合は、*.phpの部分を適宜変更してください。また、悪意あるコードが16進数形式の場合もあるため、grep -Pr "[\x01\x02\x03]"も併用しましょう。他の類似エンコーディングについても同様の手順を繰り返し、悪意あるファイルやコード行を削除してバックドアを完全に排除します。
サーバーログの活用
サーバーログは、バックドアの発見と除去に大きく役立ちます。まず、特定の日付以降に変更されたファイルを洗い出します。FTPログも参照し、サーバーへの接続に使用されたIPアドレスを確認しましょう。最近変更されたファイルには常に注目してください。
特に忘れがちなのが画像フォルダのチェックです。画像フォルダ内に実行ファイルが存在するのは本来あり得ません。しかも画像フォルダは書き込み可能な権限が設定されていることが多く、ハッカーが隠れ場所として好んで利用します。機密ファイルの権限が適切かどうかも確認し、444 (r–r–r–) または 440 (r–r—–) を設定するのが推奨されます。
アップデートとバックアップ
WordPressサイトを常に最新の状態に保つことの重要性は、繰り返し強調されています。古いままのインストール環境は、感染済みのサイトと同じほど危険です。
侵入原因を特定できない場合は、まず現在のサイトのバックアップを取得した上で、過去のクリーンなバックアップから復元し、両者を比較して差分を確認してください。
既存のバックアップがない場合は、WordPressコアファイルを新しいものに置き換えます。その際も、必ず現在のサイトのバックアップを取得してから、手動でWordPressを更新しましょう。
また、使用中のプラグインに脆弱性が報告された場合は、直ちに更新することをお勧めします。パッチの提供まで時間がかかる場合は、安全性の高い代替プラグインへの乗り換えを検討してください。公式ブログなどを定期的にチェックし、修正情報をいち早く入手する習慣をつけましょう。
WordPressバックドアスキャナーを活用する
人間は誰しもミスを犯します。手動での点検は手間がかかる上に、見落としも起こりがちです。そこで有効なのが自動化です。現在市場には高性能なセキュリティツールが数多く存在し、WordPressバックドアの検出・除去を自動で行えます。その一例がAstra Malware Cleanerです。サイト内のマルウェアを清掃するだけでなく、将来的な感染からもサイトを守ります。価格も手頃で、サイト全体のセキュリティ状況を可視化できるため、貴重なリソースと時間を大幅に節約できるでしょう。
-
WordPressリダイレクトハックとは?スパムリダイレクトの原因と完全な駆除・対策ガイド
WordPressサイトの訪問者が、見覚えのない危険なサイトへ勝手にリダイレクトされていませんか?もしそうであれば、あなたのサイトはハッキングされている可能性があります。いわゆるWordPressリダイレクトハックは非常によく見られる攻撃手法の一つで、マルウェアによって訪問者をスパムサイト、フィッシングページ、あるいは攻撃者が管理するドメインへ強制的に誘導してしまうものです。 最近では、多くのWordPressサイトが[.com]スペース許可ドメイン→Adaranth[.com]のafu.php→一部の正規サイトという流れで悪質なドメインへリダイレクトされる事例が確認されています。攻撃者はさま
-
WordPressバックドアハッキングとは?症状・発見方法・対処法を完全解説
WordPressのバックドア(Backdoor)とは? 毎年、数千ものWordPressサイトが感染被害を受けており、その数は年々増加しています。ハッキングされたサイトは、詐欺行為やスパムの拡散に悪用されることが少なくありません。しかも、多くの場合、サイトの所有者や開発者は感染に気づいていません。感染は持続的な場合もあれば、そうでない場合もあります。そこで問題になるのが「バックドア」です。WordPressのバックドアとは、攻撃者にサーバーへの不正かつ永続的なアクセスを許してしまうコードのことです。多くの場合、どこかに隠された悪意のあるファイルとして存在し、時には感染したプラグインであること