Detection rules › Kusto

Dynatrace Application Security - Third-Party runtime vulnerability detection

Status
available
Severity
medium
Time window
1d
Group by
SecurityProblemId
Source
github.com/Azure/Azure-Sentinel

'Detect Third-Party runtime vulnerabilities in your environment insights by snyk'

MITRE ATT&CK coverage

Rule body kusto

id: af99b078-124b-543a-9a50-66ef87c09f6a
name: Dynatrace Application Security - Third-Party runtime vulnerability detection
description: |
  'Detect Third-Party runtime vulnerabilities in your environment insights by snyk'
severity: Medium
status: Available
requiredDataConnectors:
  - connectorId: DynatraceRuntimeVulnerabilities
    dataTypes:
      - DynatraceSecurityProblems
queryFrequency: 1d
queryPeriod: 1d
triggerOperator: gt
triggerThreshold: 0
tactics:
  - DefenseEvasion
  - Execution
  - Impact
  - InitialAccess
  - LateralMovement
  - Persistence
  - PrivilegeEscalation
relevantTechniques:
  - T1140
  - T1059
  - T1565
  - T1659
  - T1210
  - T1554
  - T1548
eventGroupingSettings:
  aggregationKind: AlertPerResult
query: |
  DynatraceSecurityProblems
  | where VulnerabilityType != "CODE_LEVEL" and DAVISRiskLevel == "CRITICAL"  and Muted == false
  | summarize  arg_max(LastUpdatedTimeStamp, *) by SecurityProblemId
entityMappings:
  - entityType: URL
    fieldMappings:
      - identifier: Url
        columnName: Url
alertDetailsOverride:
  alertDisplayNameFormat: 'Dynatrace Third-party runtime vulnerability detected - {{DisplayId}} : {{Title}}'
  alertDescriptionFormat: |
    Third-party runtime vulnerability ({{ExternalVulnerabilityId}}) detected in package ({{PackageName}}), more details available from Dynatrace at {{Url}}.
  alertSeverityColumnName: Severity
customDetails:
  SecProbIdentifier: SecurityProblemId
  DisplayIdentifier: DisplayId
  SecurityProblemUrl: Url
  DAVISRiskLevel: DAVISRiskLevel
  PackageName: PackageName
  Technology: Technology
  VulnerabilityType: VulnerabilityType
  CVEIds: CVEIds
  ExternVulnIdentifier: ExternalVulnerabilityId
  DAVISRiskScore: DAVISRiskScore
  DAVISRiskVector: DAVISRiskVector
  DAVISExposure: DAVISExposure
  DAVISPublicExploit: DAVISPublicExploit
  DAVISDataAssets: DAVISDataAssets
  DAVISVulnFuncUsage: DAVISVulnerableFunctionUsage
incidentConfiguration:
  createIncident: false
  groupingConfiguration:
    enabled: false
    reopenClosedIncident: false
    lookbackDuration: PT5H
    matchingMethod: AllEntities
version: 1.0.3
kind: Scheduled

Stages and Predicates

Stage 1: source

DynatraceSecurityProblems

Stage 2: where

| where VulnerabilityType != "CODE_LEVEL" and DAVISRiskLevel == "CRITICAL"  and Muted == false

Stage 3: summarize

| summarize  arg_max(LastUpdatedTimeStamp, *) by SecurityProblemId

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
DAVISRiskLeveleq
  • CRITICAL transforms: cased
Mutedeq
  • false transforms: cased
VulnerabilityTypene
  • CODE_LEVEL transforms: cased

Output fields

Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.

FieldSource
SecurityProblemIdsummarize