WordPressのセキュリティが脆弱であると言われる理由とは?
WordPressは世界中で最も人気のあるCMS(コンテンツ管理システム)であり、その柔軟性と使いやすさから数多くのWebサイトで採用されています。しかし、その人気ゆえに、WordPressを狙ったサイバー攻撃が後を絶ちません。では、なぜWordPressはセキュリティが脆弱と言われているのでしょうか?
WordPressがオープンソースであること
まず、WordPressはCMSのシェアでは63.7%を占めています。これは非常に高いシェアであり、2位以下を凌駕しています。
システム名 | 全体シェア | CMSシェア |
---|---|---|
WordPress | 43.1% | 63.7% |
Shopify | 3.8% | 5.7% |
Wix | 2.4% | 3.6% |
Squarespace | 2.0% | 3.0% |
Joomla | 1.8% | 2.7% |
Drupal | 1.2% | 1.8% |
Adobe Systems | 1.1% | 1.7% |
Google Systems | 0.8% | 1.2% |
Bitrix | 0.8% | 1.1% |
その他 | 43.0% | 15.5% |
参照 https://w3techs.com/technologies/overview/content_management
シェアが大きいため、1件の脆弱性で影響を受けるサイトの数(インシデントの数)も割合に比例して多くなるため、攻撃者は狙いやすくなります。
また、WordPressはオープンソースソフトウェアであり、誰でも自由にソースコードを利用・改変・配布することができます。これにより、開発者は素早く新しい機能を追加し、コミュニティがコードの品質を向上させることができます。しかし、オープンソースソフトウェアはその反面、悪意のあるユーザーがソースコードを解析し、脆弱性を突く攻撃手法を見つけ出しやすくなります。
しかし、WordPressには善意でセキュリティホールを見つけ、指摘するハッカーが世界中にいます。またWordPressセキュリティチームは、リード開発者やセキュリティ研究者を含む約50人の専門家の集団で構成されています。セキュリティ面のでアップデートが頻繁に行われている現状を見ても、適切な運用をすればWordPressは十分に安心して使えるCMSであると言えます。
※ソースコードを解析し、脆弱性を突く攻撃リスクが無くなった訳ではありません。
プラグインやテーマの脆弱性
WordPressの強みの一つである豊富なプラグインやテーマですが、それらの品質はまちまちであり、中には脆弱性を持つものが存在します。悪意のある攻撃者は、これらの脆弱性を突いてサイトにアクセスし、不正な操作を行うことがあります。
世界中で最もシェアのあるWordPressのセキュリティ強化するための、ファイアウォール・セキュリティスキャナープラグインである「Wordfence」の調査によると、侵害された理由のうち、プラグインの脆弱性が55.9%を占めているため、明らかに注意が必要です。(テーマの脆弱性に関する侵害も5%程度あります)
WordPress以外の陣営のマーケティング戦略
なぜ「WordPressはオープンソースソフトウェアだから脆弱」と言われてしまうのでしょうか。
それは、WordPress以外のCMSを扱う業者のマーケティング戦略として脆弱性を宣伝しているからという側面もあります。
特にコンペなどの提案時において「WordPressには脆弱性があるので危険です」という言葉は力強く審査員に刺さってしまい、審査員がWordPress導入後の情報漏洩などのセキュリティインシデントを回避するために、WordPressを選択しないという方向になってしまうためです。
WordPressのセキュリティリスクと被害事例
WordPressには様々なセキュリティリスクが存在し、それにより様々な被害が発生しています。主なリスクとしては「マルウェアへの感染」「情報の漏えい」「情報の改ざん」の3つが挙げられ、以下にその詳細を示します。
マルウェアへの感染
マルウェアは、”malicious software”(悪意のあるソフトウェア)の略で、コンピューターシステムに無許可で侵入し、悪意のある活動を行うソフトウェアを指します。この活動には、データの盗み出し、システムの不正利用、その他の有害な行動が含まれることがあります。マルウェアの例には、ウイルス、ワーム、トロイの木馬、ランサムウェア、スパイウェアなどがあります。
SUCURIの2022年のレポートでは、Webサイトの感染のうち 96.2% をWordPressが占めていたことが明らかになりました。2 位は Joomla (1.9%) が続き、3 位は Magento (0.7%) でした。
2022 Website Threat Research Report
https://blog.sucuri.net/2023/04/hacked-website-threat-report-2022.html
情報の漏えい
WordPressを使用して制作されたWebサイトや、それを作成するコンピュータには、個人情報が多く格納されている。これらの情報を狙ってハッカーが攻撃を仕掛けることが考えられます。
特に、WordPressベースのサイトからクレジットカード情報が不正に取得されるスキミング被害が報告されています。Eコマースサイトは特に攻撃のターゲットとなりやすく、多数のカード情報を効率的に取得することが狙われています。
クレジットカード情報だけでなく、氏名、住所、購入履歴なども重要な個人情報として扱われる。これらの情報が漏洩すると、企業や店舗の信用を大きく失墜させる可能性があり、最悪の場合、損害賠償の請求を受けるリスクもあります。
情報の改ざん
WordPressはオープンソースであり、公にアクセス可能なコードが特徴です。この点が悪意を持つ者に悪用されることがあり、WordPressサイトが攻撃を受ける例が増えています。
具体的には:
- WordPressのphpファイルにコードを挿入し、訪問者を別のサイトへ誘導する。
- 同phpファイルの情報を改変し、異なる内容を表示させる。
- サイトのデザインを変えず、背後で不正コードを実行して、訪問者の情報を収集する。
これらの攻撃により、ユーザーは意図しない詐欺サイトや関係ないサイトに遷移される場合があり、その結果として、ハッカーが仕掛けたページでの操作により、さらなる被害を受けるリスクが考えられます。
WordPressのセキュリティを高めるおすすめプラグイン
SiteGuard WP Plugin
SiteGuard WP Plugin(https://ja.wordpress.org/plugins/siteguard/)は、WordPressサイトのセキュリティを向上させるためのプラグインの一つです。このプラグインは、様々なセキュリティ機能を提供し、WordPressの脆弱性を防御するのに役立ちます。
以下は、SiteGuard WP Pluginの主な特徴や機能についての概要です:
- ログイン試行制限: ブルートフォース攻撃を防ぐために、ログイン試行の回数を制限します。
- 不正なアクセス検知: 疑わしいアクセスや不正なログイン試行を検知して、アラートを通知するかブロックすることができます。
- Webアプリケーションファイアウォール: SQLインジェクション、クロスサイトスクリプティング(XSS)などの攻撃を検知し、これらをブロックします。
- 隠しファイルのスキャン: 不正に設置されたファイルやマルウェアを探し、その存在を通知します。
- 管理者ページの変更: よりセキュアにするため、管理者ログインページのURLを変更する機能を提供します。
All In One WP Security & Firewall
All In One WP Security & Firewall(https://ja.wordpress.org/plugins/all-in-one-wp-security-and-firewall/)は、WordPressサイトのセキュリティを向上させるための包括的なプラグインです。このプラグインは、WordPressサイトを様々な脅威から保護するための多岐にわたる機能を提供しています。
以下はAll In One WP Security & Firewallの主要な特徴と機能についての概要です:
- ユーザーアカウントセキュリティ: 不安全なユーザー名の検出やパスワードの強化、ログイン試行の制限など、ユーザーアカウントのセキュリティを強化します。
- ユーザーログインセキュリティ: ブルートフォース攻撃からの保護、ログインロックダウン機能、ログイン時のキャプチャの追加などの機能が含まれます。
- ユーザー登録セキュリティ: マニュアルなユーザー承認、キャプチャの追加、登録時の電子メールの変更の禁止などを行います。
- データベースセキュリティ: データベースの接頭辞を変更してSQLインジェクション攻撃から保護したり、定期的なバックアップをスケジュールすることができます。
- ファイルシステムセキュリティ: ファイルの変更の監視、WordPressコアのファイルのスキャンなどができます。
- ブラックリスト機能: 特定のIPアドレスやユーザーエージェントをブロックすることができます。
- ファイアウォール: パケットフィルタリングや不正なリクエストのブロックなど、多岐にわたるファイアウォールの機能を提供しています。
- ブルートフォースログイン攻撃防止: ログインページの名前の変更やログイン試行の制限などの機能を持っています。
All In One WP Security & Firewallは、その名の通り、WordPressサイトのセキュリティに関する様々な機能を1つのプラグインで提供しています。これにより、サイトのオーナーや管理者は、簡単にセキュリティの設定や管理を行うことができます。
WordPressのセキュリティを強化するための対策
WordPressのセキュリティを強化するための対策として以下8つの方法があります。
- 管理画面のユーザー名、パスワードの強化
- 最新バージョンにアップデートする
- 不活用プラグインの削除
- セキュリティ用プラグインの設置
- WAFを導入する
- WordPressのバージョン情報を非表示にする
- データベース情報へのアクセスを制御する
- FTPソフトで設定できる「ファイルの属性(パーミッション)」を400に
以下では上記方法について詳しく説明していきます。
管理画面のユーザー名、パスワードの強化
WordPressの初期インストール画面にて、管理者ユーザー及びパスワードの入力画面が表示されます。ユーザー名は「admin」などの簡易なユーザー名にするのではなく、推測しにくいユーザー名にする必要があります。また、パスワードはしっかりと「強力」と表示されるものを入力しましょう。
既にWordPressをインストールしている場合は、ユーザー名の変更はできません。
そのために、ユーザー名を変更したい場合は、新しい管理者ユーザーを作成して、旧管理者ユーザーを削除する
最新バージョンにアップデートする
WordPressの最新バージョンへのアップデートは、セキュリティ強化の一環として必要です。このバージョンアップには、新機能の追加だけでなく、ハッカー攻撃に対する脆弱性の修正も含まれます。WordPressの管理画面の「更新」セクションから、簡単に本体のバージョンアップが可能です。
さらに、インストールされているプラグインやテーマにも脆弱性が見つかることがあり、それらがバージョンアップされることもあります。そのため、定期的に管理画面での更新通知を確認し、必要に応じてバージョンアップを実施してください。
不活用プラグインの削除
セキュリティ対策として、不要なプラグインの削除が推奨されます。たとえプラグインを停止していても、WordPressにはそのデータが残っており、ハッキングのリスクが存在します。そのため、安全を確保するためにはプラグインを「停止」するより「削除」することが望ましいです。
アップデートを怠ると脆弱性がそのまま残り、使用していなくても攻撃の対象になりえます。ですので、使用していないプラグインが存在する場合は、早めに削除することをおすすめします。
セキュリティ用プラグインの設置
WordPressには多くのセキュリティ向けのプラグインが提供されています。これらのセキュリティプラグインは、WordPressの管理画面から無料でインストール可能で、中には非常に使いやすいものも含まれています。WordPressを設定する際には、まずセキュリティプラグインの導入をおすすめします。
WordPressのバージョン情報を非表示にする
WordPressではデフォルトでバージョン情報が公開されていますが、これが古いとセキュリティが不十分と見られ、ハッカーの標的になりやすくなる可能性が高まります。通常、バージョン情報は以下のように表示されます。
セキュリティを向上させるためには、以下のコードを追加することで、WordPressのバージョン情報の表示を非表示にすることができます。
remove_action('wp_head','wp_generator');
WAFを導入する
WAF(ワフ)とは「Web Application Firewall」の略称で、これはホームページのセキュリティを強化するためのツールです。不正な情報のアクセスをブロックし、正当な情報のみをWordPressに通過させます。
設置にはいくつかの方法があり、サーバーへのソフトウェアインストールや、独立したネットワーク機器としての設置などが考えられます。有料のサービスとなりますが、セキュリティ向上のためには非常に価値があります。
データベース情報へのアクセスを制御する
WordPressには「wp-config.php」という中心的なシステムファイルが存在します。このファイル内には、データベースへの接続情報やWordPressの基本設定情報が含まれており、その重要度は非常に高いです。
このため、外部からの「wp-config.php」のアクセスを制限することで、情報の漏洩やサイトの改ざんリスクを低減することができます。
「wp-config.php」への外部アクセスを遮断するには、以下のコードを利用します。
<files wp-config.php>
order allow,deny
deny from all
</files>
上記のコードは「.htaccess」ファイルの先頭部分に追記してください。なお、「.htaccess」はサーバーの動作をカスタマイズするためのファイルです。
FTPソフトで設定できる「ファイルの属性(パーミッション)」を400に
「wp-config.php」ファイルは、オーナーのみが読み込むことが出来る「400」が最も安全な設定になります。
インストーラ(レンタルサーバーなどで用意されているWordPressの自動インストールなど)でwp-config.phpを作成した場合、パーミッションは「646」か「666」になっています。この場合、オーナーは「Apache」になってしまいますので、自分自身では変更できません。
そのため、FTPソフトなどでwp-config.phpをダウンロードして、サーバー上のwp-config.phpを削除して、再アップロードします。これでオーナーが自分になり、パーミッションの設定ができるようになります。ただし、共有サーバーの場合「400」で設定できないケースも多いようですので、WordPress.org では「600」を推奨しています。
実際にあったWordPressへの攻撃・被害事例
サイトの乗っ取り
攻撃者が管理者権限を奪い、サイトを乗っ取ることがあります。これにより、サイトのコンテンツが改ざんされたり、悪意のあるコードが埋め込まれたりすることがあります。また、乗っ取られたサイトは、他のサイトへの攻撃の拠点として利用されることもあります。
被害事例として東京証券取引所の上場企業であるG社の事例を紹介します。以下はG社の発表資料から抜粋したものです。
4.不正アクセスが可能となった原因について
当社はこれまで、自社ホームページ運営用として一部のレンタルサーバーを、安定稼働していたことを理由に継続利用してきました。その結果、サーバーのバージョンが最新のコンテンツ管理システム(WordPress)に適応できずに修正プログラム等の対応が滞ることになり、セキュリティ上の脆弱性を生じさせ、それが今回の不正アクセスを可能にした原因となったと考えられます。5.再発防止策について
当社は今後、同様の手口による被害を防ぐために、コンテンツ管理システム(WordPress)のバージョンを最新のものに保つとともに、脆弱性を突いた不正アクセスから自社ホームページを守るための WAFをホームページサーバーに導入することを必須要件としました。
スパム投稿や不正広告
WordPressサイトがセキュリティ上の脆弱性を突かれると、攻撃者がスパム投稿や不正な広告を表示させることがあります。これにより、サイトの評判が低下し、訪問者が減少することがあります。
事例としては、女性向けファッション事業を手掛ける企業の事例を紹介します。
2017年にこの企業のWebサイトが不正アクセスを受けました。原因はWebサイト制作のテスト環境にインストールしたWordPressと、そのプラグインの脆弱性を突かれたことによるものです。テスト環境内のWordPressとプラグインをアップデートせず放置していたため、サイトが改ざんされ、また改ざんによりメール送信機能を悪用され、大量のスパムメール送信の踏み台にされてしまいました。
また、被害は一般企業だけでなく、公官庁でも発生しています。
2018年に国内官公庁が管轄するWebサイトが改ざんされ、悪意のある外部サイトに誘導される状態となりました。Webサイトにはフィッシングサイトなど、ほかの正規Webサイトから盗用したと思われる偽のページが複数掲載されていました。原因は放置されたWordPressの古いプラグインの脆弱性にあったと推測されています。
個人情報の漏洩
WordPressサイトが不正アクセスされると、ユーザーの個人情報やクレジットカード情報が漏洩するリスクがあります。これにより、ユーザーが不正利用の被害に遭ったり、企業の信用が失墜したりすることがあります。
WordPressのセキュリティリスクの診断方法
WordPressのセキュリティ状況を把握するために、定期的にチェックを行うことが重要です。以下に、主なセキュリティチェックツールを紹介します。
Jetpack Protect
Jetpack Protect はサイトを毎日スキャンし、以下の項目について警告するプラグインです。
– インストールされている WordPressのバージョンと関連する脆弱性
– インストールされているプラグインと関連する脆弱性
– インストールされているテーマと関連する脆弱性
Jetpack Protect開発チームはJetpack、WordPress.com、WooCommerce、WPScan などを運営しているAutomatticを親会社に持ち、WordPressの専門家によるサイト全体のセキュリティを高めるためのプラグインです。
Jetpack Protectは、25,000を超えるマルウェアと38,393を超える脆弱性が登録されているAutomatticブランドである「WPScan」の広範なデータベースを活用しています。
Wpdoctorマルウェアスキャナープラグイン
WordPressドクターが修復したサイトから、13291パターンに及ぶ、不正なコード(マルウェア、ウィルス、改ざん、ハッキング感染被害)のパターンからWordPressサイトのコードをチェックし、検出するマルウェアスキャナーです。
こちらは公式プラグインではありませんが、利用されているユーザーが多いため、紹介させていただきます。(弊社では公式プラグインの利用を推奨しております)
Wpdoctorは、WordPressのデータベースやファイルシステムを診断し、セキュリティ上の問題を検出するツールです。特にデータベースの最適化やファイルのパーミッション設定のチェックが強みで、それらを改善することでセキュリティを向上させることができます。
また、本プラグインのみの機能(執筆時点)としてWordPressのセキュリティ診断ツール「WPScan」の診断を受けなくする機能もあります。
WPScanなどの脆弱性診断ツールは、サイト運用者だけでなく、悪意のある攻撃者に対しても脆弱性の情報を提供してしまいます。
それを抑止するために、WPScanを使ってのアクセスを検知し、そのIPアドレスからの接続を一定時間遮断し、診断をさせないようにすることも可能です。
Wordfence Security
Wordfence Securityは、エンドポイントファイアウォール、マルウェアスキャナー、堅牢なログインセキュリティ機能、ライブトラフィックビューなど多くの機能が含まれており、最も人気のあるWordPressファイアウォールとセキュリティスキャナーです。
Web Application Firewall は、悪意のあるトラフィックを識別してブロックします。WordPress のセキュリティに 100% 焦点を当てた大規模なチームによって構築および保守されています。
また、マルウェアスキャナーは、コアファイル・テーマ・プラグインのマルウェア、不正な URL、バックドア、SEO スパム、悪意のあるリダイレクト、コードインジェクションをチェックします。
コアファイル、テーマ、プラグインを WordPress.org リポジトリにあるものと比較し、整合性をチェックして変更を報告します。
KUSANAGI Analyze
超高速CMS実行環境「KUSANAGI」の有償版「KUSANAGI Business/Premium Edition」を利用している方、リスク分析機能「KUSANAGI Analyze」が利用可能です。
環境を分析して、 ディスク圧迫、設定ファイルの不備、攻撃の対象になりうるファイルなどを検知、改善のアドバイスが表示され、ユーザーは潜在的な障害やセキュリティのリスクに事前に対応することができるようになります。
【関連記事】kusanagi analyze で KUSANAGI 環境を分析する
WordPressのセキュリティで問題が発生した場合
WordPressのセキュリティに問題が発生した場合の対処方法は多岐にわたりますが、以下の2つの項目に基づいて対処方法を説明いたします。
PCやサーバーの確認をする
バックアップの確認: 最初に、最近のバックアップが完全かつ無害であることを確認します。これがあると、攻撃前の状態に戻すことができます。
不審なファイルの確認: FTPやcPanelを使って、サーバー上の不審なファイルや変更されたファイルを確認します。
ログの確認: サーバーのアクセスログやエラーログをチェックして、不審なアクセスや攻撃の兆候を確認します。
マルウェアスキャン: サーバー全体や特定のディレクトリにマルウェアが存在しないかをスキャンします。
パスワードの変更: 管理者やFTP、データベースのパスワードをすぐに変更します。
プロに相談する
専門家のヘルプ: セキュリティの専門家やサービスに相談して、サイトの復旧や強化の手助けを求めることができます。
セキュリティ対策の見直し: 問題が解決した後でも、専門家にセキュリティ対策を見直してもらい、再発を防ぐ方法を学びます。
継続的な監視: 一度攻撃を受けると、再度狙われるリスクが高まります。専門家とともに継続的なサイトの監視を行い、問題が再発しないようにします。
当社プライム・ストラテジーでは、突発的なシステム復旧対応が必要な場合や、セキュリティ施策の提案から実施、また継続的なシステム監視までシステム運用に係るサービスを提供しております。サービス詳細の説明をご希望の方は「お問い合わせ」よりサービス紹介依頼をいただければと思います。
まとめ
WordPressのセキュリティは、その人気ゆえに常に攻撃者のターゲットになりやすいため、十分な対策が必要です。本記事では、WordPressのセキュリティが脆弱である理由やリスクについて紹介しました。また、セキュリティをチェックする方法や強化するための対策、各種セキュリティプラグインについても説明しました。
これらの対策を実施することで、WordPressサイトのセキュリティを向上させ、被害リスクを最小限に抑えることができます。
しかし、セキュリティ対策は一度実施すればそれで完了となるものではありません。
サイト運営者は、常にサイトの状態を確認し、セキュリティ対策を怠らず、安全なWebサイトを提供し続けることが求められます。
正直これらのタスクを他の業務を抱えながら、片手間で実施できるものではありません。
セキュリティに係る部分を任せられる業者に保守運用を依頼するか、専任のセキュリティ・運用担当者を設置して運用していく必要があります。