容器安全与DevSecOps:一些不再适用的旧规则

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 本文讲的是容器安全与DevSecOps:一些不再适用的旧规则【编者的话】如何保证容器环境的安全性,从根本上保证杜绝未授权的变更呢?作者认为,将安全控制流程的时间提前是一个不错的办法。
本文讲的是容器安全与DevSecOps:一些不再适用的旧规则【编者的话】如何保证容器环境的安全性,从根本上保证杜绝未授权的变更呢?作者认为,将安全控制流程的时间提前是一个不错的办法。

【深圳站|3天烧脑式Kubernetes训练营】培训内容包括:Kubernetes概述、架构、日志和监控,部署、自动驾驶、服务发现、网络方案等核心机制分析,进阶篇——Kubernetes调度工作原理、资源管理及源码分析等。

有关容器环境的一个常见问题是,如何保证只有授权过的镜像才能作为容器运行呢?各种产品和开发团队在这个问题上花了不少心思,想要把软件和配置的那一套标准应用到容器管理中。

在传统的IT环境中,有两个进程可以并行:一个是软件开发(dev.),另一个是软件运行环境的基础设施运营(ops.)。针对这两个进程,已经有成熟的安全控制措施。
  • 静态代码分析工具通过评估源代码,检查常见错误,规范编码标准来保证软件开发安全
  • 服务器评估工具通过检查操作系统和其他组件的版本,扫描漏洞和补丁级别,规范配置标准来保证基础设施运营的安全

上述两个过程独立进行,只有当新开发的软件安装到基础设施上之后,二者才有交集。最重要的是,如果基础设施配置出了问题,基本上会在安全控制和运营过程中得到妥善处理,很少会影响到软件开发。

为了保证代码安全,第一步并不是简单的将其过渡到容器应用中,之后的控制步骤需要根据容器化环境进行调整。

容器:新的规则,新的安全流程

容器把所有的操作系统组件、必备组件和相关设置都嵌入到镜像当中。一旦镜像被建好和传输(ship),之后就不应该再有变动。运行状态的容器不允许调整配置、修补和替换组件。修改镜像内部环境的唯一方式就是重建新镜像。

这就是说,基础设施的安全方法唯一可以应用到的地方就是在镜像的创建过程中。因为一旦镜像完成部署,就没有改动的余地。

安全问题需要引起重视

嵌入基础设施的安全控制在很大程度上,或者说是在根本上改变了创建流程。这种方式把当前的安全控制流程完全的转移了。

不用等到开发和一体化进程完成后再进行迭代评估、修补和配置调整,安全控制需要在第一时间进行,即在镜像创建之后,在进一步的CI/CD(持续集成和持续交付)过程之前。这就是“把安全控制挪到前面来”这句话表达的真正意思。

在此过程中,需要执行基础设施安全方针中的所有要素,这点非常重要,同时,还有一些针对容器镜像的方针:
  • 根据基准镜像(模板)创建镜像
  • 服务器软件组件可以接受一定程度上的漏洞
  • 服务器软件组件是满足条件的最低版本 镜像操作系统的配置满足组织标准
  • 镜像元数据包括要求元素、用户环境设置和入口点设置。

理想情况下,这些方针与当前的物理、虚拟或者云上的主机中所应用的是对应的。例如,镜像不可接受的漏洞清单和评估服务器合规性的漏洞清单基本上是一样的。

是时候更新安全控制了

很久以来,安全组织都在关注未授权的变更。跳转服务器、特权身份管理、管理日志、变更窗口以及根因分析,这些手段都是为了检测和防止对软件组件及其配置进行未授权的变更。对主机进行内部和外部双重连续漏洞评估,是为了能及时衡量IT基础设施中不可避免的变更。

容器化环境的实现看起来不太现实。它同时要求动态性和一致性。有了容器之后,主机不再是必须的,因为主机已经没有有效荷载或配置的意义了(容器引擎除外)。同时,对运行中的容器进行变更也不再是必须的,因为当编排或重新创建容器会覆盖掉这些变更。总之,以后再也不用进行传统意义上的变更了。

