
基本概述
Kubestriker是一款针对Kubernetes的快速安全审计工具,Kubestriker可以对Kubernetes的infra容器执行大量深入检测,以帮助研究人员识别其中存在的安全错误配置以及其他安全问题。这些安全问题可能是工程师或开发人员在使用Kubernetes会遇到的,尤其是在大规模生成环境之中,一个小小的安全问题可能会带来严重的安全风险。
Kubestriker不依赖于特定平台运行,它可以在多个平台上工作,比如说自托管的Kubernetes、Amazon EKS、Azure AKS和Google GKE等。

支持的功能
扫描自管理和云提供商管理的Kubernetes infra;
各种服务或开放端口的网络侦察阶段扫描;
如果启用了不安全的读写或只读服务,则执行自动扫描;
执行验证扫描和未验证扫描;
扫描群集中的各种IAM错误配置;
扫描各种包含错误配置的容器;
扫描各种包含错误配置的Pod安全策略;
扫描各种错误配置的网络策略;
扫描群集中某个主题的权限;
在容器上运行命令并返回输出;
提供包含错误配置的服务的终端节点;
提供可能的权限提升详细信息;
详细的扫描报告;
工具安装
克隆代码库并安装
在安装该工具或克隆并运行该应用程序之前,我们需要在本地安装好Git、Python 3和pip。我们建议广大研究人员在虚拟环境中安装和使用该工具。
接下来,我们可以在命令行工具中运行下列命令。
创建Python虚拟环境:
$ python3 -m venv env
激活Python虚拟环境:
$ source env/bin/activate
克隆项目代码库:
$ git clone https://github.com/vchinnipilli/kubestriker.git
切换至项目目录:
$ cd kubestriker
安装依赖组件:
$ pip install -r requirements.txt
避免弹出错误提醒:
$ pip install prompt-toolkit==1.0.15 $ pip install -r requirements.txt
部署Kubestriker:
$ python -m kubestriker
此时,我们将能够看到当前工作目录中已经生成了工具实例。
使用pip安装
为了安装并运行Kubestriker,我们需要在本地系统上安装好pip工具。接下来,我们可以在命令行工具中运行下列命令。
创建Python虚拟环境:
$ python3 -m venv env
激活Python虚拟环境:
$ source env/bin/activate
使用pip安装Kubestriker:
$ pip install kubestriker
避免弹出错误提醒:
$ pip install prompt-toolkit==1.0.15 $ pip install kubestriker
部署Kubestriker:
$ python -m kubestriker
此时,我们将能够看到当前工作目录中已经生成了工具实例。
如何配置Kubestriker容器
点击【这里】获取Kubestriker容器的最新发布版本。
配置Kubestriker容器:
$ docker run -it --rm -v /Users/vasantchinnipilli/.kube/config:/root/.kube/config -v "$(pwd)":/kubestriker --name kubestriker cloudsecguy/kubestriker:v1.0.0
将商上述命令中的用户vasantchinnipilli 替换成你自己的用户名,并修改Kube配置文件的绝对路径:
$ docker run -it --rm -v /Users/<yourusername>/.kube/config:/root/.kube/config -v "$(pwd)":/kubestriker --name kubestriker cloudsecguy/kubestriker:v1.0.0
部署Kubestriker:
$ python -m kubestriker
此时,我们将能够看到当前工作目录中已经生成了工具实例。

支持的扫描类型
认证扫描
认证扫描要求用户至少具有只读权限,并在扫描期间提供令牌。请使用下面提供的链接创建只读用户:
Amazon EKS只读权限用户创建:【传送门】
Azure AKS只读权限用户创建:【传送门】
Google GKE只读权限用户创建:【传送门】
使用基于访问控制的角色创建一个主题:【传送门】
从EKS集群获取一个令牌:
$ aws eks get-token --cluster-name cluster-name --region ap-southeast-2
从AKS集群获取一个令牌:
$ az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
从GKE集群获取一个令牌:
$ gcloud container clusters get-credentials CLUSTER_NAME --zone=COMPUTE_ZONE
从服务账号获取一个令牌:
$ kubectl -n namespace get secret serviceaccount-token -o jsonpath='{.data.token}'
从一个Pod直接获取令牌或通过命令行执行漏洞获取令牌:
$ cat /run/secrets/kubernetes.io/serviceaccount/token
未认证扫描
如果允许对目标群集进行匿名访问,则可以对目标执行未认证扫描。
识别Kubernetes主节点上开放的不安全端口:

