免费发布信息
当前位置:APP交易 > 热点资讯 > 资产交易 >  Kubestriker:一款针对Kubernetes的快速安

Kubestriker:一款针对Kubernetes的快速安

发表时间:2021-04-25 15:54:53  来源:红帽社区  浏览:次   【】【】【
红帽社区是一个垂直网络安全社区,融合“红帽先锋”正能量精神,每日分享最新安全资讯,提供安全问答、靶场、众测、漏洞库等功能,是网络安全爱好者学习、交流的优质社区。

基本概述

Kubestriker是一款针对Kubernetes的快速安全审计工具,Kubestriker可以对Kubernetes的infra容器执行大量深入检测,以帮助研究人员识别其中存在的安全错误配置以及其他安全问题。这些安全问题可能是工程师或开发人员在使用Kubernetes会遇到的,尤其是在大规模生成环境之中,一个小小的安全问题可能会带来严重的安全风险。

Kubestriker不依赖于特定平台运行,它可以在多个平台上工作,比如说自托管的Kubernetes、Amazon EKS、Azure AKS和Google GKE等。

支持的功能

扫描自管理和云提供商管理的Kubernetes infra;

各种服务或开放端口的网络侦察阶段扫描;

如果启用了不安全的读写或只读服务,则执行自动扫描;

执行验证扫描和未验证扫描;

扫描群集中的各种IAM错误配置;

扫描各种包含错误配置的容器;

扫描各种包含错误配置的Pod安全策略;

扫描各种错误配置的网络策略;

扫描群集中某个主题的权限;

在容器上运行命令并返回输出;

提供包含错误配置的服务的终端节点;

提供可能的权限提升详细信息;

详细的扫描报告;

工具安装

克隆代码库并安装

在安装该工具或克隆并运行该应用程序之前,我们需要在本地安装好GitPython 3pip。我们建议广大研究人员在虚拟环境中安装和使用该工具。

接下来,我们可以在命令行工具中运行下列命令。

创建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//.kube/config:/root/.kube/config -v "$(pwd)":/kubestriker --name kubestriker cloudsecguy/kubestriker:v1.0.0

部署Kubestriker:

$ python -m kubestriker

此时,我们将能够看到当前工作目录中已经生成了工具实例。

支持的扫描类型

认证扫描

认证扫描要求用户至少具有只读权限,并在扫描期间提供令牌。请使用下面提供的链接创建只读用户:

Amazon EKS只读权限用户创建:https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html

Azure AKS只读权限用户创建:https://docs.microsoft.com/en-us/azure/aks/control-kubeconfig-access

Google GKE只读权限用户创建:https://cloud.google.com/kubernetes-engine/docs/how-to/iam

使用基于访问控制的角色创建一个主题:https://medium.com/@rschoening/read-only-access-to-kubernetes-cluster-fcf84670b698

从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开源许可证协议。


文章来源:https://www.freebuf.com/sectool/266481.html


责任编辑:
声明:本平台发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。

德品

1377 678 6470