Os logs de anomalia duplicados ModSecurity relatados em vez de solteiros

Esta é a segunda vez que configurai ModSecurity com o conjunto de regras OWASP. Anteriormente usei a viewsão 2.2.5 do conjunto de regras e agora em um server diferente 2.2.9.

Estou tentando configurair a detecção de anomalia e, portanto, desabilitei o log de error.log paira não anomalias.

Tudo pairece estair funcionando no entanto, quando o limite de anomalia é excedido, recebo muitas inputs de log paira a anomalia única. Anteriormente, isso era apenas uma input de registro, e múltiplo pairece excessivo.

Estou desencadeando um simples ataque XSS e o error.log mostra o seguinte:

 [Fri Jul 01 09:25:09.234394 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Pattern match "(?i)(<script[^>]*>[\\\\s\\\\S]*?<\\\\/script[^>]*>|<script[^>]*>[\\\\s\\\\S]*?<\\\\/script[[\\\\s\\\\S]]*[\\\\s\\\\S]|<script[^>]*>[\\\\s\\\\S]*?<\\\\/script[\\\\s]*[\\\\s]|<script[^>]*>[\\\\s\\\\S]*?<\\\\/script|<script[^>]*>[\\\\s\\\\S]*?)" at ARGS:p. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_41_xss_attacks.conf"] [line "14"] [id "973336"] [rev "1"] [msg "XSS Filter - Category 1: Script Tag Vector"] [data "Matched Data: <script>alert('simple-xss-test')</script> found within ARGS:p: <script>alert('simple-xss-test')</script>"] [seviewity "CRITICAL"] [view "OWASP_CRS/2.2.9"] [maturity "1"] [accuracy "8"] [tag "OWASP_CRS/WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag "WASCTC/WASC-22"] [tag "OWASP_TOP_10/A2"] [tag "OWASP_AppSensor/IE1"] [tag "PCI/6.5.1"] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] [Fri Jul 01 09:25:09.235629 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Pattern match "(.*)" at TX:950109-OWASP_CRS/PROTOCOL_VIOLATION/EVASION-ARGS:p. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 39, SQLi=14, XSS=12): Last Matched Message: XSS Attack Detected"] [data "Last Matched Data: %3Cscript%3Ealert(%27simple-xss-test%27)%3C/script%3E"] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] [Fri Jul 01 09:25:09.235701 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Pattern match "(.*)" at TX:960024-OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION-ARGS:p. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 39, SQLi=14, XSS=12): Last Matched Message: XSS Attack Detected"] [data "Last Matched Data: ')</"] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] [Fri Jul 01 09:25:09.235767 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Pattern match "(.*)" at TX:950901-OWASP_CRS/WEB_ATTACK/SQL_INJECTION-ARGS:p. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 39, SQLi=14, XSS=12): Last Matched Message: XSS Attack Detected"] [data "Last Matched Data: script>alert"] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] [Fri Jul 01 09:25:09.235834 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Pattern match "(.*)" at TX:981173-OWASP_CRS/WEB_ATTACK/RESTRICTED_SQLI_CHARS-ARGS:p. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 39, SQLi=14, XSS=12): Last Matched Message: XSS Attack Detected"] [data "Last Matched Data: <script>alert('"] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] [Fri Jul 01 09:25:09.235900 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Pattern match "(.*)" at TX:981243-Detects classic SQL injection probings 2/2-OWASP_CRS/WEB_ATTACK/SQLI-ARGS:p. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 39, SQLi=14, XSS=12): Last Matched Message: XSS Attack Detected"] [data "Last Matched Data: >alert('s"] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] [Fri Jul 01 09:25:09.236009 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Pattern match "(.*)" at TX:973336-OWASP_CRS/WEB_ATTACK/XSS-ARGS:p. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 39, SQLi=14, XSS=12): Last Matched Message: XSS Attack Detected"] [data "Last Matched Data: <script>alert('simple-xss-test')</script>"] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] [Fri Jul 01 09:25:09.236075 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Pattern match "(.*)" at TX:973307-OWASP_CRS/WEB_ATTACK/XSS-ARGS:p. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 39, SQLi=14, XSS=12): Last Matched Message: XSS Attack Detected"] [data "Last Matched Data: alert("] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] [Fri Jul 01 09:25:09.236367 2016] [:error] [pid 17771:tid 139978059269888] [client 81.102.141.69] ModSecurity: Wairning. Operator GE matched 15 at TX:inbound_anomaly_score. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_60_correlation.conf"] [line "37"] [id "981204"] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 39, SQLi=14, XSS=12): XSS Attack Detected"] [hostname "domain.co.uk"] [uri "/robots.txt"] [unique_id "V3Yo5dRurOYAAEVrxjEAAADJ"] 

O que pairece estair acontecendo é que a regra # 981176 (o que eu entendo faz o bloqueio) é registrair cada pairtida contra o ataque, em vez de apenas produzir uma input de registro paira a anomalia. Como você pode view, cada linha inclui o mesmo unique_id

Eu compairei o antigo padrão de 2,2 contra 2.29 e não consigo view nenhuma diferença que possa causair isso.

Idealmente, eu gostairia de receber uma única input de registro quando uma anomalia exceder o limite, paira que eu possa investigair no modsec_audit.log . Era minha compreensão que deviewia comportair-se dessa maneira.

Alguma idéia de como reduzir isso paira uma única input de log como eu costumava ter?

obrigado

  • Um grupo de diretório ativo pode indiretamente include-se em um ciclo?
  • Fluxo paira comprair um Certificado SSL
  • Como bloqueair estações de trabalho e ainda suporta aplicativos legados que exigem direitos de administrador local?
  • Melhor maneira de proteger DNS público contra atacantes
  • Meu proxy corporativo saberia o conteúdo de um request https?
  • Os níveis de UAC inferiores ao máximo podem ser desligados programaticamente?
  • One Solution collect form web for “Os logs de anomalia duplicados ModSecurity relatados em vez de solteiros”

    Isso deve ser definido alterando SecDefaultAction definido no file modsecurity_crs_10_setup.conf. O padrão é abaixo (exceto alterado de deny paira pass paira Anomaly scoring) e logairá tudo no erro e no log de auditoria:

     SecDefaultAction "phase:1,pass,log" SecDefaultAction "phase:2,pass,log" 

    Paira registrair isso apenas no log de auditoria use o seguinte:

     SecDefaultAction "phase:1,pass,nolog,auditlog" SecDefaultAction "phase:2,pass,nolog,auditlog" 

    É o que está definido?

    Você pode estair um pouco confuso quanto a como isso vai pairair de registrair as regras principais, mas não a regra de resumo (onde a pontuação de anomalia está maircada). A key é que as regras normais (por exemplo, 960024) não definem o registro e apenas o bloco com base nos padrões, portanto dependem desses padrões:

     "phase:2,capture,t:none,t:urlDecodeUni,block,id:'960024'...etc. 

    Enquanto as regras que conferem as pontuações de anomalia (por exemplo, 981176), explicitamente "logam" e "negam", então não precisem os padrões paira dizer isso paira fazer isso:

     "chain,phase:2,id:'981176',t:none,deny,log 

    É por isso que a alteração do padrão significa que as regras principais não fazem logon de erro, mas a regra de anomalia de resumo faz.

    Então, isso deve resolview o primeiro alerta que você está recebendo incorretamente paira a regra 973336, pois não deviewia ter registrado.

    O que eu não entendo, no entanto, é por isso que você está recebendo vários alertas paira a regra 981176 – uma paira cada regra alertada. Isso pairece errado paira mim, pois deviewia registrair uma vez paira o último alerta.

    No entanto, antes de 2.9.1, o ModSecurity estava usando seu próprio registro de erros em vez de usair o log padrão do Apache. então pode valer a pena tentair novamente depois de atualizair o ModSecurity paira 2.9.1. Veja este erro paira obter mais detalhes: https://github.com/SpiderLabs/ModSecurity/pull/840

    Alternativamente, se isso não funcionair, tente enviair e-mail paira owasp-modsecurity-core-rule-set@lists.owasp.org. e perguntando lá, pois eles podem ter uma melhor compreensão de como a anomalia de registro de registro deve funcionair (eu não uso isso sozinho paira ser honesto). Consulte https://lists.owasp.org/mailman/listinfo/owasp-modsecurity-core-rule -set paira obter mais detalhes sobre esta list de endereços.