上月,Gartner 刚发布了 WAF 魔力象限报告1。美国初创公司Signal Sciences进入到远见者象限,这也是它首次入选。Signal Sciences是下一代WAF的倡导者,今天在此就其WAF产品做一简单分享,内容均取自官网。
下一代的概念,于安全行业并不罕见,用在技术推陈出新和颠覆市场的领域,比如业界最为成功的案例之一—Palo Alto的下一代防火墙,以及现今热词“下一代SIEM”。那么首先让我们看看 Signal Sciences 是如何阐释它对下一代的理解。它立足于当前web应用架构和开发模式发生的变革。架构上来说,从传统的三层架构(web服务器-应用服务器-数据库)向微服务架构变迁。软件开发模式从传统的瀑布到敏捷再到DevOps,版本上线频次从月到周、也可能是天。最后是基础架构的变化,应用异构混合运行于传统机架服务器上、云上或者容器中。Web应用防护也需要对应做出改变,主要有如下两点考量:
安全能力:传统WAF的检测技术通常基于特征匹配和静态签名/规则,误报和漏报是一对较难调和的矛盾,通常的经验是上线过程或者应用变更时花费大量时间进行规则调优。而由于误报问题,在生产环境中可能仅启用相对有限的检测规则,这导致WAF被绕过的概率增加,或者有的企业会采用仅检测和告警但不阻断的工作模式。其后发展出的动态建模和自学习(代表厂商Imperva)试图通过对大量正常请求样本进行训练,生成正常请求的模型描述。这种检测技术往往需要一定的学习周期(周或月),很难适用于DevOps开发模式下的版本快速迭代周期。因此,相较传统WAF检测技术,需要有更优的技术方案提升检测精度、解决误报问题并降低对应的维护成本。
对云原生以及传统架构应用多场景的适配和可扩展性:能够为运行于各类云平台、容器平台、传统机架web服务器、API网关上的web应用和服务提供防护。
Signal Sciences提供了一个混合的SaaS解决方案,产品架构有两个主要的组件:部署在服务器/应用侧的代理和模块(Signal Sciences Agents and Modules ),以及云端的分析引擎和管理平台(Signal Sciences Cloud Engine )。
Module是可选的,部署于Web服务器软件(IIS/Apache/NGINX)上,负责将HTTP请求转发到Agent上。Agent是一个小于10M的安装包、基于SmartParse技术进行安全检测和决策。Module和Agent协同,提供一种fail-open可靠性保障机制,也即如果Module在默认可配的100ms内接收不到任何Agent响应,它就会把请求直接传递给应用。
Cloud Engine部署在AWS上,负责收集Agent侧提供的与攻击相关或者异常的元数据(包括UA、IP、URI、path、X-Forwarded-For等字段)、外部IP情报数据(Geo IP、TOR、SANS恶意IP列表以及其他第三方数据)以及内部威胁研究数据(如CVE跟踪),通过关联分析形成自身的IP情报(称为Signal Sciences NLX)。同时作为统一配置管理console,提供仪表盘、告警监控;提供API接口与第三方SIEM产品集成;与通用的DevOps工具集成(Slack、Jira等),提供完整的告警信息详情给开发和运维团队;云端Power Rules的配置管理。
Agent 每30秒会轮询Cloud Engine获取新的恶意IP列表以及Power Rule的配置。
从架构来看,不同于传统WAF产品,Signal Sciences在用户侧更加轻量化,重云端的安全分析能力。
Signal Sciences下一代WAF主要应用了3种技术:用户侧Agent应用的SmartParse检测技术、云端运营的Power Rules以及NLX(Signal Sciences 自身生产和运营的IP情报)。且得益于前面介绍的架构,通过本地和云端结合,提供整合型的防护方案,提升整体安全检测防护能力。
SmartParse提供了一种无签名检测机制,Signal Sciences 宣称相较传统检测提供更低的误报,其95%的客户将产品运行在完全自动阻断模式下。从披露的公开材料来看,它是一种基于词法分析的检测技术,分析请求参数以确定代码实际是否可执行,令牌化/标记(tokenize)其结果,并在runtime层分析该请求的标记化表示形式,用于检测注入和XSS攻击,示例如下。(注:词法分析在2005、2012以及2014黑帽大会上均有相关技术的介绍,国内WAF厂商长亭也应用了词法和语法分析检测技术。)
Power Rules则是云端提供的防护规则,检测业务逻辑层面的安全问题(如账号接管攻击ATO/身份凭证填充攻击Credential Stuffing、API滥用等)以及CVE漏洞利用。以身份凭证填充攻击为例,它会监控可能的攻击指标并进行分析,如:与用户正常地理位置不同的登录尝试、所有用户不断增加的登录尝试失败次数、来自可疑IP地址的成功登录等。
Signal Sciences NLX,也即Network Learning Exchange,云端引擎通过NLX收集用户侧Agent的数据、关联分析形成IP情报。Signal Sciences博客披露的信息2,目前它防护有27000个应用,每月检测1万亿次web请求并阻断掉1.5亿次恶意请求。不同于传统WAF单纯基于规则检测针对单个请求进行检测,Signal Sciences下一代WAF还会随着时间推移(设定时间阈值)并根据上下文查看可疑的载荷,降低误报,也可能帮助发现新的攻击。具体实现上,Agent检测到进入请求包含攻击时,会将该请求摘要发送给云端。当基于使用大数据分析建立的预定义且可自定义的阈值判断,看到来自潜在攻击者足够多的恶意活动,Cloud Engine会将该用户/IP标记为阻断。下图是30天事件报告样例,汇总了阻断的攻击(左列)、来自被标记IP地址被阻断的恶意请求数(右上)。时间轴视图帮助了解Signal Sciences如何阻止来自已知恶意IP地址的请求以及当前状态(当前活跃的或过去的事件)。
部署场景上, Signal Sciences 考虑了适配不同架构下的web应用,传统架构和云原生的。
Module运行于Web服务器软件(IIS/Apache/NGINX)或者作为RASP语言模块运行在Java, Go, Python, .NET, Node.js, or PHP应用程序中,用于转发请求给Agent。
可以不需要Module,Agent作为独立的反向代理,部署在web应用前端,这种方式适用于传统架构的web应用,也是主流/传统WAF逻辑上的部署位置。
今年5月,新发布的云WAF,可以不用在用户侧安装Agent。
针对容器环境(如Kubernetes平台)的部署,也有多种方式,可以部署于容器中,也可以作为独立的sidecar。
今年5月,发布版本支持Envoy集成,部署上,由Envoy扮演Module的角色,负责转发请求给Agent,从而实现微服务间南北向流量和东西向流量的防护。
前面就Signal Sciences下一代WAF产品做了简单介绍。它的下一代WAF概念围绕安全技术的变化以及对云原生与传统架构应用多场景的适配。
结合近两年Gartner的报告以及主流厂商的动态来看,针对web应用安全,大家更多在拓展原有WAF产品的外延,叠加更多的安全能力试图解决更多技术场景问题,比如Gartner近两年在提的云WAAP(cloud web application and API protection)服务,包括抗DDoS、bot缓解、API防护以及WAF。厂商也在重点投入bot 缓解、API防护(包括营销以及产品投入上),如Imperva今年上半年收购了Distill Networks,迅速扩充其bot管理上的技术能力。而Signal Sciences则试图通过无签名检测机制、IP情报、云端分析能力来提升检测和防护能力,并且更多去理解web应用,确保开发、运维以及安全团队目标一致,了解开发生命周期中的安全要求。那么,是否如Signal Sciences所描述的愿景:“我们正在变革web应用安全”,它能另辟蹊径,发展出下一代WAF的新市场?或者另一个问题,未来独立WAF市场是否会继续存在?
“Magic Quadrant for Web Application Firewalls”,Jeremy D'Hoinne, Adam Hils, Claudio Neiva, Rajpreet Kaur,Gartner,2019年9月17日 ↩︎
https://www.signalsciences.com/blog/gartner-magic-quadrant-top-waf-vendor/ ↩︎