Latest Dynatrace Preview
Dynatrace integration with Microsoft Defender for Cloud CNAPP platform allows users to unify and contextualize vulnerability findings across DevSecOps tools and products, enabling central prioritization, visualization, and automation of security findings.
In the initial version of this integration, we bring container image vulnerability assessments (part of the Microsoft Defender for Containers plan), powered by Microsoft Defender Vulnerability Management capabilities.
Microsoft Defender for Cloud continuously exports security findings to Azure Event Hubs.
An Azure Function app pre-processes the events and sends them to Dynatrace, taking advantage of the OpenPipeline dedicated security events ingest endpoint.
The fetched data is mapped to the Dynatrace semantic conventions.
Data is stored in Grail in a unified format, in a default bucket called default_security_custom_events
. For details, see Built-in Grail buckets.
See below for the Microsoft Defender for Cloud and Dynatrace requirements.
openpipeline.events_security
scope and save it for later.To set up Microsoft Defender for Cloud ingestion, follow the steps below.
To download and deploy the configuration in your Azure subscription
Download the azure_appsec_deployment.bicep file.
In Azure CLI, run az login
and select your Dynatrace subscription.
Select a resource group or create a new one.
To create a new resource group, run the command below, making sure to replace <RESOURCE_GROUP_NAME>
and <LOCATION>
with your values.
az group create --name <RESOURCE_GROUP_NAME> --location <LOCATION>
To view a list of locations:
az account list-locations
Run the bicep deployment, making sure to replace <RESOURCE_GROUP_NAME>
, <YOUR_ENVIRONMENT_ID>
, <DT_TOKEN>
, and <DEPLOYMENT_NAME>
with your values.
az deployment group create --resource-group <RESOURCE GROUP NAME>\--template-file deployment.bicep --parameters dt_api_url=https://<YOUR_ENVIRONMENT_ID>.live.dynatrace.com/platform/ingest/v1/events.security\dt_token=<DT_TOKEN> --name <DEPLOYMENT_NAME>
To verify that your deployment is complete, in Azure portal, go to your resource group and select Deployments.
Set up continuous export to the Dynatrace event hub.
In Continuous export, make sure to enter the following information:
For Export configuration, select the resource group you used or created at step 3 in instructions.
For Export target, select the name of your Dynatrace subscription created at step 4 in instructions.
The event hub namespace, name, and policy name will be automatically filled in with the data you created during deployment.
Example configuration:
Verify configuration by running the following queries in Notebooks:
For security finding events:
fetch events| filter dt.system.bucket == "default_security_custom_events"| filter event.kind == "SECURITY_EVENT"AND event.provider=="Microsoft Defender for Cloud"AND event.type=="VULNERABILITY_FINDING"
For scan events:
fetch events| filter dt.system.bucket == "default_security_custom_events"| filter event.kind == "SECURITY_EVENT"AND event.provider=="Microsoft Defender for Cloud"AND event.type=="VULNERABILITY_SCAN"
With the ingested data, you can accomplish various use cases, such as
Vulnerability finding events store the individual vulnerability findings reported by Microsoft Defender for Cloud per container image and component.
Vulnerability scan events indicate coverage of scans for individual container images.
The container_image
namespace is added to store all the container image-related information with the following fields:
container_image.digest
represents the container image digest; this value can be used to match to the runtime containers
container_image.repository
represents the container repository name
container_image.registry
represents the container registry name
container_image.tags
represents the labeled versions of the container images
CONTAINER_IMAGE
: All the findings from Microsoft Defender for Cloud are generated by vulnerability assessments of container images set with CONTAINER_IMAGE
value in the object.type
field, and the container_image
namespace is added.
dt.security.risk.level
is mapped directly from the severity level set by Microsoft Defender for Cloud.
dt.security.risk.score
is mapped directly from the severity score set by Microsoft Defender for Cloud.
dt.security.risk.level
(mapped from finding.severity
)dt.security.risk.score
(mapped from finding.score
)