首页/安全/渗透测试与安全评估速查/Kubernetes API 匿名访问检查
内网评估60 条

Kubernetes API 匿名访问检查

K8s API Server 匿名可访问时可读取集群信息:核查匿名认证与授权配置、证书与端口暴露面。

K8s API Server 暴露面

Kubernetes 的 API Server 是整个集群的控制面入口,默认端口为 6443。若放开匿名认证,或对外暴露且没有前置身份认证,访问方就能读取集群版本、命名空间、Pod、服务与配置对象;凭借这些信息可进一步定位镜像仓库、内部服务地址与凭据来源,风险接近集群接管。检查围绕三件事:匿名认证配置、基于角色的访问控制绑定是否过宽,以及证书与端口暴露面。托管集群与自建集群的暴露面不同,以实际网络可达范围为准。

基本信息

控制面端口6443 为 API Server,另有配套组件端口
核查项匿名认证配置、角色绑定范围、证书与暴露方式
暴露信号无凭据请求即可返回版本或资源列表
处置方向关闭匿名访问、最小权限绑定、管理面网络隔离

典型使用场景

  • 自建集群:为便于运维把 API 暴露到办公网或公网
  • 仪表盘与工具:面板或客户端配置了宽泛的集群级权限
  • 服务账号滥用:Pod 内的服务账号令牌权限过大,容器被突破后直达控制面
  • 多云对接:外部平台为纳管集群而持长期高权限凭据
  • 配套端口:节点组件与管理面板的可达性常被遗漏

只读检查示例

只读检查示例
curl -sk --max-time 5 https://10.0.30.5:6443/version
curl -sk --max-time 5 https://10.0.30.5:6443/api/v1/namespaces
# 能返回数据即说明匿名可访问;记录响应状态与返回内容范围后停止
# 不执行创建、修改、删除类请求,也不读取密钥对象的具体内容

暴露面与风险

形态判定依据风险后果
匿名可读资源列表无凭据请求返回命名空间等数据集群结构泄露,可定位薄弱服务
角色绑定过宽服务账号或用户具备集群级权限一处应用漏洞即可操作整个集群
管理面暴露办公网或公网可达控制面端口凭据被窃取的概率显著上升
配套组件暴露面板与节点组件可达常绕过控制面权限直接操作节点
集群内禁止任何写操作:创建或修改资源会直接影响业务负载,只做读请求与配置核查。
托管集群的控制面通常由云厂商统一防护,自建集群需要自行保证隔离;评估结论要写清是哪种形态。

易错点

  • 在集群内做写操作验证:会直接影响业务负载,可能造成服务中断
  • 只核查控制面,漏掉节点组件与管理面板:这些端口常绕过权限校验
  • 忽略服务账号令牌权限:容器被突破后,令牌决定攻击者能走多远
  • 把匿名只读当低风险:集群结构泄露足以支撑后续精准攻击
  • 未区分托管与自建:两者暴露面差异大,结论口径要写明部署形态

数据来源与参考

  • Kubernetes 官方文档(认证与授权)
  • CIS Kubernetes Benchmark
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