比漏洞本身更可怕的是「明知道有漏洞却防不住」。2021年注定是安全行业不太平的一年,除了0day满天飞、内存马&勒索病毒花式变形外,年末再曝彩蛋,Apache日志框架Log4j2爆出核武器级漏洞,简单总结一下,就是在日志打印时,如果内容中包含某一特殊字符,里面包含的内容可以被当做变量来进行替换,导致攻击者可以执行任意命令。
比漏洞本身更可怕的是「明知道有漏洞却防不住」
2021年注定是安全行业不太平的一年,除了0day满天飞、内存马&勒索病毒花式变形外,年末再曝彩蛋,Apache日志框架Log4j2爆出核武器级漏洞,简单总结一下,就是在日志打印时,如果内容中包含某一特殊字符,里面包含的内容可以被当做变量来进行替换,导致攻击者可以执行任意命令。
除了漏洞利用简单外,受影响的组件包括:Spring-Boot-strater-log4j2、Apache Struts2、Apache Solr、Apache Druid、Apache Flink、ElasticSearch、Flume、Dubbo、Jedis、Logstash、Kafka等,这几乎是大型web业务的必备组件,也就是你平时浏览的大部分网站、区块链都可能受到这个漏洞影响,因此CVSS对该漏洞评分为 10(最高级)。
参考资料:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
该漏洞的PoC已在网上公开、官方也发布了最新版,理论上只要升级到最新版本就可以解决,但是笔者在问访了3家服务器数量过千台的单位后,得到的结论一致为:目前通过资产管理工具和漏扫工具都可以发现该漏洞,但是不知道后续如何处理。
客户为什么不敢轻易升级?
1.升级将导致业务中断,需要将Apache Log4j2、以及所有相关应用(Apache Struts2、Apache Solr、Kafka等)升级到最新版本,部分甚至要重启服务器,会导致相关业务中断;
2.升级成本高,依靠手工升级,需要对每台服务器、每个应用单独操作,目前拥有百台、千台,甚至上万台服务器的客户不在少数,本次升级将耗费大量的人力和时间。
如果不打补丁或者无补丁可打,如何对抗0day漏洞?
方法一:根据POC规则编写防护策略
在无法打实体补丁或者升级的情况,根据漏洞POC更新防护产品入侵防御特征库,仍是最快速、最有效的方法,具体原理是通过防火墙或者WAF代理http请求,去匹配防护规则,如果发现有异常流量可以直接阻断。
比如用比如奇安信的服务器安全产品-椒图或虚拟化安全,都支持对Log4j2漏洞的虚拟补丁防护,可以实现对漏洞利用的拦截,实际拦截效果如下:
但是根据POC的防护手段有一定被绕过的风险,因为一个漏洞可能会有多种利用手段的POC,能否能持续更新,也是对这类防护手段的一个重大考验。
方法二:应用运行时防护(RASP)对抗未知漏洞
RASP(应用运行时自我保护技术)在对抗漏洞利用中的最大优势是不再防护漏洞本身,而是防护漏洞利用的后续行为,如危险命令执行、文件操作、写入内存马等,因为RASP的部署位置在语言解释器中(php、asp、jsp、.net等),所以无论在流量上玩出什么花样,只要最终在语言解释器里面的翻译出来的行为出现异常,RASP都可以捕获到,在实际的Apache Log4j2漏洞环境检测,发现在不用更新任何规则的情况,可以直接拦截漏洞利用行为:
方法三:失陷检测,监控漏洞利用后的痕迹
利用漏洞入侵服务器后会留下入侵痕迹,包括RCE漏洞利用,远程文件上传,本地提权,反弹shell,外带攻击,非法外连,后门及病毒上传检测等,因此如果无法部署流量检测或者RASP,关注服务器的异常指标同样可以发现漏洞利用行为。
与漏洞的对抗没有终点
就像新冠肺炎不断有新的变种出现一样,0day漏洞的产生不会停止,与漏洞的对抗工作也是个持久战争。服务器安全的痛点不仅与漏洞本身,还在于发现漏洞后的处理与防御,所以在资产管理和漏洞检测的基础上,还要结合服务器本地的异常检测机制(流量检测、行为检测、攻击溯源),才能完成资产管理-漏洞发现-漏洞利用防护的闭环管理,实现对Nday漏洞的有效处置、对0Dday漏洞的有效防御。
- 本文作者: 二胡卵子
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/972
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!