最新的2021 Top 10已经出来了,我们从A01开始进行一次详细解读,本系列会详细介绍各个漏洞的变化与内容,并会着重介绍新增的漏洞情况。本篇解读A06 Vulnerable and Outdated Components(易受攻击和淘汰的组件)。
A06 Vulnerable and Outdated Components(易受攻击和已淘汰的組件)
因素
可对照 CWEs 数量 | 最大发生率 | 平均发生率 | 最大覆盖范围 | 平均覆盖范围 | 平均加权漏洞 | 平均加权影响 | 出现次数 | 所有相关 CVEs 数量 |
---|---|---|---|---|---|---|---|---|
3 | 27.96% | 8.77% | 51.78% | 22.47% | 5.00 | 5.00 | 30,457 | 0 |
弱点简介
此弱点在产业调查中排名第二,但有足够的资料让它进入前十。 易受攻击的组件是我们努力测试和评估风险的已知问题,该弱点是在 CWEs 中唯一没有任何 CVE 对应的类别,因此使用预设的 5.0 漏洞利用/影响权重。 知名的 CWEs 包括: *CWE-1104:使用未维护的第三方组件 以及两个 2013 年度、2017 年度 前 10 名的 CWEs。
弱点描述
可能容易受到攻击:
如果您不知道您使用的所有组件的版本(用户端和伺服器端)。这包括您直接使用的组件以及嵌入的相依套件(nested dependencies)。
如果软体容易受到攻击、已不支援或已淘汰。 包括作业系统、网页/应用程式伺服器、资料库管理系统 (DBMS)、应用程式、 API 以及所有组件、执行环境和程式库(libraries)。
如果您没有定期执行弱点扫瞄并订阅与您使用组件相关的资安通报。
如果您未凭借基于风险的方式及时修补或升级底层平台、框架和相依套件。 这通常发生在修补工作是变更控制下的每月或每季度任务的环境中,会使组织数天甚至数月不必要地暴露于可修补的漏洞风险。
如果软体开发人员未测试更新、升级或修补后程式库的相容性。
如果你未保护组件的设定档案。 (请参阅 A05:2021 - 安全设定缺陷 Security Misconfiguration)。
如何预防(How to Prevent)
应该设置修补程式管理流程来:
删除未使用的相依套件、不必要的功能、组件、档案及文件。
持续使用版控工具来盘点客户端和伺服器端组件(例如框架、程式库)及相依组件的版本,如版控工具、OWASP Dependency Check、retire.js 等。 持续监控 CVE 和 NVD 等等来源来确认是组件是否存在的漏洞。使用软体组合分析工具来自动化该流程。 订阅您使用的组件相关的安全漏洞的资安通报。
持续盘点客户端和伺服器端组件(例如框架、程式库)及相依组件的版本,如版控工具、OWASP Dependency Check、retire.js 等。 持续监控 CVE 和 NVD 等等来源来确认是组件是否存在的漏洞。 使用软体组合分析工具来自动化该流程。 订阅您使用的组件相关的安全漏洞的资安通报。 使用诸如版控工具、OWASP Dependency Check、retire.js 等工具持续盘点客户端和服务器端组件(例如框架、程式库)及其相依组件的版本。
仅透过官方提供的安全连结来取得组件。 优先选择已签署的更新包,以降低更新包被加入恶意组件的可能。 (请参阅 A08:2021-软体及资料完整性失效)。
监控未维护或未为旧版本创建安全修补程式的程式库和组件。 如果无法修补程式,请考虑部署虚拟修补程式来监控、检测或防御已发现的特定弱点。
每个组织都必须确保在应用程式或开发专案(portfolio)的生命周期内制订持续监控、鉴别分类(triaging) 及 申请更新 或是 更改配置的计划。
攻击情境范例(Example Attack Scenarios)
情境 #1:组件通常以与应用程式本身相同的权限运行,因此任何组件中的缺陷都可能导致严重的影响。 此类缺陷可能是偶然的(例如,编码错误)或有意的(例如,组件中的后门)。 一些已知易受攻击组件的范例为:
CVE-2017-5638:一个 Struts 2 远端程式码执行漏洞,可以在伺服器上执行任意代码,已被归咎于重大漏洞。
虽然物联网 (IoT) 设备通常很难或无法修补,但修补它们可能有很高的重要性。 (例如,生物医学设备)。
有一些自动化工具可以帮助攻击者找到未修补或配置错误的系统。例如,Shodan IoT 搜索引擎可以帮助您找到存在 2014 年 4 月未修补 Heartbleed 漏洞的设备。
易受攻击和已淘汰的组件—0day
0day漏洞,是最早的破解是专门针对软件的漏洞,叫做WAREZ,后来才发展到游戏,音乐,影视等其他内容的。
0day中的0表示zero,早期的0day表示在软件发行后的24小时内就出现破解版本,现在我们已经引申了这个含义,只要是在软件或者其他东西发布后,在最短时间内出现相关破解的,都可以叫0day。 0day是一个统称,所有的破解都可以叫0day。
0day的主要发布类型
ISO
某些软件为了保留原汁原味,就将原版光碟做成ISO、Bin文件,然后用WinRAR分卷压缩后,加上nfo说明档发行。碰到有加密的光碟,也会选择CloneCD等格式来发布。Nero、BlindWrite等其它烧录软件的镜像档较少见,但也有。 在国内一般叫做光盘版。
RIP
专门制作RIP的游戏小组会将游戏以RIP的形式发布。所谓RIP就是把游戏能去掉的都去掉,以达到最小的尺寸(前提是符合标准的RIP规则——Standard RIP Rules,简称SRR),对游戏数据进行压缩、分卷、每个分卷还要用ZIP打包、再加上NFO、发布。RIP在国内一般叫做“硬盘版”
crack&keygen
这些主要是针对共享软件,因为软件本身比较容易找到,因而注册就是最重要的事情。破解补丁与注册机是最考验cracker的东西了,原则上能写出完美注册机的是最好情况,不行的话,就要用破解补丁了。
基于发行内容
软件
0day软件通常是一些程序或者工具,包含了破解、注册机或者使用该软件所需的序列号、以及最关键的程序本身。0day软件一般发布于FTP上,按照日期来进行排列,一天之中基本上会有不同小组来发布上百种软件。每个发布都会采用分卷压缩的方式来发布,这样如果在下载过程中出现错误则不需要重新下载全部文件,仅仅是出现错误的文件重新下载。压缩包命名采用严格的8.3格式。
发布格式一般为:
程序名称.版本.适用平台.破解方式-发布小组
添加上目录结构则为: 0day\发布日期(一般为MM/DD格式)\程序名称.版本.适用平台.破解方式-发布小组\
游戏
这样也不用说了吧,就是新鲜热辣的破解游戏。
电影
0day电影是什么?简单化的说,就是release group(发布群)将自己手里的dvd或者其他的电影源盘,做成方便网络流通的一种形式,为大家提供共享。
对于我们安全行业来说,更多的是在软件方面比如最近比较火的log4j、shiro、fastjson等等
如何获取0day漏洞
我们今天着重讲一下如何获取这样的漏洞,毕竟现在漏洞层出不穷,如果单独拿出一个或两个漏洞来讲的话没有很好的通用性,所以我们今天主要聊获取方式和渠道
1.主动探测
黑白对照的形式进行漏洞挖掘是最有效获取0day漏洞的方式,也是技术要求最高的方式,需要测试者投入更多的时间和精力。但这样的发现可以保证0day的有效性和私密性,漏洞的危害性也得到保证,利用这样得到的漏洞往往可以给发现的测试者获取巨大的利益(合法),这里也要注意,不要利用自己的技术进行非法的利益获取。把漏洞上交给国家和用于技术测试来获取利益才是正途。比如:
《我俩也组了个队,找到一个苹果RCE 0day,获 $5 万奖金》
2.圈子里的二手资源与网络上的公开
现在的网络安全活动越来越多,也出现了各种各样的分享方式,安全的基础精神就是共享
我只是罗列了三个我常用的,这样的内容网上还有很多的,大家自己用的舒服就好