任务

Edit This Page

使用 Falco 审计

使用 Falco 采集审计事件

Falco是一个开源项目,用于为云原生平台提供入侵和异常检测。本节介绍如何设置 Falco、如何将审计事件发送到 Falco 公开的 Kubernetes Audit 端点、以及 Falco 如何应用一组规则来自动检测可疑行为。

    安装 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 并添加此配置。

    配置 Kubernetes 审计

    1. 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
      
    1. 使用以下选项启动 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。

    第二类规则跟踪正在创建或销毁的资源,包括:

    • Deployments
    • Services
    • ConfigMaps
    • Namespaces
    • Service accounts
    • Role/ClusterRoles
    • Role/ClusterRoleBindings

    最后一类规则仅负责显示 Falco 收到的所有审核事件。默认情况下,此规则是禁用的,因为它可能会很吵。

    有关更多详细信息,请参阅 Falco 文档中的Kubernetes审计事件

    反馈