Cookies

modsecurity 將某些類型的 cookie 列入白名單

  • November 30, 2015

我看到在我們的伺服器上生成的 cookie 似乎來自站點中的第 3 方對象,並且在登錄或瀏覽站點時不會顯示自己。

cookie 是隨機的,但都以 Wm 開頭。所以其中一些可能是 wm_cm_12345-12345-12345-12345,其中一些可能是 wm-wtchd-22。我在想,如果他們是 Wm*,也許我可以讓他們不警覺。

如何將 Wm 開頭的 cookie 列入白名單?

以及您可能想要包含的任何其他想法,我如何將這些想法列入白名單?

謝謝

一個範例 cookie

TX:981243-Detects classic SQL injection probings 2/2-OWASP_CRS/WEB_ATTACK/SQLI-REQUEST_COOKIES:wm_rx_123456eabcdef7890_0edb4989-1523-ff12-ccab-beddddaaffccc. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 41, SQLi=9, XSS=): Last Matched Message: 981243-Detects classic SQL injection probings 2/2"] [data "Last Matched Data: \\x22:61"] [hostname "Somefoowebsite.com"] [uri "/images/nyancat.jpg"] 

我所看到的另一個例子:

[30/Nov/2015:13:54:27 --0700] [bumblebeetune.com/sid#7fee134ee758][rid#7fee13b510d8][/nyancat.foo][2] Warning. Pattern match "(.*)" at TX:981243-Detects classic SQL injection probings 2/2-OWASP_CRS/WEB_ATTACK/SQLI-REQUEST_COOKIES:[30/Nov/2015:13:54:27 --0700] [bumblebeetuna.com/sid#7fee134ee758][rid#7fee13b510d8][/nyancat.foo][2] Warning. Pattern match "(.*)" at TX:981243-Detects classic SQL injection probings 2/2-OWASP_CRS/WEB_ATTACK/SQLI-REQUEST_COOKIES:wm_ct_877bb6e0e4744fd6a270f70f3e0c8a67_d464ab47-3cf0-fe3f-89d5-bd785f7bdcfa. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 18, SQLi=4, XSS=): Last Matched Message: 981243-Detects classic SQL injection probings 2/2"] [data "Last Matched Data: \x22:61"]. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_49_inbound_blocking.conf"] [line "26"] [id "981176"] [msg "Inbound Anomaly Score Exceeded (Total Score: 18, SQLi=4, XSS=): Last Matched Message: 981243-Detects classic SQL injection probings 2/2"] [data "Last Matched Data: \x22:61"]

你可以做你想做的事,你可以像這樣添加配置(詳見此處):

SecRuleUpdateTargetById 981243 !REQUEST_COOKIES:'/^wm.*/'

事實上,這已經內置在一些正常 cookie 中,該規則錯誤地將其標記為誤報(Google分析使用的 __utm 和類似分析軟體使用的 _pk_ref),正如您在查看原始規則的規則定義時所看到的那樣標記:

SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* “(?i:(?:["’ ´’‘]\s*?\*.+(?:x?or|div|like|between|and|id)\W*?[\"'´’’]\d)|(?: ^["’ ´’‘])|(?:^[\w\s\"'´’’-]+(?<=and\s)(?<=or|xor|div|like|between|and\s)(?<=xor\s)(?<= nand\s)(?<=not\s)(?<=||)(?<=&&)\w+()|(?:["’ ´’‘][\s\d]*?[^\w\s]+\W*?\d\W*?.*?[\"'´’’\d])| (?:["’ ´’‘]\s*?[^\w\s?]+\s*?[^\w\s]+\s*?[\"'’’’])|(?:["’ ´’‘]\s*?[^\w\s]+\s*?[\W\d].*?(?:#|--))|(?:[\"'’’’]. ?\s* ?\d)|(?:["’ ´’‘]\s*?(x?or|div|like|between|and)\s[^\d]+[\w-]+.*?\d)|(?:[()\*&lt;&gt;%+-][\w-]+[^\w\s]+[\"'’’']

$$ ^, $$))” “phase:2,capture,t:none,t:urlDecodeUni,block,msg:‘Detects classic SQL injection probings 2/2’,id:‘981243’,tag:‘OWASP_CRS/WEB_ATTACK/SQL_INJECTION’,logdata :‘匹配數據: %{TX.0} 在 %{MATCHED_VAR_NAME} 中找到: %{MATCHED_VAR}’,severity:‘2’,setvar:’tx.msg=%{rule.id}-%{rule.msg} ‘,setvar:tx.sql_injection_score=+1,setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:’tx.%{tx.msg}-OWASP_CRS/WEB_ATTACK/SQLI-%{matched_var_name}=%{ tx.0}’”

現在,如果您能計算出我們的那個正則表達式,那麼您就是一個比我更好的人,但是您可以在開始時看到它適用於哪些 cookie 的配置。

請注意,最好添加上述配置以動態修改規則,而不是編輯規則本身,因為升級您的規則將覆蓋任何編輯,而可以保留覆蓋(假設它們位於升級後仍然存在的單獨覆蓋文件中)。

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