kubearmor / KubeArmor

Runtime Security Enforcement System. Workload hardening/sandboxing and implementing least-permissive policies made easy leveraging LSMs (BPF-LSM, AppArmor).
https://kubearmor.io/
Apache License 2.0
1.32k stars 327 forks source link

securing KubeArmor pods and policies #1186

Open nyrahul opened 1 year ago

nyrahul commented 1 year ago

KubeArmor is a security engine and thus it is imperative that it follows all the security best practices. The aim is to ensure security of the KubeArmor itself. Much of the work towards following best security practices (such as not using privileged flag) is already followed. It is now time to notch up the security practices to next level. The proposition is as follows:

Ankurk99 commented 1 year ago

karmor recommend for KubeArmor Daemonset

daemon1024 commented 6 months ago

Potential Solution

DelusionalOptimist commented 5 months ago

For protecting KubeArmor with KubeArmor in BPF LSM, we need to:

daemon1024 commented 5 months ago
daemon1024 commented 4 months ago

Edge Case

dirsigler commented 3 months ago

Regarding "Use baseline level in enforce mode Pod Security Admission for KubeArmor namespace", how about providing a Namespace manifest within the Helm chart which already provide the specific labels to set the Pod Security Standards on it.

This way users could for example deploy the Chart via Helm and use their own Namespace via --namespace --create-namespace or implement the provided namespace with all the features out of the box.

DelusionalOptimist commented 2 months ago

Prioritize

Future

DelusionalOptimist commented 2 months ago

Host paths

KubeArmor

Snitch

Controller

DelusionalOptimist commented 2 months ago

Capabilities

KubeArmor/InitContainer

Snitch

DelusionalOptimist commented 2 months ago

Regarding "Use baseline level in enforce mode Pod Security Admission for KubeArmor namespace", how about providing a Namespace manifest within the Helm chart which already provide the specific labels to set the Pod Security Standards on it.

This way users could for example deploy the Chart via Helm and use their own Namespace via --namespace --create-namespace or implement the provided namespace with all the features out of the box.

Yep! This seems fairly straight and user friendly. Thanks for the suggestion @dirsigler. Also, no one is looking into this aspect right now so PRs welcome! : )

DelusionalOptimist commented 2 months ago

Signing container images SBOM PR - https://github.com/kubearmor/KubeArmor/pull/1735