WordPressを使ってサイトを作ったんだけど、セキュリティって必要なの?
WordPressのセキュリティはとっても大切です! 一つ一つ確認していきましょう。
WordPressはサイバー攻撃のターゲットにされやすい!
WordPressはとても人気のあるコンテンツ管理システム(CMS)なので、多くの人が利用しています。これは「攻撃の的」として大きい、とも言い換えられます。的が大きいと狙いやすいので、攻撃者に狙われやすいのです。
また、WordPressはオープンソースソフトウェアなので、ソフトウェアの仕組みが公開されています。セキュリティの脆弱性を早期に発見するために、セキュリティ情報も公にされていますが、これによってセキュリティの脆弱性が知られやすい欠点があります。
また、多くの開発者が関わることで進化する一方、エラーも生じることがあり、攻撃者がそれにつけ込むこともあります。
さらに、WordPressは誰でも使える簡単なツールですが、専門家でなくとも運営ができるので、セキュリティ対策が不十分な場合があります。サイト運営者は、サイバー攻撃に対し、セキュリティ意識を持つことが重要です。
具体的にサイバー攻撃されると、どうなってしまうの?
サイバー攻撃の種類はたくさんあります。
攻撃によって、サイトが受ける影響、ユーザーが受ける影響は異なりますが、以下のようなことが考えられます。
DDoS攻撃
ウェブサイトに一度にたくさんのアクセスをしかけ、サイトを混雑させて動かなくさせる攻撃です。ユーザーがサイトを閲覧できなくなります。サイトが閲覧できなくなると、ユーザーの信頼は大きく低下します。
また、サイトの防御を試すために行われることもあります。DDoS攻撃が成功してしまったウェブサイトには、次なる攻撃が仕掛けられる可能性が高いでしょう。
SQLインジェクション
データベースに不正にアクセスしようとする攻撃です。WordPressはデータベースを利用するCMSなので、データベースには様々な情報が保存されています。データを盗まれる可能性がある他、データが破壊されるとサイトの復帰が著しく難しくなります。
データベースに個人情報がある場合は、ユーザーの個人情報漏洩になるだけでなく、プライバシー侵害、身元の盗用、金銭的被害に及ぶ場合もあります。
クロスサイトスクリプティング(XSS)
悪意のあるスクリプトをウェブサイトに挿入し、ユーザーのブラウザ上で実行される攻撃です。
サイトを見に来たユーザーのブラウザで動くので、ユーザーがセッションクッキーを窃取され、様々なアプリのアカウントを乗っ取られたり、それによって詐欺行為を働かれたりします。
また、偽のログインページや詐欺的な情報入力フォームを表示して、ユーザーの情報を抜き取ることもあります。
ユーザーの端末で、マルウェア感染が発生する場合もあります。
ブルートフォース攻撃
たくさんのパスワードを何度も何度も試し続ける攻撃です。当たるまで繰り返されるので、最終的にはWordPressのパスワードを盗まれる可能性があります。
サイト内の情報を悪用される可能性が高いです。
ファイルインクルード
ウェブサイトを構築するファイルの中で、別のファイルを参照するコードなどがあった場合、実際に参照するコードとは別のファイルなどを読み込ませて、不正なデータ処理を行わせる攻撃です。
IDやパスワードの漏洩のほか、悪意ある動作でデータの改ざんなどがされる可能性があります。
マルウェア感染
マルウェアとは、悪意あるソフトウェアの総称です。過去はコンピュータウィルス、や、ワーム、といった名称でしたが、現在ではコンピュータウィルスやワームは「マルウェアの一つ」とされています。
マルウェア感染は、ウェブサイトにこのマルウェアが埋め込められる攻撃です。ユーザーの端末にマルウェアが感染する可能性があり、サイト自体が個人情報の盗難や端末操作の制御などを行わせるきっかけそのものになります。
ランサムウェア攻撃
コンピュータのデータをロックし、金銭を要求する攻撃です。ウェブサイトのファイルやデータが暗号化され、お金を払わないとデータを開放してくれないことがあります。もちろん、お金を払ってもデータが解放されないことも多くあります。
スパムコメント
コメント機能をオンにしている場合、本文とは関係のない宣伝を無差別に大量投稿されることがあります。ユーザーがアダルトサイトやアフィリエイトサイトなどに誘導されてしまい、個人情報を盗まれたり、マルウェア感染してしまう可能性があります。
こうしたコメントを放置すると、サイトの信頼性が、ユーザーからも検索システムからも大きく低下します。
WordPressのセキュリティの基本的な対策6選
上記のような攻撃を未然に防ぐために、WordPressで注意しなければならないことは以下の通りです。
WordPress、プラグイン、テーマは常に最新のものを利用する
WordPressは新しく進化しています。セキュリティ面も脆弱性が見つかり次第強化されるので、常に最新のものを利用しましょう。
プラグインやテーマは、このWordPressのセキュリティに合わせて後発的に強化されます。こちらも最新のものを利用することで、悪意ある攻撃から防御することができます。
新しいWordPressの仕組みがわからない、新しいプラグインやテーマでは使いにくい、といった理由でバージョンアップしないことは、セキュリティの脆弱化につながります。バージョンアップの更新によってサイトに不具合が生じた場合は、有識者に相談するなどして早期解決を目指しましょう。
- この更新作業やそれによって生じた不具合の解消などを行い、サイトを健全に保つことを「保守・管理」と言います。
- 「保守・管理」はおろそかにされがちですが、サイトを守る上で大変大切な考え方です。
プラグインやテーマは、信頼性のあるものを利用し、使わないものは削除する。
具体的に、信頼性のあるプラグイン・テーマは下記のようなものを言います。
- 定期的にアップデートがある
- 多くのユーザーがインストールして利用し、ポジティブなレビューが集まっている
- WordPressの公式から提供されているものや、知名度のある開発者によって開発されたものである
- WordPress公式や、公式サイトで正式なサポートがある
上記にすべて当てはまるプラグイン・テーマであっても、完全に「安全である」とは言い切れません。他のセキュリティと並行して、プラグインやテーマもしっかり選んでいきましょう。
また、不要なプラグインやテーマをそのまま放置しておくと、不正アクセスの入り口になってしまう可能性があります。利用しないプラグインやテーマは削除しましょう。
ID、パスワード、ログインURLなどはわかりづらいものを利用する
IDとパスワードは、他のサイトなどと同一にせず、わかりづらいもの(長いパスワード、大文字小文字、数字、記号を含むもの)を選びましょう。
また、WordPressのログインURLは、設定をしない場合は一律で/wp-admin/のままです。これは悪意ある攻撃を受けやすくなってしまうので、セキュリティプラグインなどを利用して、変更するようにしましょう。
デフォルト設定は利用しない
WordPressのデフォルト設定はできるだけ利用しないようにしましょう。特に変えたほうがいいものは下記となります。
- 管理者のアカウント名
- ファイルのアクセス権限
- デフォルトの投稿やコメント(削除推奨)
ファイルのアクセス権限を設定する
WordPressはいくつかのファイルフォルダが存在しますが、これらのファイルのアクセス権限を厳格にすることで、セキュリティをしっかり整えることができます。プラグインを利用すると、アクセス権限の設定ができることがあります。
セキュリティプラグインの利用
アップデートなどは基本的には手動/自動で行いますが、WordPressの細かなセキュリティの設定は、プラグインで行うとよいでしょう。
セキュリティプラグインを導入するとき、おおよそ必要な機能は下記となります。
- ログインURLを変更できる
- ログイン試行回数を制限
- コメントスパム対策ができる
- XML-RPCの設定
- 「/?author=1」によるユーザーの一覧表示対策
- バージョン情報を非表示にできる
XML-RPCとは
XML-RPCとは、「eXtensible Markup Language Remote Procedure Call」の略で、Wordpressにおいては、管理画面にログインせず、リモートで操作するための仕組みのことを指します。外部アプリケーションやツールを通じてWordPressサイトに対する操作が可能になります。
この機能を利用したDDoS攻撃が大変多くなっています。Wordpressをリモートで操作することがないのであれば、機能はオフにしておくといいでしょう。
「/?author=1」って?
WordPressは、デフォルトのままだと「https://サイトドメイン/?author=1」で登録されているユーザーの一覧が表示され、ユーザーのログイン ID などを外部から取得することができてしまいます。
WordPressのオススメセキュリティプラグイン
SiteGuard WP Plugin
SiteGuard WP Pluginは、WordPressにインストールするだけでセキュリティを向上させることができるプラグインです。日本語対応でシンプルなので、設定も簡単なので、初心者の方にもおすすめです。
- WordPressのログインページを自動的に変更してくれます。(手動で変更も可)
- ログインページやコメント投稿に画像認証を追加できます。不正ログインの防止、スパム防止に役立ちます。
- ログインを失敗すると一定期間ロックをかけることができます。
- ログインをメールで通知してくれます。
- XML-RPCの設定を無効化することができます。
- 「/?author=1」のページを非表示にしてくれます。
基本的なセキュリティに対応してくれているので、「何を使ったらいいのかわからない」という方は、まずはこちらのプラグインで様子を見ることをお勧めします。
バージョン情報の非表示
ソースコードに下記のような表示があると、バージョン情報が公にされていると判断できます。
<meta name="generator" content="WordPress 6.3" />
SiteGuard WP Pluginはバージョン情報の非表示ができません。導入する際は手動でバージョン情報の非表示を行った方がよいでしょう。functions.phpに下記のコードを追加することで非表示ができます。
remove_action('wp_head', 'wp_generator');
その他、cssやjsなど、さまざまなファイルにバージョン情報は追加されています。それらを非表示にするには下記のようなコードをfunctions.phpに追記します。
// CSSのバージョン情報を非表示にする
function remove_cssjs_version($src) {
if (strpos($src, '?ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('style_loader_src', 'remove_cssjs_version', 10, 2);
// JavaScriptのバージョン情報を非表示にする
add_filter('script_loader_src', 'remove_cssjs_version', 10, 2);
functions.phpを変更するときは、必ずバックアップを取得してから作業しましょう。エラーが出るとサイトが非表示になることがあります。
自信がない場合は、有識者やプロを頼りましょう。
All-In-One Security (AIOS) – Security and Firewall
All-In-One Security (AIOS) – Security and Firewallは、百万以上のインストール数を誇るWordPressセキュリティとファイアウォールプラグインです。多機能でさまざまな脅威からWordPressを保護します。
- 適切なユーザーアカウント名への変更誘導、表示名との照合
- ログインのロックダウン設定、失敗したログインを記録、強制ログアウトなどのログインの強化
- ユーザー登録の手動化
- Captcha機能の導入
- ハニーポットの導入(ロボットによるアクセス防止)
- ファイルパーミッションの権限チェック(アクセス権限のコントロール)
- WordPressの管理領域(ダッシュボード)におけるphpファイルの編集無効化
- WordPressインストール時に設置される各種ファイルへのアクセス制限
- ファイアウォールの導入(wp-config.phpへのhttpアクセス禁止、XML-RPCの設定を無効化、などができます)
- WordPressのログインページURLを変更
- スパムコメント防止
- ユーザー番号を無効化することにより、「/?author=1」のページを非表示
- 画像の直リンクを防止
- 画面上でのコンテンツのコピー禁止
設定によっては、画面表示が意図しないものになる場合があります。ひとつひとつ理解をしたうえで設定する必要があるので、あまり初心者向きではありません。
が、これ一つでおおよそのセキュリティ対策となります。勉強してでも入れる価値のあるプラグインと言えるでしょう。
ファイアーウォールとは
ファイアーウォールとは、コンピュータやウェブサイトを守るための特別な壁のようなものです。家や学校にある防火壁(ぼうかへき)のようなものだと言えるでしょう。
放火壁は、火災が起きた時に炎が燃え広がるのを防ぐために設置される壁のことです。
特にウェブアプリケーションに特化したファイアーウォールをWAF(Web Application Firewall)と言います。
ファイアーウォールはネットワーク全体のセキュリティを向上させ、WAFは特定のウェブアプリケーションのセキュリティを保護することに特化しています。
WAFには、具体的には下記のような機能があります。
- 悪意あるトラフィックの検出
ウェブアプリケーション(サイトなど)に送られるトラフィック(データの送受信)を監視し、悪意のある攻撃や不正なリクエストを検出します。 - SQLインジェクションの防止
SQLインジェクションと呼ばれる攻撃を防ぐため、不正なSQLクエリの挿入を検出してブロックします。 - クロスサイトスクリプティング(XSS)の防止
XSS攻撃を防ぐため、不正なスクリプトの埋め込みを検出してユーザーに危害を及ぼすのを阻止します。 - パラメータ改竄の検出
攻撃者がURLパラメーターやフォームデータを変更する攻撃を検出し、遮断します。 - バッファオーバーフローの防止
プログラムのバッファーオーバーフロー※1による攻撃を防ぎます。 - 不正なファイルのアップロードの防止
攻撃者がウェブサーバーに不正なファイルをアップロードするのを防ぎます。 - 不正なリダイレクトの防止
攻撃者による不正なリダイレクトを検出し、ユーザーを危険なサイトに誘導するのを阻止します。 - アプリケーションの可用性の確保
DDoS攻撃やブルートフォース攻撃などからアプリケーションを守り、正当なユーザーのアクセスを保証します。 - セキュリティインシデントの記録と監視
攻撃の試みやセキュリティインシデントを記録し、ネットワークのセキュリティを監視します。
レンタルサーバーを利用している場合、サーバーそのものにファイアーウォールの設定が付属していることがあります。この時、プラグインを導入すると、エラーが出る場合があります。
サーバーのファイアーウォールとWordPressのセキュリティプラグインのファイアーウォールを併用するときは、設定に注意しましょう。
- 1.バッファオーバーフロー
悪意あるユーザーが、サーバーやパソコンの処理能力を超える大量のデータやコードを送り、メモリ領域(バッファ)を超えて、あふれてしまう現象。バッファを超えてデータが書き込まれると、バッファーオーバーフローとなり、予期せぬ動作やセキュリティ上の脆弱性が引き起こされる可能性があります。
iThemes Security
サイトの運用方針を選択すれば、自動的に最適なセキュリティを設定してくれるプラグインです。「ECサイト」「ネットワーク」「非営利団体」「ブログ」「ポートフォリオ」「パンフレット」の6つから運営方針を選ぶことができます。
会社のサイトなら「パンフレット」、といったような形で設定します。
- 二段階認証設定可
- ブルートフォース攻撃からの保護
- SSL化
- データベースバックアップ
- ログイン時のロックアウト
- 管理者アカウント「admin」のブロック
- ファイルのアクセス権限の変更
- wp-config.phpへのアクセス禁止
- ログインURLの変更
Wordfence Security
インストール数400万をこえる人気プラグインです。ファイアーウォールを中心に、様々な機能が搭載されています。プラグインを導入してから無料ライセンスの発行が必要なので、少々手間ではありますが、ファイアーウォールの学習機能なども含め大変優秀なプラグインです。
Titan Anti-spam and Security
スパムコメント対策とセキュリティ対策に特化したプラグインです。スパムコメント対策のほか、マルウェアのスキャン、ブルートフォース攻撃といった基本的なセキュリティも兼ね備えています。
- スパムコメント対策
- マルウェアのスキャン
- ブルートフォース攻撃への対策
- XML-RPCの無効化
- 「/?author=1」のページを非表示
- WordPress、js、cssのバージョンの削除
ログインの強化に関してはあまり機能がありません。ログイン関連の強化はSiteGuard WP Pluginなどで行い、他の機能はTitan Anti-spam and Securityで補うなどするといいでしょう。
Antispam Bee
半自動的にスパムコメントやピンバックをブロックしてくれるプラグインです。WordPressのスパム対策プラグインとして有名な「Akismet」とは異なり、商用利用が可能です。
スパムの判定はAkismetには及びませんが、通常のサイトを運営するには問題のない性能となっています。
特に設定も必要ないので、初心者でも安心です。
こちらのプラグインには、スパム対策以外の機能はありません。SiteGuard WP PluginやAll-In-One Security (AIOS) – Security and Firewallと併用するとよいでしょう。
たくさんプラグインなどありますが、オススメはどんな感じですか?
オススメは「All-In-One Security (AIOS) – Security and Firewall」で基礎的なセキュリティを、コメント機能をオンにしているサイトなら「Titan Anti-spam and Security」を併用して、スパム対応を強化するのがよいでしょう。
セキュリティプラグインを利用するだけで大丈夫でしょうか?
毎日の運営はセキュリティプラグイン頼りでいいでしょう。
ですが、WordPress、プラグイン、テーマのアップデートが入ったときは、必ず更新をかけ、常に最新の状態を保つことが大切です。
ほかに気を付けることはありますか?
プラグインやテーマの更新でエラーが起きたり、セキュリティプラグインすらかいくぐってくる攻撃もあります。
定期的にバックアップをとることを心がけましょう!
また、いざという時の相談先を持っておくと、安心です。
質問などあれば気軽に書き込んでくださいね♪