Kubernetes企业安全
| 导读 | 所有利益相关者预先参与一个布局良好的计划,这是构建更安全的容器环境的第一步。如今,容器仍然是应用程序部署和迁移的主流技术。行业专家Paul Rubens将其分解为可以理解的几个部分——陷阱、容器管理系统、安全性等等。 |
所有利益相关者预先参与一个布局良好的计划,这是构建更安全的容器环境的第一步。
如今,容器仍然是应用程序部署和迁移的主流技术。行业专家Paul Rubens将其分解为可以理解的几个部分——陷阱、容器管理系统、安全性等等。因此,现在人们已经找到了更加可靠和有效的方法来跨平台部署和扩展软件,但它也为恶意攻击者提供了利用这些容器的方法。
在过去几年中,虽然在容器及其编排系统(如Kubernetes)的安全性方面取得了一些重大改进,但也发现了几个主要的漏洞。
令人印象深刻的是,Kubernetes等容器实施和管理工具使企业能够自动化应用程序部署的各个方面,从而带来惊人的业务收益。另一方面,随着IT团队对部署Kubernetes越来越感兴趣,恶意攻击者对破坏Kubernetes集群也越来越关注。
随着Kubernetes的采用和部署的增长,安全风险也会随之增加。这得到了安全专家的广泛认同。最近在云计算和移动开发空间中发生了多起攻击事件,这包括从中断、加密挖掘、勒索软件到数据窃取的所有内容。
当然,这些类型的部署与传统环境一样容易受到外部攻击者和具有恶意的内部人员的攻击。因此,更重要的是确保大型Kubernetes环境具有正确的部署体系结构,并为所有这些部署使用安全实践。
随着Kubernetes被广泛采用,它成为威胁行为者的主要目标。Aqua Security公司首席技术官Amir Jerbi表示,“随着Kubernetes的采用率迅速上升,人们可能会发现以前未被注意到的差距,另一方面由于更高的知名度而受到网络攻击者的更多关注。”
自2015年以来,发现了一些关键和显著的漏洞,使安全和开发人员对其规划和部署架构必须小心谨慎。一些更严重的缺陷允许对运行在Kubernetes集群中的任何节点进行完全的管理员访问,这将允许黑客注入恶意代码、破坏整个集群环境或窃取敏感数据。
在集群安全性方面,有几点需要考虑。容器的动态组合在Kubernetes环境中带来了安全挑战。在考虑集群安全性时要考虑的关键事项是:
- 由于每个容器中存在各种漏洞,特别是在使用容器编排方式(如Docker和Kubernetes)时,攻击面上的漏洞被利用。
- 需要监控的东西向流量增加,尤其是在主机和云计算环境中。
- 安全团队能够确保安全自动化与不断变化的容器环境保持同步。
- 对部署过程和Kubernetes Pod本身的可见性,包括它们如何进行交叉通信。
- 用于在容器之间的东西向通信中检测恶意行为的手段,包括检测单个容器或容器内的漏洞利用。
- 使用最佳访问安全实践,审查/规划和记录Kubernetes集群,以便更好地了解内部威胁。
安全流程的简化也非常重要,这样它就不会减慢或阻碍应用程序/开发团队的工作。对于整个组织以及更大范围内的容器化部署,企业需要考虑的一点是,确保减少审批时间的安全过程。此外,必须简化安全警报过程,并能够轻松识别最重要的攻击。最后,企业的Kubernetes环境需要为网络连接和特定容器正确部署分段。
如前所述,随着这些工具的普及,攻击者利用这些工具的风险增加。某些漏洞的风险承受能力因规模、复杂程度和环境而异。
但是,要注意的主要安全风险包括:
- Kubernetes环境中的攻击可能是由外部人员或内部人员发起的,无论是有意还是无意(通常是网络钓鱼攻击)。
- 当忽略应用程序漏洞或错误配置时,容器可能会受到危害,从而允许威胁参与者进入,并开始寻求进一步访问和更大的中断。
- 由于受损容器而未经授权的Pod连接尝试访问其他或相同主机上的其他Pod。网络监控和过滤的类型需要是第7层,以便检测和阻止对可信IP地址的攻击。
- 企业环境中的数据窃取,也称为“泄漏”。这种类型的攻击有很多种部署和隐藏方式,并通过网络隧道来隐藏泄漏。
- 利用Kubernetes基础设施本身,例如Kubelet和API服务器。
- 业务流程工具折衷允许攻击者破坏应用程序,并访问运行环境所需的其他资源。
俗话说,“做事,要么不做,要么尽力做好”。这有时可能不那么明显,但是当需要更好的整体安全性时,企业需要部署具有正确概念和架构的Kubernetes,这一点尤其重要。
由于此编排工具的功能增强,Kubernetes功能和部署变得更加流行——从用于小型部署的简单Pod体系结构或跨平台的更大规模Kubernetes集成。当然,这些部署的复杂性以及安全风险也是如此。
以下是有关Kubernetes部署最佳实践的一些重要提示:
- 必须强制执行最低权限。使用这种类型的模型来防止广泛访问,可以在发生攻击时更好地控制攻击。最好使用内置的Pod安全策略来确定和限制Pod的功能。
- 应始终部署强身份验证最佳实践,并且所有Kubernetes模块都必须进行身份验证。
- 集群分段配置和部署以类似于以前最低权限的方式运行。在同一基础结构环境中使用相互分离的虚拟集群是最佳实践。
- 使用容器本身的防火墙有助于在使用分段时阻止跨网络的活动。
- 对可能发生的事件进行环境监控,尽管实施了最佳安全实践。有一些特定的第三方安全工具可以防止攻击的传播,并识别企业环境中的策略违规情况。
- 定义运营、开发、安全团队之间的角色。职责分离是一种最佳实践,应以明确的角色和责任记录在案。
无论企业的项目和环境是多大,无论是针对特定平台迁移的单个内部Pod还是具有多个集群的大型云部署,企业的开发团队和安全团队在规划过程中协同工作都很重要。这包括确定适当的角色和责任,并在所有团队之间定期沟通。简而言之,所有利益相关者都参与完善的计划,这是构建更安全的容器环境的第一步。
本文转自:https://www.linuxprobe.com/kubernetes-enterprise-safety.html
Kubernetes企业安全的更多相关文章
- 【译文连载】 理解Istio服务网格(第二章 安装)
全书目录 第一章 概述 本文目录 1.命令行工具安装 2. Kubernetes/OpenShift安装 3. Istio安装 4.示例Java微服务安装 4.1 源码概览 4.2 编译和部署cust ...
- 企业落地Kubernetes的问题与对策
在当今云计算领域,“容器技术”已经从三四年前的炒作期正式进入了产业落地期,而Kubernetes作为容器平台的标准已经得到了广泛应用. Kubernetes从2014年6月由Google宣布开源,到2 ...
- Kubernetes行业调研报告:多集群、多云部署成企业首选策略
新兴的多集群.多云部署成为首选的企业策略,而边缘部署则呈上升趋势 2019年11月5日,业界采用最广泛的Kubernetes管理平台创造者Rancher Labs(以下简称Rancher)发布了首份调 ...
- ebook下载 | 灵雀云发布《 企业高管IT战略指南——为何选择容器与Kubernetes》
发送关键词[高管指南]至灵雀云公众号,立即下载完整版电子书 "本书将提供企业领导者/IT高管应该了解的,所有关于容器技术和Kubernetes的基础认知和关键概念,突破技术语言屏障,全面梳理 ...
- 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...
- 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践
[点击 关注「 WeiyiGeek」公众号 ] 设为「️ 星标」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 ...
- 基于Kubernetes构建企业容器云
前言 团队成员有DBA.运维.Python开发,由于需要跨部门向公司私有云团队申请虚拟机, 此时我在思考能否在现有已申请的虚拟机之上,再进行更加细粒度的资源隔离和划分,让本团队的成员使用, 也就是在私 ...
- k8s笔记0528-基于KUBERNETES构建企业容器云手动部署集群记录-7
Kubernetes Dashboard 创建CoreDNS [root@linux-node1 ~]# kubectl create -f coredns.yaml [root@linux-node ...
- k8s笔记0528-基于KUBERNETES构建企业容器云手动部署集群记录-5
1.为Flannel生成证书 [root@linux-node1 ~]# vim flanneld-csr.json { "CN": "flanneld", & ...
随机推荐
- JavaScript - Array对象,数组
1. 创建数组 方式1. new关键字 var arr = new Array(1, 2, 3); 方式2. 使用字面量创建数组对象 var arr = [1, 2, 3]; 2. 检测一个对象是否是 ...
- spark-调节executor堆外内存
什么时候需要调节Executor的堆外内存大小? 当出现一下异常时: shuffle file cannot find,executor lost.task lost,out of memory 出现 ...
- flask view
flask view 1. flask view 1.1. @route 写个验证用户登录的装饰器:在调用函数前,先检查session里有没有用户 from functools imp ...
- 模块学习-time,datetime模块
1 time.timezone #以秒为单位显示时区 >>> import time >>> time.timezone -28800 北京为东八区,所以为-288 ...
- IDEA中使用GsonFormat
版本:IDEA Community 2019.2.2 说明:GsonFormat是一个可以直接将Json对象转化为Java类的插件 流程:安装GsonFormat插件=>新建一个空类Book=& ...
- Java基础 -4.3
While循环结构 while循环 public static void main(String[] args) { while(布尔表达式) { 条件满足时执行; 修改循环条件; } } do wh ...
- while语句及批量创建用户!
1.while 循环语句的作用:重复测试某个条件,只要条件成立则反复执行2.while 语句结构while 条件测试操作do命令序列done ============================= ...
- Linux CentOS7 rsync通过服务同步、linux系统日志、screen工具
一.rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口. log file:指定日志文件. pid file:指定pid文件,这 ...
- vue中 el [$el] 的理解
<template> <div class="a"> <div class="basic" ref="ba"& ...
- ypeError: __init__() got an unexpected keyword argument 'shape'
采用TensorFlow支持通过tf.Graph函数来生成新的向量图,代码如下: import tensorflow as tf g1 = tf.Graph() with g1.as_default( ...