ハッキングされたWordPressウェブサイトへの対処方法

この記事では、最も一般的なWordPressハッキングの種類、それらの特定方法、および修正方法について説明します。このような問題が発生した場合は、専門のウェブ開発者に連絡してさらなるサポートを受けることを強くお勧めします。ホスティングアカウントのセキュリティ向上に関する追加ガイダンスについては、このガイドをご参照ください。

重要: 変更を加える前に、ウェブサイトの完全なバックアップを作成してください。 

ご注意: 将来のWordPressハッキングリスクを減らすため、定期的にホスティングアカウントをウイルス対策ツールでスキャンし、不正または疑わしいファイルを削除し、すべてのウェブサイトのプラグインとテーマを最新バージョンに保ってください。

  1. デフォルトファイルの欠落

  2. 欠落したWordPressファイルの置き換え方法

  3. すべてのデフォルトWordPressファイルの置き換え方法

  4. テーマまたはプラグインファイルの欠落

  5. 悪意のあるリダイレクト

デフォルトファイルの欠落

さまざまな問題がデフォルトファイルの欠落や改変を引き起こす可能性がありますが、最も一般的な原因はWordPressインストールへのマルウェアの注入です。幸いにも、当社のWebおよびホスティングサーバーのウイルス対策ツールは、感染したファイルを自動的に検出し隔離できます。

WordPressのコアファイルが感染した場合、次のような症状が現れることがあります:

  • 空白のページ;

  • 500 Internal Server Error;

  • 「このサイトで技術的な問題が発生しています」エラー(WordPress 5.2.2で導入);

  • またはその他の類似エラー。

この問題を解決するには、以下の手順に従ってください。

ウェブサイトのerror_logファイルを確認する

サイトで問題が発生した原因を特定するには、error_logファイルを確認してください。このファイルには、ウェブサイトで発生した重大なエラーが記録されます。

cPanelアカウント >「ファイルマネージャ」メニュー > WordPressインストールのルートディレクトリで見つけることができます。 

ドメインのルートフォルダにアクセスしたら、error_logファイルを探してください。存在する場合は、次の手順に従ってください:

  1. ファイルを右クリックし、表示を選択します:


  2. ログ内に次のようなエラーが表示される場合があります:「No such file or directory in…」と続き、欠落しているファイルのパスが表示されます。これは必要なファイルが存在せず、ウェブサイトが正しく動作しないことを示しています。

    例:

    /home/cPuser/public_html/wp-settings.php

  3. 欠落ファイルを復元するには、このガイドの「デフォルトファイルの置き換え方法セクションまでスクロールしてください。

display_errors PHPオプションを有効にする

ウェブサイトのルートディレクトリにerror_logファイルがない場合は、cPanelアカウントでdisplay_errorsPHPオプションを有効にできます。この設定により、エラーメッセージがウェブサイト上に直接表示され、問題の特定が容易になります。

重要: セキュリティ上の理由から、トラブルシューティングが完了したらdisplay_errorsを必ず無効にしてください。

PHPオプションは以下の方法で有効にできます:

  • php.ini経由 

cPanelの「PHP Tweaks」メニューに加え、php.iniファイルを直接編集・追加することで、ウェブサイトの特定設定を調整できます。 

display_errorsオプションを有効にするには、次の行をファイルに追加してください:

display_errors=1

新しいphp.ini ファイルをウェブサイトのルートフォルダに作成して行を追加するか、下記手順でシステム生成ファイルを修正してください。

  1. cPanelアカウントにログインし、「ファイルマネージャ」メニューに移動します。

  2. 設定で「隠しファイル(ドットファイル)を表示」オプションが有効になっていることを確認してください:


  3. 次のディレクトリに移動します: /home/cPanel_user/.system-php/ini


  4. ドメインに割り当てられたPHPバージョンを選択し、ドメインのディレクトリを選択します。例として、フルパスは次のようになります:

    /home/cPanel_user/.system-php/ini/7.0/testwebsite.com

  5. php.iniファイルを右クリックし、編集を選択します。

  6. 次の行をファイルに追加してください:

    display_errors=1

  • .htaccess経由


