WordPressのセキュリティ対策について

eyecatch WEB関連

こんにちは、SouDogです。

世界中で利用されているCMSとして有名な「WordPress」ですが、その反面世界中のハッカーに狙われる可能性が高いCMSでもあります。

ここでは、そういったハッキングなどから自分のサイトを守るためのセキュリティ面について、同じブログ運営者の立場から紹介していきます。


WordPressで起こりうる被害

WordPressを守るには、まずどのような被害が起こりうるのか知っておく必要があり、WordPressに関しては、以下のようなセキュリティ的な被害が非常に多くあります。

  • フォーム経由のスパムメール、コメント
  • ブルートフォースアタック
  • 不正アクセス
  • マルウェア、ファイルの改ざん

こういった攻撃はプログラムで動くものが大半で、WordPressに限ればプラグインである程度までは対応できるものが多く、インストールしたレンタルサーバー側ですでに対策されているもののあります。

次に、これらの特徴と対策ついて紹介していきます。

フォーム経由のスパムメール、コメント

WordPressにContact Form7などのお問い合わせフォームを設置していると、英語のスパムメールが大量に届くことがよくあります。

これはサイトが乗っ取られているわけではありませんが、放っておくと日に日に何百通と英語のメールが届くようになるので、必要なメールが埋まってしまったり、頻繁に受信ボックスを開いてしまったりと、業務に支障が出る場合があります。

また、メールの送信によってサーバーの負荷も無駄に掛かってしまうため、状況によってはサーバー側でアクセスが遮断される可能性があります。

このスパムメール・スパムコメントを遮断するにはGoogleが提供している「reCAPTCHA」が効果的で、Contact Form7の設定として単体で導入できたり、専用のプラグインを使うことで簡単に導入することができます。

プラグインの場合は「Invisible reCAPTCHA」を使用すると

  • 比較的簡単に導入できる
  • フォームの無いページではreCAPTCHAのマークを非表示にできる

というメリットがありますが、

  • reCAPTCHAの設定をしないとWordPressにログインできなくなる
  • 長い間更新されていないプラグイン

というデメリットや、セキュリティ面で不安な部分もあるため、気になる場合はContact Form7の設定(インテグレーション)からreCAPTCHAを導入すると良いでしょう。

ブルートフォースアタック

「ブルートフォースアタック」とは「総当たり攻撃」のことで、IDやパスワードが当たるまで何千、何万回と入力し続ける攻撃です。

もちろん、人間がやるとそれだけで人生が終わりそうなぐらい時間が掛かるものですが、自動で行うようプログラムされているので、一度攻撃対象にされると頻繁に攻撃を受けることもよくあります。

この「ブルートフォースアタック」に関しては、レンタルサーバー側で対策されていることが多く、例えばXサーバーでは、

  • ログイン回数制限を設定している(○回失敗すると○時間アクセスできなくする)
  • そもそも海外のIPアドレスからは管理画面にアクセスできない

といった感じでサイトを守る対策をしてくれています。

もちろん、日本国内からのアクセスは対象外となるため、セキュリティのプラグインを使って追加で対策しておくことをおすすめします。

  • パスワードを英数字(大文字・小文字)、記号を混ぜた複雑なものにする
  • 「SiteGuard WP Plugin」を使ってログインの回数制限やログインページの変更をする
  • 上記のプラグインで画像認証を導入する
  • 「Invisible reCAPTCHA」でログインページにもreCAPTCHAを導入する

このあたりをやっておけばハッキングに関しては、9割がた回避できるかと思います。

不正アクセス

WordPressでは管理画面だけでなく、ファイルが置かれているサーバーにも注意が必要です。

WordPressやテーマ、プラグインなどのファイルにある「セキュリティホール」と呼ばれる抜け道からプログラムによって侵入されることもよくあり、WordPressに関してはこちらの方がブルートフォースアタックで管理画面に入られるよりも被害が多いのが現状です。

この場合は抜け道(セキュリティホール)から侵入してくるため、レンタルサーバー側のセキュリティや、プラグインを簡単にすり抜けてサーバー内部に侵入されてしまうのですが、WordPress本体やテーマ、プラグインの開発者はその抜け道が見つかる度にアップデートしています。

そのため、この不正アクセスに関する対策としましては、

  • WordPress周りの環境(本体・テーマ・プラグイン)は、更新通知があればマメに更新する
  • 長い間更新されていないテーマ・プラグインは使用しない(削除する)
  • プラグイン「Wordfence」を使って、サーバー内スキャン・監視をする

特に「更新通知があればマメに更新する」が手軽かつ効果的で、今までハッキングの復旧に携わったサイトも、これをやっておくだけで防げたであろうサイトもたくさん目にしてきました。


マルウェア・ファイルの改ざん

