英雄背景无分隔线
Pautas

使用存在已知漏洞的组件

大多数应用程序都使用大量第三方组件。这些组件提供了各种功能,包括日志记录、模板创建、数据库访问等等。

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

保持组件更新

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

  • 大量源代码控制软件能够分析您的代码库,并在发现依赖项存在漏洞时向您发出警报。
  • 许多包管理器能够分析您的应用程序,并识别其中可能存在的任何易受攻击的依赖项。
  • 存在众多软件成分分析(SCA)解决方案,能够识别任何存在漏洞的依赖项。

减轻技术性债务风险

更新库时存在一个相当隐蔽的问题:库的变更可能导致代码解密。虽然这些变更通常有文档记录,但也可能存在未记录的变更,这些变更可能直到代码在生产环境中运行时才会显现。

如果应用程序运行的版本与最新版本相差甚远,则可能需要投入大量工作才能更新至最新版本。当发现紧急漏洞时,保持第三方组件处于相对较新的版本至关重要,这样才能避免更新耗时数天才能完成的情况。

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

更新会让你更不确定吗?

虽然并不常见,但确实存在某些漏洞可能:

  • 不存在于旧版本中
  • 在修复漏洞时请注意

这些案例可能让人认为定期更新软件包并非真正可取。当然,这种思维方式应尽可能避免,因为它会导致技术债务的累积。

鉴于这种情况相对罕见,频繁更新软件包带来的好处远大于出现新漏洞的可能性——况且只要定期更新,这类漏洞本就容易得到缓解。

这也意味着供应商不会在不作任何披露的情况下悄然修复漏洞——遗憾的是,这种做法至今仍屡见不鲜。

显著实例

以下列举了近期您可能听闻的若干典型案例。由此可见,及时检查您的软件库并确保保持更新至关重要。