关于KubiScan
KubiScan是一款能够帮助研究人员扫描Kubernetes集群中高风险权限的强大工具,在该工具的帮助下,研究人员可以轻松识别Kubernetes基于角色访问控制(RBAC)授权模型中的高风险权限。
攻击者可能利用高风险权限来攻击集群,而KubiScan可以帮助集群管理员识别和管理这种安全风险。这款工具在大型环境中尤其有用,因为在大型环境中有许多权限很难跟踪。KubiScan能够收集关于高风险角色\集群角色(roles\clusterroles)、角色绑定\集群角色绑定(rolebindings\clusterrolebindings)、用户和Pods的相关信息,并且可以将传统的手工流程以自动化的形式完成,并为管理员提供降低风险所需的可见性。
识别高风险角色\集群角色; 识别高风险角色绑定\集群角色绑定; 识别高风险主体(用户、组和服务账号); 识别高风险Pods\容器; 从Pods中导出令牌; 获取跟角色、集群角色或主体(用户、组和服务账号)相关联的角色绑定\集群角色绑定; 列举指定的主体(用户、组和服务账号); 列举角色的角色绑定\集群角色绑定; 显示可通过变量访问敏感数据的Pods; 获取集群的BootScrap令牌;
Python 3.5+ Pip3; Kubernetes Python客户端; Prettytable Openssl
apt-get update
apt-get install -y python3 python3-pip
pip3 install kubernetes
pip3 install PTable
接下来,运行下列命令以kubiscan别名来使用KubiScan:
alias kubiscan='python3 /<KubiScan_folder/KubiScan.py'
在主节点上,存在有~/.kube/config文件以及所有相关证书的情况下,运行下列命令:
kubiscan <command>
比如说,下列命令将显示所有的风险主体:
kubiscan -rs
我们可以从远程主机上运行该工具,你将需要一个特权服务账号,然后运行下列命令:
kubiscan -ho <master_ip:master_port> -t /token <command>
广大研究人员可以直接在命令行窗口中运行下列命令:
python3 KubiScan.py -e
或在容器中运行下列命令:
kubiscan -e
工具演示视频
下面演示的是KubiScan的基础使用方法:
视频地址:https://cyberark.wistia.com/medias/0lt642okgn?wvideo=0lt642okgn
项目中有一个名为risky_roles.yaml的文件,该文件包含了风险橘色的优先级模板。虽然每个角色的类型都为Role,但这些模板能够跟集群中任何的Role\ClusterRole进行比对。
每一个这样的角色都会跟集群中的角色对比,如果检测到集群中包含风险角色,则会对风险进行标记。
我们已经将所有的高风险角色添加进了模板,研究人员也可以根据自己的需要去修改或添加更多的风险角色。
KubiScan:https://github.com/cyberark/KubiScan
本项目的开发与发布遵循GPL-3.0开源许可证协议。