在需要进行变更的地方,只需要重新构建新的镜像来替代、增加或是修补想要改动的容器,使之切合预期。如果把安全控制引入这一过程并能够有效运作,之前觉得不可能的事情就会得以实现:在根本上创造了更多的安全应用,比以往更快更高效。

原文链接:Container Security and DevSecOps: The Old Rules No Longer Apply(翻译:马远征)

原文发布时间为:2017-04-24

本文作者:马远征

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:容器安全与DevSecOps:一些不再适用的旧规则

相关文章
|
6月前
|
Kubernetes 安全 Cloud Native
云原生|kubernetes|pod或容器的安全上下文配置解析
云原生|kubernetes|pod或容器的安全上下文配置解析
526 0
|
Kubernetes 安全 Linux
开源Chart包安全分析发布,阿里云视角容器安全基线的重要性
云原生环境下,容器成为了软件开发过程中打包与分发的标准。
308 0
开源Chart包安全分析发布,阿里云视角容器安全基线的重要性
|
2月前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
针对软件供应链的攻击事件在以每年三位数的速度激增,其中三方或开源软件已经成为攻击者关注的重要目标,其攻击方式和技术也在不断演进。通过供应链的传播,一个底层软件包的漏洞的影响范围可以波及世界。企业亟需更加标准和完善的供应链风险洞察和防护机制。本文将结合最佳实践的形式,面向容器应用完整的生命周期展示如何基于容器服务ACK/ACR/ASM助力企业构建云原生软件供应链安全。
|
2月前
|
云安全 安全 Serverless
Serverless 安全新杀器:云安全中心护航容器安全
Serverless 安全防护能力除了支持目前既定的等保合规(漏洞扫描、入侵检测、基线检测等)、安全隔离的能力外还支持 WAF 防火墙、支持通信加密、操作审计、权限管控等能力,也正是有了这些能力的加持,SAE 才能很好的服务了金融、政企、医疗等行业的客户;Serverless(SAE)未来还计划规划更多安全能力为企业保驾护航,包括:代码安全扫描、加密、堡垒机、最小权限、身份与访问管理、以及更多的攻击防护等能力的建设。
|
3月前
|
安全 算法 Java
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
这篇文章讨论了Java集合类的线程安全性,列举了线程不安全的集合类(如HashSet、ArrayList、HashMap)和线程安全的集合类(如Vector、Hashtable),同时介绍了Java 5之后提供的java.util.concurrent包中的高效并发集合类,如ConcurrentHashMap和CopyOnWriteArrayList。
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
|
5月前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
121 5
|
5月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
133 3
|
6月前
|
监控 安全 数据安全/隐私保护
【Docker专栏】Docker容器安全:防御与加固策略
【5月更文挑战第7天】本文探讨了Docker容器安全,指出容器化技术虽带来便利,但也存在安全隐患,如不安全的镜像、容器逃逸、网络配置不当等。建议采取使用官方镜像、镜像扫描、最小权限原则等防御措施,并通过安全的Dockerfile编写、运行时安全策略、定期更新和访问控制等加固容器安全。保持警惕并持续学习安全实践至关重要。
667 7
【Docker专栏】Docker容器安全:防御与加固策略
|
6月前
|
存储 缓存 安全
Golang深入浅出之-Go语言中的并发安全容器:sync.Map与sync.Pool
Go语言中的`sync.Map`和`sync.Pool`是并发安全的容器。`sync.Map`提供并发安全的键值对存储,适合快速读取和少写入的情况。注意不要直接遍历Map,应使用`Range`方法。`sync.Pool`是对象池,用于缓存可重用对象,减少内存分配。使用时需注意对象生命周期管理和容量控制。在多goroutine环境下,这两个容器能提高性能和稳定性,但需根据场景谨慎使用,避免不当操作导致的问题。
195 7
|
5月前
|
安全 数据安全/隐私保护 Docker
Docker 容器连接:构建安全高效的容器化网络生态
Docker 容器连接:构建安全高效的容器化网络生态