See below for the mechanism that Dynatrace Application Security uses to generate third-party vulnerabilities and code-level vulnerabilities.
To detect third-party vulnerabilities in your environment, Application Security evaluates software components (libraries) and runtime components (for example, Kubernetes packages).
Libraries are reported by OneAgent when a process is loading them. Therefore, only vulnerabilities in libraries that are in use will be reported, thus reducing vulnerability noise. All processes are constantly checked for new library loads.
Kubernetes packages are runtime components used by the Kubernetes cluster. They are reported by OneAgent once the component is in use on a node.
Examples of Kubernetes packages that Dynatrace tracks and scans for vulnerabilities:
kube-apiserver
etcd
kube-scheduler
kube-controller-manager
cloud-controller-manager
kubelet
kubeproxy
Application Security checks the name and version of the vulnerable software and runtime component.
It does not check:
As soon as the vulnerable software or runtime component is used by your application, a vulnerability is issued.
Once Dynatrace finds a new third-party vulnerability, it regularly checks for topology changes (for example, when a new reachable data source is involved).
Depending on the vulnerable component, Dynatrace uses the following feeds:
Feeds are checked for updates every five minutes. If there's a new feed available, the information is pushed to the Dynatrace Cluster via Cloud Control/Mission Control. Updated vulnerability feeds are imported into the Dynatrace Cluster within two hours.
Based on the existent vulnerability feeds, Dynatrace searches for new vulnerabilities in your environment every minute.
For vulnerability feed problems, see The feed import isn't working.
To determine external exposure and affected data assets, Dynatrace considers the following:
A third-party vulnerability is closed automatically when the root cause (for example, loading a vulnerable library) is no longer present. When no process group has been reporting any vulnerable components, such as libraries for more than two hours, the vulnerability is marked as Resolved
. There are several reasons why this can happen:
As long as the affected process is down, a vulnerability isn't considered relevant or impacting the environment. When the process is up again, Dynatrace checks on it immediately and, if the process is affected, the vulnerability is reopened.
Code-level vulnerabilities are identified based on data flows through the application. To gather these insights, OneAgent evaluates all input data that is processed by the application and identifies where user-generated inputs can be used to exploit a vulnerability in the code.
The risk of a vulnerability is Critical
.
Additionally, for every code-level vulnerability, all entities related to the affected process group are continuously analyzed. As a result, the code-level vulnerability gets additional information about
A code-level vulnerability is closed automatically if the vulnerable process has been restarted and OneAgent can't detect any more data flows that can lead to the vulnerability. There are several reasons why this can happen: