Mark, I would suggest that you use the latest CRS version as there are other bugs that we have fixed.
Looking at the example audit log entry you provided, that message "Host header is a numeric IP address" only results in a NOTICE level anomaly score increase - setvar:tx.anomaly_score=+%{tx.notice_anomaly_score} Here is the complete rule - SecRule REQUEST_HEADERS:Host "^[\d.:]+$" "phase:2,rev:'2.0.10',t:none,block,msg:'Host header is a numeric IP address', severity:'2',id:'960017',tag:'PROTOCOL_VIOLATION/IP_HOST',tag:'WASCTC/WASC- 21',tag:'OWASP_TOP_10/A7',tag:'PCI/6.5.10',tag:'http://technet.microsoft.co m/en-us/magazine/2005.01.hackerbasher.aspx',setvar:'tx.msg=%{rule.msg}',set var:tx.anomaly_score=+%{tx.notice_anomaly_score},setvar:tx.policy_score=+%{ tx.notice_anomaly_score},setvar:tx.%{rule.id}-POLICY/IP_HOST-%{matched_var_ name}=%{matched_var}'" So, when this transaction gets to the 40 Inbound Blocking file this ruleset is processed - # Alert and Block based on Anomaly Scores # SecRule TX:ANOMALY_SCORE "@gt 0" \ "chain,phase:2,t:none,deny,log,msg:'Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE}, SQLi=%{TX.SQL_INJECTION_SCORE}, XSS=%{TX.XSS_SCORE}): Last Matched Message: %{tx.msg}',logdata:'Last Matched Data: %{matched_var}',setvar:tx.inbound_tx_msg=%{tx.msg},setvar:tx.inbound_anomal y_score=%{tx.anomaly_score}" SecRule TX:ANOMALY_SCORE "@ge %{tx.inbound_anomaly_score_level}" chain SecRule TX:ANOMALY_SCORE_BLOCKING "@streq on" chain SecRule TX:/^\d/ "(.*)" Section K of your audit log shows that the first SecRule matches - SecRule "TX:ANOMALY_SCORE" "@gt 0" "phase:2,chain,t:none,deny,log,msg:'Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE}, SQLi=%{TX.SQL_INJECTION_SCORE}, XSS=%{TX.XSS_SCORE}): Last Matched Message: %{tx.msg}',logdata:'Last Matched Data: %{matched_var}',setvar:tx.inbound_tx_msg=%{tx.msg},setvar:tx.inbound_anomal y _score=%{tx.anomaly_score}" But, then it gets to the second SecRule that checks that the anomaly score if @ge your tx.inbound_anomaly_score_level, it doesn't match. This is because the only 1 rule with the NOTICE level matched. The bottom line is that this transaction's anomaly score was below your blocking threshold. Hope this helps, Ryan On 3/19/12 8:16 AM, "Mark Boos (IntCom)" <m...@intcom.nl> wrote: >Hi, > >An introduction: I use ModSecurity for 5 weeks now, on a relatively quiet >internet server. I am not a very experienced ModSecurity user, but the >traditional score installation worked just fine. I hope you forgive me my >shortcomings in knowledge. > >I have a problem with the anomaly method: there are warnings and critical >errors in the log files, but it seems no action is being taken after the >maximum score (5) is exceeded. > >Installation: >- Debian stable with apache 2.2.16 >- libapache-mod-security 2.5.12-1 >- crs_2.0.10 rule files (downloaded because the latest and greatest >crs_2.2.3 didnt work either) >*modsecurity_crs_20_protocol_violations.conf >*modsecurity_crs_21_protocol_anomalies.conf >*modsecurity_crs_23_request_limits.conf >*modsecurity_crs_35_bad_robots.conf >*modsecurity_crs_40_generic_attacks.conf >*modsecurity_crs_45_trojans.conf >*modsecurity_crs_49_inbound_blocking.conf >*modsecurity_crs_59_outbound_blocking.conf >*modsecurity_crs_60_correlation.conf >- latest slr >*modsecurity_slr_10_ip_reputation.conf >*modsecurity_slr_46_joomla_attacks.conf > >In modsecurity_crs_10_config.conf the anomaly configuration: >---------------------------------------------------------------------- >SecDefaultAction "phase:2,pass,log" > >SecAction "phase:1,t:none,nolog,pass, \ >setvar:tx.critical_anomaly_score=5, \ >setvar:tx.error_anomaly_score=4, \ >setvar:tx.warning_anomaly_score=3, \ >setvar:tx.notice_anomaly_score=2" > >SecAction >"phase:1,t:none,nolog,pass,setvar:tx.inbound_anomaly_score_level=5" >SecAction >"phase:1,t:none,nolog,pass,setvar:tx.outbound_anomaly_score_level=4" > >SecAction "phase:1,t:none,nolog,pass,setvar:tx.anomaly_score_blocking=on" >---------------------------------------------------------------------- > >This results in mod-security audit log for example: >---------------------------------------------------------------------- >--f3f66479-A-- >[15/Mar/2012:13:08:09 +0100] T2HbqX8AAAEAAEXDCtoAAAAG 93.94.***.** 43988 >95.142.***.** 80 >--f3f66479-B-- >GET /translators.html HTTP/1.1 >TE: deflate,gzip;q=0.3 >Keep-Alive: 300 >Connection: Keep-Alive, TE >Host: 95.142.165.25 >User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) >Opera 7.01 [en] > >--f3f66479-F-- >HTTP/1.1 404 Not Found >Vary: Accept-Encoding >Content-Length: 214 >Keep-Alive: timeout=15, max=100 >Connection: Keep-Alive >Content-Type: text/html; charset=iso-8859-1 > >--f3f66479-H-- >Message: Warning. Pattern match "^[\d.:]+$" at REQUEST_HEADERS:Host. [file >"/etc/apache2/mod-security/activated_rules/modsecurity_crs_21_protocol_ano >ma >lies.conf"] [line "97"] [id "960017"] [rev "2.0.10"] [msg "Host header is >a >numeric IP address"] [severity "CRITICAL"] [tag >"PROTOCOL_VIOLATION/IP_HOST"] [tag "WASCTC/WASC-21"] [tag >"OWASP_TOP_10/A7"] >[tag "PCI/6.5.10"] [tag >"http://technet.microsoft.com/en-us/magazine/2005.01.hackerbasher.aspx"] >Apache-Error: [file "/tmp/buildd/apache2-2.2.16/server/core.c"] [line >3648] >[level 3] File does not exist: >/var/www/vhosts/intcom.nl/httpdocs/translators.html >Stopwatch: 1331813289736227 5847 (554 5505 -) >Producer: ModSecurity for Apache/2.5.12 (http://www.modsecurity.org/); >core >ruleset/2.0.10. >Server: Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze8 with Suhosin-Patch >mod_ssl/2.2.16 OpenSSL/0.9.8o > >--f3f66479-K-- >SecAction >"phase:1,t:none,nolog,pass,setvar:tx.critical_anomaly_score=5,setvar:tx.er >ro >r_anomaly_score=4,setvar:tx.warning_anomaly_score=3,setvar:tx.notice_anoma >ly >_score=2" >SecAction >"phase:1,t:none,nolog,pass,setvar:tx.inbound_anomaly_score_level=5" >SecAction >"phase:1,t:none,nolog,pass,setvar:tx.outbound_anomaly_score_level=4" >SecAction "phase:1,t:none,nolog,pass,setvar:tx.anomaly_score_blocking=on" >SecRule "REQUEST_METHOD" "@rx ^(?:GET|HEAD)$" >"phase:1,log,chain,rev:2.0.10,t:none,block,msg:'GET or HEAD requests with >bodies',severity:2,id:960011,tag:PROTOCOL_VIOLATION/EVASION,tag:WASCTC/WAS >C- >21,tag:OWASP_TOP_10/A7,tag:PCI/6.5.10,tag:http://www.w3.org/Protocols/rfc2 >61 >6/rfc2616-sec4.html#sec4.3" >SecRule "REMOTE_ADDR" "@rx .*" >"phase:1,chain,t:none,log,block,id:2200000,msg:'SLR: Client IP in >Blacklist.',tag:AUTOMATION/MALICIOUS,setvar:tx.ip_blacklist=/%{matched_var >}/ >" >SecRule "REQUEST_METHOD" "!@rx ^OPTIONS$" >"phase:2,log,chain,rev:2.0.10,t:none,block,msg:'Request Missing an Accept >Header',severity:2,id:960015,tag:PROTOCOL_VIOLATION/MISSING_HEADER_ACCEPT, >ta >g:WASCTC/WASC-21,tag:OWASP_TOP_10/A7,tag:PCI/6.5.10" >SecRule "&REQUEST_HEADERS:Content-Type" "@eq 0" >"phase:2,log,chain,rev:2.0.10,t:none,block,msg:'Request Containing >Content, >but Missing Content-Type header',id:960904,severity:5" >SecRule "REQUEST_HEADERS:Host" "@rx ^[\\d.:]+$" >"phase:2,log,rev:2.0.10,t:none,block,msg:'Host header is a numeric IP >address',severity:2,id:960017,tag:PROTOCOL_VIOLATION/IP_HOST,tag:WASCTC/WA >SC >-21,tag:OWASP_TOP_10/A7,tag:PCI/6.5.10,tag:http://technet.microsoft.com/en >-u >s/magazine/2005.01.hackerbasher.aspx,setvar:tx.msg=%{rule.msg},setvar:tx.a >no >maly_score=+%{tx.notice_anomaly_score},setvar:tx.policy_score=+%{tx.notice >_a >nomaly_score},setvar:tx.%{rule.id}-POLICY/IP_HOST-%{matched_var_name}=%{ma >tc >hed_var}'" >SecRule "TX:ANOMALY_SCORE" "@gt 0" >"phase:2,chain,t:none,deny,log,msg:'Inbound Anomaly Score Exceeded (Total >Score: %{TX.ANOMALY_SCORE}, SQLi=%{TX.SQL_INJECTION_SCORE}, >XSS=%{TX.XSS_SCORE}): Last Matched Message: %{tx.msg}',logdata:'Last >Matched >Data: >%{matched_var}',setvar:tx.inbound_tx_msg=%{tx.msg},setvar:tx.inbound_anoma >ly >_score=%{tx.anomaly_score}" >SecRule "TX:INBOUND_ANOMALY_SCORE" "@gt 0" >"phase:5,chain,t:none,log,noauditlog,skipAfter:END_CORRELATION,msg:'Inboun >d >Anomaly Score (Total Inbound Score: %{TX.INBOUND_ANOMALY_SCORE}, >SQLi=%{TX.SQL_INJECTION_SCORE}, XSS=%{TX.XSS_SCORE}): >%{tx.inbound_tx_msg}'" > >--f3f66479-Z-- > >---------------------------------------------------------------------- > >It looks like the variables aren't being filled ? > >Thank you for your time. > >Regards >Mark > >_______________________________________________ >Owasp-modsecurity-core-rule-set mailing list >Owasp-modsecurity-core-rule-set@lists.owasp.org >https://lists.owasp.org/mailman/listinfo/owasp-modsecurity-core-rule-set > This transmission may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format. _______________________________________________ Owasp-modsecurity-core-rule-set mailing list Owasp-modsecurity-core-rule-set@lists.owasp.org https://lists.owasp.org/mailman/listinfo/owasp-modsecurity-core-rule-set