1. 云原生安全
根据 gartner 的调查报告 https://www.gartner.com/smarterwithgartner/gartner-top-9-security-and-risk-trends-for-2020 可以看到云原生安全仍然是2020年的一个大的趋势,同时,我们也看到许多安全创业公司已经留下了自己的足迹,在 KubeCon 2020 中,安全也是云计算应用的热门话题。
下图是 CNCF 安全全景图:
CNCF 安全全景图
此外 CNCF 官方也发布了基于安全的 Kubernetes 认证专家 CKS。
2. 容器安全层面
需要关注的:
- 容器主机的安全
- 容器网络流量
- 容器应用安全性
- 应用程序的恶意行为
- 容器管理技术栈的安全
- 应用程序的基础层
- 构建流水线的完整性
几个原因:
- 不安全的 Kubelet API 接口
- 不受保护的 Helm Tiller 服务(现在已经废弃)
- 敏感的云元数据不受限制
- Secrets 未得到充分保护
- 缺乏网络策略
- 没有 Ingress 认证的内部服务
- 未经认证的 etcd 访问
- 特权/root 容器
- 过大的 ServiceAccount 权限
构建 K8s 应用时应注意的几个问题:
- 认证/授权:是否有认证和授权?
- 镜像扫描:在构建容器时,是否了解我们的基础镜像?是否只使用官方镜像?
- 运行的容器:应用是否需要 root 容器?容器的 namespace 是否正确?
- TLS:是否开启了 TLS?
- 安全和网络策略:Pod 是否开启了安全策略?服务端口是否会被入侵?连接的两个 Pod 是否需要互相通信?是否启用了 ACLs?是否开启了审计日志功能等等?
- Secrets:是否使用 sidecars 的形式注入 secrets?secrets 是存储在 vault 中还是纯文本?
3. 黑帽的建议
下图是黑帽论坛针对不同语言以及覆盖主要安全场景的各种工具的推荐。
扫描的场景
编程语言安全
4. 安全流水线设计
我们看到在 CNCF 的全景图中,现在有各种各样的工具,但是,目前很少有几个非常具有代表性的,我们也看到了 Blackhat 的建议。接下来看看我们根据 KubeSecOps 生态系统下面设计的安全流水线。
KubeSecOps Pipeline/Workflow
开发阶段
- IDE:可以是任意的 IDE,比如 Pycharm、IntelliJ 或者为 K8S 设置的 Lens。
- Open Policy Agent:它可以与 IDE 集成,并可用于在 linting 中定义策略(在编写 YAML 资源清单时)。
- Vault:用于 Secret 管理,和 git 集成保存凭证。
- Harbor:镜像仓库。
- Trivy:用于 Docker 镜像扫描的工具,所以和 Harbor 进行集成。
- TUF:更新框架,它用于镜像签名确保安全升级,所以还是和 Harbor 集成。
Staging 阶段
- Kube-Bench:非常优秀的 CIS 基准测试工具,同时也提供了一些建议和警告信息。
- Kube-Hunter:也是一种渗透工具,可以远程搜索网络、接口安全漏洞等。
- Kube-Audit:它提供了扫描资源清单和集群来提供审计功能。
- Illuminatio:它将扫描你的 kubernetes 集群的网络策略,建立相应的测试用例,并执行这些测试用例来确定策略是否有效。
生产环境
- Falco:Falco 是一个非常著名的运行时安全扫描器,它基于漏洞的内核扫描并实时通知环境中的安全攻击。
- Prometheus:Falco 可以使用 exporter 向 prometheus 提供指标,因此可以对任何安全漏洞产生警报。
- Grafana:Grafana 用于 Prometheus 监控指标数据的可视化,还可以向运维人员提供报警信息,然后运维人员可以将其提交给开发支持。
“原文链接:https://vaib16dec.medium.com/kubesecops-pipeline-container-security-in-a-cloudnative-ecosystem-e59bf19a713d ”