写点什么

两个开源工具,强化你的 K8S 安全!

  • 2020-05-25
  • 本文字数:2145 字

    阅读完需:约 7 分钟

两个开源工具,强化你的K8S安全!

对于 Kubernetes 用户而言,安全永远是最受关注的话题。在谷歌/百度搜索“Kubernetes 安全”,你会搜到大量的文章、博客等信息。Rancher 也十分重视用户的安全问题。原因很简单:你需要使容器和 Kubernetes 安全与企业中现有的安全配置文件保持一致。


在 Kubernetes 中有许多特性可以保证你的集群安全——身份验证和身份授权、etcd 数据库中的 secret 和对象中的加密等等。但是除此之外,你还需要了解其他风险,比如权限逐步扩大并获取 secret。


互联网安全中心(CIS)发布的全面的 Kubernetes Benchmark 为建立 Kubernetes 的安全配置提供了规范指导:


https://www.cisecurity.org/benchmark/kubernetes/


当你在查看 Kubernetes 及其安全状况时,需要考虑你的实际操作如何与其保持一致。特别要注意:


  • 强化环境并与 CIS 的 Benchmark 保持一致

  • 排查可能会被利用的漏洞


下图是有关 Kubernetes 安全的一个框架,本文重点介绍运行时和平台安全性的内容。



有一些十分优秀的工具可以利用 CIS Benchmark 检测当前 Kubernetes 环境中潜在的安全风险,并与你的安全实践保持一致。在本文中,我们将探讨其中的两个。

kube-bench 和 kube-hunter

kube-bench 和 kube-hunter 是 Aqua 的开源工具,它们可以在 Kubernetes 集群中寻找安全问题。它们在 Kubernetes 基础架构堆栈中分析安全状况的方法有所区别。kube-bench 主要用于让你的实践符合 CIS 的标准,而 kube-hunter 则关注你要暴露的漏洞。它们两个结合使用,可以为我们确定合规性提供一个很好的视角。


让我们先从 kube-bench 开始,它会根据 CIS 的安全性最佳实践检查 Kubernetes 是否部署。kube-bench 可以运行在本地或在你的 Kubernetes 环境中作为容器。一旦部署完成,kube-bench 会根据要执行的测试以及不同的 Kubernetes 版本,为你提供一些用于 master 或节点的配置文件。需要注意的是,配置文件会被写入 YAML。那意味着你可以对它们进行调整以适应你的测试,或者当 CIS 或 Kubernetes 公开更多测试时直接采用它们即可。


以下 CIS Benchmark 摘要摘录了你可以获取、测试和修正的信息。kube-bench 通过运行符合 CIS Benchmark 的测试来做到这一点。然后你将会获得总结性的信息以及在需要的时候会获得修正建议。例如,如果你在你的 API Server 上关闭了身份认证,那么给出的建议中会向你解释如何启用身份认证。你执行任意修正操作之后,需要再一次运行这个工具,直到完全符合标准。



CIS 的 Kubernetes 安全性 Benchmark,p14

运行 kube-bench

kube-bench 向你展示了如何根据 CIS Benchmark 或你的容器生命周期来调整你的环境,使其符合企业的最佳实践。


首先登录你的 Kubernetes server,在上面直接运行 kube-bench,并安装。通过运行 Docker 命令 docker run –rm -v pwd:/host aquasec/kube-bench:latest install,可以在你的环境中部署容器,如下所示:



部署完成后,它将安装 kube-bench,并将其运行在 Kubernetes server 上。这时,你需要决定运行哪个测试,并确定要展示哪些信息在屏幕上。它会默认展示很多信息,所以你可以设置几个标志(flag),让它只展示几项你需要的信息。如下所示:



以下是运行“./kube-bench node”这一命令的输出结果:


运行 kube-hunter

kube-hunter 会在你的环境内部或外部运行扫描功能,以让你了解在你的 Kubernetes 平台中的安全性漏洞。kube-hunter 可以在集群内部或外部、在任何机器上作为一个容器运行。当你进入集群 DNS 或 IP 之后,kube-hunter 就会开始查看你当前打开的端口、运行测试并查看是否存在任何漏洞。然后,你将会获得大量相关信息,可以帮助你确定下一步应该如何执行。


kube-hunter 的默认状态是“passive”,这意味着它将查找诸如 Kubernetes SSL 证书中的电子邮件地址之类的内容,并检查开放端口、代理服务和 dashboard。在“active”状态中,kube-hunter 将会查找其他弱点,并利用发现的弱点来进一步探索漏洞,因此它十分强大。虽然 kube-hunter 不会查看容器镜像内部(有其他工具可以专门查看此处),但它可以运行可能暴露数据泄露或有危害的电子邮件地址的测试。


