写点什么

容器安全检查列表

发布于: 19 小时前
容器安全检查列表

前一篇“什么是容器安全”,带大家跨过了容器安全的门槛。今天我们继续来聊聊做安全防护时需要考量的点。


DevOps 在过去十年间,从最初的摸索,逐步变成一种主流的软件开发交付模式。在这种开发模式下,安全防护应该被整合到您的开发流程中,并通过自动化的方式来减少手动工作,并延伸到基础架构的维护与运营。这意味着不仅必须保护建构流程的容器镜像,还要保护运行时期的主机、平台与应用程序层。将防护融入不断循环的软件生命周期持续性交付,能协助您降低企业风险,减少日益扩大的受攻击面所潜藏的漏洞。


容器安全防护主要有以下几个考量点:

  • 主机安全防护

  • 利用 Kubernetes 提高安全性

  • 容器安全防护

  • 容器内的应用程序防护

  • 构建流水线的安全


主机安全防护


要确保容器主机的安全,首先要挑选一套适合容器运行的操作系统,可能的话,尽量采用一套专为运行容器而设计的分布式操作系统。若您使用的是标准 Linux® 版本或 Microsoft®Windows®,您或许该停用或移除一些不必要的服务,并对操作系统整体进行一番强化,然后再增加一层额外的安全防护与监控工具来确保主机随时能够依照您预期的方式运行。


实战中可以在您的环境里面配置一台堡垒机,只能通过这台堡垒机去访问您的主机进行操作。对于生成环境的访问,越少人能访问越安全


利用 Kubernetes 提高安全性


Kubernetes (Kube 或 K8S)是市场上最好的容器编排工具之一, K8S 可以说已经成为云计算领域中的“操作系统”。一旦 Kubernetes 导入您的环境并开始上线运行之后,它将为您带来许许多多的优势,让您的团队能够彻底发挥容器环境的效益,如果您是使用腾讯云或者阿里云的容器服务,那就能更容易地利用 Kubernetes 提供的便利。


Kubernetes 提供了许多可以极大地提高应用程序安全性的选项, 利用这些选项能够使您的环境更安全。


确保环境中只使用授权镜像创建资源间的管理界限定义资源配额划分网络安全域将安全环境配置到 Pods 和容器中 API Server 权限控制和访问控制限制对 Kubernetes 节点的直接访问就 K8S 本身的安全性是另外一个议题了,近来针对 Kubernetes 集群的攻击越来越多。


容器镜像扫描


容器镜像类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。Docker 容器是由 Docker 镜像创建的运行实例,Docker 容器类似虚拟机。容器镜像实际上由一层一层的文件系统组成,所以镜像可以基于 Dockerfile 构建。Dockerfile 是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构。容器镜像扫描工具能够扫瞄容器的内容,让您在使用容器来设置应用程序之前预先发现各式各样的问题,只要设置得当,容器扫描将成为您程序开发流程的一环。这是一个完全自动化的流程,迅速、轻松发现您在开发应用程序与容器时可能造成的任何问题。


腾讯云容器镜像服务(Tencent Container Registry,TCR)和容器镜像服务 ACR(Container Registry)都支持对容器镜像做安全扫描,可以识别镜像中所有已知的漏洞信息并提供修复建议。


保护容器内的应用程序


当您的容器在运行环境上线运行时,它会不断为您的应用程序处理资料、产生记录、文件存取等等,您可借由一些安全管理来确保这些都是正常行为,而非恶意活动。此时,利用即时的容器扫描来防范恶意程序将是您成功的关键。


当您将应用程序部署到容器内,您可采用一套运行时期应用程序自我防护(RASP) 来提供安全上的协助,这类安全管理会在您的应用程序内部代码中执行,通常是借由拦截或勾挂(hook)您代码中的一些重要呼叫。这样做还能解决安全的最大难题,那就是:发掘问题的根源。由于这类安全管理是位于应用程序的代码内部,因此能协助您找到安全问题到底出在哪一行代码。像这样的情报掌握很难有其他方案可以匹敌,因而能大幅提升您的安全状况。


确保构建流水线的安全


黑客已开始将其攻击目标慢慢移转到您持续整合/持续交付(CI/CD)流程的前期阶段。一旦黑客成功入侵了您的软件构建服务器、代码储存库、或程序开发电脑,他们很可能长期潜伏在您的环境当中。因此您需要一套强大的安全管理方法,且要随时保持更新。实施一套强大的存取管理策略来涵盖整个构建流程,从您的代码储存库与版本分支策略开始,一路延伸至容器储存库。您务必落实最低授权原则(仅开放执行工作所需的必要权限) 并且定期检查存取权限。


串连所有的环节


要保护容器,您需要一套综合的全方位的的方法才能达到保护的目的。您必须确保满足企业内其他团队的需求,而且要确保您的方法要自动化以适应 DevOps 开发流程,这样才能既快速交付应用程序,又能确保应用程序安全。安全不能再被忽视或仅在最后一刻才被提出需要改变您工作流程的要求。从一开始就构建一套受信任的安全管理和自动化流程可以解决安全问题,并可以更容易地弥合团队之间的差距。


恭喜您登堂入室了


读到这里的看客,已经可以和开发团队的成员愉快地聊聊安全了。如果您有兴趣对上面各个方面的坑都在挖一挖,您就可以着手优化项目中的安全检查了。


【大鱼安全团队出品】- 大鱼安全:国内首个 SaaS 版云原生安全平台 https://www.greatersecurity.com.cn/

发布于: 19 小时前阅读数: 27
用户头像

还未添加个人签名 2021.07.14 加入

还未添加个人简介

评论

发布
暂无评论
容器安全检查列表