
Lignes directrices
Utilisation de composants présentant des vulnérabilités connues
大多数应用程序都使用大量的第三方组件。这些组件提供从日志、模板化、数据库访问等所有内容。
这使得开发软件变得更加容易,节省了大量时间,但是,这些组件也是由人制作的,有些组件不可避免地会包含漏洞。这意味着你可能会在不知不觉中暴露在可能被利用的漏洞中。
使组件保持最新状态
根据一般经验,强烈建议定期保持框架、库和其他组件处于最新状态。这可以通过多种方式完成:
- 许多源代码控制软件可以分析您的存储库,并在依赖项中发现漏洞时提醒您
- 许多包管理器可以分析您的应用程序并识别您可能存在的任何易受攻击的依赖关系
- 有许多软件组合分析(SCA)解决方案可以识别任何易受攻击的依赖关系
减轻技术债务的风险
升级库的一个相当阴险的问题是它们可能会有破解代码的更改。尽管这些更改通常有记录在案,但也可能有未记录的更改,这些更改可能要等到您的代码在生产环境中运行后才会出现。
如果您的应用程序运行的版本落后于最新版本,则可能需要大量工作才能升级到最新版本。如果泄露了时间敏感的漏洞,则必须使第三方组件保持相对较新的状态,以避免出现升级需要几天才能完成的情况。
也不建议至少在未阅读发行说明的情况下盲目升级软件包,因为它们可能包含有关更改的重要信息,这些更改并不明显,但可能会改变应用程序的运行方式。
更新会让你更加不安全吗?
虽然这种情况并不常见,但在某些情况下,漏洞可能会:
- 在旧版本中不存在
- 修复漏洞时引入
这些案例可能会使人们相信定期更新软件包并不是真正可取的。当然,应尽可能避免这种想法,因为它会导致技术债务的积累。
鉴于这种情况相对罕见,经常更新软件包的好处远远超过新引入漏洞的可能性,如果你定期保持最新状态,无论如何都应该可以轻松缓解这种漏洞。
它还假设供应商不会在不披露任何信息的情况下默默修复漏洞,不幸的是,这种情况仍然很常见。
值得注意的例子
下面列出了你最近可能听说过的一些值得注意的例子。您可以了解如何以及为何检查库并确保保持最新状态很重要。