英雄背景无分隔线
指令

使用存在已知漏洞的组件

大多数应用程序都使用大量第三方组件。这些组件提供从日志记录、模型创建到数据库访问等全方位功能。

这极大简化了软件开发流程,并节省了大量时间。然而,这些组件同样由人类开发,其中必然存在某些漏洞。这意味着您可能在不知情的情况下暴露于可被利用的漏洞风险中。

组件更新

通常强烈建议定期更新框架、库及其他组件。这可以通过多种方式实现:

  • 许多源代码控制软件能够分析您的代码库,并在发现依赖项存在漏洞时向您发出警告。
  • 许多软件包管理器能够分析您的应用程序,并识别您可能存在的脆弱依赖项。
  • 存在多种软件成分分析(SCA)解决方案,可用于识别所有存在漏洞的依赖项。

降低技术债务风险

与库升级相关的一个相当隐蔽的问题是,它们可能会经历代码变更。尽管这些变更通常都有文档记录,但某些未记录的变更可能直到代码在生产环境中运行时才会显现出来。

如果您的应用程序运行的版本与最新版本存在较大差距,升级至最新版本可能需要大量工作。当发现存在时间敏感型漏洞时,确保第三方组件处于相对较新的版本至关重要,这能避免升级过程耗时数日。

同样不建议在未阅读版本说明的情况下盲目更新软件包,因为这些说明可能包含重要信息——某些看似不明显的变更可能影响应用程序的运行。

更新是否会使您陷入更不稳定的境地?

尽管这种情况并不常见,但确实存在漏洞可能:

  • 在旧版本中不存在
  • 在漏洞修复过程中被提交

这些案例可能让人认为定期更新软件包并非明智之举。当然,这种想法应尽可能避免,因为它会导致技术债务的累积。

鉴于此类情况相对罕见,频繁更新软件包的优势远大于新引入漏洞的可能性——况且只要您定期更新,这类漏洞本就容易缓解。

他还认为供应商不会在不披露的情况下默默修复漏洞,但遗憾的是这种做法至今仍非常普遍。

著名实例

以下是一些您近期可能听闻的典型案例。由此可见,查阅文献库并确保信息及时更新是何等重要。