Asp.net 如何防止由信号器引起的Modsecurity误报?
我最近构建了一个全新的开发服务器,以试验Modsecurity。然而,我得到了大量由.NET4应用程序生成的误报,该应用程序使用signar进行客户机-服务器通信 如何在不考虑Modsecurity效率的情况下防止误报? 点击看起来很普通,所以我不想完全禁用规则,我希望避免禁用Asp.net 如何防止由信号器引起的Modsecurity误报?,asp.net,signalr,iis-8,mod-security,false-positive,Asp.net,Signalr,Iis 8,Mod Security,False Positive,我最近构建了一个全新的开发服务器,以试验Modsecurity。然而,我得到了大量由.NET4应用程序生成的误报,该应用程序使用signar进行客户机-服务器通信 如何在不考虑Modsecurity效率的情况下防止误报? 点击看起来很普通,所以我不想完全禁用规则,我希望避免禁用/signal/uri上的点击,这将失去signar上的保护 下面是我如何进行设置的: 我安装了Windows Server 2012 已安装的IIS角色 已安装所有操作系统更新 通过WebPlatformInstalle
/signal/
uri上的点击,这将失去signar上的保护
下面是我如何进行设置的:
> [client 192.168.0.104:59945] ModSecurity: Warning. Pattern match
> "(?i:(?:in\\s*?\\(+\\s*?select)|(?:(?:n?and|x?x?or|div|like|between|and|not
> |\\|\\||\\&\\&)\\s+[\\s\\w+]+(?:regexp\\s*?\\(|sounds\\s+like\\s*?[\"'`\xc2\xb4\xe2\x80\x99\xe2\x80\x98]|[=\\d]+x))|([\"'`\xc2\xb4\xe2\x80\x99\xe2\x80\x98]\\s*?\\d\\s*?(?:--|#))
> ..." at ARGS:connectionData. [file "C:\/Program Files/ModSecurity
> IIS/owasp_crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf"]
> [line "239"] [id "981246"] [msg "Detects basic SQL authentication
> bypass attempts 3/3"] [data "Matched Data: \x22name\x22:\x22 found
> within ARGS:connectionData: [{\x22name\x22:\x22*****serverhub\x22}]"]
> [severity "CRITICAL"] [tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"]
> [hostname "*********"] [uri
> "/signalr/start?transport=webSockets&clientProtocol=1.4&connectionToken=iIxfXzLxKm9twEhHdomj4DI95so0QmpmqeTXD4Qe0VsQoJO47CHuEIuv2z7M%2B1TYx44PK5ko18t2aoaLb4WztjR1c8g0VP8MUaGkSO9KDftOzsGektSIDl%2FI1RPMQdTd&connectionData=%5B%7B%22name%22%3A%22*****serverhub%22%7D%5D&_=1461637088340"]
> [unique_id "17798225729515683844"]
受限SQL字符:
> [client 192.168.0.104:59945] ModSecurity: Warning. Pattern match
> "([\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\+\\=\\{\\}\\[\\]\\|\\:\\;\"\\'\\\xc2\xb4\\\xe2\x80\x99\\\xe2\x80\x98\\`\\<\\>].*?){4,}"
> at ARGS:connectionData. [file "C:\/Program Files/ModSecurity
> IIS/owasp_crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf"]
> [line "159"] [id "981173"] [rev "2"] [msg "Restricted SQL Character
> Anomaly Detection Alert - Total # of special characters exceeded"]
> [data "Matched Data: \x22 found within ARGS:connectionData:
> [{\x22name\x22:\x22*****serverhub\x22}]"] [ver "OWASP_CRS/2.2.9"]
> [maturity "9"] [accuracy "8"] [tag
> "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"] [hostname "*********"] [uri
> "/signalr/start?transport=webSockets&clientProtocol=1.4&connectionToken=iIxfXzLxKm9twEhHdomj4DI95so0QmpmqeTXD4Qe0VsQoJO47CHuEIuv2z7M%2B1TYx44PK5ko18t2aoaLb4WztjR1c8g0VP8MUaGkSO9KDftOzsGektSIDl%2FI1RPMQdTd&connectionData=%5B%7B%22name%22%3A%22*****serverhub%22%7D%5D&_=1461637088340"]
> [unique_id "17798225729515683844"]
PS:我没有在该特定应用程序中使用任何SQL技术。对于前两个,我建议您添加以下规则以忽略这些规则的ConnectionData参数:
SecRuleUpdateTargetById 981246 !ARGS:'ConnectionData'
SecRuleUpdateTargetById 981173 !ARGS:'ConnectionData'
最后,我建议完全取消这个规则。我觉得它没什么用处,因为有些浏览器(Android上的内存浏览器)不发送该标题:
SecRuleRemoveById 960015
您可能希望阅读此答案以了解如何优化ModSecurity:
回答得很好,特别是结合了提到的“提供403禁止错误的超敏感国防部安全规则”,这提供了一个附加上下文。
SecRuleRemoveById 960015