IceKube:探索Kubernetes集群安全的新工具

IceKube 是一个强大的开源工具,专为帮助您从低权限起点发现通往 Kubernetes 集群中
cluster-admin
的攻击路径而设计。通过以图形数据库的形式展示集群资源之间的关系,IceKube使安全研究人员和运维人员能够更直观地理解潜在的安全风险。
项目设置与使用
启动 IceKube 非常简单,只需一行
docker-compose up -d
命令,就可以运行 Neo4j 数据库,访问地址为
http://localhost:7474/
。之后使用
poetry install --no-dev
或
pip install --user .
安装 CLI,并确保
kubectl
的当前上下文已指向目标集群并拥有
cluster-admin
权限。
要直接在 pip 中安装 IceKube,请执行
pip install icekube
。要启动 Neo4j Docker 容器,可以使用命令
docker run -d -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=none -v $PWD/data:/data neo4j:4.4
。
主要的命令包括:
icekube enumerate:枚举所有资源并保存到 Neo4j。icekube attack-path:生成攻击路径关系。icekube run:快速执行枚举和攻击路径生成。icekube purge:清除 Neo4j 中的所有数据。
在 Neo4j 浏览器中,建议关闭“连接结果节点”设置以优化查询性能。
权限要求与资源过滤
IceKube 需要有对目标集群的高级权限以枚举资源,通常需要读取所有资源(包括秘密)的权限。不用担心,IceKube 不会持久化从 Secrets 获取的敏感数据。您可以使用
--ignore
参数来过滤不想枚举的资源类型。
应用场景
- 安全审计:定期检查您的 Kubernetes 集群,找出可能导致权限升级的潜在路径。
- 漏洞管理:在新漏洞被公开后,快速评估其可能带来的影响。
- 教育与培训:作为理解 Kubernetes 安全性的教学工具,帮助团队了解攻击者可能如何进行横向移动。
项目特点
- 图形化视图:使用 Neo4j 可视化攻击路径,让复杂的网络关系变得一目了然。
- 资源筛选:可根据需求忽略特定类型的资源,保护敏感信息。
- 一键运行:
icekube run命令简化流程,迅速分析整个集群。 - 安全设计:不存储 Secrets 数据,仅保留元数据,确保安全性。
- 易于上手:提供引导式查询示例,帮助新用户快速熟悉使用。
无论您是经验丰富的 DevOps 工程师,还是对 K8s 安全感兴趣的初学者,IceKube 都是一个值得尝试的强大工具。立即开始使用 IceKube,提升您对 Kubernetes 集群安全的洞察力!
版权归原作者 林泽炯 所有, 如有侵权,请联系我们删除。