僕はCocoonというサイトでwpForoプラグインを利用してフォーラムを運営しています。
ある程度書き込みがあるフォーラムのせいか、毎日毎日ボットによるスパムが押し寄せて、その削除に頭を悩ませていました。
もちろんフォーラムを運営する上で、wpForoが推奨する以下のようなスパム対策は行なっておりました。
- フォーラムに登録していないと書き込めない設定にしてある
- 登録時にGoogle reCAPTCHAの使用
- スパム保護のAkismetプラグインの利用
ただ、上記のような対策を行っていても毎日平均30件程度のスパム投稿がありました。
スパム投稿の削除って地味に時間がかかるし、ほんと無駄な時間なんですよね…。
このスパム削除にかかる無駄な時間を何とかしたい!
ということで、wpForoフォーラムに質問したらShield Securityというセキュリティープラグインを教えていただきました(※)。
このShield Securityを使い始めてからスパム投稿が以前の1/10になって、かなり有効でした。加えて、あまり日本語での情報が少ないセキュリティープラグインだったので紹介です。
Shield Securityとは
Shield Securityとは、自分のWordPressサイトを悪意ある第三者から守るためのセキュリティープラグインです。
主な機能としてはこちら。
- マルウェアスキャン機能
- マルウェア修復機能
- ブルートフォースアタック防御
- ファイアウォール機能(ログイン防御・xml-rpc防御他多数)
- 悪質なボット・IPのブロック機能
これらの基本的なセキュリティ機能が無料で利用できるプラグインです(※拡張機能設定などは有料です)。
イメージしやすいように簡単に言えば、日本でもよく使われているセキュリティープラグインのWordfence Securityに+αしたプラグインといった感じです。
一般的なWordPressサイトであれば、Wordfenceでも十分有効だと思います。ただ、WordPressを利用してフォーラムを運営しているサイトではShield Securityプラグインの方が有用なように感じました。
そう思った理由について以下で書きます。
目次
Shield Securityの良いところ
ファイヤーウォールやマルウェア対策として、Shield SecurityはWordfence Securityと同等かそれ以上の機能を有しています。
これに加えて、前述したようにShield Securityでは「悪質なボット・IPのブロック機能」が高いです。
ボット・IPブロック機能がかなり有能
僕が自分のサイトでShield Securityを利用する理由としては、この「ボット・IPブロック」機能を使うためといっても過言ではないです。
このShield Securityは、悪意あるボット(そのIPアドレス)のデータを収集しているCrowdsecと業務提携をしてブロック機能を強化しています。
CrowdsecはWEBサイトやアプリを攻撃する悪意あるマシンやボットの脅威に対抗すべく開始されたオープンソースの侵入防止システムです。
悪意あるIPは即座にブロック
Crowdsecに登録されたボット(IPアドレス)がサイトに侵入した場合は、即座にブロックすることでサイトを保護してくれます。
この機能が非常に強力なのは、悪いことをするとわかっているIPを自分のサイトから遮断することで、未然に脅威を完全にブロックできるからです。例えるなら、家の敷地内に泥棒が入ろうとした瞬間に侵入できないバリアが働くといった感じ。
以下のように、Crowdsecに引っ掛かる悪意あるIPは、サイトに入る前に即座にブロックされます。
ちなみにシードセキュリティーによりブロックされたIPがサイトに訪れると、以下のように表示されサイト上のどのコンテンツも表示できなくなります。
僕は運営しているサイトいくつかにShield Securityプラグインをインストールして、1日放置したところ、おおよそ1600~1800のIPがブロックされていました。
これだけ「悪意あるIPが1日でサイトに訪れているもんなのか…」と。もっと少ないと思ってました。
悪意があるかどうか微妙なIPはShield Securityが判断
Crowdsec未登録の悪意あるIPは、とりあえずShield Securityが「サイトに脅威をもたらしそうな怪しい行動をした違反数」を集計します。
例えば、「?author=ID」みたいなクエリでサイトにアクセスするとか、xml-rpc.phpに不正にアクセスするとか。
その「違反数」が10になると、その「怪しい行動をとるIP」もブロックされます。
赤色のバッジが付いているIPは違反数が10を超えてブロックされたIP。
黄色いバッジが付いている場合は違反数が10未満で様子見中。
違反数が10を超えてブロックされたIP情報は、Crowdsecに送られ、その情報を参考に「悪意IPデータベース」が強化されます。
当然Google等のボットはブロックしない
Shield Securityは強力なブロック機能はありますが、当然Googleのような検索エンジンのボットはブロックしません。
Never Block Google: Automatic Detection and Bypass for GoogleBot, Bing and other Official Search Engines including:
- Bing,
- DuckDuckGo
- Yahoo!
- Baidu
- Apple
- Yandex
これをブロックしてはサイトのアクセスに影響がありますからね。そんなことはしません。
加えて以下のようなサードパーティーのサービスを検出し、ブロックを防ぎます。
Automatically Detect 3rd Party Services and Prevent Blocking Of:
- ManageWP / iControlWP / MainWP
- Pingdom, NodePing, Statuscake, UptimeRobot, GTMetrix
- Stripe, PayPal IPN
- CloudFlare, SEMRush
引用 Shield Security – WordPress プラグイン | WordPress.org 日本語
こんな感じで、サイトに有益なサービス等のIPは、基本的にブロックしない仕様になっています。
IPブロック機能が無料で利用できる
Shield Securityのこういった強力なブロック機能は無料で利用できます。
設定も基本的にインストールするだけで、悪意あるボット(IP)からサイトを防御できます。
IPのブロック情報を確認するには、WordPressのメニューにある「Shield Security」から「IP マネージャー」を選択してください。
Shield Securityの気をつけたい点
Shield Securityを利用する上で、ちょっと気をつけたいなと思った点はこちら。
ログインの有効期間が短くなる
WordPressデフォルトだと、「ログイン状態を保存する」を有効にしてログインした場合の有効期間は14日間です。
ただ、Shield Securityデフォルトの状態では、このログイン有効期間が2日になります。
セキュリティ上、この有効期間が短い方が良いには良いのですが、「毎度毎度ログインするのが面倒…」という方もおられるかもしれません。
その場合は、WordPressダッシュボードのメニューから「Shield Security」→「Configuration」→「ユーザー」を選択してください。
すると「ユーザーセッション管理」画面が表示されるので「セッションタイム」を好みの期間に設定してください。
すべてのスパムをブロックできるわけではない
このShield Securityプラグインを使用していれば、すべてのスパムをブロックできるわけではありません。
前述しましたが、僕が運営しているフォーラム環境ではスパム投稿が1/10になったくらいで、完全にブロックはできませんでした。
Crowdsecに登録されていないIPや、違反数が10に達しない様子見中のIPがスパム投稿した場合は、ブロックを通り抜けるものと思われます。
とはいえ、スパム投稿が1/10になれば、削除する手間も1/10になるので、完全にブロックできなくとも運営コストは下げることができます。
あと、ボットによるスパムではなく、人力で書き込んでくるスパマーに対しては、自動対応はできないと思います。
とはいえ、あまりにもひどい人力でのスパム投稿者には、対象のIPをブラックリストに登録することで対応することは可能かと思います。
管理者でも違反行動を繰り返せばブロックされてしまう
「?author=ID」みたいなクエリでサイトにアクセスするとか、xml-rpc.phpに何度もログインを失敗するとか、Shield Securityが違反行動と判断する行動を10回以上(デフォルト)繰り返せば、管理者でもブロックされてしまいます。
管理者でありながらブロックされてしまった場合は、以下の方法でブロック解除を行ってください。
加えて、以下の方法でホワイトリスト登録をしておいた方が良いでしょう。
まとめ
こんな感じで、Shield Securityプラグインは、フォーラムやコメント等のスパムに頭を悩ませているサイト運営者にとっては非常に有能なプラグインです。
もちろん、セキュリティプラグインとしての能力も他のプラグインには負けておらず、強力にサイトを守ってくれます。
個人サイトの運営であれば無料版で十分ですし、インストールするだけで利用できる手軽さからも、かなりナイスなセキュリティープラグインかと思います。