Skip to main content

LevelBlue Completes Acquisition of Cybereason.  Learn More

LevelBlue Completes Acquisition of Cybereason.  Learn More

Services
Cyber Advisory
Managed Cloud Security
Data Security
Managed Detection & Response
Email Security
Managed Network Infrastructure Security
Exposure Management
Security Operations Platforms
Incident Readiness & Response
SpiderLabs Threat Intelligence
Solutions
BY TOPIC
Offensive Security
Solutions to maximize your security ROI
Operational Technology
End-to-end OT security
Microsoft Security
Unlock the full power of Microsoft Security
Securing the IoT Landscape
Test, monitor and secure network objects
Why LevelBlue
About Us
Awards and Accolades
LevelBlue SpiderLabs
LevelBlue Security Operations Platforms
Security Colony
Partners
Microsoft Security
Unlock the full power of Microsoft Security
Technology Alliance Partners
Key alliances who align and support our ecosystem of security offerings
Loading...
Loading...

HOWTO: ModSecurity Exception Handling - Updating the Rule ID Target List

Expand / Collapse


This article applies to:

  • ModSecurity

Question:

  • How can I address false positives?
  • How do I set up exception handling?

Procedure:

There are many methods of implementing Exception Handling in ModSecurity to address false positive alerts.  This article outlines an approach which will dynamically modify the variable TARGET listing of a rule ID without editing the SecRule directly.  This is achieved by using the ctl:ruleRemoveTargetById action.

For example, consider the following ModSecurity alert message:

 

[Sun Jun 30 13:45:43 2013] [error] [client 192.168.11.143] ModSecurity: Access denied with code 403 (phase 2). 
Pattern match "(^[\"'
\\xc2\\xb4\\xe2\\x80\\x99\\xe2\\x80\\x98;]+|[\\"'\xc2\xb4\xe2\x80\x99\xe2\x80\x98;]+$)" at ARGS:DocCopyList. [file "/etc/modsecurity/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "66"] 
[id "981318"][rev "2"] [msg "SQL Injection Attack: Common Injection Testing Detected"] [data "Matched Data: \xb4 found within ARGS:DocCopyList: \xd9\x8a\xd8\xb4\xd9\x8a\xd8\xb4\xd8\xb3\xd9\x8a\xd8\xb4"]
[severity "CRITICAL"] [ver "OWASP_CRS/2.2.7"] [maturity "9"] [accuracy "8"]
[tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"] [tag "WASCTC/WASC-19"]
[tag "OWASP_TOP_10/A1"] [tag "OWASP_AppSensor/CIE1"] [tag "PCI/6.5.2"]
[hostname "192.168.11.60"] [uri "/DMS-V2/doc_out/doc_out_new.php"] [unique_id "UdAMV8CoCzwAAHRHMhYAAAAB"]

 

If this alert is deemed a false positive then you need to modify the rules.  

Rather than disabling this rule globally, or for the URL, we can instead modify the TARGET list to remove inspection of the ARGS:DocCopyList parameter by adding the following new rule it to a modsecurity_crs_00_custom.conf file:

SecRule REQUEST_FILENAME "@streq /DMS-V2/doc_out/doc_out_new.php" "id:1,phase:1,t:none,nolog,pass,ctl:ruleRemoveTargetById=981318;ARGS:DocCopyList"

This rule would conditionally remove inspection of ARGS:DocCopyList for rule ID 981318 for the current transaction if the client was requesting that webpage.  Make sure that the modsecurity_crs_00_custom.conf file is activated in the web server configurations so that it is called up BEFORE the normal ModSecurity rules.

Notes:

For general information about ModSecurity see the Reference Manual (one source for this manual is in the Related Links section below).


To contact Trustwave about this article or to request support:


Rate this Article:
     

Related Articles



Related Links



Add Your Comments


Comment submission is disabled for anonymous users.
Please send feedback to Trustwave Technical Support or the Webmaster
.