Seccomp profile is not configured This product is not supported for your selected
Datadog site . (
).
Id: kubernetes-seccomp-profile-is-not-configured
Platform: Kubernetes
Severity: Medium
Category: Insecure Configurations
Learn More Description Containers should be configured with a secure seccomp profile to restrict potentially dangerous syscalls. The container or pod field securityContext.seccompProfile.type should be set to ‘RuntimeDefault’ or ‘Localhost’; pod-level settings apply to containers when defined. If the deprecated annotation seccomp.security.alpha.kubernetes.io/defaultProfileName is used, it should be ‘runtime/default’; if neither fields nor annotation are present, the seccomp profile is considered missing.
Compliant Code Examples apiVersion : v1
kind : Pod
metadata :
name : pod-test-1
annotations :
seccomp.security.alpha.kubernetes.io/defaultProfileName : 'runtime/default'
spec :
containers :
- name : foobar
image : foo/bar:latest
apiVersion : apps/v1
kind : Deployment
metadata :
name : securitydemo
labels :
app : web
spec :
replicas : 2
selector :
matchLabels :
app : web
template :
metadata :
labels :
app : web
spec :
securityContext :
runAsUser : 19000
seccompProfile :
type : RuntimeDefault
containers :
- name : frontend
image : nginx
ports :
- containerPort : 80
securityContext :
allowPrivilegeEscalation : false
- name : echoserver
image : k8s.gcr.io/echoserver:1.4
ports :
- containerPort : 8080
securityContext :
allowPrivilegeEscalation : false
apiVersion : apps/v1
kind : Deployment
metadata :
name : securitydemo
labels :
app : web
spec :
replicas : 2
selector :
matchLabels :
app : web
template :
metadata :
labels :
app : web
spec :
securityContext :
runAsUser : 19000
containers :
- name : frontend
image : nginx
ports :
- containerPort : 80
securityContext :
allowPrivilegeEscalation : false
seccompProfile :
type : RuntimeDefault
- name : echoserver
image : k8s.gcr.io/echoserver:1.4
ports :
- containerPort : 8080
securityContext :
allowPrivilegeEscalation : false
seccompProfile :
type : RuntimeDefault
Non-Compliant Code Examples apiVersion : v1
kind : Pod
metadata :
name : pod-test-1
spec :
containers :
- name : foobar
image : foo/bar:latest
---
apiVersion : v1
kind : Pod
metadata :
name : pod-test-2
annotations :
some-annotation : myannotation
spec :
containers :
- name : foobar
image : foo/bar:latest
---
apiVersion : v1
kind : Pod
metadata :
name : pod-test-3
annotations :
seccomp.security.alpha.kubernetes.io/defaultProfileName : 'rntim/dfl'
spec :
containers :
- name : foobar
image : foo/bar:latest
---
apiVersion : batch/v1beta1
kind : CronJob
metadata :
name : hello
spec :
schedule : "*/1 * * * *"
jobTemplate :
spec :
template :
metadata :
annotations :
seccomp.security.alpha.kubernetes.io/defaultProfileName : 'rntim/dfl'
spec :
containers :
- name : hello
image : busybox
imagePullPolicy : IfNotPresent
args :
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy : OnFailure
apiVersion : apps/v1
kind : Deployment
metadata :
name : securitydemo
labels :
app : web
spec :
replicas : 2
selector :
matchLabels :
app : web
template :
metadata :
labels :
app : web
spec :
securityContext :
runAsUser : 19000
containers :
- name : frontend
image : nginx
ports :
- containerPort : 80
securityContext :
allowPrivilegeEscalation : false
- name : echoserver
image : k8s.gcr.io/echoserver:1.4
ports :
- containerPort : 8080
securityContext :
allowPrivilegeEscalation : false
seccompProfile :
type : RuntimeDefault
apiVersion : apps/v1
kind : Deployment
metadata :
name : securitydemo
labels :
app : web
spec :
replicas : 2
selector :
matchLabels :
app : web
template :
metadata :
labels :
app : web
spec :
securityContext :
runAsUser : 19000
containers :
- name : frontend
image : nginx
ports :
- containerPort : 80
securityContext :
allowPrivilegeEscalation : false
- name : echoserver
image : k8s.gcr.io/echoserver:1.4
ports :
- containerPort : 8080
securityContext :
allowPrivilegeEscalation : false
seccompProfile :
type : Unconfined