开发者学堂课程【容器安全与 Palo Alto Networks 解决方案 :容器的漏洞扫描(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/628/detail/9882
容器的漏洞扫描(一)
目录:
一、漏洞管理
二、使用 Vulnerability Explorer
三、根据 Layer 的漏洞分析使您可以查明问题和风险
四、在所有环境中设置精细管理
五、演示内容
六、代码演示
一、漏洞管理
比其他解决方案更深入,更精确的威胁情报
Inelligence Sream 从30多个开源和商业威胁情报中获取数据,并结合了我们研究团队的专有研究。确定漏洞后,我们将直接联系供应商以创建 fx. 结果表明 ,误报率实际上为零。
检测并扫描镜像以查找与任何 CI 流程,镜像仓库或生产环境集成的漏洞
Jenkins 插件和命令行界面( twistli )在构建过程中扫描图像。用户可以配置精确的策略,使得在开发阶段,可以警告和阻止漏洞进入。同时还以前所未有的能力来连续监视您的镜像仓库和环境中的漏洞,以查明易受攻击的镜像 Layer,
自动的行为分析
我们不仅限于检查 CVE 数据库。我们利用有关您当前运行时环境的行为指标来持续监控和确定最高风险。 例如是否有特定的容器连接到互联网?它有开放的监听端口吗?
//Twistlock 的容器的漏洞扫描。
//漏洞的管理是整个容器安全的第一块。因为它是两个阶段的基础。
如果镜像具有漏洞的话,在整个容器的生命周期的过程中,它会持续的有这样的威胁。
漏洞的管理,其实也不光在 image 的时候,进行了扫描。因为在运行的时候。
要持续的对漏洞,进行扫描和管理。因为这个漏洞,可能在扫描的时候,会在生成这个容器的时候没有这个漏洞。但是再过了一段时间以后,会发现有新的漏洞。目前来说,基本上每天都会有好几个这样的漏洞为不断的产生。所以,其实这个漏洞的 Management 管理在整个容器的这个生命周期都是非常重要。
也是第一步必须得关注的一个方面。作为 Twistlock 来说,会比其他的解决方案更深入。同时,也会提供一个更精确的威胁情报。
//30多个开源的,商业威胁情报中会获取数据,就会实时的会更新,同时,也有一个专门的负责安全的团队不断的跟进。这些威胁的情报以及漏洞产生。一旦有漏洞会直接联系供应商去创建一些fix。实际上的误报率基本上为零。
实际上是非常好的,这样一个漏洞管理的这样一个 best practice。
同时,这个 fix 的情况,也是非常重要的一个信息,因为有一些漏洞,它产生了以后,并没有一个实时的这一个供应商来创建这个 fix。
那在这个扫漏洞的时候,或者说去做一些策略的时候,也会把有没有这个补丁作为一个考虑的一个情况,因为有一些漏洞,虽然它有,但是它并没有补丁。一些互联网公司对那个持续的部署,要求非常高的情况下,也可以根据这些特殊情况做一些策略,比如说可以临时的允许允许它这个镜像进行生成或者进行工作。
但是会持续的监控。会使用另外一个阶段的保护,比如针对于这个 runtime 的这样一个保护,没有这个补丁可以使其保护的这种情况,保证它也是个安全运行状态。所以,再次强调,就是整个从漏洞管理从镜像,镜像仓库包括运营时。这整个生命周期内的保护,或者一个整合,这个解决方案的用户其实来说是非常重要的。
//第二个话题,可以和任何这个CI/CD的流程,包括机场、仓库的生产环境,产生的漏洞进行进程。因为可以支持那个原生的支持 Jenkins 的这样插件。
或者,可以通过 twicecli 的这种方式,来进行扫描。后面有个具体演示,通过这个命令行的工具,Twist cli 来帮助这个开发人员,在构建这个镜像的时候,他就能知道在镜像中,有多少个漏洞。或者是这个 complaints 的情况是什么样的,然后,可以去实时的去解决这个问题,在提交这个镜像之前。
另外一个,非常强的一个地方,是可以看到镜像的 layer,可以知道问题出现在哪个 layer 可以。包括有什么样的一些问题,解决方案在哪里,都有非常详细的这样一个说明。
//另外一个,不仅仅只是针对于 CVE 的这个数据库。整个会对漏洞或者威胁的这样一个情况进行排序。会列出 top来帮助,客户能够更快的去专注于需要解决的这些漏洞。
因为往往在这个容器的环境中,因为它是很多都是基于开源的这样一个环境。比如说在 darkhalf 上面的镜像仓库里面,会有各种各样的这样一些镜像。
那里面往往包含着大量的有危险或者有问题漏洞。甚至有一些人会放一些,比如说是恶意的这样一些倾向在上面。当用户下载下来,会发现在整个环境里面有非常非常多的漏洞。特别是在经过 Twistlock 的这样一个扫描以后。用户怎么样能够更快的去专注于解决环境中需要解决的这些漏洞。
包括他所带来的潜在的风险在哪,这方面也是会专注为客户提供哪些价值,比如说是否有容器会需要连到互联网。
比如说这个漏洞是不是会有容器需要连到互联网,执行命令的这样一些漏洞,或者它是不是有一些开放的竞争端口。这些都会作为一个评分的一个指标,来帮助客户能够更快的准确定向到一些问题的这样一些镜像。
二、使用 Vulnerability Explorer
持续检测风险和提供优先级排序
漏洞监控包括主机,容器,图像和功能细分
主要包括:
风险评分
更好地了解潜在安全问题的风险因素
//看一下界面。就是有一个 Vulnerability Explorer 这样一个界面,首先,它会提供三个维度,一个是主机纬度,在主机上面有多少的问题,另外一个是在容器这一个维度,包括第三个维度就是镜像功能的这样一个细分。主要会提供以下的一些信息,第一是 Top ten 的结果。对 CVE 这些问题,会打一个分,是叫 riskrescor e从0到10会进行排序。目前,在这个图中,最高的是百分是96分,risk 是非常高的。同时,在右边,有一个 riskfactors。也就是这个可能带来的一些问题是哪。比如说有八个风险存在的一些因素。
然后在那个界面上,演示的时候可以详细的看一下,具体是怎么来分的。
三、根据 Layer 的漏洞分析使您可以查明问题和风险
Twistlock 扫描镜像后,它将为您提供与漏洞信息相关的镜像 Layer 的精确视图
安全管理人员可以知道并通知开发人员需要修复镜像的确切 Layer
//如果点进去看到每特定的一个镜像的以后,可以看到一个非常精确哪个视图。也就是说,可以看到它的layer。DockerField 这个 dockerimage 会有不同的 layer。在每一个 layer 之间我们可以具体的看到。
//有问题的漏洞,可以单点进去每一个 CVE 的 link,或链接到一个第三方的网站,告诉你这个 cve 的问题在哪,然后,fix 的情况是什么都可以通过哪个版本的补丁,可以打包,可以把这个问题给重新可以解决,非常方便。开发人员去解决这些漏洞,因为对开发人员来说,可以知道我具体的哪一个命令,安装的哪个包是有问题的。然后,他可以统一的做一个 agree,重新打一个包,就可以把这些问题解决。
然后重新来扫描看一下新的结果是什么,整个就是安全的管控,或者说安全的一个控制就会非常的简单。
四、在所有环境中设置精细管理
Twistlock 允许用户从开发流程中警告或阻止漏洞镜像显示的示例规则在供应商修复可用的情况下阻止了有严漏洞镜像
//只有了这些情报了以后,来看一下怎么来管理,只是告诉有这个问题,但是如果安全团队对这些安全的漏洞完全没有这个管理的能力,其实没有什么任何意义。
//生成一个 policy。这个 policy,它有两个 action,第一个是 Alert,有什么样的情况,会来产生一些报警。比如说给根据低,中,高
Critical。非常严重的这样一些漏洞的等级。进行设置报警的这样一个防止。
另外也可以根据以上的一些不同的优先级进行 block。block 的意义,就是说如果与这个镜像中,还有高的这样一个漏洞。就会阻止一个镜像产生容器。然后,在这个 resource 中,可以看一下它是可以针对不同的 host 上面,启用这个 policy,也可以针对特定的一个 image。按其起 policy,包括容器和标签等等。
//然后,在最下面有一个较 hide advanced setting 的下面,这是高级设定。比如说有个 condition ,only apply rule when vender a fix 是 Available 的状态。
把它打开了以后,就会去过滤掉那些还没有 fix 的漏洞的,那如果是一些对开发或对一些新产品上线要求非常高的公司。可以暂时通过 runtime 策略。来保护这样些容器安全。