Scenario: Detection Model Exceptions for Container Security¶
This scenario can be useful, if you don't want to use namespace exclusions in Container Security but don't want OATs/Workbenches generated for known as-designed behavior. In this example we're dealing with two exceptions for privileged containers created by Calico and Istio.
Without namespace exclusions the deployment of Calico and Istio would generate a couple of OATs in Vision One:

Here, we're going to set exceptions for these detections.
Prerequisites¶
- Playground One EKS EC2
- Vision One Container Security
Verify, that you have Deploy Calico and Deploy Istio enabled in your configuration.
...
Section: Kubernetes Deployments
Please set/update your Integrations configuration
...
Deploy Calico? [true]:
...
Deploy Istio? [true]:
...
Container Security¶
Deploy Policy¶
Generally, one does not want to run privileged containers, but there might be some reasons for them. So below we're configuring a policy which blocks containers with extended privileges but allows them in two dedicated namespaces:
Below, the upper parts of the deployment policy:



Runtime Rules¶
The runtime rules assigned to the policy do have rule TM-00000031 assigned:


Detection Model Management¶
Detection Model Exception for Calico¶
Calico creates violations against the runtime rule TM-00000031 by several containers. This is by design and can be excluded.
Example on calico-csi:

This allows us to create an exception.
- Targets
- Field:
ALL
- Field:
- Event Source
- Event type:
ALL
- Event type:
- Match Criteria
- Field type:
detection_name - Field:
ruleName - Values:
.*Launch Privileged Container - Edit using wildcards: Checked
- Field type:
- AND
- Field type:
container_identifier - Field:
k8sNamespace - Values:
calico-system
- Field type:
- AND
- Field type:
container_identifier - Field:
containerName - Values:
calico-csi,flexvol-driver,csi-node-driver-registrar,calico-node
- Field type:
The resulting exception should look like this:

Detection Model Exception for Istio¶
The deployment of Istio contains a CNI which runs as a privileged pod. This is by design and can be excluded with the exception below:

Deploy the EKS Cluster¶
Create the PGO EKS-EC2 cluster by running
Verification¶
Amongst other namespaces you should have a couple of pods running inside the Calico and Istio namespaces:
NAMESPACE NAME READY STATUS RESTARTS AGE
calico-apiserver calico-apiserver-546b9bf5dd-2f4pw 1/1 Running 0 10m
calico-apiserver calico-apiserver-546b9bf5dd-r249x 1/1 Running 0 17m
calico-system calico-kube-controllers-5cf8f69bdb-q47qt 1/1 Running 0 10m
calico-system calico-node-ltj46 1/1 Running 0 16m
calico-system calico-node-qt52v 1/1 Running 0 18m
calico-system calico-node-tp6mv 1/1 Running 0 10m
calico-system calico-typha-59b58f479b-gwblv 1/1 Running 0 10m
calico-system calico-typha-59b58f479b-jp9mv 1/1 Running 0 16m
calico-system csi-node-driver-64tsw 2/2 Running 0 9m56s
calico-system csi-node-driver-gzj9d 2/2 Running 0 18m
calico-system csi-node-driver-w264r 2/2 Running 0 16m
istio-system istio-cni-node-6xxlt 1/1 Running 0 16m
istio-system istio-cni-node-96qpv 1/1 Running 0 10m
istio-system istio-cni-node-kc98b 1/1 Running 0 18m
istio-system istio-ingressgateway-9cc99c9db-g7qc4 1/1 Running 0 10m
istio-system istiod-68659fc5b5-trvn9 1/1 Running 0 19m
This proves, that Calico and Istio are up including their cni nodes.
Head over to XDR Threat Investigation -> Observed Attack Techniques and verify, that there are no OATs listed in regards Privileged Containers.
🎉 Success 🎉