Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
Falco是一个开源项目,用于为云原生平台提供入侵和异常检测。本节介绍如何设置 Falco、如何将审计事件发送到 Falco 公开的 Kubernetes Audit 端点、以及 Falco 如何应用一组规则来自动检测可疑行为。
使用以下方法安装 Falco :
安装完成 Falco 后,请确保将其配置为公开 Audit Webhook。为此,请使用以下配置:
webserver:
enabled: true
listen_port: 8765
k8s_audit_endpoint: /k8s_audit
ssl_enabled: false
ssl_certificate: /etc/falco/falco.pem
此配置通常位于 /etc/falco/falco.yaml
文件中。如果 Falco 作为 Kubernetes DaemonSet 安装,请编辑 falco-config
ConfigMap 并添加此配置。
为 kube-apiserver webhook 审计后端创建一个kubeconfig文件。
cat <<EOF > /etc/kubernetes/audit-webhook-kubeconfig
apiVersion: v1
kind: Config
clusters:
- cluster:
server: http://<ip_of_falco>:8765/k8s_audit
name: falco
contexts:
- context:
cluster: falco
user: ""
name: default-context
current-context: default-context
preferences: {}
users: []
EOF
使用以下选项启动 kube-apiserver:
--audit-policy-file=/etc/kubernetes/audit-policy.yaml --audit-webhook-config-file=/etc/kubernetes/audit-webhook-kubeconfig
专门用于 Kubernetes 审计事件的规则可以在 k8s_audit_rules.yaml 中找到。如果审计规则是作为本机软件包安装或使用官方 Docker 镜像安装的,则 Falco 会将规则文件复制到 /etc/falco/
中以便使用。
共有三类规则。
第一类规则用于查找可疑或异常活动,例如:
-未经授权或匿名用户的任何活动。 -创建使用未知或不允许的镜像的 pod。 -创建特权 Pod,从主机安装敏感文件系统的 Pod 或使用主机网络的 Pod。 -创建 NodePort 服务。 -创建包含私有证书(例如密码和云提供商 secrets )的 ConfigMap。 -在正在运行的 Pod 上附加或执行命令。 -在一组允许的名称空间之外创建一个名称空间。 -在 kube-system 或 kube-public 命名空间中创建 pod 或服务帐户。 -尝试修改或删除系统 ClusterRole。 -创建一个 ClusterRoleBinding 到 cluster-admin 角色。 -创建 ClusterRole 时在动词或资源中使用通配符。 例如,过度赋权。 -创建具有写权限的 ClusterRole 或可以在 Pod 上执行命令的 ClusterRole。
第二类规则跟踪正在创建或销毁的资源,包括:
最后一类规则仅负责显示 Falco 收到的所有审核事件。默认情况下,此规则是禁用的,因为它可能会很吵。
有关更多详细信息,请参阅 Falco 文档中的Kubernetes审计事件。