为何应将CVE列为最高优先级进行修复

F5生态系统 | 2017年10月23日

我之前曾详细阐述过为什么应用安全是一个堆栈。之所以再次强调,是因为我们有时需要提醒自己:现代应用从来都不是单独部署的。确实如此。

应用堆栈

每个现代应用都部署在某种平台上,例如Apache或IIS、Oracle或IBM应用服务器、搭配Express的node.js,或包含所有必要库的Python。正如我们依靠操作系统和虚拟化技术或容器来提供网络连接一样,应用也依靠平台和库来处理TCP和HTTP等协议。

此外,开发人员还会使用库来实现各种功能。重复造轮子只会浪费时间,因此,开发人员会通过开源项目及其他渠道获取JSON解析器、文件管理、身份验证与授权、数据库支持,以及UI布局和管理等功能。如今,大多数开发人员都依靠库来提供这些功能,从而专注于真正创造价值的业务逻辑和服务。

2017 年,Contrast Labs对应用程序的检查发现,“第三方软件库占应用程序代码的79%”。Java应用程序平均使用107个不同的库,而.NET应用程序平均使用19个。就个人经验而言,我在使用node.js时至少会用到5个不同的库。

但真正值得警惕的是,他们发现这种代码构成所对应的安全状况。

Contrast Labs 技术栈漏洞

尽管应用中79%的代码由库组成,但库仅占已知漏洞(即CVE)的2%。其余漏洞几乎都来自自定义代码,占比达97.3%。

库与漏洞之间这种不成比例的来源安全风险,或许可以解释为何一项SANS调查发现:“尽管23%的受访者高度依赖第三方软件产品和服务(COTS、云服务和开源软件),但他们并未充分承担起确保第三方解决方案安全的责任。只有23%的安全计划涵盖COTS。”

嗯。那么,这或许可以解释Kenna Security报告中漏洞修复响应率低下的原因。早在2015年,Kenna Security就发布了一项研究报告。该研究以50,000家组织为样本,涉及2.5亿个漏洞和超过10亿(十亿)起入侵事件,并得出了有关漏洞修复的两个非常值得关注的结论:

  • 企业修复漏洞平均需要100至120天。
  • 在40–60天时,CVE被利用的概率超过90%。
  • 从漏洞很可能被利用到漏洞修复,时间差约为60天。

换言之,大多数组织未能足够迅速地处理这2%的漏洞,因而无法避免其中某个漏洞遭到利用并导致系统失陷。这或许是因为这些漏洞位于未纳入组织安全计划的库中。

无论原因是什么,都必须将其列为首要任务。下面我来解释原因。

过去,攻击者必须:

  1. 了解该漏洞
  2. 寻找受害网站
  3. 尝试执行漏洞利用

这一过程需要手动完成,且耗时较长。除非您是备受关注的目标,否则没有人愿意在您身上浪费时间。

如今,漏洞信息以互联网的速度传播(如果您想知道,这就是光速。毕竟用的是光纤骨干网),而且目标发现已实现自动化。脚本和机器人能够寻找并标记可入侵的网站,速度远超人工,成本也更低。正因如此,由不安全的IoT设备组成的“死星”规模僵尸网络得以形成。自动化提升的不只是防御方的效率。

这些是非定向攻击,也就是未经策划的机会型攻击。您可能没有什么有价值或值得关注的数据,但确实拥有可利用的资源。这些资源可用于寻找其他受害者并实施其他攻击。至于最终结果,想必您也清楚。

CVE公布后,非定向攻击尤其常见。这是因为自定义代码具有独特性。虽然其中存在大量漏洞,但发现这些漏洞需要投入时间和精力。相比之下,利用常用库或平台中的CVE则轻而易举。这样的机会很难错过,因为投资回报率非常高。 Verizon 2015年《数据泄露调查报告》 指出:“70%的攻击利用了已有补丁可用的已知漏洞。”

因此,如果构成应用的79%依赖库中有任何一个披露了新的CVE,无论是通过实际软件更新进行修补,还是使用Web应用防火墙进行虚拟修补,都应将其列为首要任务。如果该CVE与平台(例如Apache Killer)有关,则应立即放下其他所有工作,优先处理,因为识别Web服务器和应用服务器的特征甚至比扫描依赖库中的漏洞更容易。

事实上,即使知名度不高,不太可能成为定向攻击的目标,仍然面临风险。您很可能使用了与知名组织相同的技术栈,这意味着非定向攻击很可能会波及您。如果认为不会,不妨想想:我可以前往CVE数据库,找到所有已发布的与node.js相关的CVE。然后,我可以快速转到builtwith.com,搜索使用Express(一个node.js框架)构建的网站。我不仅发现,该网站掌握了“230,116个使用Express的活跃网站,以及另外263,872个曾使用Express的网站”,还贴心地提供了下载这些网站列表的链接。

它还算不上Web应用领域的shodan.io,但要把这些线索串联起来并成功利用漏洞,也并不难。

因此,不要误以为自己的规模“不够大”,就可以忽略库或Web平台中的CVE。

这就是人们登上Twitter热搜的原因,而且绝非好事。

确保安全。优先响应影响整个应用技术栈的CVE,并从上到下逐层处理。

分享
标签: 2017

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。