K8s 集群遭挖矿劫持

上周,微软 Azure 安全中心(ASC)正式发出警告,黑客正在对 Kubernetes 集群中的机器学习工具包 Kubeflow 安装加密货币矿工,试图利用 CPU 资源挖掘 Monero 虚拟货币 XMRIG。

这项恶意“开采”行动于 4 月份开始,已对数十个 Kubernetes 集群造成污染。ASC 调查发现,黑客攻击 Kubeflow 是因为用户更改了默认设置。

4 月初,ASK 在监视和防御 AKS 上运行的数千个 Kubernete 集群时,发现许多不同集群在公共资源库中部署了可疑镜像。经监测分析发现,这些可疑镜像正在运行着 XMRIG 矿机。

从镜像所运行的各个集群来看,它们大多数都运行着 Kubeflow。这一事实表明,此次恶意攻击的访问媒介正是机器学习框架 Kubeflow。

用户可通过连接仪表板的 API 服务器使用 Kubeflow 功能,以此来管理任务。而仪表板只能通过位于集群边缘的 Istio 入口网关使用。这对于 Kubeflow 来说是一道非常安全的防护墙。

但是,部分用户为了便于访问会更改这项默认设置,将 Istio 服务修改为 Load-Balancer。这样不需要通过网关,用户就可以直接访问仪表板。但这也相当于将仪表板暴露到了互联网上,任何人都可以直接访问,并对 Kubeflow 功能进行更改。

本次事件中,黑客正是使用了暴露的 Kubeflow 仪表板获得了 Kubernetes 集群的初始访问权限,随后对集群进行了攻击。如果想要调查自己的集群是否有被攻击,可以尝试以下步骤。确认恶意容器是否部署在集群中,可按以下命令可以检查:

kubectl get pods –all-namespaces -o jsonpath="{.items[].spec.containers[].image}"  | grep -i ddsfdfsaadfs

如果将 Kubeflow 部署在集群中,需要确保其仪表板未暴露于互联网。可以通过以下命令检查 Istio 入口服务的类型:

kubectl get service istio-ingressgateway -n istio-system

K8s 将用于 B-21 轰炸机

上周,美国空军采购、技术和后勤助理部长 Will Roper 博士在 LinkedIn 上发表了以下简短声明:

COVID-19 疫情期间,美国空军的创新工作从未止步。我们的 B-21 团队刚刚在飞行硬件上利用 Kubernetes 成功运行了容器化软件!这是迈向“DevStar”的重要一步:我们与 Northrop Grumman 公司合作,不断争取着软件开发的自主权空间!为建立数字化 OODA 循环而奋斗!

Roper 博士的声明虽然不长,但确实提到美国空军将使用 Kubernetes。这代表着 B-21 中的某些部分可能会对工作负载进行隔离,并将这些负载链接至对应微服务,甚至根据当前任务中的不同需求创建独立的工作负载。

B-21 是由诺斯洛普·格鲁门(Northrop Grumman)公司为美国空军设计制造的隐形轰炸战斗机。其有望在 2025 年正式服役,拥有发射洲际导弹与核武器的能力。

详情请见《Kubernetes 将用于美军新一代 B-21 隐形轰炸机》

美国国防部的 DevSecOps

近日,CNCF 发布了有关美国国防部(DoD)的 DevSecOps 方法的案例研究,旨在研究他们如何使用 Kubernetes 集群和其他开源技术来加快开发速度,该设计定义了 DevSecOps 管道上的闸门,以便开发人员以安全、灵活和可操作的方式创建、部署和操作应用程序。

DevSecOps 是一套自动化工具、服务和标准,使程序能够以安全、灵活和可互操作的方式开发、保护、部署和操作应用程序。这项工作由美国空军首席软件官 Nicolas M. Chaillan 和美国国防部信息企业(DCIO IE)副首席信息官 Peter Ranks 牵头。

这是美国国防部企业 DevSecOps 技术堆栈:

