Repository navigation
[Security] Document MITRE ATLAS coverage and ATT&CK v19.2 for 9.6 - #9065
nastasha-solomon wants to merge 21 commits into
Conversation
Rename the coverage page to MITRE coverage, add the MITRE ATLAS tab and how rules are counted per framework, and document the Threat mappings rule setting that replaces MITRE ATT&CK threats in 9.6. Split the supported versions table so 9.5.x stays on ATT&CK v19.1 and 9.6.0+ uses v19.2, and scope the Detection rules page v19 callout to 9.5. Update the pages that name the renamed labels: alert details flyout, rules search, Security UI navigation list, and the detection-rule-edit Agent Builder skill pages. Addresses elastic/docs-content-internal#1941 and #1942. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reorder the coverage page so the ATLAS section follows the grid explanation, add viewing and enabling privileges, name both frameworks in the versions lead-in, and align "disabled" wording with the Disabled rules filter label. Use click for buttons and remove for mappings in Threat mappings. Replace the retired Defense Evasion search example with Persistence and split ATLAS search into its own scoped item. Indent nested list content four spaces. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Elastic Docs AI PR menuCheck the box to run an AI review for this pull request.
Powered by GitHub Agentic Workflows and docs-actions. For more information, reach out to the docs team. |
Elastic Docs Style Checker (Vale)Summary: 2 suggestions found 💡 Suggestions (2): Optional style improvements. Apply when helpful.
The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
- Move the MITRE ATLAS version into the ATLAS section and return the supported versions section to MITRE ATT&CK only. - Shorten the coverage page intro and the ATLAS section. - Drop field names from the remap page, so the warning icon and red outline steps hold for every version without nested badge lists. - Trim the Threat mappings setting and use "sub-techniques". - Remove the old page name from the Elastic Security UI nav list and the extra ATLAS line from the built-in skills reference. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Follow MITRE's branding guidance: use MITRE ATT&CK® and MITRE ATLAS™ on the first prose mention of each framework on each page, and in the remap page title. Bold UI labels stay as they appear in the product. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Kibana 9.0 to 9.5 shows these labels with trademark symbols, so the docs now match them exactly: - Rule form field: MITRE ATT&CK™ threats - Coverage page name: MITRE ATT&CK® coverage - Detection rules callout: MITRE ATT&CK® updated to v19 Checked against Kibana upstream/9.0, upstream/9.5, and upstream/9.6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Reword task headings so each starts with a verb and says what the reader gets, and order them to follow the workflow. - Move the supported MITRE ATT&CK versions reference to the end. - Name the page wherever the text said "the page" or "this page". - Use "select" instead of "click" for the technique popup title. Anchor IDs are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…in serverless - Reword the remap page's What changed subsections so each heading states the change, name custom rules in the remap section heading, and rename the last step to say what to confirm and where. - Tag the MITRE ATT&CK™ threats setting and the 9.5 Detection rules callout as unavailable in serverless. Both are gone from Kibana main. Anchor IDs are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reframe the intro and sections around user goals instead of how the page is built. Define the coverage grid before later sections refer to it, nest MITRE ATLAS under the grid section, and introduce the technique popup before the enable steps. Note that disabled rules must be included in the filter before Enable all disabled works, and point to the outdated mappings callout in 9.5 and later. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
| ``` | ||
|
|
||
| The coverage page maps detections to [MITRE ATT&CK versions](https://attack.mitre.org/resources/updates/) used by {{elastic-sec}}. | ||
| To view the coverage grid for MITRE ATLAS [v2026.08](https://github.com/mitre-atlas/atlas-data/releases/tag/v2026.08), select the **MITRE ATLAS** tab. If a rule is mapped to both frameworks, it counts toward coverage on both tabs. |
There was a problem hiding this comment.
This will be changed before release to v2026.09. This is TRADE's PR and we will have one up too.
ATT&CK mappings will be on v20.1 if they come out in time, I'll keep you updated but here is the coordinating ticket as well: elastic/kibana#166152
There was a problem hiding this comment.
| To view the coverage grid for MITRE ATLAS [v2026.08](https://github.com/mitre-atlas/atlas-data/releases/tag/v2026.08), select the **MITRE ATLAS** tab. If a rule is mapped to both frameworks, it counts toward coverage on both tabs. | |
| To view the coverage grid for MITRE ATLAS [v2026.09](https://github.com/mitre-atlas/atlas-data/releases/tag/v2026.08), select the **MITRE ATLAS** tab. If a rule is mapped to both frameworks, it counts toward coverage on both tabs. |
bmorelli25
left a comment
There was a problem hiding this comment.
Super easy to follow. I learned something new!
mdbirnstiehl
left a comment
There was a problem hiding this comment.
One question, but otherwise LGTM!
Co-authored-by: Brandon Morelli <brandon.morelli@elastic.co>
- Drop the 9.0-9.5 badge from the coverage page rename note. The prose already says when the page was renamed, matching the Rules rename notes on sibling pages. - Mark the 9.0-9.5 MITRE ATT&CK alert flyout field unavailable in Serverless, to match the same field on the common rule settings page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Matches the ® used for ATT&CK elsewhere in the docs, per review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Replace security-rules-coverage.png with security-mitre-coverage-attack.png, and add security-mitre-coverage-atlas.png to the MITRE ATLAS section. - Explain the example's filter state: it includes disabled rules and has no enabled rules, so headers show 0 covered techniques while cells are shaded. - Note that column headers also show disabled and enabled rule counts. - Correct the cell description: the sub-technique count follows the current filters, not only enabled rules (getNumOfCoveredSubtechniques). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#302501) ## Summary Addresses: elastic#166152 for `9.6.0` ([comment](elastic#166152 (comment))) Adds MITRE ATLAS [`v2026.09`](https://github.com/mitre-atlas/atlas-data/releases/tag/v2026.09) to the bundled MITRE artifact. Previous ATLAS version was `v2026.08`, added in elastic#296562. This matches the ATLAS version prebuilt rules now use in TRADE: elastic/detection-rules#7080. `v2026.08` is intentionally kept in the artifact. Versions are additive, and each entity carries its own `framework` and `framework_version`. The API and UI resolve the latest version per framework by default, so `v2026.09` becomes the ATLAS default and past versions stay available by explicit version. ### How it was updated All steps are from the Kibana repo root. Package docs: `x-pack/solutions/security/packages/security-mitre-attack-server/README.md`. 1. In `x-pack/solutions/security/packages/security-mitre-attack-server/src/build_artifact/build_artifact.ts`, append the new release tag to the framework's versions array: - ATLAS: `ATLAS_CONTENT_VERSIONS` (tags: https://github.com/mitre-atlas/atlas-data/releases) - ATT&CK: `MITRE_CONTENT_VERSIONS` (tags: https://github.com/mitre/cti/tags) 2. Regenerate the artifact (fetches every pinned tag, prints per-framework/version counts): ```sh node x-pack/solutions/security/packages/security-mitre-attack-server/scripts/build_artifact.js ``` 3. Sanity check the printed counts and confirm the diff to `artifacts/mitre_artifact.json` is additions only (existing versions should be unchanged). 4. Run the package tests: ```sh node scripts/jest x-pack/solutions/security/packages/security-mitre-attack-server node scripts/jest x-pack/solutions/security/plugins/mitre_attack ``` 5. Manually verify the API (see Test Criteria). ### Artifact changes | Framework | Version | Entities | Tactics | Techniques | Subtechniques | |---|---|---|---|---|---| | ATLAS (new) | `2026.9` | 224 | 16 | 120 | 88 | | ATLAS (unchanged) | `2026.8` | 213 | 16 | 114 | 83 | | ATT&CK Enterprise (unchanged) | `19.2` | 873 | 15 | 365 | 493 | `mitre_artifact.json` diff is additions only (+3,209 lines). ## Acceptance Criteria - [x] User can map and use new ATLAS techniques in Security Solution - [x] The user-facing documentation is updated with the new version - [ ] elastic/docs-content#9065 ## Test Criteria - [x] Jest passes for `@kbn/security-mitre-attack-server` and the `mitre_attack` plugin - [x] Manually verified `GET /internal/mitre/entities` on a local stack (`x-elastic-internal-origin: kibana`, `elastic-api-version: 1`): - [x] `framework=atlas` (no version) returns `2026.9` (16 / 120 / 88) - [x] `framework=atlas&framework_version=2026.9` returns `2026.9` - [x] `framework=atlas&framework_version=2026.8` returns `2026.8` (16 / 114 / 83) - [x] No params / `framework=enterprise` still returns ATT&CK `19.2` (15 / 222 / 475 active; 15 / 365 / 493 with `status=all`) - [x] Unknown or non-normalized versions (`2027.1`, `2026.09`, `v2026.09`) return `200` with empty arrays (existing behavior, not changed here) - [x] Verify the new `v2026.09` techniques (see the release notes linked above) are available for mapping on the Rule Creation page - [x] Verify the new `v2026.09` techniques are available on the MITRE coverage page
Summary
Fixes elastic/docs-content-internal#1941.
Fixes elastic/docs-content-internal#1942.
This PR has two parts:
MITRE ATLAS and 9.6 changes
In 9.6:
Preview:
detection-rule-editskill now edits "MITRE mappings" instead of "MITRE ATT&CK mappings", and the use cases page adds a MITRE ATLAS example prompt.Content and organization improvements
Verification
The 9.6 labels, versions, and behavior were checked against Kibana's
9.6branch, which carries elastic/kibana#292796, elastic/kibana#296562, and elastic/kibana#298185. The behavior described in the coverage page rewrite was checked against Kibanamainand thev9.0.0tag. That includes the default filter, cell shading, search matching, and popup contents. The outdated mappings callout was checked against thev9.4.0andv9.5.0tags.Generative AI disclosure