.htaccessファイル経由でdisplay_errors PHPオプションを有効にするには、「ファイルマネージャ」でウェブサイトのルートディレクトリ内のファイルを編集し、次の行を追加してください:

php_value display_errors 1

.htaccessファイルの場所を見つける詳細手順はこの記事で確認できます。 

変更後、保存をクリックしてください。

欠落したWordPressファイルの置き換え方法

WordPressはシンプルで整理されたファイル構造を持っているため、欠落または破損したファイルの復元が比較的簡単です。デフォルトのコアファイルを置き換えることは、マルウェアにより侵害されたファイルを完全に復元するために強く推奨されます。ただし、特定のファイルやフォルダを置き換える際は、適切に行わないとデータ損失のリスクがあるため注意してください。

欠落したWordPressファイルを置き換えるには、以下の手順に従ってください:

  1. cPanelにログインし、Softaculous Apps Installerに移動します。

  2. 一時的なサブディレクトリに新しいWordPressインストールを作成します。そのためには、WordPressアイコンをクリックし、インストールを選択します:


  3. インストール設定ページにリダイレクトされます。そこで、該当するドメイン名をドロップダウンメニューから選択し、ディレクトリ内フィールドにサブフォルダ名を入力します。

    この例では、fixサブフォルダをWordPressインストール用に使用しています:


    注意:すべてのデフォルトファイルを置き換えると、既存のインストールが一時的な「fix」インストールで使用されているバージョンに更新され、異なるバージョンのファイルを混在させるとシステムの競合やサイト機能の破損を引き起こす可能性があります。

    現在のWordPressバージョンを維持したい場合や特定のファイルのみを置き換える場合は、/wp-includes/version.php ファイル内でサイトのバージョンを確認し、新しいインストールが同じWordPressバージョンを使用していることを確認してください:


  4. 新しいインストール用のWordPressバージョンは、インストールウィンドウで直接選択できます:


  5. すべての設定が完了したら、クイックインストールをクリックするか、インストールページの下部までスクロールしてインストールをクリックしてください。 

  6. 新しいWordPressインストールが完了すると、そのファイルが「ファイルマネージャ」 > ドメインのルートディレクトリに表示されます。フォルダをダブルクリックして開いてください:


  7. 特定の欠落ファイル(例:wp-settings.php)を置き換えるには、新しいインストールディレクトリ内でそのファイルを探してください。

  8. その後、ファイルを右クリック > 移動 > ウェブサイトのルートフォルダへのパスを入力 > ファイルを移動をクリックして、現在のルートディレクトリに移動します。 


  9. 完了すると、欠落ファイルが復元され、ウェブサイトが正常に読み込まれるはずです。

すべてのデフォルトWordPressファイルの置き換え方法

ウェブサイトのすべてのデフォルトWordPressファイルを置き換える手順は、「欠落したWordPressファイルの置き換え方法」セクションと同じです。 

これらの手順が完了し、新しいWordPressインストールが作成されたら、ウェブサイトのルートフォルダ内のすべてのデフォルトファイルを置き換えるには、次の手順に従ってください:

  1. 新しいWordPressインストールのルートフォルダを開きます:


  2. 新しいインストールフォルダ内で、次のファイルとフォルダを削除してください:


    • .htaccess

    • wp-config.php

    • wp-content

      これらのファイルとフォルダにはサイトの設定やコンテンツが含まれているため、変更しないでください。

  3. その後、残りのファイルをメインウェブサイトのルートディレクトリに移動します。そのためには、すべて選択ボタン> をクリックし、移動 > サイトのルートフォルダへのパスを入力し、 > をクリックし、ファイルを移動をクリックします:


  4. WordPressコアファイルが完全に置き換えられました。ウェブサイトにアクセスして、すべてが正しく読み込まれることを確認してください。

    それでもサイトにエラーが表示される場合は、再度error_logを確認してください。ほとんどの場合、追加の問題はテーマやプラグインファイルの欠落が原因です。

