行业新闻

开源OWASP CRS规则

开源OWASP CRS规则

一、OWASP介绍

OWASP被视为Web应用安全领域的权威参考,在2009年发布的美国国家和国际立法、标准、准则、委员会和行业实务守则参考引用了OWASP。美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP十大WEB弱点防护守则。国际信用卡数据安全技术PCI标准更将其列为必要组件。OWASP组织为英国GovCERTUK提供SQL注入参考和为欧洲网络与信息安全局(ENISA), 云计算风险评估参考。OWASP TOP 10为IBM APPSCAN、HP WEBINSPECT等扫描器漏洞参考的主要标准。

作为一个501c3非盈利的全球性安全组织,致力于应用软件的安全研究。使命是使应用软件更加安全,使企业和组织能够对应用安全风险做出更清晰的决策。目前OWASP全球拥有130个分会近万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。

二、OWASP TOP10

1、版本 

版本

OWASP TOP 10 2013

OWASP TOP 10 2017

OWASP TOP 10 2021

A1

Injection 注入攻击

Injection 注入攻击

Broken Access Control

失效的访问控制

A2

Broken Authentication and Session Management

失效的验证与连接管理

Broken Authentication

失效的身份认证

Sensitive Data Exposure

敏感数据泄露

A3

Cross-Site Scripting,XSS

跨站脚本攻击

Sensitive Data Exposure

敏感数据泄露

Injection 注入攻击

A4

Insecure Direct Object References

不安全的直接对象引用

XML External Entities,XXE

XML外部处理器漏洞

Insecure Design

不安全设计

A5

Security Misconfiguration

安全配置错误

Broken Access Control

失效的访问控制

Security Misconfiguration

安全配置错误

A6

Sensitive Data Exposure

敏感数据泄露

Security Misconfiguration

安全配置错误

Vulnerable and Outdated Component 脆弱过时组件

A7

Missiojn Function Level Access Control

缺少功能级别的访问控制

Cross-Site Scripting,XSS

跨站脚本攻击

Identification and Authentication Failure 识别与认证失败

A8

Cross-Site Request Forgery (CSRF)

跨站请求伪造

Insecure Deserialization

不安全的反序列化漏洞

Software and Data Integrity Failure 软件和数据完整性故障

A9

Using Components with Known Vulnerabilities 使用含有已知漏洞的组件

Using Components with Known Vulnerabilities 使用含有已知漏洞的组件

Security Logging and Monitoring Failure

安全日志与监测失败

A10

Unvalidated Redirects and Forwards

未验证的重定向与转发

Insufficient Logging s:18:"?php%20phpinfo();?>";}就可以很好理解这里的匹配规则。

b. REQUEST-944-APPLICATION-ATTACK-JAVA

该规则文件中,有针对远程命令执行:Apache Struts、Oracle WebLogic的检测规则、利用Java反序列化Apache Commons检测规则以及检测可疑的Java方法和Base64编码的字符串匹配可以关键字等检测规则。这里看一下关于序列化的一些检测规则。

944200

SecRule ARGS|ARGS_NAMES|REQUEST_COOKIES|

!REQUEST_COOKIES:/__utm/|REQUEST_COOKIES_NAMES|REQUEST_BODY|REQUEST_HEADERS|XML:/*|

XML://@*  "@rx \xac\xed\x00\x05"

944210

SecRule ARGS|ARGS_NAMES|REQUEST_COOKIES|

!REQUEST_COOKIES:/__utm/|REQUEST_COOKIES_NAMES|REQUEST_BODY|REQUEST_HEADERS|XML:/*|

XML://@*  "@rx (?:rO0ABQ|KztAAU|Cs7QAF)"

944240

SecRule ARGS|ARGS_NAMES|REQUEST_COOKIES|

!REQUEST_COOKIES:/__utm/|REQUEST_COOKIES_NAMES|REQUEST_BODY|REQUEST_HEADERS|XML:/*|XML://@*

"@rx (?:clonetransformer|forclosure|instantiatefactory|

instantiatetransformer|invokertransformer|prototypeclonefactory|prototypeserializationfactory|whileclosure|getproperty|filewriter|xmldecoder)"

在上面三个检测规则中,可以看到使用正则对请求参数、请求COOKIE、请求体、请求头等对序列化标志(ac ed 00 05)和ConstantTransformer等类对象进行检测。

四、总结

在上述的关于对OWASP CRS规则的介绍中,可以了解到CRS规则检测的覆盖范围是全面的。分为请求头阶段、请求体阶段、响应头阶段、响应体阶段以及日志记录阶段。本文中介绍了CRS规则在请求过程中对注入攻击和反序列化攻击的几个检测方法。其实深入了解到CRS的检测规则以后,可以看出,在当前WAF的检测攻击行为中,无论是其中传统的正则表达式检测方法,还是使用参数对知识库类的文件内容调用,还是其中SQL注入和XSS攻击的中使用Libinjection配合检测。其目的是为了减少在真实环境中的误报等情况。在减少误报的情况下,再使其横向拓展检测。其实在CRS规则中,对CVE-2014-6271、CVE-2017-10271等已知漏洞的检测是已经体现到的。

在本文介绍后关于OWASP CRS核心规则以后,不难了解到针对开源、可自主编写的OWASP CRS规则,如果现有的WAF可以兼容使用其规则,其实是可以将WAF对相关的攻击检测策略更加的完善、更加的及时有效。