这有一个完整的列表,可以帮助你使用 kube-hunter 进行 passive 和 active 测试:


https://kube-hunter.aquasec.com/


你可以用以下几种方式来安装和运行 kube-hunter:


  • 本地机器:通过 Python 脚本安装,它可以让你执行远程扫描

  • 容器:通过基于 Docker 的容器安装,你可以将该容器运行在你的 Kubernetes 集群内

  • Pod:这可以让你看到潜在危害的 pod


本文我们将使用容器的方法。开始之前,需要在 Aqua(https://kube-hunter.aquasec.com/)上注册,以获得一个 token 来安装一个 Docker 容器并运行远程扫描。



然后你将获得一个 Docker 命令



这有三个扫描选项(如下)。你可以修改显示的信息(基于日志),这取决于你想了解什么内容,例如 debug、info(这是默认的)以及标准告警。



接下来,你将获得一个漏洞列表,其中包括严重性、用户环境的详细信息以及你可以与组织共享的 URL。


结论

在本文中,我们了解了两个强大的工具,kube-bench 和 kube-hunter,它们可以让你了解你的 Kubernetes 安全。就你的整体安全状况而言,这两个工具仅仅只是开始。你还需要解决容器生命周期的其他方面的问题。在 CNCF 中也有几种工具,你可以利用它们为 Kubernetes 及其中的服务构建全面安全的格局。


2020-05-25 16:401080

评论

发布
暂无评论
发现更多内容

spring入门介绍

楠羽

笔记 spring 5 10月月更

想学Go Web?先来看看如何搭建一个beego项目吧

Regan Yue

Go Go web Beego 10月月更

SQL高效查询建议

雨果

sql

【结构体内功修炼】枚举和联合的奥秘(三)

Albert Edison

C语言 枚举 结构体 10月月更 联合

Python应用之激活码生成器

向阳逐梦

Python语法 10月月更 激活码生成器

Zepoch节点开放申请,Web3流支付巨头Zebec利好不断

石头财经

Python应用之验证码验证

向阳逐梦

验证码 10月月更 Python应用

从0开始,让你的Spring Boot项目跑在Linux服务器

海风极客

10月月更

Spring循环依赖原理和Bean创建过程

海风极客

10月月更

跟着卷卷龙一起学Camera--CMS

卷卷龙

ISP camera 10月月更

【愚公系列】2022年10月 Go教学课程 021-Go容器之切片操作

愚公搬代码

10月月更

浅谈MVC、MVP、MVVM框架模式

海风极客

10月月更

MFC|MediaPlayer基本功能使用

中国好公民st

c++ qt 10月月更

图像渲染

掘金安东尼

算法 10月月更

开发者有话说|如何成为优秀的前端技术经理

No Silver Bullet

个人成长 技术经理

数据仓库的下一阶段该是什么?

雨果

数据仓库

开发者有话说 | 求知若饥,虚心若愚

Samson

程序员 个人成长 10月月更 成长感悟

架构师的十八般武艺:可延展性

agnostic

可延展性

当UI走查说页面色值错误时,先别急着检查代码

茶无味的一天

前端 浏览器 UI 色差 取色

跟着卷卷龙一起学Camera--PDAF 03

卷卷龙

ISP camera 10月月更

跟着卷卷龙一起学Camera--PDAF 04

卷卷龙

ISP camera 10月月更

实时数仓、湖仓一体、流批一体有什么区别

雨果

实时数仓

代码开发篇之设计模式

邱学喆

设计模式

Python应用之哥德巴赫猜想——偶数

向阳逐梦

10月月更 哥德巴赫猜想 Python应用

Vue3入门指北(十一)watch 和 watchEffect

Augus

Vue3 10月月更

实时数仓、数据中台、大数据平台、湖仓一体各有什么区别?

雨果

数据中台

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

BlockChain先知

玩转子网划分和超网汇聚

海风极客

10月月更

代理模式与动态代理

海风极客

10月月更

十一假期,分享几个好玩儿的GitHub项目

海风极客

10月月更

2022-10-07:给定员工的 schedule 列表,表示每个员工的工作时间。 每个员工都有一个非重叠的时间段 Intervals 列表,这些时间段已经排好序。 返回表示 所有 员工的 共同,正

福大大架构师每日一题

算法 rust 福大大

两个开源工具,强化你的K8S安全!_文化 & 方法_Rancher_InfoQ精选文章