安全依赖项

已完成

现代应用程序中很大一部分代码是由开发人员选择的库和依赖项组成的。 这是一种常见的做法,既省时间又省金钱。 但是,缺点是你现在要为该代码负责,因为你在项目中使用了它,即使它是别人编写的。 如果某位研究人员(或黑客,这会更糟)在某个这样的第三方库中发现一个漏洞,则同样的缺陷也可能会存在于你的应用中。

在我们的行业中,使用包含已知漏洞的组件是一个大问题。 此问题很严重,以至于多年来一直高居最严重 Web 应用程序漏洞 OWASP 前 10 的位置,占据第 9 位。

跟踪已知安全漏洞

我们的问题是了解何时发现问题。 始终更新库和依赖项(在我们的列表中排第 4)当然会有用,但最好是跟踪已确定的可能会影响应用程序的漏洞。

重要

当系统存在已知漏洞时,很可能漏洞利用工具(可以用来攻击这些系统的代码)也已经存在了。 如果漏洞利用工具已公开,则必须立即更新任何受影响的系统。

Mitre 是一家非盈利性的组织,负责维护常见漏洞和风险列表。 该列表是一组可以公开搜索的已知网络安全漏洞,这些漏洞存在于应用、库和框架中。 如果在 CVE 数据库中发现一个库或组件,则该库或组件有已知漏洞

在产品或组件中发现安全漏洞后,安全社区会提交问题。 每个发布的问题都会分配一个 ID,并且会包含发现日期、漏洞说明、对已发布解决方法或有关问题的供应商声明的引用。

如何验证第三方组件中是否有已知漏洞

你可以将日常任务置于手机中,以便检查此列表。不过对我们来说,幸运的是存在许多可以用来验证依赖项是否有漏洞的工具。 可以对代码库运行这些工具,或者在开发过程中将其添加到 CI/CD 管道,以便自动检测是否存在问题,这样会更好。

某些专用于静态代码分析的工具也可用于此目的。

若要详细了解使用含漏洞插件的风险,请访问专门介绍此主题的 OWASP 页

摘要

在应用程序中使用库或其他第三方组件时,也要承受其所带来的风险。 若要降低此风险,最好的方法是确保只使用没有已知漏洞的组件。