在航运业,集装箱的格式遵循ISO 668,这是一种规范集装箱安全堆放的标准格式。
想象一下,你的应用程序有多个集装箱,运行不同的应用程序,为世界各地的人们提供不同的服务。
软件的集装箱安全
现代软件与船舶没有太大区别。我们在项目中 "堆叠 "几个微服务,有团队负责环境的开发和安全,如果有人犯了一个关键的错误,一切都可能会失去。让我们从开发和安全的角度来考虑容器。
- 你相信你正在投入生产的镜像吗?起源是否可靠?
- 你是否进行安全测试,看看是否有任何安全问题?
- 你如何确定修复的优先次序?
- 你的基本镜像是否只有运行你的应用程序所需的最基本的东西?
- 开发团队是否保持了对最佳实践的更新?
- 你的安全团队在开发过程中是否提供帮助,或者只是在发现漏洞时进行指责?
如果你不能回答每一个问题,没问题!你可以留下来,我将会给你一些建议。
用Snyk Container开始你的分析
这里的重点是打破安全和开发团队之间的障碍,帮助双方了解如何使用标准对容器中的漏洞进行优先排序,而不是生成巨大的报告。
作为一个例子,让我们使用snyk-goof repo,它包含一个用于测试的特意脆弱的应用程序(不建议在生产环境中使用)。我们将使用Snyk Container来分析这个应用程序,它提供了一个简单有效的方法来自动修复漏洞,并帮助开发人员专注于问题。
首先,创建一个账户(它是免费的!)。 如果你已经有一个,只需登录。导航到项目 > 添加项目。


请注意,分析结果可能需要几分钟时间才会出现在你新导入的项目下。Snyk有能力分析代码、库和容器。今天我们将专注于容器。

看一下Docker文件。你会把一个有关键基础设施问题的容器运到海外吗?我不这么认为!让我们问一些问题。
- 我们可以从哪里开始?
- 每个问题的优先级是什么?
现在,为了创建你的计划,考虑以下几点。
- 是否有人可以利用这些缺陷?
- 互联网上是否已经有任何恶意代码(现有的漏洞)可以利用这个缺陷?
- 社交媒体上是否有人在谈论这个缺陷?
- 是否有修复措施?
每个漏洞都有一个由通用漏洞评分系统(CVSS)分配的分数。这个计算分数的基础包括攻击面、攻击复杂性、用户互动和所需权限等标准。

Snyk Container提供了很多关于每个漏洞的有用信息

它还为你提供了学习更多知识的选择!
在这个例子中,我们谈论的是一个简单的图像,但想象一下在一个大的规模。会是什么样子呢?我们可以根据上面的问题创建一个基线。

这张图片显示了Snyk Code的基础图像升级建议。这些升级可以降低风险,使我们能够节省可能花在寻找另一个基础图像(或尝试升级)上的时间。
用Snyk CLI运行同样的分析
我是用图形用户界面进行分析的。但是开发团队经常使用命令行,或在他们的IDE中,所以让我们消除另一个登录的障碍,用Snyk CLI做同样的分析。
在Snyk控制台,进入Integrations > CLI,按照你的环境的步骤操作。让我们使用同一个项目:Snyk-goof。

现在让我们建立图像。

现在是有趣的部分!让我们开始使用CLI进行分析。


控制台和CLI中的测试结果有点不同,因为我在不同的日子测试,但使用Snyk CLI运行的分析仍然提供了相同的基本镜像升级建议。
基于度量的分析的优势
新的漏洞一直在涌现。我们不能停下来修复每个问题。我们需要对影响可能最严重的地方进行优先排序、自动化和集中努力。基于度量的分析消除了团队之间的噪音,并帮助你快速找到安全操纵容器的方法。