Joomla!에 대한 mod_security 규칙 세트! 관리자

Joomla!에 대한 mod_security 규칙 세트! 관리자

저는 여러 호스팅 서버를 운영하고 있으며 최근에는 줌라 기반 웹사이트에 대한 무차별 대입 공격을 많이 경험했습니다. 공격자는 페이지에 대해 무차별 공격을 시도하는 것 같습니다 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 헤더를 반환하고, 로그인이 유효하지 않은 경우에는 이를 반환하지 않습니다.

예를 들어P3P로그인 성공 후 헤더가 반환되므로 길이는 다음과 같습니다 > 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) 새로 고침을 실패한 로그인으로 계산합니다(이 역시 좋지 않음).

우리는 "com_login" post 값을 기반으로 Joomla에 대한 무차별 대입 공격을 처리하기 위한 규칙을 고안했습니다. 값이 post 값에 있으면 로그인에 실패한 것입니다. 그렇지 않으면 로그인에 성공한 것입니다. 규칙을 찾을 수 있습니다여기.

관련 정보