WordPress「WP-Ban」不正アクセス対策には向かない

毎日同じウクライナのIPから脆弱性を探しにアクセスしてきて404を頻発していたのでかなりうっとうしい。ブロックしたいのだが.htaccessでうまく弾けなくてちょっと困っていた。設定を間違えてるのかとも思ったが他に指定したIPに対してはちゃんとDenyが効いてる。
自分が現在使用しているセキュリティプラグインはFree版だとブラックリストが使えないし…。
しょうがないので他のプラグイン「WP-Ban」というのがダウンロード数も多く評価も悪くないようなので試してみる事にした。

wp-ban

で実際に使ってみると、確かにWP-Banなら一応はBanに成功する事は成功しているようでそのIPからの404エラーが消えた。でも「こういうものは普通403 Forbiddenで処理してるでしょ」と勝手に思い込んでたのだが何かおかしい。

キャッシュプラグインとの併用不可って事は…

何とはなしにDescriptionやFAQを読んでいると(forumだったようだ)”BanメッセージをキャッシュしてBanしてない人にも表示しちゃうのでキャッシュプラグインと相性が悪い”との事。回避策があるキャッシュプラグインもあるそうだけれど同時使用は避けたほうが無難か。…ん?

…ってそれはつまりブロックしてないって事?このプラグインって単に指定したIPからのアクセスに「You Are Banned.」というページを生成して表示しているだけで、弾いている訳でも何でもないの?WP-BanのPHPファイルを開いてコードを見てもそれらしき記述はないし。

実際にログを見て確認するとやはりBanした相手に対しステータスコード「200 OK」を返している。なんと相手のリクエストしたこちらのサーバーに存在していない脆弱性のあるプラグインのアドレスでBanメッセージが表示されているようである。

つまりWP-Banは脆弱性を探してアクセスを繰り返すような相手(bot)をブロックする用途にはあまり向かないと思われる。
自分のインストールしていない脆弱性のあるプラグイン・テーマへのアクセスに対して「404(ないですよ~)」でも「301(移動しましたよ~)」でもなくて「200(ありますよ~)」と返しちゃってる訳で、素人考えではあるのだがマズいような気がする。

人間相手ならステータスコードが何であろうが、そのIPからはコンテンツが見れないというだけで十分だ。でもbotが相手じゃあなぁ、即攻撃でなくてまずは有無を調べてから…というタイプもあるだろう。それこそ脆弱性のある攻撃可能なサイトリストに載って配布されそうで怖いぞ。(最近のbotは表示内容を理解するようだから関係ないのか?)

実際に使った結果

WP-BanでFCKeditorやrevsliderの有無を調べるようなアクセスをブロックしてる人は、かえって不正アクセス試行を増やしちゃってないかチェックしたほうがいい。
「WP-Banで不正アクセスをブロックしましょうね!」というコピペ紛いの記事ばかりが目につくが、実際にWP-Banでブロックしたら中国からの不正アクセスが増加したという記事も見つかったし。
AZAPEDIA「実は偵察されていた?不審なアクセスをBANした瞬間、中国から脆弱性をついた攻撃が!」

自分のブログでも似たような感じ。WP-Banを使用していたのはほんの数日。しかし使用後はPVがほとんど変わらんのに他のIPからの脆弱性狙いで発生する404が激増しているのは偶然か?…って偶然な訳ないよね。
使用前は脆弱性のあるプラグイン・テーマへのアクセス試行だったのが使用後は脆弱性をつく・もしくはつかれた結果設置されるとおぼしきphpファイル群への試行が大量に増えている。それにIPは変わっていても同じUAのが多いんだわ。
.htaccessで脆弱性スキャンをdenyしてた時はこんな風になった事は一度もない。

追記:この攻撃可能と見なされて大量のアクセスを呼んじゃっている状態は自分の使用しているプラグインなどにいつ脆弱性が発覚するかわからないのであまり油断できない状況。ゼロデイ攻撃やプラグインの脆弱性修正がきてるのに気づく前に攻撃される可能性が…
「セキュリティプラグインが防いでくれるんじゃないの?」という人もいるだろうが「某有名セキュリティプラグインに深刻な脆弱性が…」みたいなのをちょくちょく見るからね。

攻撃がある程度収まるまで2週間ほどかかった。何の成果もないので諦めたのか途中から301リダイレクトをメインにしたのが効いたのかは定かではない。なお、終息後も発端となったウクライナIPからのアクセスだけは定期的にある(301で飛ばしてるのだが)し、思い出したかのように大量の不正アクセス試行をたまにしてくる。

結論:不正アクセス試行に対して使っちゃダメ

作者もセキュリティがどうとか全くふれてないし、これは不正アクセスするbotなどをブロックするためではなくて、どちらかというとコメント欄を荒らしたりする「生身の人間orコメントスパムBAN用プラグイン」として使うべきものですかね。自分のサイト内に存在するコンテンツを特定のIPから見れないようにするという用途なら全く問題はないはず。

ログはBanした回数のみ記録で時間やどこにアクセスしようとしたかがわからないので物足りない。IPの設定も簡単かつ柔軟で使いやすいから惜しいなぁ。まあ、こういうところにもセキュリティ向けじゃないってのが表れてるな。

ログインフォームの保護にしても、攻撃者がwp-login.phpだけにしかアクセスしようとしないのであればいいけれどそんな保証はない。他に脆弱性スキャンなどしているかもしれないが、それはWP-Banのログからではわからない。

それにWP-BanでIPをBanしたところでIPなんていくらでも変えられるのだ。スキャンは同じIPからでも攻撃にはIPを次々切り替えて…みたいなのは常套手段だし。

「WP-Banで国コードを使って国ごとBanしよう」なんてのは無茶もいいところ。その不正アクセスが多い国から脆弱性スキャンがないはずもなく、それ全てに200 OKで返すのだから……

他のプラグイン

セキュリティ・不正アクセス対策としてはブラックリストの使えるセキュリティプラグインか、ちゃんと403で返す「IQ Block Country」なんかのほうが良さげだ。

IQ Block Countryはワイルドカードやサブネットマスクが使えず、国全体か個別のIPでしか指定できないのが難ではある。しかしWPのコア部分と閲覧者に表示されるコンテンツ部分それぞれ別にブラックリスト型としてもホワイトリスト型としても機能する。個別の記事やページ・カテゴリについても設定可能。

マトモなアクセスがきた試しのないウクライナ・ロシアなんかはこれらで国丸ごとブロックしちゃうのが手取り早い。torを使用してるのか知らんがかすり抜けてくるのも若干いるのは御愛嬌。(※だからIQ Block Countryを入れててもファイアウォールは必要。日本だけ許可に設定なら一応全て弾けてるっぽいが…)
いっその事、日本だけ許可して鎖国するのもアリだ。

IP Geo Block」も強力かつ気がきいているファイアウォールで好印象。この手のプラグインにありがちなPro版を買わせるための機能制限一切なしでFree版のみ。日本人が作者なので設定画面は完全に日本語化されてます。
テーマ・プラグインフォルダの保護設定可能でrevsliderを探すようなアクセスはシャットアウトしてくれる。…うちのブログのようにうっかりWP-Banを使っちゃう前ならほぼこれでOKなはず。




まずは15日間【無料】お試し利用から!大容量256GBレンタルサーバー『HETEML


PAGE TOP