博客

为什么 CVE 应被列为解决的首要问题

Lori MacVittie 缩略图
洛里·麦克维蒂
2017 年 10 月 23 日发布

我之前已经阐述过为什么应用安全是一个堆栈。 我再次重复这一点是因为有时我们需要提醒,现代应用从来都不是单独部署的。 但事实并非如此。

应用程序堆栈

每个现代应用都部署在某种平台上。 它可以是 Apache 或 IIS。 它可以是 Oracle 或 IBM应用服务器。 可以是带有 Express 的 node.js 或带有所有必要库的 Python。 正如我们依赖操作系统和虚拟化/容器为我们提供网络一样,应用依赖平台和库来处理 TCP 和 HTTP 之类的东西。

此外,开发人员还使用库来实现功能。 重新发明轮子浪费时间,因此开发人员转向开源和其他途径来寻找 JSON 解析器、文件管理、身份验证和授权以及数据库支持。 还有 UI 布局和管理。 如今,大多数开发人员都依靠库来提供这些功能,这样他们就可以专注于增值业务:业务逻辑和服务。

Contrast Labs 在 2017 年对应用进行的检查发现,“第三方软件库占应用程序代码的 79%”。 对于 Java,平均有 107 个不同的库。 对于 .NET? 19. 有趣的是,我在 node.js 中使用了至少五个不同的库。

但最让人惊讶的是,他们对这次分裂的安全状况的发现。

堆栈漏洞对比实验室

尽管应用程序的 79% 由库组成,但它仅占已知漏洞 (即 CVE) 的 2%。 自定义代码占据了剩余的大部分,占漏洞总数的 97.3%。

库和漏洞之间这种不成比例的采购安全风险可能解释了为什么SANS 调查发现“尽管 23% 的受访者严重依赖第三方软件产品和服务(COTS、基于云的服务和开源软件),但他们并没有承担足够的责任来确保第三方解决方案的安全。” 只有 23% 的安全程序包含 COTS。”

哼。 那么,也许可以解释 Kenna Security 报告的漏洞解决响应率较低的原因。 早在2015 年,Kenna Security 就报告了一项对 50,000 个组织进行样本研究的报告,这些组织拥有 2.5 亿个漏洞和超过十亿 (BILLION) 次违规事件,并在漏洞修复方面发现了两个非常有趣的点:

  • 平均而言,企业需要 100 至 120 天的时间来修复漏洞。
  • 在 40-60 天时,CVE 被利用的概率达到 90% 以上。
  • 漏洞可能被利用和修复之间的时间间隔约为 60 天。

换句话说,大多数组织没有足够快地解决这 2% 的漏洞,以避免受到攻击。 也许是因为它们所在的图书馆不在该组织的安全计划范围内。 

不管原因是什么都是首要任务。 让我来解释一下原因。

在过去,攻击者必须:

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

这是手动的并且耗时的。 除非你是一个备受瞩目的目标,否则没人会在你身上浪费时间。

如今,漏洞以互联网的速度共享(如果你想知道的话,这个速度就是光速)。 光学主干(你知道)和目标发现是自动化的。 脚本和机器人能够比人类更快(且更便宜)地寻找并标记受攻击的网站。 这与死星大小的僵尸网络通过不安全的物联网设备构建的方式相同。 自动化不仅仅提高了好人的生产力。

这些都是非针对性的攻击。 如果你愿意的话,这是一种没有计划的机会攻击。 您可能没有有价值或有趣的数据,但您确实有资源。 而且这些资源还可以用来寻找其他受害者并实施其他攻击,嗯,你知道这会有什么结果。

CVE 发布后,非针对性攻击尤其常见。 这是因为您的自定义代码是唯一的;虽然其中存在很多漏洞,但需要花费时间和精力去寻找它们。 利用常用库或平台中存在的 CVE 是小菜一碟,轻而易举。 这个机会太好了,不容错过,因为投资回报率很高,很高,很高。 2015 年 Verizon DBIR指出,“70% 的攻击利用了已有补丁的已知漏洞。”

这就是为什么修补(无论是通过实际的软件更新还是通过使用Web应用防火墙)应该是您的应用的 79% 的库中任何一个中披露新的 CVE 时的首要任务。 如果该 CVE 与平台相关(例如 Apache Killer) 则最好优先“放弃一切”,因为对 Web 和应用服务器进行指纹识别比扫描库中的漏洞更容易。

事实是,如果你的知名度不够高,不足以成为目标,你仍然处于危险之中。 您可能使用与知名组织相同的堆栈,这意味着非针对性攻击可能会找到您。 如果您认为他们不会,请考虑我可以继续访问 CVE 数据库并查找与 node.js 相关的所有已发布的 CVE 。 然后我快速进入builtwith.com并搜索使用Express(一个node.js框架)构建的网站。 我不仅发现该网站知道“ 230,116 个正在使用 Express 的网站以及另外 263,872 个曾经使用过 Express 的网站”,而且还方便地提供了下载链接。

它不完全是网络应用程序的 shodan.io,但将两个东西结合起来并找到成功的漏洞也不是很难。

所以,不要错误地认为因为你还不够“大”,所以可以忽略库或 Web 平台中的 CVE。

这就是人们在 Twitter 上流行的原因。 这不是什么好事情。

注意安全。 优先响应影响整个应用程序堆栈的CVE。 从上到下。