使用 Anaconda CVE 维护开源管道安全

构建并保护由准确且经过整理的 CVE 风险和漏洞评分驱动的安全仓库。使用 Anaconda 的 CVE 维护服务,充分利用开源软件进行企业使用。


开源软件的世界

开源软件 (OSS) 利用其社区的力量来推动创新。世界各地任何人都可以使用、学习、修改或分发源代码,出于任何目的,数十万个软件包被上传到开源软件世界。它是源代码的狂野西部。OSS 虽然是创新的支柱,但它经常容易出错,存在安全风险,而且不稳定。在企业中使用 OSS 需要警惕、时间和专业知识,以确保环境的忠实度和稳定性。更复杂的是,OSS 通常也依赖于其他 OSS。这些被称为包依赖项。

开源包依赖关系的可视化。

数十万个 OSS 软件包依赖于数十万个其他 OSS 软件包,导致了一个高度复杂的依赖关系图。复杂的依赖关系图意味着复杂的包供应链,而复杂的包供应链意味着漏洞风险的显著增加。

在信任依赖树中的软件包时,任何计算错误都可能导致漏洞蔓延到整个网络。

“2020 年,黑客获得了 3.5 亿美元的加密货币,比前一年增长了 311%。” - 链分析

Anaconda 的方式

Anaconda 对 OSS 世界的答案是Anaconda 发行版,其中包括conda:一个由 Anaconda 维护的跨平台环境包管理系统。Anaconda 发行版包含数百个最流行的 Python 和 R 数据科学和机器学习软件包,这些软件包经过严格的兼容性测试,使数据科学从业者能够更快、更轻松地访问它们。

但是,管理依赖项并不能解决风险问题。由于 Python 和 R 软件包及其依赖项的数量众多,软件包仍然存在安全漏洞和风险。想象一下维基百科的事实核查需要多少努力!

那么,我们如何应对 OSS 中的风险和漏洞呢?

用户可以访问公开可用的数据库,这些数据库会标记存在常见漏洞和风险 (CVE) 的软件包,例如美国国家标准与技术研究院 (NIST) 和美国国家漏洞数据库 (NVD),以了解开源软件包的漏洞状态。此外,组织可以选择使用CVE 扫描器来识别其环境中存在的 CVE。

扫描 NIST 和 NVD 生成的 CVE 可以帮助使用包管理系统来对抗 OSS 中固有的风险和漏洞,在包管理系统中,组织可以控制在环境中使用哪些软件包。但是,NIST 和 NVD 的 CVE 系统对标记和报告很敏感,无论准确性、来源或范围如何。这导致了 CVE 中过度夸大误报

例如,假设在软件包 Django 2.1 中发现了一个漏洞。在这种情况下,NVD 将报告所有在漏洞之后发布的 Django 版本都标记为存在漏洞,即使 Django 2.2 已经修复了该问题。

假设组织完全依赖于 NVD 或 NIST 生成的 CVE。在这种情况下,许多软件包将无法通过企业级安全策略,因为会假设没有软件包修复,也没有更新选项。Anaconda 的维护流程采用了不同的方法,以确保用户可以访问必要的开源软件包和依赖项,同时将企业安全标准放在首位。

Anaconda 的人工 CVE 维护

Anaconda 对过度膨胀的 CVE 数据库的解决方案是手动维护 NIST 和 NVD 生成的 CVE。Anaconda 的维护团队审查标记的软件包,验证 CVE 影响的软件,并维护 CVE 状态和评分。

参考前面的示例,Anaconda 的 CVE 维护团队将更新 Django CVE,以澄清它仅适用于 Django >= 2.1 <2.2,通知用户最新版本已修补,没有 CVE,可以使用。

所有 CVE 都从 NIST 和 NVD 获得 CVE 安全评分 (CVSS),范围从 1 到 10,10 为最脆弱。Anaconda 的维护允许组织信任 CVE 评分并根据状态和 CVSS 轻松过滤 CVE,只允许通过内部安全策略的软件包进入工作流程。

Anaconda 的 CVE 维护是什么样的?

经过维护的 CVE 都处于以下状态:

  • 已报告(来自 NIST/NVD 的所有 CVE),

  • 活动(漏洞仍然可能存在),

  • 已清除(漏洞已分析并确定不适用),

  • 已缓解(漏洞已通过代码补丁主动缓解),或

  • 争议(漏洞的合法性受到上游项目维护者或其他社区成员的质疑)。

总而言之,Anaconda 的 CVE 维护提供了可操作且有意义的 CVE 报告,因此可以在企业级充分利用 OSS,数据科学家可以专注于构建模型。

一个安全的仓库,一劳永逸

现在您拥有一个 Anaconda 维护的 OSS 仓库,您已经将风险和漏洞从源代码中排除。但是,我们如何维护这个安全的环境呢?

这时就需要仓库镜像 - 镜像会创建一个仓库副本,允许用户从一个集中的、本地或云位置访问软件包。镜像可以是完整的、部分的,或者只包含特定的软件包。通过在自己的服务器上创建副本,您可以为防火墙后面的用户提供 OSS 访问权限,从而切断您的 OSS 与更广泛的 OSS 网络之间的在线关系。

镜像仓库可以拥有“中间人”或完全脱机。拥有中间人的仓库(称为代理)仅通过指定的端口进行进出连接,这极大地减少了攻击面。完全脱机的仓库称为“隔离”仓库,它们没有进出互联网连接。这是最安全的仓库类型,因为几乎不存在攻击面。

镜像仓库也为您的组织创建了稳定的环境。镜像仓库是一个“时间点”副本,这意味着所有访问该仓库的用户都将访问相同版本的软件包,从而确保整个组织的一致性和兼容性。

在防火墙后面保护和稳定软件包。

利用 Anaconda 来保护您的开源管道安全,以便您的团队可以花费更多时间构建模型、分析数据并做出数据驱动的决策。

与专家交谈

与我们的专家交谈,为您的 AI 之旅寻找解决方案。

与专家交谈