从Gartner去年提供的数据来看,市面上提供WAF方案的厂商依然很多,毕竟WAF依然是很多企业用户部署的必选项。但从WAF中的获利通常只占到安全企业营收的很小一部分;而随着传统WAF设备销售的滑坡,WAF市场正面临两大转折:
其一,云WAF仍然在稳步增长,2017年云WAF全球增长量超过30%;另一方面,WAF市场开始出现各种探索方向——探索的主题是更复杂的分析能力,其中包括机器学习。
腾讯云上月发布了全新 AI 引擎的网站管家(WAF),宣传点是AI引擎,“采用自研基于概率图的威胁AI技术”,“借助腾讯平台海量威胁攻击及正常访问的数据训练”“提升威胁AI识别能力”“保障防护可灵活适应不断变化的Web应用”。这本质上是对WAF产品突出重围的一种尝试。
实际上,近些年将机器学习应用到WAF领域的国外厂商还有好几家,虽然国内还相当少见。借着本次腾讯云网站管家WAF的评测和探讨,我们也可以稍稍了解当前WAF市场的现状及方向,以及AI在其中起到的作用。
WAF市场现状
WAF依然是目前抵御Web应用攻击的大头:大部分企业用户都部署了WAF。不过从市场反馈来看,越来越多的企业开始对WAF的准确性、抵御攻击的能力感到失望。
许多企业应用也正变得越来越复杂。传统WAF要为这样的应用提供防护也变得越来越难。比如某些较新的Web服务协议(如JSON)处理起来比较直接,但需大量工程工作,在WAF引擎中增加所需的网络流量解码支持;提供服务功能的更多方法,也在改变应用工作的方式。
更短的应用开发周期(Agile、DevOps)也限制了传统WAF的应用场景——传统WAF是需要攻击检测规则的调整才能实现精度提升的。每当应用或API变更(可能一天几更),WAF就需要测试调整,这无疑是相当增加负担的。这些都要求WAF厂商做出改变。
WAF厂商面临的主要挑战包括:
1.传统WAF厂商针对非OWASP Top 10攻击防护的响应很慢,尤其那些专注API和更复杂的攻击,比如证书填充、应用逻辑漏洞的利用。所以更为高级的一些应用架构和技术出现,比如aPaaS(application platform as a service)和fPaaS(function PaaS),但这些技术是否会广泛采用也是有待观察的;
2.大量企业组织开始抛弃实体WAF设备,转而采用获取服务的方式:包括传统的托管服务、私有云、IaaS部署的虚拟设备,还有基于云的SaaS订阅方案。
3.在转向服务,如云WAF之后,越来越多的WAF厂商开始提供额外的解决方案——如应用层DDoS防护、BOT缓解,甚至还可能包括CDN之类的非安全功能Gartner将这种新生的融合方案称作WAAP;
4.很多供应商开始着力于WAF更为复杂的分析能力、自动化的调整机制。如某些厂商采用更为传统的人工威胁研究团队(典型如Akamai);采用DAST(动态应用安全测试)工具来为WAF提供“虚拟补丁”——这也是当代WAF的一个常见方案了;还有像Signal Sciences这样的厂商采用后端分析组件,从其用户sensor中收集测试活动;腾讯云着力机器学习,也顺应了这一趋势。
2016年WAF全球市场规模大约为6.26亿美元,相比前一年增长了21.3%。预计到2020年,单独的WAF硬件设备将只占到WAF部署的20%,现如今这个值是 40%。而到2020年,公开的Web应用将有超过50%受到基于云的WAAP服务的防护(包括CDN、DDoS防护、bot缓解、WAF),现如今这个值不到20%。
腾讯云网站管家WAF功能体验
从腾讯云网站管家WAF刚刚增加AI引擎,以及其功能实现来看,这是完全符合Gartner预测及市场预期的一款产品。即这首先是个云WAF,它也支持非腾讯云用户,而且部署过程就我们的体验看相当简单;第二,其产品功能包括有前文提到的漏洞虚拟补丁、应用层 DDoS攻击、BOT缓解,在功能实现上,已经在往Gartner定义的WAAP靠拢。
最后这是国内第一款融合了定制威胁检测模型机器学习的WAF产品,这符合用户对“更智能”的WAF的需求——如前文所述,较高的维护管理成本是传统WAF越来越不受待见的一大原因。
腾讯云网站管家WAF是仅针对Web应用的安全服务。防护原理是,把原本访问用户Web业务的流量,先引流到腾讯云WAF。所以如果攻击者对用户网站发起攻击,则实际攻击流量要最先接触到腾讯云网站管家,在WAF进行威胁过滤后,安全流量才抵达用户的站点。
腾讯云网站管家WAF产品共分高级版、企业版和旗舰版三种,我们体验的是其中的旗舰版(支持10000 QPS峰值,至多4个一级域名和40个二级域名,CC防御峰值50万QPS),下面提到的Bot行为管理、DNS链路劫持检测等功能,在不同的版本中可能是存在差异的。旗舰版的价格是每月28880元(高级版3880元/月,企业版9880元/月)。
其部署过程还是相当简单的,我们在测试中注册了一个国外虚拟主机空间,在有了备案域名之后,将腾讯云网站管家WAF绑定到我们的虚拟主机上,域名就会显示在腾讯云网站管家WAF的控制台防止设置页面,开启WAF开关就可以实现防护了。
1.初步设置及攻击日志
在已经添加好的域名中进行防护配置,基础设置选项并不多,主要包括 WAF防护状态的开关,包括规则使用模式的“观察”和“拦截”模式——基于规则的流量检测与拦截,是传统WAF项目。选项下方有AI引擎模式开关。
这部分,系统建议先开一段的观察模式,学习网站访问模式,进行优化和调整——这实际上是机器学习原有属性使然。就AI的交互来说,对用户还是很友好的,并没有繁琐的设定过程,这是通过AI来自动调节的好处。
和大部分云WAF产品一样,在网站管家WAF的安全概览页面,会显示最近站点遭遇攻击的情况,包括攻击次数、具体的攻击时间分布、攻击类型和攻击来源的地理位置分布。
攻击详情位于侧边栏专门的一个子项目中,针对每个攻击都可以点进详情中查看。攻击相关的时间、类型、方法、内容、来源、User-Agent等展示得比较详细。
2.更多设置
从特性上来看,腾讯云网站管家WAF支持一些云WAF的常规功能,包括按照地理位置禁止外部访问、自定义策略(比如通过“来源IP”规则来禁止某个IP访问网站,或者限制“请求路径”禁止用户访问某个页面)、CC防护等。
还有相对简单的防篡改和防信息泄露功能:其中的防篡改即是WAF对用户网页内容进行缓存,对外仅发布缓存中的内容,不过这一功能限于HTML页面;防信息泄露则可以在网页中实现对身份证号、手机号这类信息的脱敏。
这里比较值得一提的是DNS劫持检测功能,在界面中输入域名及对应的IP,后台就能展示该域名在不同地区的劫持情况。从腾讯云的宣传来看,这一特性的实现是基于腾讯自己的数据,以腾讯的“终端检测探测点”对“客户提交的域名进行全国范围的DNS验证”。以腾讯用户基数,这个功能也算是个亮点了。
另外还有一项特性,是前文提到的BOT行为管理,Gartner将其作为WAAP类设备的一个组成部分,属于WAF产品的附加属性。腾讯云网站管家WAF的BOT行为管理的设置页面可以看到腾讯云网站管家已知BOT类型的罗列,及其控制——可设定仅监控或拦截。
比如针对漏洞扫描器,可设置拦截(但不能针对不同的漏洞扫描器分别设置拦截)。设置页面的自定义策略也是由用户添加策略来控制BOT访问,例如通过“请求路径”条件,来限制“/admin”路径的访问。自定义策略还可以针对BOT请求次数、UA内容/类型、请求参数、IP范围等。
机器学习与WAF
这次腾讯云网站管家WAF的升级重点就是AI,按照腾讯所说,腾讯云网站管家采用“自研基于概率图的威胁AI技术”,相较基于语义学习的威胁AI技术,可以“提升威胁AI识别能力”。通过业务数据特征自动化生成基于业务的“个性化防护策略”,防止特殊业务访问数据误判问题。
有关“语义”学习,我们在先前的文章中曾经提到过。语义检测是对请求的“语义”进行分析,把同类行为特征归并起来,根据合法应用数据检测建立统计模型,以模型为依据来判别实际通信数据是否是攻击。实际上,也就是用自然语言的语义来理解、描述同一类攻击,这样可以一定程度防御未知威胁、0day攻击,也就能够降低运营成本。
我们获得有关腾讯云网站管家AI +规则双引擎的资料比较少,所以很难了解其中的具体原理。我们和腾讯云的安全工程师聊了聊,他告诉我们,其WAF AI整体是异常检测模型+威胁识别模型。每个用户刚接入时是共享威胁识别模型的,异常检测模型需要用户流量进行训练学习——这是个辅助模型,如果没有该模型,则威胁识别模型也能工作。
用户可以向AI模型提交误报和漏报,这时“会分化成客户自己的模型”。在具体的操作界面上,AI引擎部分,可以由用户手动添加误报和漏报的情况,例如在我们的payload测试中其中一条无法被检出:
`) WHERE6580=6580 (3718=3718)*
则将其添加至漏报列表,并手动点击“学习”按钮。按照腾讯的说法,这样可以“更新模型,优化算法”。
就异常检测模型部分,就用到了腾讯在宣传中所说的“概率图模型”,用于检测异常的HTTP请求。按照工程师的说法,异常检测模型是“每个客户自己的模型”,但又无需客户干预。而威胁识别模型是判定payload是不是攻击威胁。这块的特征工程使用深度学习,分成两部分:模型的训练是离线的,用深度学习来进行特征提取;识别用改进的向量机模型。
用户反馈的误报、漏报就是反馈给这个模型;“相当于我们提供一个交互接口给客户,处理误报漏报”,另外“在后台离线层,也有算法和机制来检测误报漏报”。
按照腾讯云安全工程师所说,客户的模型是“独享”的,而规则和语义检测则为共享模型;最终客户的模型由标准模型学习进化。如果要直接说腾讯云网站管家WAF AI部分的优势,就是“准确性的优势”,“误报漏报处理更敏捷”。而且AI也支持自动解码,“对于payload中的复杂编码、嵌套编码之类,是支持解码的”。
这里我们可以稍微扩展下,聊聊机器学习目前在WAF市场上的应用。实际上,FreeBuf留意到,上个月Fortinet也宣布为自家的WAF产品加入机器学习属性。包括Fortinet在内的数家将机器学习应用到WAF产品的国外厂商都提到,大部分WAF解决方案有着较高的误报率,原因在于其威胁检测主要就依赖应用学习(AL)。
收集足够的信息后,AL就能基于监控到的东西来自动构建策略。这的确提升了识别和响应Web应用威胁的能力,但在精度上仍然是有问题的,尤其表现在误报率上,它可能会阻止非恶意流量——AL无法适应常规应用的各种变化。
而机器学习也能在用户与常规应用交互时,收集每个应用的数据。但和AL不同的是,机器学习使用统计模型来决策某个HTTP请求是否与先前观测到的请求有较大出入,仅在请求偏离太大时才将其标记为异常。
Fortinet的机器学习WAF在处理流量时分成两个阶段,第一就是上面提到的异常检测,第二步再采用机器学习来确定,该请求是否为恶意。比如说可能是用户误输入,先前从未见过的字符出现,或者是应用本身的某种合法变化。这一步是通过多个高度训练的威胁模型来确定其是否为攻击,最后再采取措施。
看起来在思路上和腾讯云网站管家WAF是类似的,不过腾讯云的这套方案研发也已经有超过1年了。威胁模型理论上应该会有不少,每个模型都代表特定的攻击类型,比如SQL注入、XXS等。从各种来源获取大量攻击样本,对其进行培训和测试,腾讯在这方面应该也是有优势的。
所以我们认为,腾讯云网站管家WAF一大特色应该是较低的误报率,不过鉴于其推出还没多久,这种误报率的降低估计只有在长期使用中体现出来,我们也没法系统地对其做测试。
另外就机器学习值得一提的,是国外另有一家名为Twistlock的机器学习WAF侧重于针对每个运行的应用都有个WAF实例,这样能够实现深入的应用理解,提供更高精度和强健的安全模型。从概念上来说,Twistlock在宣传中提“每个应用一个防火墙”。我们没有去细究其部署方式和开销问题,不过它提出一个重要的问题,就是对于客户Web应用的更深入的理解。这其实也是机器学习应用于WAF的一大优势。
WAF的理想境界应该是拥有完美的规则,既没有漏报也没有误报——尤其误报对企业而言会产生很大伤害。但完美WAF是不大可能的,其中一个重要原因就是每个应用都有其独特性,即便是采用通用框架(WordPress、SAP Hybris等)也存在差异,比如cookies设定,还有基于不同配置或插件的无规律的输出。传统WAF不经任何调整就应用的话,误报和漏报率都会较高,因为它不能理解应用行为。Fortinet在宣传中因此将应用了机器学习的WAF 称作“set and forget”的WAF。
所以如前文所述,腾讯云网站管家WAF的工程师所说每个客户独享模型的这种方案,并且还会不停学习进化,优越性也就表现在这里。我们认为,虽然我们没法在短时间内系统测试腾讯云网站管家WAF的全部能力,包括AI部分,但这种思路一定会成为未来WAF发展的一个重要方案。
鉴于我们无法长期观察,所以只是对现有标准模型做简单的测试。我们选择了一组约4万+样本的payload对我们自己用WordPress搭建的网站(已接入腾讯云WAF)进行攻击,包括一些XSS、XEE、路径跨越、SQL注入和漏洞攻击,其中包含一些仅是探测的请求(悲剧的是,虚拟主机本身在检测到大量攻击流量,一段时间内还禁止了一切请求)。
由于测试比较简单,而且没有明确的对照组,这里不做详细的图表数据。不过其检出率是让人满意的,其中XSS、XEE、SQL注入检出率都超过99%。我们将之与市面上另一款公开且应用也比较广泛的SQL注入检测引擎做了对照,发现腾讯云网站管家WAF在检出率方面是有优势的,比如:
1eunionselect '1',TABLE_NAME,1efrom INFORMATION_SCHEMA.TABLES
其中的1e形式绕过也算是种常规。腾讯云网站管家WAF可检出,但另一款公开的SQL注入检测引擎竞品无法检出。其它着力于八进制、URL编码、CHR码的攻击还包括有:
%27%29%3BCREATE%2F%2A%2A%2FOR%2F%2A%2A%2FREPLACE%2F%2A%2A%2FFUNCTION%2F%2A%2A%2FSLEEP%28int%29%2F%2A%2A%2FRETURNS%2F%2A%2A%2Fint%2F%2A%2A%2FAS%2F%2A%2A%2F%27%2Flib%2Flibc.so.6%27%2C%27sleep%27%2F%2A%2A%2Flanguage%2F%2A%2A%2F%27C%27%2F%2A%2A%2FSTRICT%3B%2F%2A%2A%2FSELECT%2F%2A%2A%2Fsleep%285%29—
&'%22%3Echr(60).chr(115).chr(99).chr(114).chr(105).chr(112).chr(116).chr(62).chr(97).chr(108).chr(101).chr(114).chr(116).chr(40).chr(47).chr(120).chr(115).chr(115).chr(47).chr(41).chr(60).chr(47).chr(115).chr(99).chr(114).chr(105).chr(112).chr(116).chr(62)
a=Execute++++++++++++++++++++++++++++++(\"++++++++++++++++++++++++++++++Execute++++++++++++++++++++++++++++++(\"\"++++++++++:Function+bd%28byVal+s%29%3AFor+i%3D1+To+Len%28s%29+Step+2%3Ac%3DMid%28s%2Ci%2C2%29%3AIf+IsNumeric%28Mid%28s%2Ci%2C1%29%29+Then%3AExecute%28%22%22%22%22bd%3Dbd%26chr%28%26H%22%22%22%22%26c%26%22%22%22%22%29%22%22%22%22%29%3AElse%3AExecute%28%22%22%22%22bd%3Dbd%26chr%28%26H%22%22%22%22%26c%26Mid%28s%2Ci%2B2%2C2%29%26%22%22%22%22%29%22%22%22%22%29%3Ai%3Di%2B2%3AEnd+If%22%22%26chr%2810%29%26
这些都是腾讯云网站管家WAF能够检出,而竞品检测不出的。这里不再举出更多例子,这也表现出AI识别payload中复杂编码的能力还是有收益的,这些可能是传统WAF无法处理、难以辨识的。
WAF的未来
实际早在去年8月的 CSS大会上,腾讯云就发布了AI安全布局,以大数据和AI算法为驱动,不过当时的AI应用还没有惠及WAF,但机器学习在WAF中的应用显然也在情理之中了。有关腾讯云网站管家WAF的更多技术细节预计还会在今年的CSS大会上公布。
Verizon的年度《数据泄露调查报告》再度提到了攻击Web应用仍然是数据泄露最普遍的入口。Gartner在2017 WAF魔力象限报告中提到,WAF市场的增长潜力仍在,从当前Web应用安全的调查来看,WAF仍然是用于保护Web应用,使用最多的方案(84%),随后是企业IPS(61%),及应用安全测试(58%)。
Gartner在问卷中调查保护企业Web应用最有效的技术和方案,受访者中有73%选择了WAF,只不过WAF在应对诸如身份凭证窃取之类的问题时仍然表现欠佳——这是目前排第一的Web应用攻击。
而且WAF供应商也面临更多的挑战,API gateway、bot管理、RASP(运行时应用自我防护)与WAF市场都算是毗邻的,在应用安全预算方面有相互争抢的可能。所以不少WAF厂商也增加了一些相关特性,像是腾讯云的抗CC攻击、bot行为管理等。而在WAF中融合更多企业安全技术,也是加强WAF存在地位的一种方式,当然这仍然取决于用户的需求。
2018年成为WAF市场的重要转折点,这主要是因为云WAF的持续发力。除此之外,Gartner在预测中特别提到:
“更为复杂的分析能力的使用,如各种类型的机器学习和人工智能,将在WAF和相关市场(bot缓解与欺诈检测等)扮演越来越重要的角色。”
这与我们在前文中提到的看法一致。企业组织基于其功能和运营方面的需求选择WAF产品,这类产品决策的驱动力就在企业本身的业务需求上,包括部署方面的限制和规模、设备关联性,还有企业Web应用特性。所以能够理解企业Web应用安全需求的WAF产品才有市场,这是机器学习应用于WAF产品的一大契机。
从腾讯云提供的数据来看,相较WAF领域普遍采用的正则引擎、语义分析,应用机器学习后的网站管家WAF,整体检测能力提升20%,未知威胁检测能力提升50%,自动化运维能力提升80%。这些项目都是企业安全WAF传统产品的痛点,如果腾讯云网站管家WAF的确能够达到宣传中的提升,那么机器学习助力WAF市场焕发新活力大约就在眼前了。
参考来源:
2.https://www.gartner.com/doc/reprints?id=1-496C4QP&ct=170807&st=sb
4.https://cloud.tencent.com/document/product/627/18380
5.https://www.twistlock.com/2017/07/25/reinventing-waf-app-aware-machine-learning-capabilities/
*本文作者FreeBuf研究院,未经许可禁止转载。