Joomla! 管理者向け mod_security ルールセット

Joomla! 管理者向け mod_security ルールセット

私は複数のホスティング サーバーを運営していますが、最近 Joomla ベースの Web サイトに対するブルート フォース攻撃を数多く経験しています。攻撃者はadministrator/index.phpページに対してブルート フォース攻撃を試みているようです。

通常、Wordpress ログインをブルートフォース攻撃しようとすると、次のルールセットを使用して IP をロックします。

SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},id:5000134
<Locationmatch "/wp-login.php">
SecRule ip:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'"
SecRule RESPONSE_STATUS "^302" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136"
SecRule RESPONSE_STATUS "^200" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137"
SecRule ip:bf_counter "@gt 10" "t:none,setvar:ip.bf_block=1,expirevar:ip.bf_block=300,setvar:ip.bf_counter=0"
</Locationmatch>

しかし、有効なパスワードと無効なパスワードの両方で応答ステータスが「303 see other」であるため、Joomla! に同様のルールを見つけることができません。

何か助けが必要ですか?よろしくお願いします!

答え1

それで、これが私の答えです。

戻りヘッダーを調べたところ、Joomla! バックエンドはログインが正しい場合にいくつかの HTTP ヘッダーを返し、ログインが無効な場合はそれらを返さないことに気付きました。

例えば、ピー3Pヘッダーはログインが成功すると返されるので、その長さを確認します> 0

SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},id:5000144
<Locationmatch "/administrator/index.php">
    SecRule ip:bf_block "@gt 0" "deny,status:401,log,id:5000145,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'"
    SecRule RESPONSE_HEADERS:P3P "streq 0" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000146"
    SecRule RESPONSE_HEADERS:P3P "!streq 0" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000147"
    SecRule ip:bf_counter "@gt 10" "t:none,setvar:ip.bf_block=1,expirevar:ip.bf_block=300,setvar:ip.bf_counter=0"
</locationmatch>

答え2

受け入れられた回答の問題点は、ログイン ページの更新がいつ行われるかを考慮していないことです。そのため、ユーザーがログイン ページを更新すると、1) カウンターがリセットされる (これはよくありません)、または 2) 更新が失敗したログインとしてカウントされる (これもよくありません) のいずれかになります。

Joomla に対するブルートフォース攻撃を処理するためのルールを考案しました。これは「com_login」投稿値に基づいています。値が投稿値にある場合はログインに失敗したことを意味します。そうでない場合はログインが成功したことを意味します。ルールは以下にあります。ここ

関連情報