一、什么是组件
组件(例如:库、框架、和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失和服务器被接管,同时,使用含有漏洞的应用程序或API会造成应用程序防御破坏、造成各种攻击和严重的后果。组件密集型开发模式可能导致开发团队甚至不了解他们在应用程序或 API 中使用了哪些组件,更不用说让它们保持最新状态。
二、产生的原因
- 不知道您使用的所有组件(客户端和服务器端)的版本。这包括您直接使用的组件以及嵌套的依赖项。
- 软件易受攻击、不受支持或已过期。这包括操作系统、Web/应用程序服务器、数据库管理系统 (DBMS)、应用程序、API 和所有组件、运行时环境和库。
- 没有不定期扫描漏洞并订阅与您使用的组件相关的安全公告。
- 没有以基于风险的方式及时修复或升级底层平台、框架和依赖项。这通常发生在修补是受变更控制的每月或每季度任务的环境中,这使组织面临许多天或数月不必要地暴露于固定漏洞的风险。
- 软件开发人员不测试库的兼容性。
五、如何防范
- 移除不适用的依赖、不需要的功能、组件、文件、和文档
- 仅从官方渠道安全的获取组件、并使用签名机制来降低组件被篡改或者加入恶意漏洞的风险。
- 持续监控如CVE和NVD等是否发布已使用组件的漏洞信息,可以使用软件分析工具来自动完成功能。订阅关于组件安全漏洞的邮件。
四、例子
可登录:https://www.cnvd.org.cn/国家信息安全漏洞共享平台