Web应用程序防火墙导致停机
许多互联网用户在7月2日经历了重大的网站宕机,原因是CloudFlare的Web应用程序防火墙中有一个错误配置的正则表达式。错误配置持续了大约30分钟,在此期间,下游web站点和应用程序仅收到502条错误网关消息。
Web应用程序防火墙(WAFs)作为第7层网络防御来检查通过网络的HTTP流量,但是它们不能查看应用程序是否或如何使用数据。结果,WAFs运行许多模式匹配技术来检测网络中可见的输入中的可能威胁。
在技术跟踪中,CloudFlare提供了问题的根本原因细节,该问题源于一个正则表达式,该表达式在寻找Sharepoint中的一个安全漏洞(CVE-2019-0604)时消耗了100%的CPU。这个漏洞通过SharePoint向XMLSerializer提供数据的方式表现出来。根本原因是攻击者对XML基类型的控制,正如安全研究员Alvaro Munoz在一份名为“黑色星期五JSON攻击”的中所描述的那样。由于WAFs的网络局部性,许多受影响的网站实际上并没有使用Sharepoint。
CloudFlare博客提供了一个有效的漏洞来演示安全问题。在这个漏洞中,攻击者控制ResourceDictionary的反序列化类型,指示它用一个对象来填充自己,该对象控制已启动进程的命令行:
通过理解工作攻击,防御者可以看到他们实际上在防御什么,软件开发人员可以建立安全编码技术的临界性。开发人员需要理解为什么一个特定的代码片段是不安全的,而有效的攻击有助于降低这种影响。一旦开发人员知道了原因,他们就更容易接受关于如何从一开始就编写安全代码的语言和框架的特定编码指南,”通过游戏化向开发人员传授安全编码的secure code Warrior联合创始人Matias Madou博士解释说。