WordPressデータベースのマルウェアスキャンと駆除方法を徹底解説
最近、データベースに何か奇妙なものを見つけませんでしたか?見覚えのないテーブルがいくつも存在する、あるいはoptionsテーブルに不明なURLが記録されている——そんな経験はありませんか?
これらは、ハッキングされたデータベースを示す典型的な兆候です。
WordPressデータベースには、WordPressサイトに関するあらゆる情報が保存されています。データベースがハッキングされると、攻撃者は情報を盗み出したり、サイトを別のWebサイトへ不正にリダイレクトさせたりといった被害をもたらします。
しかし、心配はいりません。データベースへの感染はWordPressサイト運営者にとってごく一般的なトラブルであり、復旧させる方法は確かに存在します。重要なのは、できるだけ早くサイト全体をスキャンし、クリーンアップすることです。
対応方法は主に2つあります。手動でスキャンと駆除を行う方法と、セキュリティプラグインを利用する方法です。
マルウェア駆除の2つのアプローチ
手動でWPデータベースからマルウェアを除去するには、データベースに関する専門知識が必要です。それでも作業には時間がかかるため、手動でのスキャン・クリーンアップは技術的な知識を持つユーザーに向いています。
一方、技術的な知識がないユーザーにとっては、セキュリティプラグインの活用が最善策です。
本記事では、プラグインを使ってWordPressデータベースのマルウェアをスキャンする手順をご紹介します。さらに、どうしても手動での対応を希望する方向けに、その詳細な手順についても解説します。
WordPressデータベースとは?
データベースとは、WordPressサイトのデータを格納するデジタルな倉庫のようなものです。どのCMSで構築されたサイトであっても、必ずデータベースを持っています。
WordPressでは、サイト構築時に自動的にデータベースが作成されます。この際、「MySQL」というデータベース管理ソフトウェアが使用されます。
MySQLデータベースには2つの役割があります。「データの保存」と「データの取得」です。
具体的には、投稿や固定ページを公開すると、その内容はデータベースに保存されます。そして訪問者がその投稿やページにアクセスしようとすると、WordPressはデータベースから内容を取り出し、訪問者に表示します。
補足: WordPressファイルにもサイトのデータが保存されていることはご存じの方も多いでしょう。その通りですが、WordPressファイルとデータベースでは保存されるデータの種類が異なります。この違いについて詳しく知りたい方は、「WordPressサイト構造の初心者ガイド」を読むことをおすすめします。
WordPressデータベースには、ホスティングアカウント経由でアクセスできます。通常、データベースにアクセスできるのはサイト所有者のみですが、ホスティングアカウントの認証情報を他人と共有した場合は例外です。しかし、ハッカーたちはサイトのセキュリティ上の脆弱性を悪用するなど、他の手段でデータベースへ侵入してきます。次のセクションでは、データベースがハッキングされる仕組みを説明します。
WordPressデータベースはどのようにハッキングされるのか?
ハッカーがWordPressデータベースへアクセスする主な方法は2つあります。
1. SQLインジェクション攻撃
2. ブルートフォース攻撃(総当たり攻撃)
1. SQLインジェクション攻撃
多くのWordPressサイトでは、訪問者がコメントを投稿したり、管理者に連絡したりできるようになっています。こうした、ユーザーが自由にテキストを入力できる箇所は「入力フィールド」と呼ばれます。
入力フィールドが適切に設定されていない場合、ハッカーに悪用される危険性があります。ハッカーはコメントの代わりに悪意のあるコードを挿入することが可能です。
サイトに投稿されたコメントはデータベースに保存されるため、悪意のあるコードはそのままデータベース内に侵入し、ハッカーがデータベースへアクセスする扉を開けてしまうのです。
実際にあった例として、WordPressプラグイン「Booking Calendar」におけるSQLコードインジェクションの脆弱性が挙げられます。この脆弱性により、攻撃者は不正なSQLコマンドをデータベースへ送信でき、データベース内の情報を閲覧できてしまう状態でした。
2. ブルートフォース攻撃
WordPressデータベースには、認証情報を使ってホスティングアカウントにログインすることでアクセスできます。
ハッカーはブルートフォース攻撃によって、アカウントのユーザー名とパスワードを総当たりで推測しようとします。
もし「admin」(ユーザー名)や「password123」(パスワード)のような推測しやすい認証情報を使用しているなら、アカウントは簡単に乗っ取られる可能性があります。ホスティングアカウントへのアクセスに成功したハッカーは、次にデータベースを悪用します。
データベースがハッキングされた疑いがある場合は、直ちにセキュリティ対策を講じる必要があります。これには、データベースのスキャンとクリーンアップが含まれます。次のセクションで詳しくご案内します。
WordPressデータベースのマルウェアをスキャン&駆除する方法
WordPressサイトのデータベースをスキャンしてクリーンアップする方法は2つあります。手動で行うか、プラグインを利用するかです。ここでは両方の方法を解説します。
方法1: プラグインを使ったスキャンと駆除
すべてのセキュリティプラグインが、データベース内のマルウェアを発見・除去できるわけではない点に注意が必要です。
- データベース内のマルウェアは発見が難しい: マルウェアはどこにでも隠れていられるため、多くのセキュリティプラグインはマルウェアがよく潜む場所しか調査しません。つまり、その他の場所に隠れたマルウェアは検出されないままになってしまうのです。
- 古い検出手法に依存している: 多くのセキュリティプラグインは、シグネチャやパターンマッチングという従来型の手法でマルウェアを探します。この手法では、既知のマルウェアしか検出できず、新種や複雑なマルウェアには対応できません。
- 対応までに時間がかかる: 多くのWordPress向けセキュリティプラグインは処理に時間がかかり、データベースのクリーニングに数時間〜数日を要する場合があります。サイトがハッキングされた状況では時間が勝負です。駆除が遅れると事態は深刻化します。例えば、ホスティング業者によるサイト停止措置や、Googleからのブラックリスト登録などのリスクが高まります。
こうした問題を抱えていないプラグインを選ぶ必要があります。MalCareはそのようなセキュリティプラグインの一つです。
MalCareは、シグネチャやパターンマッチングのような従来型の手法に頼らず、コードの挙動やパターンを分析して悪意の有無を判定します。この仕組みにより、新種や複雑なマルウェアも発見できます。
さらに、マルウェアが潜みやすい既知の場所以外もくまなく調査し、不審な挙動を見逃しません。サイトにマルウェアが存在すれば、MalCareが必ず見つけ出します。
MalCareセキュリティプラグインでのスキャン&駆除手順
以下の手順に従って、WordPressサイトをスキャンし、感染が見つかった場合は駆除を行いましょう。
ステップ1: MalCare Securityをダウンロードしてインストールします。サイトをMalCareダッシュボードに登録すると、すぐにWordPressマルウェアスキャンが開始されます。
ステップ2: スキャン完了後、データベース内にマルウェアが見つかった場合、MalCareが通知してくれます。
なお、このプラグインはファイルとデータベースの両方をスキャンするため、不審なファイルがあればそちらも報告されます。実際にスキャンしたサイトでは、MalCareは17個の改ざんされたWordPressファイルと、データベース内の1つの悪意あるスクリプトを検出しました。
ステップ3: サイトにマルウェアが存在する場合は、できるだけ早く除去する必要があります。MalCareには即時マルウェア除去機能が備わっています。ダッシュボードの「Auto-Clean」をクリックするだけで、クリーニングが始まります。
データベースのクリーニングには数分かかりますが、完了するとMalCareダッシュボードで通知を受け取れます。
方法2: 手動でのスキャンと駆除
手動でデータベースをスキャン・クリーンアップするのは非常に時間がかかります。さらに、隠れたマルウェアを見落とす可能性も高いです。加えて、誤って不要なテーブルを削除したり、無害なコードを除去してしまったりすると、サイト自体を壊してしまう恐れもあります。
そのため、プラグインを使ったスキャンと駆除を強くおすすめします。ただし、どうしても手動で試したい場合は以下の手順に進んでください。まず最初に、WordPressサイトの完全なバックアップを必ず取得してください。BlogVaultなどのバックアッププラグインを利用すれば安心です。万が一問題が発生しても、バックアップから復元すれば短時間でサイトを復旧できます。
データベース内のマルウェアの兆候としては、主に次の2つが挙げられます。悪意のあるPHP関数と不明なリンクまたはiFrameです。それぞれ手動での確認方法をご紹介します。
- 悪意のあるPHP関数: データベース感染を特定する一般的な方法の一つは、base64_decode、gzinflate、error_reporting(0)、shell_execといった不審なコードの存在を確認することです。ただしこの手法には注意点があります。これらのコードが常に悪意あるものとは限らず、プログラマーが特定の機能を実装するために意図的に使うケースもあるのです。
- 不明なリンクやiFrame: ハッカーはサイトに見慣れないリンクやiFrameを挿入し、サイト所有者に気づかれないよう偽装します。これらを発見する有効な方法は、サイトのコードを精査することです。「Online cURL」というツールを使えば、サイトのコードを表示して確認できます。不要なコードや、医薬品名など不審なテキストがないか、丁寧にチェックしましょう。
データベース内にマルウェアの兆候を発見したら、駆除作業に移ります。データベースをクリーンにするには、感染前のクリーンなデータベースコピーを復元する必要があります。これは、日頃からWordPressデータベースのバックアップを取得していればこそ可能な対応です。復元できるクリーンなバックアップをお持ちでない場合は、バックアッププラグインの導入をおすすめします。
以上で、WordPressデータベースのマルウェアスキャンと駆除の解説は終わりです。
なお、WordPressデータベースをエクスポートしたい場合は、「WordPressデータベースのエクスポート方法」ガイドも併せてご参照ください。
まとめ
データベースがハッキングされた経験は、セキュリティをより真剣に考えるべき警鐘かもしれません。今は危機を脱したとしても、再びハッキングされない保証はどこにもありません。同様の攻撃を二度と受けないためには、WordPressのセキュリティ対策を講じるとともに、セキュリティプラグインを活用し、定期的にWordPressデータベースのマルウェアスキャンを実施するのが最善です。プラグインなら、マルウェアの検出・駆除だけでなく、将来のハッキング攻撃からサイトを守る予防策まで提供してくれます。
ぜひ「MalCare Security Plugin」をお試しください
-
WordPressのJavaScriptマルウェアを削除する方法|原因の特定から対策まで完全解説
WordPressのJavaScriptマルウェア除去の手法をご紹介する前に、まずJavaScriptとは何か、そしてWordPressサイトにおいてどのような役割を果たしているのかを簡単に確認しておきましょう。 ご存知でしたか?JavaScriptは、世界中のウェブサイトの94.5%で使用されているウェブ技術です。Webページのカスタマイズ、アニメーション、レスポンシブ対応など、ページを動的にする要素はすべてJavaScriptで実現できます。さらに、Node.jsのようなクロスプラットフォームのランタイムエンジンを使えば、サーバーサイドのコードも記述可能です。そして最大の魅力は、HTML
-
Microsoft Safety Scannerの使い方|インストール不要でマルウェアをスキャンする方法
ウイルスなどのマルウェアが原因で、Windowsが正常に動作しなくなることがあります。そのような状況では、サードパーティ製のウイルススキャナーやMicrosoft Defenderのスキャン機能さえも利用できない場合があります。そんなときに役立つのが「Microsoft Safety Scanner」です。このツールはWindows PC上のマルウェアを検索・検出できます。インストール不要のポータブルアプリなので、Defenderや市販のアンチウイルスソフトに不具合が発生している場合でも活用できるのが大きな魅力です。 Microsoft Safety Scannerでマルウェアをスキャンする手