基础层使用 Kubernetes 进行编排。它提供了弹性、自我修复和编排功能。对于不同的机密环境,Envoy 和 Istio 则提供了一个控制和数据平面。另外,美国国防部还为其开发人员提供了 DevSecOps 课程培训,以期一年内培训十万人。

Linkerd 2.8 版本发布

上周,Linkerd 2.8 版本正式发布。Linkerd 是一个提供弹性云端原生应用服务网格(service mesh)的开源项目,也是面向微服务的开源 RPC 代理。

Linkerd v2.8 引入了一个新的多集群扩展,使其自身可以跨 Kubernetes 集群建立连接。这些集群对应用程序而言是安全、透明的,并且可以与任何网络拓扑一起使用。

Linkerd 的多集群功能旨在实现四个目标:

  • 提供统一的信任域
  • 分离故障域
  • 支持异构网络
  • 提供集群内通信的统一模型

新的多集群功能可支持多种新用例,例如混合云、高可用性、集群故障转移和反向多租户。另外,2.8版本还引入了一个简单的 add-on 系统,用于从 Linkerd 添加删除功能包。Linkerd v2.8 附带了两个插件:

  • Jaeger 插件:它添加了 Jaeger 和 oc-collector 组件以收集和显示分布式跟踪到集群
  • Grafana 插件(默认情况下启用):可将 Grafana 图添加到 Linkerd 的仪表板

未来,更多功能会被转移到 add-on 组件中。例如,用户可以删除默认的 Prometheus 安装,然后用自己的安装替换。

Linkerd v2.8 还有很多其他的改进、性能增强和 bug 修复,包括:

  • 拥有了新的 Prometheus 配置选项,Helm 图表的灵活性和模块化水平提升
  • 代理现在使用 Pod 元数据对发出的分布式跟踪范围进行标记
  • 对代理进行多项性能改进,以减少争用、改善延迟并减少伪超时
  • 自动预防常见的流量环路场景

本周 K8s 开源项目推荐

Pangolin

  • 这是一种加强型的 Kubernetes 水平 Pod 自动伸缩器。
  • https://github.com/dpeckett/pangolin?utm_sq=gem2rk8wdt

mkit

  • 这是一种 Managed Kubernetes 检查工具,可验证 Managed Kubernetes 集群和资源的安全性配置设置。
  • https://github.com/darkbitio/mkit?utm_sq=gf0gv10j0u

oneinfra

  • 这是一个 Kubernetes 集群编排工具,用于跨不同公有云、私有云和裸金属服务器管理和运行Kubernetes 集群。
  • https://github.com/oneinfra/oneinfra?utm_sq=gepq4m7nod

StatusBay

  • 这是一个可视化 K8s 部署过程的项目,它通过订阅 K8s 集群,收集所有相关事件并逐步“放大”部署过程来实现。
  • https://github.com/similarweb/statusbay?utm_sq=gdpynjf7dq

Kubetap

  • 这是一个 Kubectl 插件,可以为 Kubernetes Services 部署拦截代理。
  • https://github.com/soluble-ai/kubetap?utm_sq=gf2bn2lccv

wksctl

  • 该工具可以通过 SSH 安装、引导和管理 Kubernetes 集群。
  • https://github.com/weaveworks/wksctl?utm_sq=gf33claj4z

IDG 发布 2020 年云计算调查报告

上周,IDG 发布 2020 年云计算调查,主要研究了技术决策者(ITDM)云计算趋势,包括当前和未来计划,涉及应用程序、工作负载迁移到云以及云计算的投资等。在该报告中,主要有以下几点发现:

  • 如今至少有 92 % 的组织IT环境都在云上。因为只有 8% 的受访者表示其整个 IT 环境都在本地
  • 明年近三分之一(32%)的 IT 预算将分配给云计算
  • 目前,超过一半(55%)的组织在使用多个公有云,其中 21% 的组织表示使用三个或者更多
  • 就当前而言,ITDM 面临的最大挑战在于控制云成本以及数据隐私安全性挑战