使用kubelet读写和只读开放端口来识别Worker节点:

许可证协议
本项目的开发与发布遵循Apache开源许可证协议。
项目地址
Kubestriker:【GitHub传送门】
参考资料
https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html
https://docs.microsoft.com/en-us/azure/aks/control-kubeconfig-access
https://cloud.google.com/kubernetes-engine/docs/how-to/iam
https://medium.com/@rschoening/read-only-access-to-kubernetes-cluster-fcf84670b698
https://hub.docker.com/repository/docker/cloudsecguy/kubestriker

韩国 1F
这个工具看起来挺实用的,正好最近在搞K8s安全测试
台湾省台北市 B1
@ 幽光使 比手动kubectl get all查配置快多了,省时间
江西省赣州市 2F
有人用过吗?扫描效果怎么样?
印度尼西亚 3F
之前手动检查配置太麻烦了,这个能省不少事
印度尼西亚 4F
安装步骤写得很详细,新手跟着做应该没问题
北京市 5F
为啥要装两个版本的prompt-toolkit?
广东省深圳市 6F
支持云厂商这点不错,我们用的就是EKS
马来西亚 7F
扫描报告能导出成什么格式啊?
江苏省南京市 8F
容器部署那块用户名替换要注意,上次就踩坑了
上海市 9F
权限提升检测这个功能很关键
湖北省十堰市 10F
感觉比kube-bench好用,界面更友好
中国 B1
@ 梦入江南 界面友好有啥用,关键得扫得准啊
上海市 11F
pip安装时卡在prompt-toolkit了,非得降级?
北京市 B1
@ CopperLeaf 依赖问题确实烦,我直接用了conda
辽宁省大连市 B1
@ CopperLeaf 我也卡那了,降级到1.0.15就没事了,不知道为啥非得这个版本。
上海市 12F
正好在测GKE集群,拿它试试看能揪出啥问题
河南省郑州市 13F
这工具能检测RBAC配置错误不?
广东省深圳市 B1
@ 疏林晚照 RBAC检测这块用起来还行,能揪出一些没注意到的过度授权。
印度 14F
之前用kube-hunter漏了好几个问题,希望这个靠谱点
辽宁省沈阳市 15F
扫描完直接给修复建议就好了,光列问题有点懵
广东省佛山市顺德区 16F
新手问下:没开匿名访问是不是就不能未认证扫描了?
湖南省怀化市 B1
@ 星界流浪者 未认证扫描对生产环境有风险吧?
广东省 17F
导出报告支持PDF吗?还是只有JSON?
印度 18F
部署容器时挂载kubeconfig路径写错了直接报错,折腾半小时 😅
日本 19F
这个工具能扫描Pod安全策略吗?
韩国 20F
EKS集群试了下,发现几个配置问题,挺准的
日本 21F
为啥要重复安装prompt-toolkit啊?
日本 22F
之前手动检查网络策略累死了,这个省事
韩国 23F
扫描报告能直接发邮件吗?
湖南省长沙市 24F
权限提升检测确实重要,上次就遇到类似问题
河北省唐山市 25F
安装过程挺顺利的,就是虚拟环境那步要注意
广东省汕头市 26F
有人试过在AKS上用吗?效果如何?
湖南省娄底市 27F
感觉界面比kube-hunter清爽
山东省 28F
版本兼容性怎么样?支持k8s 1.25吗?
北京市 29F
RBAC扫描结果详细吗?
北京市 30F
扫描报告好像只能导出JSON,要PDF得自己转一下,有点不方便。
天津市 31F
看起来功能挺全的,正好下周做安全审计,拿来试试水。
新加坡 32F
云厂商都支持,挺省事的
日本 33F
权限提升那块儿讲得挺细的