Linux

不掃描 URI 的 Modsecurity 規則

  • June 30, 2015

早上好,

我目前正在創建一個新的 mod security 2.5 規則。

我的部署:我有一個反向代理模式的 Apache 伺服器。此 Apache 伺服器託管網站。相反,我將請求代理到另一個響應 Web 請求的伺服器。

Web 伺服器使用身份驗證令牌將網站 URL 重寫為安全 URL。

75.75.75.75 - - [01/May/2015:10:55:14 -0400] "GET /record/example.svc/js HTTP/1.1" 200 1786 "https://example.org/example.aspx?XOW%5eLdz%3c2%2f1%2f42%2527kbmhtbffJfx%3e0%2527qpkf%5ejc%3e2%2527Cfruho%60uhpmXOW%5eLdz%3c2%2f1%2f42%2527RptsbfVQU%60Jfx%3e193%2527qpkf%5ejc%3e2%2527RptsbfVQU%60Ejqts%60Bihmc%60Mblf%3cSdrtfru%1fTbpqjmh"

問題:

Modsecurity 目前掃描 URI。由於隨機 URI 的性質,已經產生了很多誤報。為了防止這種情況,我想免除所有 URI 的掃描。

由於重寫、重定向和身份驗證令牌都在網路伺服器上生成(這也是我們希望保留它的方式),我如何通知 mod security 這些標頭是合法的並且不掃描它們?

75.75.75.75 - - [01/May/2015:10:55:52 -0400] "GET /thing.aspx?XOW%5eLdz%3c375%25cddnnd%60ttds%5ebt%60he%3c5%2f58328 HTTP/1.1" 200 15100 "https://example.org/example.aspx?XOW%5eLdz%3c2%2f1%2f42%2527kbmhtbffJfx%3e0%2527qpkf%5ejc%3e2%2527Cfruho%60uhpmXOW%5eLdz%3c2%2f1%2f42%2527RptsbfVQU%60Jfx%3e193%2527qpkf%5ejc%3e2%2527RptsbfVQU%60Ejqts%60Bihmc%60Mblf%3cSdrtfru%1fTbpqjmh"

75.75.75.75 - - [01/May/2015:10:55:52 -0400] "GET /example/example.svc/js HTTP/1.1" 200 1786 "https://example.org/example.aspx?XOW%5eLdz%3c375%25cddnnd%60ttds%5ebt%60he%3c5%2f58328"

我們最終通過使用另一個不掃描 URI 的規則解決了這個問題。

SecRuleUpdateTargetById 950120 !ARGS:REQUEST_URI

這樣,此特定規則將不會掃描 URI,但仍會掃描數據包的其餘部分。應該注意的是,需要為您擁有的每條規則複製此規則。

據我所知,不可能從所有配置的 ModSecurity 規則中完全忽略請求的任何特定部分(無論是 URI 還是任何參數)。雖然這可能很有用,但它可能會打開許多安全漏洞。

因此,您只需要查看哪些規則失敗並為這些規則添加白名單例外。

如果您舉例說明一些失敗的規則,如果您需要幫助,我可能會建議您如何處理。

引用自:https://serverfault.com/questions/699387