公众号已经开通留言功能,有任何问题欢迎留言讨论~
一、前言
-
近期发现公司某系统出现好几个漏洞,想修复发现网上找不到补丁,同时系统太老也早就没有了售后维保,找售后就让你打400。 -
想了想该怎么修复,就想到了通过虚拟补丁的方式屏蔽攻击(你打不到我就当修复了)。
二、正文
1、什么是虚拟补丁
虚拟补丁,是一种可以使IT人员摆脱补丁管理困境的解决方案。虚拟补丁技术旨在通过控制受影响的应用程序的输入或输出,来改变或消除漏洞。
虚拟补丁是指在不修改应用程序源代码、修改二进制代码或重新启动应用程序的情况下,能够即时建立的一个安全策略实施层,用来防止对已知漏洞的攻击。使用虚拟补丁策略,可以在大幅减少补丁所需的成本、时间和工作之间取得很好的平衡,同时保持服务的可用性和正常的补丁周期。
-
简单来说,就是想修复漏洞,但是不能动应用本身,只能通过在访问路径中通过一定的手段来拦截特定的攻击。
2、虚拟补丁有什么优势
-
据我工作以来,发现因为信息系统很老旧,而出现漏洞很难修复的情况很常见,有些系统甚至开发单位都没了,但是漏洞存在确实有风险你不能不管。
-
常见的手段可能会在防火墙或交换机上限制白名单IP访问。但这一方法有很大的缺陷就是,如类似OA、内网邮箱这种大家都需要访问的系统就很难做访问控制策略。
-
这个时候,有一个方法既不用修改源码或者程序也不影响使用访问,又可以拦截攻击的方法应时而生,那就是虚拟补丁,低成本+高效率。
-
实际上,现在主流的商业Web应用防火墙都已经集成了虚拟补丁的功能,依托安全厂商的威胁情报分析能力,可以及时跟进漏洞并且推送虚拟补丁。例如腾讯云。
3、怎么实现
-
以我本次修复过程举例,本来应该是这样的访问路径,安全管理员管理着一个Web应用防火墙,然后安全管理员和用户都是直接访问应用服务器。
-
当应用服务器出现了严重漏洞且无法直接修复,通过在防火墙上做限制,仅允许Web应用防火墙的IP访问应用服务器,用户访问应用服务器都通过Web应用防火墙转发请求,且仅安全管理员访问Web应用防火墙后台。
-
然后在Web应用防火墙上针对应用的漏洞设置拦截规则,例如匹配攻击数据包的url、host、body内容。
-
以某漏洞EXP如下所示
POST /jc6/platform/portalwb/portalwb-con-template!viewConTemplate.action HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
moduId=1&code=<clob>${"freemarker.template.utility.Execute"?new()("whoami")}</clob>&uuid=1 -
可以设置黑名单匹配路径和POST包内容,以此来达到针对性的攻击防护。
4、它有什么缺点
-
很容易发现,风险其实并没有被消除,只是转移了,从应用服务器转移到了Web应用防火墙。如果攻击者获取了Web应用防火墙的权限,应用服务器照样会遭受攻击。 -
或者针对漏洞的payload绕过,更换参数。 -
分散风险不如将风险集中,按上面所说,我只需要限制Web应用防火墙后台仅安全管理员可以访问,相当于收缩了暴露面,就可以很有效的提高攻击者的攻击成本。可以有效的提高攻击者的攻击成本就是有效的修复手段。 -
同时为了避免影响业务,还得理解漏洞原理,分析各个参数的作用,防止正常业务也有同样的路径及传参。 -
这就体现了情报的价值,而不是有设备就行,漏洞一出,安全厂商分析完推送补丁,用户一键更新,多好。
三、最后
-
当然,漏洞还是应该能修尽修,靠虚拟补丁的方式只能暂时解决问题,属于“不能修复“漏洞的临时解决方案。老旧设备还是应该尽早更新换代,避免虚拟补丁被绕过的风险。 -
不过,这种思想可以推广,不仅仅是Web漏洞,数据库、主机漏洞也有相应的虚拟补丁方式。 -
而且漏洞情报的重要性也不言而喻,连漏洞都不知道怎么打补丁,而大部分运维人员显然能力不足,所以很多设备自带共享威胁情报的功能(好是好,得加钱)。
原文始发于微信公众号(听风安全):安全运维中虚拟补丁的作用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论