WordPressサイトを狙う5つの代表的な攻撃手法とその対策を徹底解説
ハッカーによるWordPressサイトへの攻撃が心配ではありませんか?「心配いりません」とお伝えできれば良いのですが、残念ながらWordPressサイトは常にハッカーの標的になっているのが実情です。これは、インターネット上の全ウェブサイトの約3分の1がWordPressで構築されているほど人気があるためです。
WordPress自体はセキュアなウェブサイト構築プラットフォームですが、単体では機能しません。WordPressサイトを運営するにはプラグインやテーマが必要です。そして、これらのプラグインやテーマには脆弱性が生じやすく、ハッカーはそこを突いてサイトに侵入してきます。
一度サイトへのアクセス権を奪われると、ハッカーは機密情報の窃取、顧客への詐欺行為、違法コンテンツの表示など、あらゆる悪意ある活動を行います。その結果、検索結果に警告が表示されたり、Googleからブラックリストに登録されたり、ホスティング会社からアカウントを停止される可能性もあります。これらはすべて訪問者数と収益の損失につながります。
WordPress開発チームはプラットフォームの安全性維持に努めていますが、サイトオーナー自身もセキュリティ対策を講じる必要があります。本記事では、WordPressサイトに対する最も一般的な攻撃と、それぞれの予防策について詳しく解説します。
要点: ハッカーによるWordPressサイトへの攻撃が不安な方は、今すぐサイト保護対策を始めましょう。WordPressセキュリティプラグイン「MalCare」をインストールすれば、毎日サイトをスキャン・監視し、ハッカーの侵入を未然にブロックできます。
なぜWordPressはハッカーに狙われやすいのか?
WordPressは、コーディングの知識がなくても誰でもウェブサイトを作成できるプラットフォームです。さらに、基本無料で利用できる点も大きな魅力です。
その結果、現在WordPressは13億以上のアクティブなサイトを支えるまでに成長しました。
しかし、この人気には裏面もあります。WordPressサイトは、他のどのプラットフォームで構築されたサイトよりも多く攻撃を受けているのです。
ハッカーがサイトに侵入する手口は多岐にわたりますが、ここでは特に多い5つの攻撃手法に絞って解説します。それぞれの仕組みと、WordPressサイトを守るための具体的な対策を見ていきましょう。
WordPressサイトへの5つの主要な攻撃
1. 脆弱性のあるプラグインとテーマ
WordPressサイトは、「コア(本体)」「テーマ」「プラグイン」の3つの要素で構成されています。この3つすべてに、サイトを脆弱にする可能性があります。
長年にわたり、WordPressコアには重大な脆弱性はほとんど見つかっていません。経験豊富な開発者チームによって管理されており、プラットフォームの完全なセキュリティ確保に尽力しているため、コアについてはあまり心配いりません。
一方、プラグインやテーマはサードパーティの開発者が作成しており、脆弱性が発生する頻度がかなり高くなっています。
開発者が脆弱性を発見すると、速やかに修正し、更新版をリリースします。サイトオーナーであるあなたは最新バージョンへ更新すれば、サイトは安全になります。セキュリティアップデートはすぐに適用することが重要です。なぜなら、開発者が更新を公開すると同時に、更新理由も公表されるため、脆弱性の存在が一般に知られてしまうからです。
つまり、ハッカーは脆弱性の存在と内容を把握した上で、「すべてのサイトオーナーがすぐに更新するわけではない」ということを知っています。脆弱なプラグインやテーマを発見すると、ボットやスキャナーを使ってインターネット上を巡回し、それらを使用しているサイトを探し出します。脆弱性の詳細が分かっているため、侵入やマルウェア(例:wp feedマルウェアなど)の挿入は容易になってしまうのです。
脆弱なプラグイン・テーマからサイトを守る方法
- WordPress公式ディレクトリやThemeForest、CodeCanyonなどの信頼できるマーケットプレイスからのみ、テーマとプラグインを入手しましょう。
- プラグイン一覧を定期的に確認し、実際に使用しているものだけを残しましょう。不要なものや非アクティブなものは削除します。
- テーマも定期的にスキャンし、理想的には現在使用中のテーマ1つだけを保持しましょう。
- 海賊版(不正コピー)のテーマやプラグインは絶対に使用しないでください。多くの場合、マルウェアが含まれており、サイト感染の原因となります。
- サイト上のすべてのプラグインとテーマを把握しておきましょう。ハッカーがバックドアを仕込んだ独自のプラグインやテーマをインストールし、秘密裏にサイトへアクセスできるようにするケースがあります。
2. ブルートフォース攻撃(総当たり攻撃)
WordPressサイトにログインするには、ユーザー名とパスワードというログイン情報を入力する必要があります。
ところが多くのサイトオーナーは、覚えやすいユーザー名とパスワードを使いがちです。デフォルトのユーザー名「admin」を使い続けるユーザーも多く、「password123」や「1234567」といった安易なパスワードも珍しくありません。
ハッカーはこの傾向をよく理解しており、WordPressサイトのログインページを標的にします。
彼らはよく使われるユーザー名とパスワードのデータベースを作成し、ボットにWordPressサイトを攻撃させ、データベース内のさまざまな組み合わせを試行させます。
ログイン情報が脆弱であれば、ボットが推測してサイトに侵入する確率は非常に高くなります。これが「ブルートフォース攻撃(総当たり攻撃)」と呼ばれるもので、成功率は約10%にも達すると言われています。
ブルートフォース攻撃からサイトを守る方法
ブルートフォース攻撃への対策として、以下のステップを実践しましょう。
- デフォルトのWordPressユーザー名は「admin」です。より固有性の高い名前に変更しましょう。
- 強力なパスワードを設定します。「Birdsofafeather123$」のように、フレーズに数字や記号を組み合わせるのがおすすめです。
- 他のサイトで使ったことのない、固有のログイン情報を使用しましょう。
- ログイン試行回数を制限します。正しい認証情報を入力できる回数を3回や5回などに制限し、失敗したら「パスワードをお忘れですか?」機能を使ってもらう仕組みです。当社のMalCareセキュリティプラグインをインストールすれば、このログイン保護が自動的に適用されます。
- 二要素認証(2FA)を導入しましょう。認証情報に加えて、スマートフォンで生成されるワンタイムパスワードや、登録済みメールアドレスに送信されるコードの入力を求める仕組みです。
3. インジェクション攻撃
ほぼすべてのウェブサイトには、お問い合わせフォーム、サイト内検索バー、コメント欄など、訪問者がデータを入力できるフィールドがあります。ファイルや画像のアップロードを許可しているサイトもあります。
通常、入力されたデータはデータベースに送られ、処理・保存されます。これらのフィールドには、データベースに送信する前にデータを検証・無害化(サニタイズ)する適切な設定が必要です。こうすることで、有効なデータのみを受け付けられます。この対策が不十分だと、ハッカーはそこを突いて悪意のあるコードを注入します。
例として、お問い合わせフォームを持つWordPressサイトを考えてみましょう。理想的には、このフォームは氏名、メールアドレス、電話番号を受け付けるはずです。
- 氏名フィールドはアルファベットのみを受け付けるべきです。
- メールアドレスフィールドは「example@mysite.com」のような有効な形式のみを受け付けるべきです。
- 電話番号フィールドは数字のみを含むべきです。
しかしこれらの設定が整っていない場合、ハッカーは次のような悪意のあるスクリプトを挿入できてしまいます。
String userLoginQuery =
"SELECT user_id, username, password_hash FROM users WHERE username = '"
+ request.getParameter("user") + "'";
これはデータベースに特定の処理を実行させるコードです。このようにハッカーはサイト上で悪意のあるスクリプトを実行し、サイト全体の完全な制御権を奪うことが可能になります。
WordPressサイトで最も有名なインジェクション攻撃には、SQLインジェクション攻撃とクロスサイトスクリプティング(XSS)があります。
インジェクション攻撃からサイトを守る方法
- 多くのインジェクション攻撃は、訪問者の入力を可能にするテーマやプラグインが発端です。信頼できるテーマとプラグインのみを使用し、常に最新の状態に保ちましょう。
- フィールドへの入力内容とデータ送信を制御します。これは技術的な作業のため、開発者の支援が必要になる場合があります。
- WordPressファイアウォールを利用しましょう。MalCareをインストールしていれば、堅牢なファイアウォールが自動的に設置され、ハッカーからサイトを守ります。
4. フィッシングとデータ窃取
訪問者はさまざまな形でウェブサイトとやり取りします。ブログ記事を読むだけの人もいれば、お問い合わせフォームから連絡してくる人もいます。ECサイトを運営しているなら、多くの訪問者が商品を購入するためにサイトにログインし、クレジットカード情報を入力することになります。
クレジットカード情報が入力されると、その情報はサイトサーバーに転送・保存されます。この転送中に情報が傍受される可能性があり、クレジットカードデータが盗まれる恐れもあるのです。
また、ハッカーはサイトに侵入してあなたになりすますこともあります。メールを送信したり、訪問者を別のサイトへリダイレクトしたりして、個人情報や決済情報を騙し取ります。
フィッシングとデータ窃取からサイトを守る方法
- SSL証明書を使用しましょう。サイトとの間でやり取りされるデータが暗号化され、仮にハッカーが傍受しても解読できないため利用できません。SSLとHTTPSに関するガイドも参考にしてください。これにより「保護されていない通信」の警告表示も解消されます。
- WordPressセキュリティプラグインを導入し、サイト上の不審な活動を検知した際にアラートを受け取れるようにしましょう。プラグインはハッキングの試みもブロックしてくれます。
5. クッキーの盗難
サイトにログインする際、ブラウザが「ログイン状態を保持する」や「パスワードを保存する」よう求めてくることに気づいたことはありませんか?これは、サイトにアクセスするたびにログイン情報を入力しなくて済むようにするためのものです。ブラウザにログイン情報の保存を許可することができます。
ブラウザがこのようなデータを保存できるのは、クッキーのおかげです。クッキーとは、訪問者とウェブサイトとのやり取りを記録する小さなデータの断片です。例えば、オンラインストアを運営している場合、サイトは顧客がどんな商品を検索し、何を購入したかといった行動履歴を追跡します。このデータは分析に活用され、広告主は訪問者の好みに合わせた広告を表示します。しかし、クッキーには銀行情報や個人情報が保存されることもあるのです。
ハッカーにサイトのクッキーを盗まれると、ビジネスと訪問者の機密データにアクセスされ、クレジットカード情報を使った顧客への詐欺など、悪意ある行為に悪用される恐れがあります。
詳細については、クッキー盗難とセッションハイジャックに関するガイドをご覧ください。
クッキー盗難とセッションハイジャックからサイトを守る方法
- WordPressのセキュリティキーとソルト(salt)を定期的に変更しましょう。キーとソルトは、ブラウザのクッキーに保存される情報を安全に暗号化する役割を担っています。この対策は技術的な作業となるため、MalCareのWordPressハードニング機能を使うのがおすすめです。MalCareダッシュボードから「Security > WordPress hardening > Change WordPress Security Keys and Salts」にアクセスして変更できます。
- こちらでも、サイトのデータを保護するためにSSL証明書の導入をおすすめします。
以上が、WordPressサイトへの最も一般的な攻撃の解説でした。締めくくる前に、こうした攻撃への耐性を高めるWordPressハードニング(強化)対策をいくつかご紹介します。
WordPressサイトを攻撃から強化するハードニング対策
特定の攻撃に対する個別の対策に加えて、サイト全体の保護レベルを高める包括的なセキュリティ対策を実施できます。これらは「WordPressハードニング」と呼ばれます。ここでは概要を説明しますが、より詳しい解説はWordPressハードニングの詳細ガイドをご参照ください。
1. ファイルエディターの無効化
WordPressには、ダッシュボードから直接テーマやプラグインのファイルを編集できる機能があります。この機能を必要とするサイトオーナーは多くなく、主に開発者が使用するものです。しかし、ハッカーがwp-adminダッシュボードに侵入すると、テーマやプラグインのファイルに悪意のあるコードを挿入できてしまいます。不要であれば、この機能は無効化しましょう。
2. プラグイン・テーマの新規インストールの無効化
ハッカーはサイトにアクセスできると、独自のプラグインやテーマをインストールします。これらは通常悪意のあるもので、バックドアが含まれており、ハッカーにサイトへの秘密の入り口を与えてしまいます。
さらに前述の通り、脆弱なテーマやプラグインはサイト乗っ取りの最大の原因です。サイトに複数のユーザーがいる場合、セキュアでないプラグインやテーマをインストールされる可能性があり、それがハッカーへの入り口となり得ます。これを避けたい場合は、サイトでのプラグイン・テーマのインストールを無効化しましょう。
頻繁にプラグインやテーマをインストールしないのであれば、インストール機能を無効にするのが賢明です。
3. ログイン試行回数の制限
前述の通り、正しいログイン情報を入力できる回数を制限することで、ブルートフォース攻撃のリスクを排除できます。
4. セキュリティキーとソルトの変更
キーとソルトはブラウザに保存される情報を暗号化します。たとえハッカーがクッキーを盗んでも、解読はできません。しかし、キーとソルト自体にアクセスされると、クッキーの復号に悪用される恐れがあります。定期的な変更により、クッキー盗難を防ぎましょう。
5. 不明なフォルダでのPHP実行のブロック
WordPressサイト上でコードを実行するファイルやフォルダは限られています。その他のフォルダは、画像や動画を保存するUploadsフォルダのように、情報の保管専用です。
しかし、ハッカーはサイトへのアクセスに成功すると、ランダムなフォルダにPHPコードを挿入したり、独自のフォルダを作成したりします。
不明なフォルダでのPHP実行を無効化することで、こうした活動をブロックできます。
これらの対策の実装には技術的な専門知識が必要です。手動での作業はおすすめしません。MalCareのようなプラグインを使えば、数クリックで安全かつ簡単に実行できます。
これらの対策を実施すれば、WordPressサイトはハッカーからしっかりと守られていると自信を持って言えます。
まとめ
ハッカーがWordPressサイトに侵入する手口は非常に多く、しかも新しい手法が次々と生み出されています!
サイトを守り、ハッキング攻撃からの安全を確保するには、自分自身でセキュリティ対策を講じることが不可欠です。
WordPressサイトの保護には、当社のMalCareセキュリティプラグインの利用をおすすめします。ハッカーや悪意のあるボットによるサイトへのアクセスをブロックし、サイトが監視・保護されているという安心感をもたらします。
MalCareセキュリティプラグインでハッキングを未然に防ごう!
-
論理爆弾(ロジックボム)とは?仕組みと攻撃を防ぐ対策を解説
論理爆弾(ロジックボム)とは?論理爆弾とは、コンピュータネットワークやOS、ソフトウェアアプリケーションに密かに仕込まれる悪意のあるコードのことです。特定の条件が満たされるまで休止状態で待機し、条件が成立した瞬間に発動して、データの破損、ファイルの削除、ハードディスクの消去など、システムに壊滅的な被害をもたらします。論理爆弾はマルウェアなのか?論理爆弾は、他のプログラムに含まれる小さなコード断片です。悪意のあるものであることが多いものの、厳密にはマルウェアとは言えません。ウイルスやワームといった一般的なマルウェアが、攻撃手法の一部として論理爆弾を内包している場合があります。いわゆる「論理爆弾ウ
-
WordPressで未使用のCSSを削除(または遅延読み込み)してサイトを高速化する方法
WordPressサイトから未使用のCSSを削除して、ウェブサイトをもっと速くしたいと思いませんか? ウェブサイト最適化の重要な目標のひとつは、不要なコードを取り除くことです。これによりページ全体のサイズが減り、読み込み時間が短縮され、訪問者により快適なユーザー体験を提供できます。 ページサイズを大きく削減できる分野のひとつが「スタイリング」です。ウェブサイトのスタイリングは、HTMLやJavaScriptと並ぶWebの中核技術であるCSS(Cascading Style Sheets:カスケーディングスタイルシート)と呼ばれるルールベースの言語によって制御されています。 CSSは、ページの色