Kaspersky Container Security

限制和警告

2024年7月4日

ID 275679

卡巴斯基容器安全 1.2 有许多限制,但对解决方案的运行并无影响:

  • 为了确保卡巴斯基容器安全使用的 BPF 程序与众多 Linux 发行版和 Linux 内核版本最大程度兼容,该解决方案使用了 eBPF CO-RE 技术。卡巴斯基容器安全直接与 Linux 主机服务器(节点)的内核配合使用,因此必须遵守以下要求和限制:
    • 要使用 eBPF CO-RE,必须使用配置值CONFIG_DEBUG_INFO_BTF = y来编译 Linux 内核。大多数 Linux 发行版在构建随发行版提供的内核时都会启用此配置值。
    • 如果手动更新内核版本,您必须检查上述配置值是否可用。

    对于没有内置支持 eBPF CO-RE 的早期版本的 Linux 发行版和 Linux 内核,卡巴斯基容器安全可确保向后兼容性。

  • 如果在主机服务器(节点)上使用手动编译的 Linux 内核,则必须在内核配置期间启用以下设置,以确保使用容器运行时配置文件进行运行时监控:

    CONFIG_BPF=y

    CONFIG_BPF_SYSCALL=y

    CONFIG_BPF_EVENTS=y

    CONFIG_NET_CLS_BPF=m

    CONFIG_NET_ACT_BPF=m

    为了确保更好的 BPF 代码性能,我们建议启用以下设置:
    CONFIG_BPF_JIT = y
    CONFIG_HAVE_BPF_JIT = y

  • 如果要使用卡巴斯基容器安全容器运行时配置文件与 CNI Cilium 同时进行运行时监控(节点代理 Pod 与 cilium-agent 部署在同一主机服务器上),必须执行以下操作:
    • 在部署了node-agent的集群中,将 ConfigMap cilium-config 的data.bpf-filter-priority参数的值指定为大于 1。

      我们建议为data.bpf-filter-priority参数指定 5。

    • 重新启动 cilium-agent pod 以应用指定的设置。
  • 为了访问 Kubernetes,卡巴斯基容器安全使用了 Kubernetes 中提供的动态访问控制器的功能。通过在 Kubernetes API 和 kube-agent 之间配置授权,可以加强集群的安全性,从而确保解决方案的动态访问控制器的运行。授权必须按照 Kubernetes 说明进行配置。

    我们建议将 kube-agent 的访问限制为与 Kubernetes API 服务器进行数据交换。为此,必须应用以下 Kubernetes 网络策略:

    ---

    apiVersion: networking.k8s.io/v1

    kind: NetworkPolicy

    ––metadata:

    labels:

    app: kcs

    name: allow-kube-api-to-kube-agent

    namespace: {{ $.Release.Namespace }}

    spec:

    podSelector:

    matchLabels:

    app: kube-agent

    ingress:

    - from:

    - podSelector:

    matchLabels:

    component: kube-apiserver

    ports:

    - protocol: TCP

    port: 8443

Did you find this article helpful?
What can we do better?
Thank you for your feedback! You're helping us improve.
Thank you for your feedback! You're helping us improve.