在设置mod_security后,我得到了很多误报[??]。我只是在检测中运行它,所以没有任何问题,但这些过滤器将在我需要它生效后开始阻止请求。
害怕我不能100%理解这些过滤器的重要性,我几乎在每个域上获得了100个过滤器。所有请求看起来都合法。
Request Missing a User Agent Header
Request Missing an Accept Header
这里最好的事情是什么?我应该禁用这些过滤器吗?我可以将严重性设置得更低,以便不会阻止请求吗?
这是一个完整的条目
[22/Nov/2011:21:32:37 --0500] u6t6IX8AAAEAAHSiwYMAAAAG 72.47.232.216 38543 72.47.232.216 80
--5fcb9215-B--
GET /Assets/XHTML/mainMenu.html HTTP/1.0
Host: www.domain.com
Content-type: text/html
Cookie: pdgcomm-babble=413300:451807c5d49b8f61024afdd94e57bdc3; __utma=100306584.1343043347.1321115981.1321478968.1321851203.4; __utmz=100306584.1321115981.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=XXXXXXXX%20clip%20ons
--5fcb9215-F--
HTTP/1.1 200 OK
Last-Modified: Wed, 23 Nov 2011 02:01:02 GMT
ETag: "21e2a7a-816d"
Accept-Ranges: bytes
Content-Length: 33133
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
--5fcb9215-H--
Message: Operator EQ matched 0 at REQUEST_HEADERS. [file "/etc/httpd/modsecurity_crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf"] [line "47"] [id "960015"] [rev "2.2.1"] [msg "Request Missing an Accept Header"] [severity "CRITICAL"] [tag "PROTOCOL_VIOLATION/MISSING_HEADER_ACCEPT"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"]
Message: Operator EQ matched 0 at REQUEST_HEADERS. [file "/etc/httpd/modsecurity_crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf"] [line "66"] [id "960009"] [rev "2.2.1"] [msg "Request Missing a User Agent Header"] [severity "NOTICE"] [tag "PROTOCOL_VIOLATION/MISSING_HEADER_UA"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"]
Message: Warning. Operator LT matched 5 at TX:inbound_anomaly_score. [file "/etc/httpd/modsecurity_crs/base_rules/modsecurity_crs_60_correlation.conf"] [line "33"] [id "981203"] [msg "Inbound Anomaly Score (Total Inbound Score: 4, SQLi=5, XSS=): Request Missing a User Agent Header"]
Stopwatch: 1322015557122593 24656 (- - -)
Stopwatch2: 1322015557122593 24656; combined=23703, p1=214, p2=23251, p3=2, p4=67, p5=168, sr=88, sw=1, l=0, gc=0
Producer: ModSecurity for Apache/2.6.1 (http://www.modsecurity.org/); core ruleset/2.2.1.
Server: Apache/2.2.3 (CentOS)
答案 0 :(得分:21)
如果查看生产者行中显示的审核日志条目的H部分,您将看到您正在使用OWASP ModSecurity核心规则集(CRS)v2.2.1。在这种情况下,我建议您查看项目页面上的文档信息 -
https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project#tab=Documentation
具体来说,您应该查看我做过的这两篇博客文章 -
博客文章#1非常有用,以便您了解您为CRS使用的“操作模式”。通过查看您的审核日志,您似乎正在以异常评分模式运行。这是规则正在进行检测的地方,但阻止决策是通过检查modsecurity_crs_49_inbound_blocking.conf文件中的整体异常分数来单独完成的。
博客文章#2非常有用,因此您可以准确地确定如何处理这两个规则。如果您觉得这些对您来说并不重要 - 那么我建议您使用SecRuleRemoveById指令从您自己的modsecurity_crs_60_exceptions.conf文件中禁用这些规则。它现在的方式是,这两个警报只会产生4的入站异常分数 - 低于modsecurity_crs_10_config.conf文件中设置的默认阈值5,因此它不会被阻止。
查看审核日志示例,当此请求确实生成警报时,事务未被阻止。如果是,则H部分下的消息数据将声明“拒绝访问...”。
至于这些规则的目的 - 它们旨在标记非标准Web浏览器(IE,Chrome,Firefox等)生成的请求,因为所有这些浏览器都将同时发送User-Agent和Accept根据HTTP RFC规范请求标头。
最后一条评论 - 我建议您使用官方OWASP ModSecurity CRS邮件列表来处理这些类型的问题 - https://lists.owasp.org/mailman/listinfo/owasp-modsecurity-core-rule-set
您还可以搜索存档以获取答案。
干杯, 瑞安巴奈特 ModSecurity项目负责人 OWASP ModSecurity CRS项目负责人
答案 1 :(得分:5)
这不是误报。您的请求标头缺少User-Agent
和Accept
标头。通常这些是从扫描仪或黑客工具发送的。