テーマまたはプラグインファイルの欠落

テーマまたはプラグインファイルの欠落はさまざまな理由で発生しますが、最も一般的な原因はマルウェアによるWordPressインストールの重要なコンポーネントの感染・削除です。 

WordPressのプラグインまたはテーマファイルが欠落している場合、次のような現象が発生することがあります:

  • 空白のページ;

  • 500 Internal Server Error;

  • 「このサイトで技術的な問題が発生しています」エラー(WordPress 5.2.2で導入);

  • 一部だけ読み込まれる、または見た目が「壊れている」ページ。

問題の診断については、この記事の次のセクションを参照してください: ウェブサイトのerror_logファイルを確認するおよびdisplay_errors PHPオプションを有効にする

error_logやウェブサイト上に次のようなエラーメッセージが表示される場合があります:

PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...

破損または欠落したプラグインファイルによるエラーの例を以下に示します:


欠落ファイルを復元するには、該当するテーマまたはプラグインを再インストールしてください。

注意: テーマのfunctions.phpファイルの欠落は、しばしばwp-vcd.phpマルウェア(通常は/wp-includesディレクトリ内)に関連しています。新しいテーマをインストールする前に、wp-vcd.phpが存在する場合は削除し、完全な安全を確保したい場合は、前述の方法で全デフォルトWordPressファイルを置き換えてください(前述)

悪意のあるリダイレクト

場合によっては、ウェブサイトがマルウェアに感染すると、訪問者が有害または疑わしいページにリダイレクトされることがあります。この問題は、セキュリティの甘いプラグインやテーマが攻撃者にデータベースURLの改変やウェブサイトファイルの変更を許してしまうことが主な原因です。

注意:リダイレクトされたリンクは絶対にクリックしないでください。クリックすると、個人のパソコンがマルウェアに感染する可能性があります:


悪意のあるリダイレクトを修正するには、以下の手順に従ってください:

  1. ウェブサイトのデータベース設定ファイル(wp-config.php)をcPanel > ファイルマネージャ > ウェブサイトのルートフォルダで探します。ファイルを開き、ウェブサイトのデータベース名を確認してください:


  2. 次に、cPanelのphpMyAdminメニューでウェブサイトに割り当てられたデータベースを開き、wp_optionsテーブル(「wp_」はデフォルトのプレフィックス、異なる場合もあります)に移動します:


  3. siteurlおよびhomeフィールドの値を確認し、悪意のあるまたは疑わしいURLがあれば、実際のドメイン名に置き換えてください。 


  4. データベース内の他の類似の悪意あるURLもスキャンし、適切に置き換えてください。 

  5. 現在の.htaccessを一時的にクリーンなデフォルトバージョンに置き換えてください。既存ファイルの名前を変更(例:.htaccess_old)し、新しいファイルを一から作成するのが最善です。

    ファイル名を変更するには、ダブルクリック > 名前の変更をリストから選択 > 新しいファイル名を入力 > ファイル名を変更を押します。

    その後、新しいファイルを作成するには、+ ファイルをクリック > .htaccessと名付け > 新規ファイル作成を選択します。

  6. 新しい.htaccessが作成されたら、右クリック > 編集をリストから選択します。編集ウィンドウが開いたら、次のデフォルトWordPressルールをファイルに貼り付けてください:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress

  7. 変更を保存をクリックしてください。

ウェブサイトが引き続きリダイレクトされる場合は、すべてのデフォルトWordPressコアファイルを置き換えてみてください。

また、WordPressダッシュボードやデータベースからすべてのプラグインを一時的に無効化し、一つずつ有効化していくこともできます。すべてのプラグインを有効化したら、どのプラグインが悪意のあるリダイレクト問題を引き起こしているかを確認してください。

有効なメールアドレスが必要です