Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら RSSフィードのご登録はこちらから
公開日:2020年8月8日
最終更新日:2020年8月9日

僕が考える最強のWordPressセキュリティ対策

はじめに

WordPress でブログなりサイトを立ち上げるのは簡単になりましたが、セキュリティ対策となると後回しになることもあるのではないでしょうか。

セキュリティ対策は、売上が発生するものではありませんし、後手になることもありますが、インターネットの現状ではセキュリティは最優先すべきとのとの危機感を持っています。

この記事は、WordPress のセキュリティ対策で必須かつ最強となるものをご紹介します。

前提

まずは、WordPress でサイトをインターネットに公開することの前提について解説したいと思います。ここがないがしろになっていると、WordPress 側でいくらセキュリティ対策を行っても無駄になるからです。

インターネットは危険だとの認識を持つ

インターネットに WordPress のサイトを公開するということは、世界中の攻撃者に WordPress のサイトをさらすのと同義です。

そんな大げさなとか、自分のサイトは小さいから大丈夫ということはありません。どんな大きさのサイトでも、攻撃者は無差別に攻撃をしかけてきます。

このサイトも、サイトの公開以来、ずっと攻撃を受け続けています。

個人サイトでもこんなに攻撃を受ける

以下の記事では、このサイトの2019年の一年間で受けた攻撃のレポートを公開しています。

このサイトは個人サイトですが、ピーク時は月に約13000件もの攻撃を受けていました。

このことからも、サイトが小さいから大丈夫という認識は誤りであると言えます。

実際にサイト乗っ取りにあった

このサイトはセキュリティ対策をかなり行っていましたが、それでもサイトの乗っ取りにあったこともあります。実際は DNS の書き換えだったようですが、セキュリティ対策を行っていても被害を受けることがあります。

乗っ取り被害の詳細は以下の記事を参照してください。

攻撃の被害に合わないためにセキュリティ対策は行いますが、万が一攻撃の被害を受けても復旧できるように対策を行う必要があります。

専門知識なしに独自サーバーを立てない

ネットでは、初心者でも VPSやAWSで簡単に独自サーバーを立てて、 WordPress のサイトを構築できるとの記事が非常にたくさんあります。

ですが、そんな記事に惑わされないでください。インターネットに独自サーバーを立てるのは非常に危険なことです。

どこのセキュリティ対策の記事でも触れられていないのは疑問ですが、独自サーバーのセキュリティ対策は非常に難しく、継続して対策する必要があり初心者にはほぼ無理といっていいでしょう。

最低でも、以下の記事に書いていることが分からないとやめておいたほうがよいです。これから、インフラの勉強がしたいという場合は話が別ですが。

独自サーバーは難易度が高いので、一般ユーザーはレンタルサーバーを借りましょう。インフラの難しいところはプロに任せるということです。

独自サーバーはルート権限を得られるメリットがあるといいますが、実際はレンタルサーバーでほとんどのことをまかなえます。

このサイトも以前は VPS の独自サーバーを立てていましたが、現在はレンタルサーバーで運用しています。不都合はまったくありません。

WordPressセキュリティ対策

WordPress のサイトをインターネットに公開する前提が分かったところで、いよいよ WordPress のセキュリティ対策の解説に入ります。

前提で腰が引けた方はいないと思いたいですが、ちゃんとしたセキュリティ対策を行っていればそんなに恐れることもありません。

WordPress本体とプラグインを最新の状態に保つ

WordPress のセキュリティ対策で一番に行うべきは、WordPress 本体とプラグイン、テーマを常に最新の状態に保つことです。

これは自力でやると難易度が高いので、次にご紹介するプラグインを活用します。

Easy Updates Managerを導入する

Easy Updates Manager は、WordPress 本体とプラグインの最新版が出たら自動でアップデートしてくれる、大変ありがたいプラグインです。

WordPress の管理画面で、プラグインの新規追加から「Easy Updates Manager 」を検索して、プラグインをインストールと有効化を行ってください。

それから、以下の設定を行います。

  • WordPress 本体のマイナーバージョンは自動アップデート
  • プラグインは自動アップデート
  • テーマは自動アップデート
  • 翻訳は自動アップデート

これは言葉だけだと難しいので、実際の画面でご紹介します。なお、デフォルトでは上記のすべてが手動アップデートになっているので、ご注意ください。

Disable all updates は設定を Enable all updates のまま変更しないでください。

全体設定

WordPress core updates では、Auto update all minor versions を選択します。マイナーバージョンはセキュリティアップデートが含まれるので自動アップデートしますが、メジャーアップデートは影響が大きいので手動でアップデートします。

個別設定

Plugin updates では、Enable auto updates を選択します。

個別設定

Theme updates では、Enable auto updates を選択します。

個別設定

Translation updates では、Enable auto updates を選択します。

個別設定

使用していないプラグインは削除する

使用していないプラグインは、ただ攻撃を受けるだけの存在のため削除します。

更新が何年も行われていないプラグインは移行する

WordPress のプラグインは無料で使用できるものが多いですが、その分開発がいつの間にか終了しているものも多いです。

このサイトでも、更新が何年も行われてないものや、WordPress のプラグイン一覧に表示されなくなったものもいくつかあったので、代替となるプラグインへ移行しました。

