dt-sec-insights
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSecurity Insights Skill
安全洞察技能
Query and analyze Dynatrace security data in using DQL. Events
come from Dynatrace-native sources (RVA, RAP, Automated Detections, SPM) or
external products ingested via integrations (AWS Security Hub, Amazon
GuardDuty, GitHub Advanced Security, Snyk, Qualys, Tenable, and more).
security.events使用DQL查询并分析中的Dynatrace安全数据。事件来源于Dynatrace原生数据源(RVA、RAP、自动化检测、SPM)或通过集成接入的外部产品(AWS Security Hub、Amazon GuardDuty、GitHub Advanced Security、Snyk、Qualys、Tenable等)。
security.eventsWhat This Skill Covers
本技能覆盖范围
- Vulnerability management — open CVEs on running code from DT-native RVA (risk-ranked with Dynatrace Security Score and the four-dimension runtime assessment: vulnerable-function-in-use, public network exposure, reachable data assets, public exploit available) plus external SCA / SAST / image scanners.
- Compliance posture — DT-native KSPM (Kubernetes-only: CIS, DORA, NIST, STIG) plus CSPM/VSPM and external compliance/posture providers.
- Runtime attacks and threats — DT-native detections (RAP runtime attacks, Automated Detections rules) plus external detection providers.
- Threat intelligence — external threat-intelligence reports (AlienVault OTX pulses, CrowdStrike Falcon Intelligence) with actor / campaign / targeting context and indicators of compromise (IOCs); correlate reported IOCs / CVEs / techniques against your monitored environment. These are threat intel about the wild — not findings on your entities — and are queried separately.
- Scan coverage analysis — covered vs. not-covered k8s workloads/hosts/processes, by Dynatrace
scanning feature (,
Library Vulnerability Analytics,Operating System Vulnerability Analytics) or by external product.Code-level Vulnerability Analytics - Entity enrichment — map external findings to Dynatrace runtime entities (hosts, K8s workloads, cloud resources) via Smartscape.
- Dashboards / KPIs — tiles, top-N tables, trend charts, coverage donuts.
- 漏洞管理 — 来自DT原生RVA的运行代码中的未修复CVE(通过Dynatrace安全评分及四维运行时评估进行风险排序:易受攻击函数是否在使用、公网暴露情况、可达数据资产、是否存在公开利用方式),以及外部SCA/SAST/镜像扫描器的检测结果。
- 合规态势 — DT原生KSPM(仅针对Kubernetes:支持CIS、DORA、NIST、STIG标准),以及CSPM/VSPM和外部合规/态势管理工具的检测结果。
- 运行时攻击与威胁 — DT原生检测(RAP运行时攻击、自动化检测规则),以及外部检测工具的结果。
- 威胁情报 — 外部威胁情报报告(AlienVault OTX脉冲、CrowdStrike Falcon Intelligence),包含攻击者/攻击活动/目标上下文及入侵指标(IOC);将报告的IOC/CVE/攻击技术与您的监控环境进行关联。这些是针对外部环境的威胁情报,并非您环境内实体的检测结果,需单独查询。
- 扫描覆盖分析 — 已覆盖与未覆盖的K8s工作负载/主机/进程,按Dynatrace扫描功能(、
Library Vulnerability Analytics、Operating System Vulnerability Analytics)或外部产品统计。Code-level Vulnerability Analytics - 实体关联 — 通过Smartscape将外部检测结果映射到Dynatrace运行时实体(主机、K8s工作负载、云资源)。
- 仪表盘/KPI — 指标卡片、Top-N表格、趋势图表、覆盖占比环形图。
When to Use This Skill
适用场景
✅ Must-first routing rule: identify user intent first, then load the matching primary reference from Quick Start: Find Your Use Case before generating DQL.
Identify the intent, then load the matching reference before writing DQL.
Cross-cutting (any / all finding types)
| Intent / example | Reference | Pattern |
|---|---|---|
| Security posture / overview across all products (incl. DT-native) | | 3-stream decomposition (external+detections |
| Findings on a specific entity — direct or related (blast radius) | dt-sec-contextualization | Broad entity-security questions must decompose: external |
| Findings from a specific provider | | |
| Which third-party / external tools are sending data (DT-native excluded) | | external-only enumeration (single query) |
| Which security products are integrated? / what security data do we have? (default: include DT-native RVA + KSPM) | | 3-stream decomposition; never a single wide |
| Which products cover a specific entity | dt-sec-contextualization | summarize by |
Routing tie-breaker: an unqualified "which security products are integrated? / are we covered? / what do we have?" defaults to the DT-inclusive 3-stream decomposition (it must query DT vulnerabilities and compliance). Take the external-only single query only when the user explicitly scopes to external / third-party tools ("which external tools are sending us data?").
Vulnerabilities (CVE management)
| Intent / example | Reference | Pattern |
|---|---|---|
| Counts / severity ("how many critical?", by risk + mute status) | | RVA snapshot Steps 1–3 |
| Most vulnerable components / hosts / workloads (rankings) | | Steps 1–3 + |
| CVE / library lookup; "am I vulnerable to log4shell?" | | Step 2 CVE/component filter; scope RVA to a known entity |
| Blast radius — which entities are affected by CVE X | | |
| Lifecycle — new / resolved / open-duration / MTTR | | post-derive |
| Runtime advanced — function-in-use, exposure, exploit, data-assets | | Davis-assessment |
| External scanner vulns — containers / artifacts / components | | |
| Verify external vulnerability findings with RVA | | First match the same vulnerability by |
| "Newly reported this period and not in the previous period" (external) | | prior-period anti-join ( |
| AI/LLM/GenAI workload vulnerabilities; "which AI services have vulnerabilities?" | | DT findings + GENAI scope ( |
| New AI-workload vulnerabilities this period | | prior-window anti-join on |
Detections (threats & attacks)
| Intent / example | Reference | Pattern |
|---|---|---|
| Severity / time-window overview (DT + external) | | |
By attack type ( | | |
| Attacker IPs / campaigns | | |
| MITRE technique / sub-technique | | |
| RAP-only / Automated-Detections-only | | |
| Map detections to entities; repeated firing | | |
| A specific external provider | | provider |
MITRE routing tie-breaker: a MITRE ATT&CK question routes by intent. "Which techniques did we detect / observe (on our entities)?" →(detections.md). "Which techniques are reported in threat intel / campaigns in the wild?" →DETECTION_FINDING(threat-intelligence.md). Don't merge the two — a report tagged T1059 is not evidence T1059 occurred in your environment.THREAT_REPORT
Threat intelligence (external reports & IOCs)
| Intent / example | Reference | Pattern |
|---|---|---|
| Show / list / count threat intelligence reports; reports by provider, actor, malware family, targeted country/industry, TLP, report type | | |
| Top IOCs (CVEs / IPs / domains / URLs / emails / hashes) or MITRE techniques across reports | | |
| Am I exposed to report X / are these IOCs in my environment? (threat-exposure) | | |
Compliance (policy violations & benchmarks)
| Intent / example | Reference | Pattern |
|---|---|---|
| Pass-rate / posture (CIS / DORA / NIST / STIG) | | Load |
| Critical misconfigurations | | Load |
| Compliance / misconfigurations on a specific entity | | Mirror the entity Security tab (CIS default, failed-only): Table 1 DT CIS failed rules → Table 2 other DT standards (overlap caveat) → Table 3 external misconfigs. Broad posture/count questions instead use § CIS-Primary Standard Summary (scorecard). |
| Map control/standard → entities; per-namespace | | entity scoping via |
| Cloud / non-K8s (PCI/ISO/HIPAA/GDPR; AWS/Azure/GCP) | | external taxonomy ( |
| External violations grouped by standard / framework | | |
| Config drift / newly failing rules vs previous week (DT) | | prior-period anti-join — a wide fetch window is NOT a substitute |
| External compliance findings new this period, absent in prior | | prior-period anti-join (same rule as drift) |
| KSPM (Kubernetes-only, DT-native) | | |
Coverage, enrichment & dashboards
| Intent / example | Reference | Pattern |
|---|---|---|
| Coverage / "covered vs not covered" / coverage gaps — hosts / processes / workloads | | ⚠ MUST start from |
| Specific entity coverage by a DT capability (RVA, SPM, RAP, other DT-native) | | If no relevant findings or scan/completion events exist for that entity in the capability's operational window, answer not covered — capability is likely not enabled or not configured for that entity |
| Map external findings → workloads / hosts / cloud | dt-sec-contextualization | 3-way match (K8s) / host-by-IP / Path-1 (cloud) — ⚠ always join to Smartscape; never group findings by raw |
| One-row-per-entity risk summary | dt-sec-contextualization | RVA + external merge |
| Dashboards — KPI tiles, top-N, trends, donuts | | |
❌ Don't use for:
- Dynatrace-detected problems →
dt-obs-problems - Application/infrastructure logs →
dt-obs-logs - Distributed tracing →
dt-obs-tracing - Service performance/RED metrics →
dt-obs-services
✅ 首要路由规则: 先识别用户意图,再从快速入门:找到您的使用场景中加载匹配的主参考文档,之后再生成DQL。
先识别意图,再加载匹配的参考文档,然后编写DQL。
跨场景(所有检测类型)
| 意图/示例 | 参考文档 | 模式 |
|---|---|---|
| 全产品(含DT原生)的安全态势/概览 | | 三流分解(外部+检测结果 |
| 特定实体的检测结果——直接或关联影响(爆炸半径) | dt-sec-contextualization | 宽泛的实体安全问题必须分解:外部 |
| 特定供应商的检测结果 | | |
| 哪些第三方/外部工具正在发送数据(排除DT原生) | | 仅外部工具的枚举查询(单查询) |
| 已集成哪些安全产品?/ 我们拥有哪些安全数据?(默认:包含DT原生RVA + KSPM) | | 三流分解;切勿直接扫描整个 |
| 哪些产品覆盖了特定实体 | dt-sec-contextualization | 按 |
路由决胜规则: 未明确限定的“已集成哪些安全产品?/ 我们是否被覆盖?/ 我们有什么?”默认采用包含DT的三流分解(必须查询DT漏洞与合规数据)。仅当用户明确限定为外部/第三方工具时(“哪些外部工具正在向我们发送数据?”),才采用仅外部工具的单查询。
漏洞(CVE管理)
| 意图/示例 | 参考文档 | 模式 |
|---|---|---|
| 数量/严重程度(“有多少严重漏洞?”,按风险+静音状态统计) | | RVA快照步骤1–3 |
| 最易受攻击的组件/主机/工作负载(排名) | | 步骤1–3 + |
| CVE/库查询;“我们是否受Log4Shell影响?” | | 步骤2的CVE/组件筛选;将RVA范围限定到已知实体 |
| 爆炸半径——哪些实体受CVE X影响 | | |
| 生命周期——新增/已修复/未修复时长/平均修复时间(MTTR) | | 派生 |
| 运行时高级分析——函数使用情况、暴露面、可利用性、数据资产 | | Davis评估 |
| 外部扫描器漏洞——容器/制品/组件 | | |
| 使用RVA验证外部漏洞检测结果 | | 首先通过 |
| “本期新增且上期未出现”的漏洞(外部) | | 上期反连接( |
| AI/LLM/GenAI工作负载漏洞;“哪些AI服务存在漏洞?” | | DT检测结果 + GENAI范围( |
| 本期新增的AI工作负载漏洞 | | 按 |
检测结果(威胁与攻击)
| 意图/示例 | 参考文档 | 模式 |
|---|---|---|
| 严重程度/时间窗口概览(DT + 外部) | | |
按攻击类型( | | |
| 攻击者IP/攻击活动 | | |
| MITRE技术/子技术 | | |
| 仅RAP/仅自动化检测 | | |
| 将检测结果映射到实体;重复触发 | | |
| 特定外部供应商 | | 供应商 |
MITRE路由决胜规则: MITRE ATT&CK相关问题按意图路由。“我们检测/观察到哪些技术(在我们的实体上)?”→(detections.md)。“外部威胁情报/攻击活动中报告了哪些技术?”→DETECTION_FINDING(threat-intelligence.md)。切勿合并两者——标记为T1059的报告并不意味着您的环境中发生了T1059攻击。THREAT_REPORT
威胁情报(外部报告与IOC)
| 意图/示例 | 参考文档 | 模式 |
|---|---|---|
| 展示/列出/统计威胁情报报告;按供应商、攻击者、恶意软件家族、目标国家/行业、TLP、报告类型统计 | | |
| 报告中排名靠前的IOC(CVE/IP/域名/URL/邮箱/哈希)或MITRE技术 | | |
| 我们是否暴露于报告X?/这些IOC是否存在于我们的环境中?(威胁暴露) | | 将报告中的IOC/CVE/技术与 |
合规(策略违规与基准)
| 意图/示例 | 参考文档 | 模式 |
|---|---|---|
| 通过率/态势(CIS/DORA/NIST/STIG) | | 先加载 |
| 严重配置错误 | | 先加载 |
| 特定实体的合规/配置错误 | | 镜像实体安全标签页(默认CIS标准,仅显示失败项):表格1 DT CIS失败规则 → 表格2 其他DT标准(注意重叠) → 表格3 外部配置错误。宽泛的态势/数量问题则使用§ CIS主标准汇总(计分卡)。 |
| 将控制项/标准映射到实体;按命名空间统计 | | 通过 |
| 云/非K8s环境(PCI/ISO/HIPAA/GDPR;AWS/Azure/GCP) | | 外部分类( |
| 按标准/框架分组的外部违规项 | | |
| 配置漂移/本周新增失败规则与上周对比(DT) | | 上期反连接——扩大查询窗口无法替代此方法 |
| 本期新增且上期未出现的外部合规检测结果 | | 上期反连接(与配置漂移规则相同) |
| KSPM(仅Kubernetes,DT原生) | | |
覆盖范围、关联与仪表盘
| 意图/示例 | 参考文档 | 模式 |
|---|---|---|
| 覆盖范围/“已覆盖vs未覆盖”/覆盖缺口——主机/进程/工作负载 | | ⚠ 必须从 |
| 特定实体被DT能力(RVA、SPM、RAP、其他DT原生能力)覆盖情况 | | 如果该实体在能力的运行窗口内没有相关检测结果或扫描/完成事件,则判定为未覆盖——该能力可能未启用或未配置为监控该实体 |
| 将外部检测结果映射到工作负载/主机/云资源 | dt-sec-contextualization | 三方匹配(K8s)/按IP匹配主机/路径1(云)——⚠ 始终与Smartscape连接;切勿仅按原始 |
| 每行一个实体的风险汇总 | dt-sec-contextualization | RVA + 外部结果合并 |
| 仪表盘——KPI卡片、Top-N、趋势、环形图 | | |
❌ 请勿用于:
- Dynatrace检测到的问题 →
dt-obs-problems - 应用/基础设施日志 →
dt-obs-logs - 分布式追踪 →
dt-obs-tracing - 服务性能/RED指标 →
dt-obs-services
Introduction to AppSec Data
AppSec数据介绍
All security events are stored in and are categorized by :
security.eventsevent.type- RVA vulnerabilities — (15-minute snapshots per entity)
VULNERABILITY_STATE_REPORT_EVENT - KSPM compliance — (per
COMPLIANCE_FINDING, joined with(rule, K8s object)onCOMPLIANCE_SCAN_COMPLETEDfor latest-scan dedup)scan.id - External compliance (CSPM / VSPM / external posture tools) — with the external taxonomy (
COMPLIANCE_FINDING/compliance.standards/compliance.policy);compliance.controltypically nullcompliance.rule.* - Detections — (RAP via
DETECTION_FINDING),product.name == "Runtime Application Protection"(RAP events in some tenants), Automated Detections viaSECURITY_EVENT, external security tools; plusevent.provider == "Dynatrace Automated Detections"for per-rule-run audit (Automated Detections only)DETECTION_EXECUTION_SUMMARY - Scan coverage — ,
VULNERABILITY_SCANCOMPLIANCE_SCAN - Threat intelligence — (external TI platforms: AlienVault OTX pulses, CrowdStrike Falcon Intelligence). A separate class of data — not a finding: no
THREAT_REPORT/finding.*/object.*, no affected entity, no scan cycle. Never folded into the cross-provider finding summary or the posture-overview decomposition — queried on its own via threat-intelligence.md. Dedup bydt.security.risk.level.threat.report.id
Full taxonomy and field reference → data-model.md
所有安全事件都存储在****中,并按分类:
security.eventsevent.type- RVA漏洞 — (每个实体每15分钟生成快照)
VULNERABILITY_STATE_REPORT_EVENT - KSPM合规 — (按
COMPLIANCE_FINDING生成,通过(rule, K8s object)与scan.id连接以去重获取最新扫描结果)COMPLIANCE_SCAN_COMPLETED - 外部合规(CSPM/VSPM/外部态势工具) — ,带有外部分类(
COMPLIANCE_FINDING/compliance.standards/compliance.policy);compliance.control通常为空compliance.rule.* - 检测结果 — (RAP通过
DETECTION_FINDING识别)、product.name == "Runtime Application Protection"(部分租户中的RAP事件)、通过SECURITY_EVENT识别的自动化检测、外部安全工具;以及event.provider == "Dynatrace Automated Detections"(仅用于自动化检测的每规则运行审计)DETECTION_EXECUTION_SUMMARY - 扫描覆盖 — 、
VULNERABILITY_SCANCOMPLIANCE_SCAN - 威胁情报 — (外部TI平台:AlienVault OTX脉冲、CrowdStrike Falcon Intelligence)。这是一类独立的数据——并非检测结果:没有
THREAT_REPORT/finding.*/object.*字段,没有受影响实体,没有扫描周期。切勿将其纳入跨供应商检测结果汇总或态势概览分解——需通过threat-intelligence.md单独查询。按dt.security.risk.level去重。threat.report.id
完整分类与字段参考 → data-model.md
Critical Constraint: Snapshot Windows
关键约束:快照窗口
DT RVA and KSPM are snapshot tools, not event streams. The minimum
query window required for each pipeline:
- RVA: fixed window (captures latest 15-min cycle); if a 30m snapshot is empty or clearly stale, use the controlled 24h latest-known-state fallback in vulnerabilities-dynatrace.md
30m - KSPM: fixed window (needs latest
1hmarker for the inner-join)COMPLIANCE_SCAN_COMPLETED - External findings (incl. CSPM/VSPM): (no snapshot semantics — these are one-shot events)
2h–24h+
Widening these windows does NOT look back further — they only capture the latest report/scan cycle. For historical trends, use over longer windows.
makeTimeseriesDT-generatedvs. RVA state reports. Dynatrace-generatedVULNERABILITY_FINDINGqueries (e.g. AI-workload scoping in vulnerabilities-dynatrace-advanced.md § AI-workload vulnerabilities) also use aVULNERABILITY_FINDINGwindow, but dedup on30mbecause DT findings are re-emitted on every scan run (~15 min) — distinct from the RVA state-reportfinding.idwindow, which dedups on30m. Do not mix the two dedup grains.{vulnerability.display_id, affected_entity.id}
DT RVA和KSPM是快照工具,而非事件流。每个管道所需的最小查询窗口:
- RVA:固定窗口(捕获最新15分钟周期的快照);如果30m快照为空或明显过时,使用vulnerabilities-dynatrace.md中受控的24h最新已知状态回退方案
30m - KSPM:固定窗口(需要最新的
1h标记用于内连接)COMPLIANCE_SCAN_COMPLETED - 外部检测结果(含CSPM/VSPM):(无快照语义——这些是一次性事件)
2h–24h+
扩大这些窗口不会回溯更早的数据——仅会捕获最新的报告/扫描周期。如需历史趋势,在更长窗口上使用。
makeTimeseriesDT生成的与RVA状态报告。 Dynatrace生成的VULNERABILITY_FINDING查询(例如vulnerabilities-dynatrace-advanced.md § AI-workload vulnerabilities中的AI工作负载范围限定)也使用VULNERABILITY_FINDING窗口,但需按**30m去重,因为DT检测结果会在每次扫描运行(约15分钟)时重新生成——这与RVA状态报告的finding.id窗口不同,后者按30m**去重。请勿混淆两种去重粒度。{vulnerability.display_id, affected_entity.id}
Default Time Ranges in the Dynatrace Apps
Dynatrace应用中的默认时间范围
The UI apps show pre-set defaults in their time picker. When a user
references "the app's view" without giving an explicit window, match
these to align query results with what the user sees in the UI:
| App | Default time picker |
|---|---|
| Vulnerabilities app | 30 minutes |
| Threats & Exploits app | 2 hours |
| Security Posture Management app | 2 hours |
These app defaults are broader than the minimum snapshot windows above
(e.g. SPM app = 2h vs. KSPM pipeline minimum = 1h). The minimum window is
what the inner-join / latest-cycle dedup needs to function; the app default
is what the user sees on first load. Use the minimum window when
generating canonical pipeline DQL; use the app default when the user
asks "what does the SPM app show me right now?" or builds a dashboard tile
intended to match the app view.
See vulnerabilities-dynatrace.md § Snapshot vs. History for details.
UI应用的时间选择器有预设默认值。当用户提及“应用视图”但未指定明确窗口时,匹配这些默认值以确保查询结果与用户在UI中看到的内容一致:
| 应用 | 默认时间选择器 |
|---|---|
| 漏洞应用 | 30分钟 |
| 威胁与利用应用 | 2小时 |
| 安全态势管理应用 | 2小时 |
这些应用默认值宽于上述最小快照窗口(例如SPM应用=2h vs KSPM管道最小=1h)。最小窗口是内连接/最新周期去重所需的窗口;应用默认值是用户首次加载时看到的窗口。生成标准管道DQL时使用最小窗口;当用户询问“SPM应用现在显示什么?”或构建与应用视图匹配的仪表盘卡片时,使用应用默认值。
详情请见vulnerabilities-dynatrace.md § 快照 vs 历史。
How This Skill Is Organized
本技能的组织结构
The skill is split into two parts for scalability:
- SKILL.md (this file) — Entry point, quick lookup, routing to the right reference
- references/ — Detailed guidance by capability or domain:
- data-model.md — Reference for — event types, providers, fields, entity scoping.
fetch security.events - common-patterns.md — Cross-cutting patterns, common mistakes to avoid, and query troubleshooting reference.
- data-model.md — Reference for
- vulnerabilities-dynatrace.md — Dynatrace Runtime Vulnerability Analytics (RVA): snapshot pipeline, counts, lifecycle, runtime assessment, CLV, tracking, mute, and entity scoping.
- vulnerabilities-dynatrace-advanced.md — Advanced DT vulnerability guidance: best practices and AI-workload () query workflows.
VULNERABILITY_FINDING - vulnerabilities-external.md — External SCA / SAST / image-scanner vulnerability findings ().
VULNERABILITY_FINDING - vulnerabilities-entities.md — DT RVA entity rankings: "most vulnerable hosts / K8s workloads / components" + CVE blast radius.
- compliance.md — Dynatrace Security Posture Management (SPM / XSPM) compliance findings and external provider compliance findings.
- detections.md — Runtime Application Protection (RAP) detections, Automated Detection rules, and external provider detections.
- threat-intelligence.md — External threat-intelligence reports (): AlienVault OTX / CrowdStrike Falcon Intelligence, IOC extraction, and threat-exposure correlation. Not findings — queried separately.
THREAT_REPORT - all-security-events.md — Cross-provider queries, double-counting guard, unified summaries
- coverage-and-dashboards.md — Entity coverage counting logic (denominator, covered vs. not-covered) and dashboard patterns (KPI tiles, top-N, trend charts, coverage donuts).
smartscapeNodes - entity-enrichment — Moved to dt-sec-contextualization (3-way match / host-by-IP / cloud). Load
references/entity-enrichment.mdfor any entity-mapping question.dt-sec-contextualization
为了可扩展性,本技能分为两部分:
- SKILL.md(本文档)——入口点、快速查询、路由到正确的参考文档
- references/ — 按能力或领域划分的详细指南:
- data-model.md — 参考文档——事件类型、供应商、字段、实体范围限定。
fetch security.events - common-patterns.md — 跨场景模式、常见错误规避、查询故障排除参考。
- data-model.md —
- vulnerabilities-dynatrace.md — Dynatrace Runtime Vulnerability Analytics(RVA):快照管道、数量统计、生命周期、运行时评估、CLV、追踪、静音、实体范围限定。
- vulnerabilities-dynatrace-advanced.md — DT漏洞高级指南:最佳实践与AI工作负载()查询流程。
VULNERABILITY_FINDING - vulnerabilities-external.md — 外部SCA/SAST/镜像扫描器漏洞检测结果()。
VULNERABILITY_FINDING - vulnerabilities-entities.md — DT RVA实体排名:“最易受攻击的主机/K8s工作负载/组件” + CVE爆炸半径。
- compliance.md — Dynatrace Security Posture Management(SPM/XSPM)合规检测结果与外部供应商合规检测结果。
- detections.md — Runtime Application Protection(RAP)检测、自动化检测规则、外部供应商检测结果。
- threat-intelligence.md — 外部威胁情报报告():AlienVault OTX/CrowdStrike Falcon Intelligence、IOC提取、威胁暴露关联。并非检测结果——需单独查询。
THREAT_REPORT - all-security-events.md — 跨供应商查询、重复计数防护、统一汇总
- coverage-and-dashboards.md — 实体覆盖统计逻辑(分母、已覆盖vs未覆盖)与仪表盘模式(KPI卡片、Top-N、趋势图表、覆盖占比环形图)。
smartscapeNodes - entity-enrichment — 已移至dt-sec-contextualization的(三方匹配/按IP匹配主机/云)。任何实体映射问题都需加载
references/entity-enrichment.md。dt-sec-contextualization
Universal Best Practices
通用最佳实践
-
Always load dt-dql-essentials first — DQL syntax and function names differ from SQL. Confirm all functions inbefore generating queries.
dt-dql-essentials -
Ground every query in the routed reference's canonical template — do not improvise DQL. Identify intent, load the matching reference (per When to Use), and build from its canonical pipeline / named building block. Do not invent field names, enum values, join syntax, or pipeline shape from SQL habits. Deviate from a template only with syntax explicitly shown in a skill example or validated in. If no template covers the request, say so and adapt the closest one — never fabricate fields or values.
dt-dql-essentials -
Nofilters — security event data may live in any bucket; filtering by bucket risks hiding findings.
dt.system.bucket -
Use the correct provenance field for the family — RVA uses, SPM/detections use
event.provider == "Dynatrace". See data-model.md § Provider Taxonomy.product.vendor == "Dynatrace" -
Always include an explicitclause — use the correct window for the query class:
from:Query class Default window Notes DT RVA snapshots fixed30mCaptures latest 15-min state-report cycle — do not widen DT KSPM snapshots fixed1hAligned with scan-completion cycle inner-join — do not widen
| RAP / external detection retrieval or current summary | first attempt | Matches Threats & Exploits app default. Widen to only if zero rows returned or if the user explicitly asks for a longer window (see detections.md § Widen-on-empty fallback) |
| Cross-provider summary (aggregated) | | Summaries aggregate over time; start broad |
2h24h24hOmitting falls back to a default window that doesn't match snapshot semantics and produces drift between query runs. The 30m / 1h windows are not arbitrary — they're tied to the underlying RVA / SPM scan cadence. See common-patterns.md § 7 for the full window reference.
from:Decompose DT-inclusive broad / posture-overview questions ("which security products are integrated incl. Dynatrace-native?", posture overview, cross-category counts that include DT vulnerabilities/compliance) — never answer with one wide scan over all of . Run three separate queries and merge: Stream A external + DT detections (, double-counting guard), Stream B DT RVA (), Stream C DT KSPM (). This keeps the high-cardinality snapshot streams in their tight windows and avoids double-counting. A narrower "which external integrations are sending data?" stays a single external-only query. See all-security-events.md § Broad-Question Query Decomposition.
6. Preserve entity identifiers on raw listings (top / latest / list / show-me — no ) so users see which entity each finding is on. The namespaces split by family and are not interchangeable: cross-provider / scan events use the generic / / fields; RVA state/change events leave those null and carry refs in / . Not for pure count / pass-rate summaries. Field lists and wildcard reference → common-patterns.md § 17.
7. Broad entity-security questions require the external stream too. For prompts like "security findings of this host / K8s node / workload / cluster", do not stop after DT RVA and SPM. Also run the external/cross-provider stream scoped with the wide entity OR chain (, , , and relevant fields) in , then merge with RVA () and SPM (). Treat as a legacy/scan fallback, not a primary cross-provider scoping path. If the external branch returns 0 rows, report "no external findings found" with the scope used. Load dt-sec-contextualization → for the Smartscape join. See also all-security-events.md.
8. Always bound raw listing and top-N results. If the user asks for "top X", "last X", or "first X", end with (after the ranking/sort). If the user asks to list/show findings but does not explicitly ask for all data and the output is not a summary ( / ), add by default. Do not run unbounded raw projections on security findings. Full rule and exceptions → common-patterns.md § 16.
9. Preserve query shape — do not drop keys unless the user asks for coarser aggregation. The canonical cross-provider always keys by . Dropping any of these silently merges rows from different providers, products, or finding types into a single count and will be penalized by evaluators. Do not replace the four-key grouping with a simpler or unless the user explicitly requests a coarser view. See common-patterns.md § 15.
security.events24h30m1hsummarize*_FINDINGdt.smartscape*dt.entity*dt.source*affected_entity*related_entities**_FINDINGdt.smartscape_source.iddt.entity.*object.*k8s.*24h30m1hdt.source_entityentity-enrichment.md| sort ... | limit XsummarizemakeTimeseries| limit 50by:summarize{event.provider, product.name, event.type, dt.security.risk.level}by: {dt.security.risk.level}by: {event.type}-
Compliance status uses(
compliance.result.status.level/PASSED/FAILED/MANUAL) — neverNOT_RELEVANTorevent.status/"PASS". Pass rate is computed on per-rule verdicts after the latest-scan dedup join"FAIL". Field terminology, the dedup join, and the pass-rate rollup → compliance.md.on: {scan.id} -
Count distinct identities, not rows, after/
expand/jointhat fan out arrays — uselookup/countDistinctExact(vulnerability.display_id), orcountDistinctExact(finding.id)on identity + group key first. A plaindedupis safe only when the grain entering thecount()is already one row per counted item. Examples and the exception → common-patterns.md § Mistakes #55.expand -
Interpret empty entity-coverage probes as not covered. When validating whether a specific entity is covered by a Dynatrace security capability (RVA, SPM/KSPM, RAP, or another DT-native capability), absence of the relevant findings and scan/completion events means the entity is not covered by that capability. State the likely cause: the capability is not enabled, or it is not configured / deployed to monitor that entity. Do not soften this into "no findings" when the user asked about coverage. Counting logic → coverage-and-dashboards.md; match recipes → dt-sec-contextualization.
correlation-and-coverage.md -
Report empty results truthfully — never fabricate numbers. 0 rows means "no matching data," stated with the scope and filters used; never invent plausible values. Before relaxing a filter, apply the family's documented recovery (RVA 30m→24h latest-known-state, detections 2h→24h widen, RVA filters on null/
k8s.*/dt.entity.*→ pivot todt.smartscape*/affected_entity.*) and say so explicitly if you adapt. Recovery details → vulnerabilities-dynatrace.md / detections.md.related_entities.*
For domain-specific best practices and the full diagnostic catalog, see the references listed in the "How This Skill Is Organized" section above.
-
始终先加载dt-dql-essentials — DQL语法与函数名称与SQL不同。生成查询前,请确认所有函数都在中存在。
dt-dql-essentials -
所有查询都基于路由参考文档的标准模板——切勿自行编写DQL。 识别意图,加载匹配的参考文档(按适用场景),并基于其标准管道/命名构建块进行开发。切勿根据SQL习惯自行发明字段名、枚举值、连接语法或管道结构。仅当技能示例中明确展示或中验证过的语法,才可偏离模板。如果没有模板覆盖请求,请说明并适配最接近的模板——切勿编造字段或值。
dt-dql-essentials -
不要使用筛选器 — 安全事件数据可能存储在任何存储桶中;按存储桶筛选可能会隐藏检测结果。
dt.system.bucket -
针对不同类型使用正确的来源字段 — RVA使用,SPM/检测结果使用
event.provider == "Dynatrace"。详情请见data-model.md § 供应商分类。product.vendor == "Dynatrace" -
始终包含明确的子句——为查询类型使用正确的窗口:
from:查询类型 默认窗口 说明 DT RVA快照 固定 30m捕获最新15分钟状态报告周期——请勿扩大 DT KSPM快照 固定 1h与扫描完成周期内连接对齐——请勿扩大
| RAP/外部检测结果检索或当前汇总 | 首次尝试 | 匹配威胁与利用应用默认值。仅当返回零行或用户明确要求更长窗口时,扩大到(见detections.md § 空结果时扩大窗口) |
| 跨供应商汇总(聚合) | | 汇总需按时间聚合;从宽范围开始 |
2h24h24h省略会回退到不符合快照语义的默认窗口,导致查询运行结果不一致。30m/1h窗口并非随意设定——它们与底层RVA/SPM扫描节奏绑定。完整窗口参考请见common-patterns.md § 7。
from:分解包含DT的宽泛/态势概览问题(“已集成哪些安全产品,包括Dynatrace原生?”、态势概览、包含DT漏洞/合规的跨类别统计)——切勿通过一次扫描整个来回答。运行三个独立查询并合并:流A外部+DT检测结果(,重复计数防护)、流B DT RVA()、流C DT KSPM()。这将高基数快照流保持在紧凑窗口内,并避免重复计数。更窄的“哪些外部集成正在发送数据?”则保持为仅外部工具的单查询。详情请见all-security-events.md § 宽泛问题查询分解。
6. 在原始列表中保留实体标识符(Top/最新/列表/展示——无),以便用户查看每个检测结果对应的实体。不同类型的命名空间不可互换:跨供应商/扫描事件使用通用//字段;RVA状态/变更事件中这些字段为空,引用存储在/中。纯计数/通过率汇总无需保留。字段列表与通配符参考→common-patterns.md § 17。
7. 宽泛的实体安全问题也需要外部流。 对于“此主机/K8s节点/工作负载/集群的安全检测结果”这类提示,请勿仅查询DT RVA和SPM。还需运行外部/跨供应商流,通过宽实体OR链(、、及相关字段)筛选(),然后与RVA()和SPM()结果合并。将视为遗留/扫描回退字段,而非跨供应商范围限定的主要路径。如果外部分支返回0行,请报告“未找到外部检测结果”并说明使用的范围。加载dt-sec-contextualization→进行Smartscape连接。另请见all-security-events.md。
8. 始终限制原始列表和Top-N结果。 如果用户要求“Top X”、“最近X个”或“前X个”,请在排序后添加。如果用户要求列出/展示检测结果但未明确要求所有数据,且输出不是汇总(/),默认添加。切勿对安全检测结果运行无限制的原始投影。完整规则与例外→common-patterns.md § 16。
9. 保留查询结构——除非用户要求更粗粒度的聚合,否则不要删除键。 标准跨供应商始终按分组。删除任何键都会将不同供应商、产品或检测类型的行静默合并为单个计数,会被评估者扣分。除非用户明确要求更粗粒度的视图,否则请勿将四键分组替换为更简单的或。详情请见common-patterns.md § 15。
security.events24h30m1hsummarize*_FINDINGdt.smartscape*dt.entity.*dt.source*affected_entity*related_entities**_FINDINGdt.smartscape_source.iddt.entity.*object.*k8s.*24h30m1hdt.source_entityentity-enrichment.md| sort ... | limit XsummarizemakeTimeseries| limit 50by:summarize{event.provider, product.name, event.type, dt.security.risk.level}by: {dt.security.risk.level}by: {event.type}-
合规状态使用(
compliance.result.status.level/PASSED/FAILED/MANUAL)——切勿使用NOT_RELEVANT或event.status/"PASS"。通过率是在通过"FAIL"进行最新扫描去重连接后,按每个规则的判定结果计算的。字段术语、去重连接及通过率汇总→compliance.md。on: {scan.id} -
在/
expand/join展开数组后,统计不同的标识而非行数——使用lookup/countDistinctExact(vulnerability.display_id),或先按标识+分组键countDistinctExact(finding.id)。仅当进入dedup的粒度已是每个统计项一行时,普通expand才是安全的。示例与例外→common-patterns.md § 错误#55。count() -
将空实体覆盖探测结果解释为未覆盖。 验证特定实体是否被Dynatrace安全能力(RVA、SPM/KSPM、RAP或其他DT原生能力)覆盖时,若没有相关检测结果和扫描/完成事件,则该实体未被该能力覆盖。说明可能的原因:该能力未启用,或未配置/部署为监控该实体。当用户询问覆盖情况时,请勿将其含糊表述为“无检测结果”。统计逻辑→coverage-and-dashboards.md;匹配方案→dt-sec-contextualization。
correlation-and-coverage.md -
如实报告空结果——切勿编造数字。 0行意味着“无匹配数据”,需说明使用的范围和筛选条件;切勿编造看似合理的值。放宽筛选条件前,请应用对应类型的文档化恢复方案(RVA 30m→24h最新已知状态、检测结果2h→24h扩大窗口、RVA筛选空/
k8s.*/dt.entity.*→转向dt.smartscape*/affected_entity.*),并明确说明是否进行了调整。恢复详情→vulnerabilities-dynatrace.md/detections.md。related_entities.*
如需领域特定的最佳实践和完整诊断目录,请见上文“本技能的组织结构”部分列出的参考文档。
External Documentation
外部文档
Related Skills
相关技能
- dt-dql-essentials — Load first. Core DQL syntax, command reference, function catalog, Smartscape patterns.
- dt-sec-contextualization — Load for any entity-mapping question: 3-way match (K8s workload), host-by-IP, cloud Path 1, pod→node topology, cross-evidence correlation, coverage match recipes.
- dt-obs-kubernetes — K8s topology; useful for security findings scoped to clusters / workloads
- dt-obs-hosts — Host inventory, process-level context; useful when a finding's affected entity is a HOST or PROCESS_GROUP
- dt-obs-services — Service-scoped queries; useful for UC-G3 "findings affecting " and tracing from a vulnerable service to RED metrics
<service-name> - dt-obs-aws / dt-obs-azure / dt-obs-gcp — Cloud Smartscape; useful for enriching external cloud-security findings against the provider's resource topology, and for hyperscaler-specific provider field handling (cloud resource IDs, ARNs, account scoping)
- dt-obs-tracing — Drill from a vulnerable / attacked entity to representative request traces
- dt-obs-problems — Get affected/related entity IDs for a problem before querying security findings (UC-G5)
- dt-dql-essentials — 优先加载。核心DQL语法、命令参考、函数目录、Smartscape模式。
- dt-sec-contextualization — 任何实体映射问题都需加载:三方匹配(K8s工作负载)、按IP匹配主机、云路径1、Pod→Node拓扑、跨证据关联、覆盖匹配方案。
- dt-obs-kubernetes — K8s拓扑;适用于限定到集群/工作负载的安全检测结果查询
- dt-obs-hosts — 主机清单、进程级上下文;适用于检测结果的受影响实体为HOST或PROCESS_GROUP的场景
- dt-obs-services — 服务范围查询;适用于UC-G3“影响的检测结果”以及从易受攻击服务追踪到RED指标的场景
<service-name> - dt-obs-aws / dt-obs-azure / dt-obs-gcp — 云Smartscape;适用于将外部云安全检测结果与供应商资源拓扑关联,以及处理特定云供应商的字段(云资源ID、ARN、账户范围)
- dt-obs-tracing — 从易受攻击/被攻击的实体钻取到代表性请求追踪
- dt-obs-problems — 查询安全检测结果前,获取问题的受影响/关联实体ID(UC-G5)