これは不正アクセスによってサーバーに侵入された後の具体的な被害になります。

いずれもプログラムで稼働しており、侵入後に主要ファイル(index.phpや.htaccess)にコードを追加することで、自動的にあらゆるフォルダ内に不正なファイルを生成し続けていきます。

例)改ざんされたファイル

正常な.htaccessのファイル

改ざんされた.htaccessのファイル

正常なindex.phpのファイル

改ざんされたindex.phpのファイル

このように、怪しいコードがファイルに追記された状態になっている場合、マルウェアに感染していると考えてよいでしょう。

マルウェアの厄介なところは、「自動繁殖すること」に加えて「一つでも消し忘れがあるとそこから再繁殖していくこと」です。

この自動繁殖によって、サーバーのあらゆるフォルダに不正なファイルを生成したり、その中のプログラムでWordPressのメールシステムなどを使って勝手に大量のメールをばら撒いたりするため、サーバーの負荷がかなり大きくなります。

Xサーバーではこの不審なサーバー負荷を検知するとアクセスを遮断してくれるため、ユーザーへの二次被害が抑えられる場合もありますが、そうなると自分のサイトにもアクセスできなくなってしまいます。

また、復旧するには、マルウェアの不審なファイルや改ざんされたファイルを削除したり正常なファイルと差し替えたりと、かなり手間が掛かってしまうため、そうならないためにも事前に対策をしておく必要があります。

この対策は被害の元となる「不正アクセス」を防ぐことでできますので、繰り返しになりますが

  • WordPress周りの環境(本体・テーマ・プラグイン)は、更新通知があればマメに更新する
  • 長い間更新されていないテーマ・プラグインは使用しない(削除する)
  • プラグイン「Wordfence」を使って、サーバー内スキャン・監視をする

これらを徹底しておくことで、経験上9割は防ぐことができるかと思います。

「偽サイト」として扱われる

Webブラウザの「Google Chrome」では、Webサイトから不審なプログラムを検知(もしくはユーザーからの通報)があると、「偽サイトにアクセスしようとしています」といった警告が出るように処理されます。

Webサイトの異変に気付いて早急に対処することができればこの処理をされる前に復旧できるのですが、「異変に気付かない」もしくは、「対策をしないまま放置」していると、Webサイトのデータは復旧できてもこのような画面が表示されてアクセスできなくなってしまいます。

ハッキングされたWebサイト(WordPress)を、たくさん復旧してきた経験上ここまで来るのは稀ですが、こうならないためにも、

  • WordPressの周辺はできるだけ最新の状態にしておく
  • 使わなくなったWordPressは削除しておく
  • 異変があればすぐに対処する(無理な場合は依頼する)

を徹底しておくことも、Webサイトを運営するうえで大事なことです。


セキュリティに100%は無い

セキュリティは基本的にいたちごっこのため、このページで紹介している対策を行っても100%防げるとは言い切れません。

更新に関しても、開発側が先に気付いたものもあれば、誰かが被害に遭ってはじめてわかることもあり、それが自分となってしまう可能性もゼロではありません。

かといって、過度にセキュリティを強化してしまうと、自分のサイトなのにログインできなくなってしまったり、使い勝手が悪くなったりする可能性が高くなるため、バランスを考えたセキュリティの導入が重要になってきます。


WordPressはあくまでも「ツール」であって「サービス」ではない

Webサイトの作成に関して、「WordPress」は「Wix」や「BASE」などと比較されることがよくあります。

ここでよく覚えておいてほしいのが、「Wix」や「BASE」は「サービスとしてのWebサイト(もしくはネットショップ)」のため、仕様やセキュリティに関することは運営側である程度対応されています。

対して「WordPress」はあくまでも「ツール」であり、運営者は「自分」となるため、セキュリティを含め、WordPressの運営は自己責任であることをしっかり認識して運営する必要があります。

また、経験上WordPressのサイトがハッキング等の被害に遭ってしまう原因として「最新の状態に保てていない」というのが大半です。

いくらセキュリティが強くなるプラグインをインストールしていても、どんなに強固なパスワードにしていても、WordPress本体やプラグインが古いままでは全く意味が無く、あっさりと侵入されてしまいます。

かといって、初めてばかりの初心者では、おそらくそこまで気が回らないでしょう。

そんな時は「自動更新」の設定をしておくことで、ある程度は最新の状態を保つことができますので、忘れずに設定しておきましょう。

・テーマの自動更新(この設定がないテーマもあります)

・プラグインの自動更新


まとめ

基本的な対策をすることで絶対ではありませんが、不正アクセスを防ぐことができます。

面倒くさがらず、対策することで復旧などのより時間がかかる作業を無くせると考える大したことをする必要がないのでぜひ実施してください。

コメント