WordPressでwpscan,tor,proxy,コマンドラインからのアクセスをブロックするプラグイン「block-wpscan」

これ何

コマンドラインからのアクセスや、TorProxyからのアクセスをブロックするもの。
コマンドラインからのアクセスがブロックできれば、ブルートフォースアタックだったり解析だったりしにくくなる(はず)
Googlebotからのアクセスはブロックされないのでクローラーはきちんと来てくれると思う。

SnapCrab_NoName_2016-3-3_21-42-13_No-00ブロックされるとこんな感じになる。
HTTP ステータスコードは 406 Not Acceptable

 

インストール

aaa「プラグインの追加」→キーワード「block-wpscan」で出てきます。

 

設定画面

setting

英語の記述が合ってるのか分からないけどなんとなく通じると思います。

When block the access, What message do you want to display?
アクセスブロックしたときなんてメッセージ流す?
→ そのまんまです。もしかしたらHTML埋め込めるかも

Block Proxy ON / OFF
→ そのまんまです。負荷はそんなにないです。
ただProxyサーバーの設定によっては判別できないのでProxyでもアクセスできちゃう

Block Tor ON / OFF
→ そのまんまです。負荷は僕のサーバーに依存します。
自分で建てたAPIで判別してるので、人が増えたらもしかしたら重くなるかも
Torのnodeが出来たてでnode listに載ってないとアクセスできちゃうので100%ではない。
90%ぐらいの確率で判別はできる。

Exception IP
例外に追加するIPアドレス
→ 複数指定可能。例)1.1.1.1,2.2.2.2,3.3.3.3
テストとかに使えると思う。後はZabbixとかで監視に必要とか。

 

Command Line

 

Proxy

 

Tor

SnapCrab_NoName_2016-3-3_22-0-26_No-00

 

 

ベンチマーク

Proxy ON / Tor ON

 

Proxy OFF / Tor OFF

 

プラグイン無効

 

ON / ON
Time taken for tests: 214.698 seconds

OFF / OFF
Time taken for tests: 207.722 seconds

プラグイン無効
Time taken for tests: 199.701 seconds

1000リクエストを投げて差はON/ON と 無効化だと15秒の差があります。

 

雑書

WordPressのプラグインを作るのは2つめだったりして余裕やろと思ってたんだけど
POSTから取得するときとか、外部に文字列を表示するときはサニタイズしろ!バリデーションしろ!エスケープしろ!とうるさかった。ただ単に僕の知識不足で htmlspecialchars すればいいだけど思ってた。
あと、Wordpressの独自のエスケープ関数があったり中々楽しかった。

英文のミスだったり、正規のアクセスなのにブロックされるなどの不具合などがあったらぜひ教えて下さい。

Twitter: @lu_iskun
ブログへのコメントでも大丈夫です。

あとForkもお待ちしております。
https://github.com/rluisr/block-wpscan

コメントを残す

メールアドレスが公開されることはありません。