摘要:2019杭州云栖大会云安全峰会专场,由阿里云智能资深安全专家王昱(莱因)带来以“以威胁为中心的漏洞管理”为题的演讲。本文首先介绍了业界最普遍的漏洞管理方式是用漏洞评估工具,接着介绍了现有漏洞管理方法的为什么无效以及原因,最后提出了更有效的漏洞管理方法--以威胁为中心的漏洞管理方法。
视频直播回顾(请点击“9.27.PM——云安全峰会”查看)
以下为精彩视频内容整理:
阿里云在整个漏洞管理上的实践和思考
业界普遍的漏洞管理是怎么做的?
大家对漏洞都不陌生,在过去的十年甚至二十年间,可以说有大量的企业安全事件产生都是跟漏洞息息相关。在漏洞治理方面,不同的公司有着不同的方法,资源丰富的公司通常选择引入SDL以及白盒进行漏洞管理;资源不那么丰富的公司通常购买成熟的商业漏洞评估工具来治理漏洞;资源少的公司通常选择用开源的工具进行处理。总体来看,业界普遍治理漏洞的方法一般都以漏洞评估工具为主,对系统漏洞进行扫描后生成报告,最后参考报告对受漏洞影响的服务进行升级修复。
漏洞评估工具原理解读
上图中的左边图,是我使用了一款国内著名的商业漏扫,对内网一台装了ORACLE数据库的环境,进行扫描的结果,这台服务器实际是经过安全加固过的,黑客很难攻破。扫描后发现这台服务器居然存在这么多漏洞。右边图是我在网上下载的一款国际知名的扫描器,那么这些漏洞评估工具是怎样实现漏洞评估的呢?第一步是尝试进行端口扫描,看某台服务器的端口是否开放,如果是开放的,会用指纹对服务进行识别,看服务是什么版本,接着将识别到的漏洞与漏洞库中的漏洞条件进行对比。如果某个服务版本在历史上出现了此漏洞,那么就认为这个版本是存在漏洞的。
很明显当前评估工具的核心是靠做版本对比,来发现漏洞的。那么,现在的做法真的有效吗?
今天扫描器的发现逻辑,如果发现某个服务器上有个SSH服务当前版本是6.0,不管这个服务有没有做过加固,或者有没有其它的安全措施,漏洞工具都会基于固定的规则认为该服务存在历史漏洞。同时漏洞评估工具的专注点在漏洞的危害评级上,而不是关注漏洞真实的威胁,那么基于这种漏洞管理到底有没有效果呢?
攻击者视角
在判断有没效果之前,我们来看一些案例,漏洞治理的目标是为了防止漏洞被攻击者利用从而对企业造成破坏,今天我们做漏洞治理如果连自己的对手在做什么都摸不清楚的话,是很难保障最终效果的。
通过我们的研究,发现黑客当前主要关注点在如何将自己的技术实现变现上,所以他们的手段都是收益优先,他们的手段主要是抓肉鸡打DDoS、自动化的挖矿取得数字货币、通过加密磁盘的手段来勒索匿名货币。当然也有小部分的黑客在用0-DAY与 APT进行攻击,但我们认为0-DAY与APT当前对于中小企业的威胁并不大,这是为什么呢?因为这些攻击只针对极少数组织,例如政府机构、大型云服务商以及一些关键基础设施。
黑客是怎么攻击入侵的
黑客去做那么多攻击,目的就是将他的技术通过破坏的手段变现。那么黑客到底是怎样入侵的呢?上图是全球整个端口服务开放统计的排行数据,可以看到WEB服务是占57.7%,我们都知道黑客是很聪明的,他们会考虑投入和产出比的问题,因此他们更倾向于攻击一些容易攻击的目标,所以WEB服务成为他们最优先的攻击对象。
从web服务来看,全球互联网有超过3700多万台部署了NGINX软件,整个互联网就是由图中这些组件、开发框架、第三方软件来构成的。基于云上大量的入侵事件来分析,发现黑客都在用这些漏洞进行攻击,具体方式如下:
- 弱口令爆破(SSH、RDP、MSSQL、MySQL)。
- 服务未授权访问(Redis、ElasticSearch、MongoDB)。
- WebLogic上传&反序列化系列漏洞。
- JBoss反序列化与默认配置漏洞。
- Tomcat Web管理后台弱密码与文件上传。
- ThinkPHP代码执行漏洞。
- Apache Struts2远程代码执行漏洞。
- Nexus Repository Manager3远程代码执行漏洞。
- Jenkins Plugin 远程命令执行漏洞。
- Confluence未授权模板注入/代码执行。
- Spring Data Commons远程代码执行漏洞。
- Kubernetes Api Server未授权访问漏洞。
基于这些情况,我们可以得出一个结论,就是黑客利用20%的漏洞入侵了全球超过80%的服务器。
当前的做法收效甚微
最近我们做了一个事情,阿里云为超过100多家企业提供渗透测试服务以及参加国家级的攻防演练行动,从中会发现一个结果,当前实战攻防渗透成功率超过90%。就是说今天互联网有100家企业,要是真把他们放在实战环境,有90%的公司都是扛不住黑客攻击的,那么原因到底是什么呢?
具体原因有四点,一是中间件、第三方组件、开源软件漏洞被忽视;
二是重点关注系统OS层的高危漏洞;
三是OWASP-top-10占总量40%中低危/应用漏洞被忽视;
四是从发现漏洞到被利用的平均时间每年都在减少。
当前漏洞管理的效果为什么不理想?
CVE漏洞连续10年披露的数量
我们可以看到2018年一年全球总共披露了16000多的漏洞,而今年2019预计将会有18000漏洞产生,CVE连续10年漏洞高达10万到12万,通过分析可以发现12万漏洞里面仅12%漏洞是存在利用代码的。
漏洞等级不等于真实风险
在2017年和2018年漏洞的等级分布情况中,其中56%的漏洞都被标为高危和严重,就是说一家企业做漏洞修复的时候,如果关注在高危漏洞上面,一年大概要修8000多的漏洞,实际上我们都知道这些漏洞可以利用的是非常少的。
漏洞在不同场景下的影响
比较常见企业网络架构如图所示,网络架构有公有云、数据中心、私有云三个过程,在不同的区域都有对应的安全措施和隔离措施。第一个场景,同一个高危漏洞在不同的区域存在的时候,风险等级是不一样的。第二个场景是隔离场景,在私有云中有一个财务开发环境的系统,当有一天在云上的一台边界服务器被攻击时,黑客就可以通过这个路径一直连接到数据中心的开发服务器,这个时候这个高危漏洞被认为是具备高风险的,因为是整个都被暴露在了外部。
风险等级与上下文环境强相关
一个漏洞等级跟它的上下文环境是关链的,判断漏洞的危害等级可以从三个方面看,一是漏洞利用代码是否公开及难度;二是威胁情报是否在野利用(武器化);三是资产重要度与暴露情况。
更有效的漏洞管理应该怎么做?
聚焦迫在眉睫的漏洞威胁
聚焦漏洞管理之前会建立漏洞管理平台,聚焦漏洞的整个过程如下:
- 统一漏洞库:识别与定义历史存在的已知漏洞信息。
- 漏洞评估结果:基于漏洞扫描,主机端Agent的工具,进行漏洞评估。
- 漏洞影响评分:基于漏洞的影响程度、利用条件和利用难度等规则,进行优先级评分。
- 攻击路径:识别网络是否开放访问攻击面是否对外暴露。
- 威胁情报:基于威胁情报能力,识别当前漏洞是否已有黑客在野利用,发起攻击。
漏洞优先级评分 · 以威胁为中⼼
评估漏洞可以从四个方面来看,第一是看漏洞的本身,就看漏洞到底严不严重,看代码有没有公开,如果没有公开,那么风险就不高;第二是看攻击路径,就比如说一个路径只在服务器本地开放,那么就不会把端口暴露在互联网,就不会达成远程攻击,此时认为是本地漏洞;第三是看权限的要求,现在很多业务系统要使用里面的功能是需要登录的,此时产生的漏洞造成的危害一般不严重。除此之外,还要看利用复杂度、影响范围、披露时间以及威胁程度,同时判断漏洞的优先级还需要关注供给面暴露情况(进程是否启动、端口是否监听、网络是否开放)。
更有效的漏洞管理方法
基于以上分析,得出了一个更有效的漏洞管理方法,就是以威胁为中心的漏洞管理方法,此方法发现漏洞后,会结合评分的算法,接着算出哪些漏洞影响最大,哪些漏洞是没有影响的,最后优先修复漏洞大的,修复完后持续关注黑客活动,若发现还有黑客在活动就说明修复是无效的,如果没有发现黑客在活动就说明修复是有效的。
从现在开始新的漏洞管理
阿里云提出了更有效的漏洞管理方法,就是以威胁为中心的漏洞管理方法,新的漏洞管理需要做到以下几点:
- 开始了解暴露面(进程、端口、网络)。
- 关注真实威胁,不要将注意力集中在媒体备受关注的威胁上,大多数威胁与漏洞及其利用密切相关。
- 将有限的资源集中在对组织最重要的漏洞上。
- 关注最可能在攻击中使用的漏洞。
- 开始了解资产情况(核心组件、框架、供应链)。
- 开始了解暴露面(进程、端口、网络)。