何年も更新がないプラグインは、隠れた脆弱性が潜んでいる可能性が高いですからね。

サイトを常時SSL化(HTTPS)する

サイトは常時SSL化(HTTPS)しましょう。管理画面が常時SSL化されていないと、IDとパスワードが漏洩してしまいます。

また、SEO的にも常時SSL化は有利なのでやらない理由がありません。

自分が使用している ConoHa のレンタルサーバーでは、以下のようにワンクリックで常時SSL化できます。

Conoha設定

強力なパスワードを設定する

WordPress の管理画面にログインされないために、強力なパスワードを設定する必要があります。

パスワードは12文字以上で、英数大文字小文字記号がそれぞれ1文字以上含まれているとよいとされています。

パスワードの強度は、カスペルスキーの以下のサイトで調べることをオススメします。

サイトの詳細については、以下の記事を参考にしてください。

定期的なバックアップを行う

セキュリティ対策として、定期的なバックアップを行うことは重要です。

何かの攻撃を受け、サイトが起動しなくなったり、ウィルスに感染した場合は、バックアップから戻すしか方法がなくなります。

実際、乗っ取り被害にあった時、サーバーを削除する羽目になったのですが、バックアップを取っていたから復旧ができました。

バックアップには、UpdraftPlus というプラグインをオススメします。

UpdraftPlusを導入する

UpdraftPlus は、データベース、プラグイン、テーマ、アップロードした画像ファイルなどのすべてのデータを、別のクラウドサービスにバックアップできる非常にすぐれたバックアッププラグインです。

バックアップが簡単なだけでなく、復元も簡単なのが特徴です。

無料でバックアップできるクラウドサービスは、Google Drive, Amazon S3, Dropbox などです。

ちなみに、このサイトでは、毎日、14日間分、Google Drive にバックアップしています。

 

SiteGuard WP Pluginを導入する

SiteGuard WP Plugin は、日本語でできているプラグインですが、重要な機能が多数あるので、セキュリティ対策として必須のプラグインになります。

ログインページを変更する

WordPress のログインページは、デフォルトで wp-login.php となっていますが、このままだとログインページの存在を攻撃者に教えることになるため、ぜひ変更しましょう。

ですが、ログインページのアドレスを忘れてログインできなくならないように注意してください。

ログインに画像認証を加える

ログインに画像認証でひらがなを加えると、ログインを破られにくくなります。

設定すると、ログイン画面が以下のようになります。

画像認証

コメント投稿に画像認証を加える

コメント投稿にも、ログイン画面と同じように画像認証ひらがなを加えます。

この設定を行ってから、スパムコメントは一切来なくなりました。

設定すると、コメント入力が以下のようになります。

画像認証

スパムコメント対策としては、Akismet が有名ですが、正常なコメントを誤検知して削除することがあったので、SiteGuard WP Pluginの画像認証ひらがなを使う方をオススメします。

ログインロックを行う

一定時間に一定回数ログインに失敗すると、ログインを一定時間ロックする機能です。ブルートフォース攻撃(総当り攻撃)に対応するために、設定しておきましょう。

ログインアラートを行う

ログインが成功したら、管理者にメールで通知する機能です。不正なログインを早期に発見するために、設定しておきましょう。

WAFを導入する

WAF (Web Application Firewall) は、不正なサイトへの攻撃をブロックしてくれるものですが、これはぜひ導入しておきましょう。

繰り返しになりますが、下記記事のレポートで、月に最大13000件の攻撃を検知したのは、WAF が導入してあって、攻撃をブロックしたからです。

最近は、レンタルサーバーで標準機能にあったりするので、簡単に導入できます。

ちなみに、ConoHa のレンタルサーバーは、以下のようにワンクリックで設定できます。

WAF設定

なお、WAF には偽陽性(ぎようせい)といって、正常な処理を攻撃と誤検知することがあります。

例えば、記事の内容に JavaScript が含まれていたりすると誤検知するようです。

その場合は、一度 WAF を無効にして記事を保存後、WAF を有効にしてください。

サイトの状態を診断する

今まで、WordPress のセキュリティ対策を行ってきましたが、最後に正しくセキュリティ対策が行えたかの確認を行います。

サイトヘルスステータスを確認する

WordPress のダッシュボードに標準で表示されている、サイトヘルスステータスを確認します。

サイトヘルスステータス

ステータスが良好なら問題ありませんが、なにか警告がでていれば対応を行います。

オンライン脆弱性スキャナで診断する

WordPress のオンライン脆弱性スキャナの、wp sec というサービスがあります。

このサービスを使用すると、WordPress に外部から見える脆弱性がないか診断できます。

このサイトを診断してみましたが、問題ありませんでした。

一応、使用する際に利用規約に同意する必要があるので、検討した上で診断してください。

日本のサービスで、 wpdoctor というものも有名なようなので、紹介だけしておきます。

 

おわりに

WordPress のセキュリティ対策について解説してきましたが、正直、ここまで対策しなければいけないのかと思った方もいるかと思います。

ですが、そこまでしないといけないのがインターネットというものです。

ここは、セキュリティ対策をしっかり取るようにしてもらえると幸いです。

 


スポンサーリンク





カテゴリー:ブログ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA