关于 dt-sec-insights
使用 DQL 查询和分析 `security.events` 中 Dynatrace 安全数据的技能。涵盖漏洞、合规性、检测、威胁情报、扫描覆盖率、实体丰富和仪表板汇总,数据可来自 Dynatrace 原生功能及集成来源。
主要功能
- 01分析漏洞与合规发现
- 02查询检测事件和威胁情报
- 03评估扫描覆盖率并关联实体
- 04构建安全 KPI 和仪表板
适用场景
- 01汇总多个来源的安全态势
- 02调查影响特定实体的漏洞
- 03比较合规态势与策略违规
- 04检查主机或工作负载的覆盖缺口
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dynatrace/ dynatrace-for-ai --skill dt-sec-insights安装后在 Claude Code 中输入/dt-sec-insights确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/all-security-events.mdcommon-patterns.mdcompliance.mdcoverage-and-dashboards.mdcoverage.mddashboard-patterns.mddata-model.mddetections.mdentity-enrichment.mdmistakes-and-troubleshooting.mdthreat-intelligence.mdvulnerabilities-dynatrace-advanced.mdvulnerabilities-dynatrace.mdvulnerabilities-entities.mdvulnerabilities-external.md详细介绍
Security Insights Skill
使用 DQL 查询和分析 security.events 中的 Dynatrace 安全数据。事件来自 Dynatrace 原生来源(RVA、RAP、Automated Detections、SPM),或通过集成接入的外部产品(AWS Security Hub、Amazon
GuardDuty、GitHub Advanced Security、Snyk、Qualys、Tenable 等)。
此 Skill 涵盖的内容
- 漏洞管理 — 来自 DT 原生 RVA 的运行中代码中的未解决 CVE(按 Dynatrace Security Score 和四维运行时评估进行风险排名:正在使用易受攻击的函数、公共网络暴露、可访问的数据资产、有公开漏洞利用),以及外部 SCA / SAST / 镜像扫描器。
- 合规态势 — DT 原生 KSPM(仅限 Kubernetes:CIS、DORA、NIST、STIG),以及 CSPM/VSPM 和外部合规/态势提供商。
- 运行时攻击与威胁 — DT 原生检测(RAP 运行时攻击、Automated Detections 规则),以及外部检测提供商。
- 威胁情报 — 外部威胁情报报告(AlienVault OTX pulses、CrowdStrike Falcon Intelligence),包含攻击者 / 活动 / 目标背景和入侵指标(IOC);将报告中的 IOC / CVE / 技术与受监控环境进行关联。这些是关于外部威胁的情报,并非针对你实体的发现;需单独查询。
- 扫描覆盖率分析 — 按 Dynatrace 扫描功能(
Library Vulnerability Analytics、Operating System Vulnerability Analytics、Code-level Vulnerability Analytics)或外部产品,分析已覆盖与未覆盖的 k8s 工作负载/主机/进程。 - 实体丰富 — 通过 Smartscape 将外部发现映射到 Dynatrace 运行时实体(主机、K8s 工作负载、云资源)。
- 仪表板 / KPI — 磁贴、前 N 项表格、趋势图、覆盖率环形图。
何时使用此 Skill
✅ 必须优先执行的路由规则: 先识别用户意图,然后从 快速入门:查找使用场景 加载匹配的主要参考文档,再生成 DQL。
识别意图,然后在编写 DQL 前加载匹配的参考文档。
跨领域(适用于任意 / 所有发现类型)
| 意图 / 示例 | 参考文档 | 模式 |
|---|---|---|
| 跨所有产品(包括 DT 原生产品)的安全态势 / 概览 | all-security-events.md § 广泛问题的查询拆解 | 3 流拆解(外部 + 检测 24h / RVA 30m / KSPM 1h),合并后汇总;计数摘要以 KSPM 合规性为首——先列 CIS(其后列出其他标准 + RVA + 检测)→ compliance.md § CIS 优先的标准摘要 |
| 特定实体上的直接或相关发现(爆炸半径) | dt-sec-contextualization entity-enrichment.md · all-security-events.md | 广泛的实体安全问题必须拆解:按 dt.smartscape_source.id / dt.entity.* / k8s.* 查询外部 *_FINDING(24h)+ DT RVA 实体范围(30m)+ DT SPM 实体范围(1h) |
| 来自特定提供商的发现 | all-security-events.md § 限定特定提供商 | contains(lower(event.provider | product.vendor), "<p>") |
| 哪些第三方 / 外部工具正在发送数据(不包括 DT 原生产品) | all-security-events.md § 当前启用的外部集成 | 仅外部产品枚举(单个查询) |
| 集成了哪些安全产品?/ 我们有哪些安全数据?(默认:包括 DT 原生 RVA + KSPM) | all-security-events.md § 广泛问题的查询拆解 | 3 流拆解;绝不对 security.events 进行单次宽范围扫描 |
| 哪些产品覆盖了特定实体 | dt-sec-contextualization correlation-and-coverage.md · all-security-events.md | 按 product.* 汇总;拆分发现与扫描 |
路由判定规则:未限定范围的“集成了哪些安全产品?/我们的防护覆盖到位了吗?/我们有哪些产品?”默认采用包含 DT 的三流拆分(必须查询 DT 漏洞和合规性)。只有当用户明确限定为外部 / 第三方工具(“哪些外部工具在向我们发送数据?”)时,才采用仅外部的单次查询。
漏洞(CVE 管理)
| 意图 / 示例 | 参考 | 模式 |
|---|---|---|
| 数量 / 严重性(“有多少个严重漏洞?”,按风险 + 静默状态) | vulnerabilities-dynatrace.md | RVA 快照步骤 1–3 |
| 最易受攻击的组件 / 主机 / 工作负载(排名) | vulnerabilities-entities.md | 步骤 1–3 + expand 类型化的 related_entities.<group>.ids → 在 id_classic 上查询 smartscapeNodes — ⚠ RVA 事件中的 k8s.*/dt.entity.* 为 null |
| CVE / 库查询;“我是否易受 log4shell 攻击?” | vulnerabilities-dynatrace.md § 实体范围限定 | 步骤 2 CVE/组件过滤;将 RVA 范围限定到已知实体 |
| 影响范围 — 哪些实体受 CVE X 影响 | vulnerabilities-entities.md | related_entities.* 间接关系展开 |
| 生命周期 — 新增 / 已解决 / 未解决时长 / MTTR | vulnerabilities-dynatrace.md | 派生后处理 resolution.change_date;MTTR 使用仅含变更事件的代码片段(§ 解决时间) |
| 高级运行时信息 — 正在使用的函数、暴露、利用、数据资产 | vulnerabilities-dynatrace.md | Davis 评估 fieldsAdd(步骤 3) |
| 外部扫描器漏洞 — 容器 / 工件 / 组件 | vulnerabilities-external.md | VULNERABILITY_FINDING + 外部路由 |
| 使用 RVA 验证外部漏洞发现 | vulnerabilities-external.md § 使用 RVA 验证外部漏洞发现 · dt-sec-contextualization entity-enrichment.md | 首先通过 vulnerability.references.cve 匹配相同漏洞;然后通过直接的 dt.smartscape* ID、容器映像摘要 → 运行中的 CONTAINER,或主机 host.ip → Smartscape HOST,证明运行时关联性 |
| “本期新报告且上一期未报告”(外部) | vulnerabilities-external.md · common-patterns.md § 18 | 上一期反连接(isNull(right.*))— finding.time.created 过滤器并不等价 |
| AI/LLM/GenAI 工作负载漏洞;“哪些 AI 服务存在漏洞?” | vulnerabilities-dynatrace-advanced.md § AI 工作负载漏洞 | 首先探测 smartscapeNodes "GENAI_SERVICE" — 零行 → 报告无法确定(没有受 GenAI 监控的服务);非零行 → DT 发现 + GENAI 范围(30m,按 finding.id 去重)。⚠ 零行 = 必须停止 — 禁止任何回退方案:实体/命名空间/工作负载名称子字符串、ML 库组件列表、进程/映像/标签模式均不得作为替代方案。 |
| 本期新增 AI 工作负载漏洞 | vulnerabilities-dynatrace-advanced.md § UC-AI2 | 对 {genai_service.id, vulnerability.id} 执行上一窗口的反连接 |
检测(威胁与攻击)
| 意图 / 示例 | 参考 | 模式 |
|---|---|---|
| 严重性 / 时间窗口概览(DT + 外部) | detections.md · all-security-events.md | DETECTION_FINDING 摘要;未限定范围时,默认时间范围为 2h,仅在结果为空时才扩大到 24h |
按攻击类型(SQL injection、加密货币挖矿,……) | detections.md | finding.type 子字符串匹配 |
| 攻击者 IP / 活动 | detections.md | expand actor.ips + ip() |
| MITRE 技术 / 子技术 | detections.md | threat.attack.* 数组 |
| 仅 RAP / 仅 Automated-Detections | detections.md § 提供方路由 | product.name=="Runtime Application Protection" / event.provider=="Dynatrace Automated Detections" |
| 将检测映射到实体;重复触发 | detections.md · dt-sec-contextualization entity-enrichment.md | object.id 分组 / 增强 |
| 特定外部提供方 | all-security-events.md § 限定到特定提供方 | 提供方 contains 惯用写法 |
MITRE 路由判定规则: MITRE ATT&CK 问题根据意图路由。“我们在自己的实体上检测到/观察到了哪些技术?”→
detections.md(DETECTION_FINDING)。“威胁情报/现实世界中的攻击活动报告了哪些技术?”→threat-intelligence.md(THREAT_REPORT)。不要混为一谈——标记为 T1059 的报告,并不能证明 T1059 曾在你的环境中发生。
威胁情报(外部报告和 IOC)
| 意图/示例 | 参考文档 | 模式 |
|---|---|---|
| 显示/列出/统计威胁情报报告;按提供方、攻击者、恶意软件家族、目标国家/行业、TLP、报告类型筛选报告 | threat-intelligence.md | THREAT_REPORT + dedup {threat.report.id}(先执行 SD 防护);绝不能使用四键 finding summarize |
| 跨报告统计排名靠前的 IOC(CVE/IP/域名/URL/邮箱/哈希)或 MITRE 技术 | threat-intelligence.md § IOC 提取 | dedup → expand 可观测对象 → countDistinctExact(threat.report.id) |
| 我是否受报告 X 影响/这些 IOC 是否出现在我的环境中?(威胁暴露) | threat-intelligence.md § 威胁暴露关联 | 将报告中的 IOC/CVE/技术与 VULNERABILITY_FINDING/RVA/DETECTION_FINDING 执行 join;日志/spans IOC 搜寻 → dt-sec-ioc-hunting |
合规(策略违规和基准)
| 意图/示例 | 参考文档 | 模式 |
|---|---|---|
| 通过率/安全态势(CIS/DORA/NIST/STIG) | compliance.md | 先加载 compliance.md——SPM 步骤 1–2 + passRate |
| 严重错误配置 | compliance.md | 先加载 compliance.md——步骤 1–2 + 严重性筛选 |
| 特定实体的合规/错误配置 | compliance.md § 实体安全选项卡视图(实体范围 ${entityIdsOrNames} 筛选器)· entity-enrichment.md | 镜像实体的安全选项卡(默认 CIS,仅显示失败项):表 1:DT CIS 失败规则 → 表 2:其他 DT 标准(注意重叠)→ 表 3:外部错误配置。更广泛的安全态势/计数问题则使用 § CIS 主标准摘要(记分卡)。 |
| 控制项/标准到实体的映射;按命名空间筛选 | compliance.md | 通过 compliance.standard.short_name/compliance.rule.id 限定实体范围(⚠ 绝不能使用 metadata_json) |
| 云端/非 K8s(PCI/ISO/HIPAA/GDPR;AWS/Azure/GCP) | compliance.md § 外部 | 外部分类体系(compliance.standards/policy/control) |
| 按标准/框架分组的外部违规项 | compliance.md § 外部 | compliance.standards 是一个数组——先对其执行 expand,再执行 summarize |
| 配置漂移/与上周相比新出现的失败规则(DT) | compliance.md § 周环比配置漂移 | 使用上一周期的 anti-join——扩大获取时间窗口不能替代它 |
| 本期新增且上一期不存在的外部合规发现 | compliance.md § 外部 | 使用上一周期的 anti-join(与漂移相同的规则) |
| KSPM(仅限 Kubernetes,DT 原生) | compliance.md | product.name=="Security Posture Management" |
覆盖范围、增强和仪表板
| 意图 / 示例 | 参考资料 | 模式 |
|---|---|---|
| 覆盖情况 /“已覆盖与未覆盖”/ 覆盖缺口 — 主机 / 进程 / 工作负载 | coverage-and-dashboards.md(计数逻辑)· dt-sec-contextualization correlation-and-coverage.md(匹配方法) | ⚠ 必须从 smartscapeNodes + lookup 扫描事件着手 — 仅汇总扫描事件没有分母,无法回答覆盖情况问题 |
| 某个实体是否由 DT 功能覆盖(RVA、SPM、RAP 或其他 DT 原生功能) | coverage-and-dashboards.md | 如果该实体在此功能的运行时间窗口内没有相关发现或扫描 / 完成事件,则回答未覆盖 — 很可能未启用该功能,或未为该实体配置该功能 |
| 将外部发现映射到工作负载 / 主机 / 云 | dt-sec-contextualization entity-enrichment.md | 三向匹配(K8s)/ 按 IP 匹配主机 / 路径 1(云)— ⚠ 始终关联到 Smartscape;绝不要仅按原始 object.name / k8s.namespace.name / host.name / 云资源 ID 对发现分组 |
| 每个实体一行的风险摘要 | dt-sec-contextualization entity-enrichment.md · coverage-and-dashboards.md | RVA + 外部数据合并 |
| 仪表板 — KPI 磁贴、前 N 项、趋势、圆环图 | coverage-and-dashboards.md | makeTimeseries、汇总方法 |
❌ 不要用于:
- Dynatrace 检测到的问题 →
dt-obs-problems - 应用程序 / 基础设施日志 →
dt-obs-logs - 分布式追踪 →
dt-obs-tracing - 服务性能 / RED 指标 →
dt-obs-services
AppSec 数据简介
所有安全事件都存储在 security.events 中,并按 event.type 分类:
- RVA 漏洞 —
VULNERABILITY_STATE_REPORT_EVENT(每个实体每 15 分钟生成一次快照) - KSPM 合规性 —
COMPLIANCE_FINDING(每个(rule, K8s object)一条,与COMPLIANCE_SCAN_COMPLETED按scan.id关联,以去重并保留最近一次扫描结果) - 外部合规性(CSPM / VSPM / 外部态势工具) — 使用外部分类体系的
COMPLIANCE_FINDING(compliance.standards/compliance.policy/compliance.control);compliance.rule.*通常为 null - 检测 —
DETECTION_FINDING(RAP,即product.name == "Runtime Application Protection")、SECURITY_EVENT(某些租户中的 RAP 事件)、自动化检测(event.provider == "Dynatrace Automated Detections")、外部安全工具;此外还有用于审计每条规则运行情况的DETECTION_EXECUTION_SUMMARY(仅限自动化检测) - 扫描覆盖情况 —
VULNERABILITY_SCAN、COMPLIANCE_SCAN - 威胁情报 —
THREAT_REPORT(外部 TI 平台:AlienVault OTX pulses、CrowdStrike Falcon Intelligence)。**这是一类独立的数据,不属于发现:**没有finding.*/object.*/dt.security.risk.level,没有受影响实体,也没有扫描周期。绝不纳入跨提供商发现摘要或态势概览拆解中 — 通过 threat-intelligence.md 单独查询。按threat.report.id去重。
完整的分类体系和字段参考 → data-model.md
关键限制:快照时间窗口
DT RVA 和 KSPM 是快照工具,而非事件流。每条管道所需的最小查询时间窗口:
- RVA:固定窗口
30m(捕获最新的 15 分钟周期);如果30m快照为空或明显过时,则使用 vulnerabilities-dynatrace.md 中受控的 24 小时最新已知状态回退方案 - KSPM:固定窗口
1h(内连接需要最新的COMPLIANCE_SCAN_COMPLETED标记) - 外部发现结果(包括 CSPM/VSPM):
2h–24h+(不具备快照语义——这些是一次性事件)
扩大这些窗口不会回溯到更早的数据——它们只会捕获最新的报告/扫描周期。如需查看历史趋势,请使用更长时间窗口的 makeTimeseries。
DT 生成的
VULNERABILITY_FINDING与 RVA 状态报告。 Dynatrace 生成的VULNERABILITY_FINDING查询(例如 vulnerabilities-dynatrace-advanced.md § AI 工作负载漏洞 中的 AI 工作负载范围查询) 也使用30m窗口,但会按finding.id去重,因为 DT 发现结果会在每次扫描运行时(约每 15 分钟)重新生成——这与 RVA 状态报告的30m窗口不同,后者按{vulnerability.display_id, affected_entity.id}去重。 不要混用这两种去重粒度。
Dynatrace 应用中的默认时间范围
UI 应用会在时间选择器中显示预设默认值。如果用户提到“应用中的视图”,却没有指定明确的时间窗口,请采用以下默认值,使查询结果与用户在 UI 中看到的内容一致:
| 应用 | 默认时间选择器 |
|---|---|
| 漏洞应用 | 30 分钟 |
| 威胁与漏洞利用应用 | 2 小时 |
| 安全态势管理应用 | 2 小时 |
这些应用默认时间窗口比上述快照的最小时间窗口更长(例如,SPM 应用为 2h,而 KSPM 管道的最小值为 1h)。内连接/最新周期去重正常运行所需的是最小时间窗口;而用户首次加载应用时看到的则是应用默认时间窗口。生成规范管道 DQL 时,请使用最小时间窗口;用户询问“SPM 应用现在显示什么?”或创建用于匹配应用视图的仪表板图块时,请使用应用默认时间窗口。
详情请参阅 vulnerabilities-dynatrace.md § 快照与历史记录。
此技能的组织结构
为了便于扩展,此技能分为两部分:
- SKILL.md(本文件)——入口、快速查阅,以及指向合适参考文档的路由
- references/——按能力或领域分类的详细指南:
- data-model.md —
fetch security.events参考文档——事件类型、提供方、字段、实体范围限定。 - common-patterns.md — 跨领域模式、应避免的常见错误,以及查询故障排查参考。
- data-model.md —
- vulnerabilities-dynatrace.md — Dynatrace 运行时漏洞分析(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 安全态势管理(SPM / XSPM)合规发现项和外部提供方合规发现项。
- detections.md — 运行时应用保护(RAP)检测、自动化检测规则和外部提供方检测。
- threat-intelligence.md — 外部威胁情报报告(
THREAT_REPORT):AlienVault OTX / CrowdStrike Falcon Intelligence、IOC 提取和威胁暴露关联分析。此类报告不是发现项——需单独查询。 - all-security-events.md — 跨提供方查询、防止重复计数,以及统一汇总
- coverage-and-dashboards.md — 实体覆盖率计数逻辑(
smartscapeNodes分母、已覆盖与未覆盖)和仪表板模式(KPI 磁贴、前 N 项、趋势图、覆盖率环形图)。 - entity-enrichment — 已移至 dt-sec-contextualization 的
references/entity-enrichment.md(三向匹配 / 按 IP 查找主机 / 云)。有关实体映射的任何问题,请加载dt-sec-contextualization。
通用最佳实践
- 始终先加载 dt-dql-essentials——DQL 语法和函数名称与 SQL 不同。生成查询前,请先在
dt-dql-essentials中确认所有函数。 - 每个查询都必须以所路由参考文档中的规范模板为依据——不要自行编写 DQL。 确定意图,加载匹配的参考文档(参见 When to Use),并基于其中的规范管道 / 命名构建块编写。不要凭 SQL 习惯臆造字段名称、枚举值、连接语法或管道结构。只有技能示例中明确展示或已在
dt-dql-essentials中验证的语法,才可用于调整模板。如果没有模板涵盖该请求,请说明这一点,并以最接近的模板进行调整——绝不要编造字段或值。 - 不要使用
dt.system.bucket过滤器——安全事件数据可能存放在任何 bucket 中;按 bucket 过滤可能会隐藏发现项。 - 为不同类别使用正确的来源字段——RVA 使用
event.provider == "Dynatrace",SPM / 检测使用product.vendor == "Dynatrace"。请参阅 data-model.md § Provider Taxonomy。 - 始终包含明确的
from:子句——根据查询类别使用正确的时间范围:查询类别 默认时间窗口 说明 DT RVA 快照 固定为 30m捕获最新的 15 分钟状态报告周期 — 不要扩大时间窗口 DT KSPM 快照 固定为 1h与扫描完成周期的内连接对齐 — 不要扩大时间窗口
| RAP / 外部检测检索或当前摘要 | 首次尝试使用 2h | 与 Threats & Exploits 应用的默认值一致。仅当未返回任何行,或用户明确要求更长的时间窗口时,才扩大到 24h(参见 detections.md § 空结果时扩大时间窗口的回退方案) |
| 跨提供商摘要(聚合) | 24h | 摘要会按时间聚合;请从较宽的时间窗口开始 |
省略 from: 会回退到与快照语义不匹配的默认时间窗口,导致不同查询结果之间出现偏差。30m / 1h 时间窗口并非任意设定 — 它们与底层 RVA / SPM 扫描频率相关。完整的时间窗口参考请参见 common-patterns.md § 7。
拆解包含 DT 的广泛问题/态势概览问题(“集成了哪些安全产品,包括 Dynatrace 原生产品?”、态势概览、包含 DT 漏洞/合规数据的跨类别计数)——切勿对整个 security.events 执行一次宽范围扫描。运行三个独立查询并合并结果:流 A:外部检测 + DT 检测(24h,加入防重复计数保护);流 B:DT RVA(30m);流 C:DT KSPM(1h)。这样可让高基数快照流保持在较短的时间窗口内,并避免重复计数。范围更窄的“哪些外部集成正在发送数据?”仍使用单个仅查询外部数据的查询。参见 all-security-events.md § 广泛问题的查询拆解。
6. 在原始列表中保留实体标识符(top / latest / list / show-me——不使用 summarize),让用户看到每个发现对应的实体。命名空间按系列划分,不可互换:跨提供商的 *_FINDING/扫描事件使用通用的 dt.smartscape* / dt.entity* / dt.source* 字段;RVA 状态/变更事件中的这些字段为 null,引用则位于 affected_entity* / related_entities* 字段中。纯计数/通过率汇总不适用此规则。字段列表和通配符引用 → common-patterns.md § 17。
7. 广泛的实体安全问题也必须查询外部流。 对于“这台主机/K8s 节点/工作负载/集群的安全发现”等提示词,不要在查询 DT RVA 和 SPM 后就停止。还要查询外部/跨提供商的 *_FINDING 流,使用宽范围实体 OR 链(dt.smartscape_source.id、dt.entity.*、object.* 以及相关的 k8s.* 字段)限定范围,时间窗口为 24h,然后与 RVA(30m)和 SPM(1h)的结果合并。将 dt.source_entity 视为旧版/扫描备用字段,而非主要的跨提供商范围限定路径。如果外部分支返回 0 行,则报告“未找到外部发现”,并说明所用范围。加载 dt-sec-contextualization → entity-enrichment.md,以执行 Smartscape 联接。另请参阅 all-security-events.md。
8. 始终限制原始列表和 top-N 结果。 如果用户要求“top X”“last X”或“first X”,则在末尾添加 | sort ... | limit X(在排名/排序之后)。如果用户要求列出/显示发现,但未明确要求提供全部数据,且输出不是汇总(summarize / makeTimeseries),则默认添加 | limit 50。不要对安全发现执行不受限制的原始投影。完整规则和例外情况 → common-patterns.md § 16。
9. 保留查询结构——除非用户要求更粗略的聚合,否则不要删减 by: 键。 规范的跨提供商 summarize 始终按 {event.provider, product.name, event.type, dt.security.risk.level} 分组。删去其中任何一个键,都会在不提示的情况下将不同提供商、产品或发现类型的行合并为单个计数,评估器会对此扣分。除非用户明确要求更粗略的视图,否则不要将四键分组替换为更简单的 by: {dt.security.risk.level} 或 by: {event.type}。参见 common-patterns.md § 15。
-
合规状态使用
compliance.result.status.level(PASSED/FAILED/MANUAL/NOT_RELEVANT)——切勿使用event.status或"PASS"/"FAIL"。通过率基于按规则逐项判定的结果计算,并在最新扫描去重联接on: {scan.id}后进行。字段术语、去重联接和通过率汇总 → compliance.md。 -
在
expand/join/lookup展开数组后,统计不同身份,而不是行数——使用countDistinctExact(vulnerability.display_id)/countDistinctExact(finding.id),或先按身份 + 分组键执行dedup。只有在进入expand的数据粒度已经是每个计数项一行时,普通的count()才安全。示例和例外 → common-patterns.md § Mistakes #55。 -
将空的实体覆盖率探测结果解读为未覆盖。 验证某个特定实体是否受 Dynatrace 安全能力(RVA、SPM/KSPM、RAP 或其他 DT 原生能力)覆盖时,如果没有相关发现和扫描 / 完成事件,就表示该实体未受此能力覆盖。请说明可能原因:该能力未启用,或未配置 / 部署为监控该实体。用户询问覆盖情况时,不要含糊地说“没有发现”。计数逻辑 → coverage-and-dashboards.md;匹配方案 → dt-sec-contextualization
correlation-and-coverage.md。 -
如实报告空结果——切勿编造数字。 0 行表示“没有匹配数据”,并说明使用的范围和筛选条件;切勿编造看似合理的值。放宽筛选条件前,请先应用该类别文档中说明的恢复方法(RVA 30m→24h 最新已知状态、检测 2h→24h 扩大时间范围、RVA 筛选条件匹配到 null
k8s.*/dt.entity.*/dt.smartscape*→ 改用affected_entity.*/related_entities.*);如果进行了调整,请明确说明。恢复详情 → vulnerabilities-dynatrace.md / detections.md。
有关特定领域的最佳实践和完整诊断目录,请参阅上文“本技能的组织方式”部分列出的参考资料。
外部文档
- https://docs.dynatrace.com/docs/secure/threat-observability/concepts
- https://docs.dynatrace.com/docs/semantic-dictionary/model/security-events
- https://docs.dynatrace.com/docs/semantic-dictionary/fields
相关技能
- dt-dql-essentials — 首先加载。核心 DQL 语法、命令参考、函数目录、Smartscape 模式。
- dt-sec-contextualization — 任何实体映射问题都需加载:三向匹配(K8s 工作负载)、按 IP 匹配主机、云路径 1、Pod→节点拓扑、跨证据关联、覆盖率匹配方案。
- dt-obs-kubernetes — K8s 拓扑;适用于限定到集群 / 工作负载的安全发现
- dt-obs-hosts — 主机清单、进程级上下文;当发现的受影响实体是 HOST 或 PROCESS_GROUP 时很有用
- dt-obs-services — 面向服务的查询;适用于 UC-G3“查找影响
<service-name>的发现”,以及从易受攻击的服务追溯到 RED 指标 - dt-obs-aws / dt-obs-azure / dt-obs-gcp — 云 Smartscape;适用于针对云服务提供商的资源拓扑丰富外部云安全发现,以及处理特定于超大规模云服务商的提供商字段(云资源 ID、ARN、账户范围)
- dt-obs-tracing — 从易受攻击 / 遭受攻击的实体深入查看代表性请求追踪
- dt-obs-problems — 在查询安全发现前,获取问题的受影响 / 相关实体 ID(UC-G5)