Skip to content

feat: v1.8 — MITRE ATT&CK® technique mapping + coverage - #14

Merged
MaddogWarner merged 1 commit into
mainfrom
feat/v1.8-mitre-attack
Aug 6, 2026
Merged

feat: v1.8 — MITRE ATT&CK® technique mapping + coverage#14
MaddogWarner merged 1 commit into
mainfrom
feat/v1.8-mitre-attack

Conversation

@MaddogWarner

Copy link
Copy Markdown
Owner

Summary

Merges the shipped v1.8 release into main. This code is already live on the App Store (MARKETING_VERSION = 1.8, build 9) but was never merged back, leaving main a release behind at v1.7.

Adds MITRE ATT&CK® Enterprise v19.1 technique mapping and coverage:

  • ATTACKCatalogue — 35 curated techniques, validated against the ATT&CK STIX bundle
  • ATTACKMappingData — per-step technique mappings with prevent/detect/recover/support relationships and analyst caveats
  • ATTACKCoverage — coverage calculation scoped to target maturity level and OS scope
  • ATTACKCoverageView / ATTACKTechniqueDetailView — coverage summary by tactic, technique detail with mapped steps
  • Step-level technique capsules in MaturityLevelView; ATT&CK IDs searchable in GlobalSearchView
  • MITRE attribution, disclaimer and coverage caveat in AboutView (required by MITRE's Terms of Use)
  • mitreattacke8.md — mapping rationale and source

Fast-forward from main: 1 commit ahead, 0 behind, no conflicts.

Why now

main did not reflect the shipped release, so any v1.9 work branched from main would silently drop this entire feature set. Merging restores main as the source of truth before v1.9 begins.

Test plan

  • Already validated by App Store release — this code is in production
  • Unit and UI test suites updated in this branch (Essential_8_Knowledge_BaseTests, Essential_8_Knowledge_BaseUITests)

Follow-ups

  • Tag v1.8 on merge so the shipped commit is identifiable — the repo currently has no tags
  • fix/privacy-statement-accuracy is branched off this branch and targets v1.9

🤖 Generated with Claude Code

Adds a curated Essential Eight → MITRE ATT&CK® Enterprise v19.1 layer,
mapping 65 of 67 implementation steps to adversary techniques with
Prevent / Detect / Recover / Support relationships.

- 35-technique catalogue pinned to ATT&CK v19.1, transcribed from
  mitreattacke8.md and validated against the v19.1 STIX bundle.
- Coverage engine scoped to the active profile, target maturity level
  and OS scope, with Not Applicable steps removed from the denominator
  and Support-only mappings reported as Indirect rather than covered.
- Technique capsules on each step, a cross-control technique detail
  sheet, a tactic-grouped coverage screen and a per-control rollup.
  Coverage surfaces are hidden under Reference Only Mode.
- Global Search matches technique IDs, parent IDs, canonical names and
  mapping notes.
- MITRE attribution, derived-mapping disclaimer and coverage caveat, per
  MITRE's Terms of Use and branding rules.
- Splash, marketing version and build bumped to 1.8 (9).

Steps 2-1-2 and 6-1-2 are deliberately unmapped: defender asset
inventory is not the adversary discovery behaviour described by T1518 /
T1082. A test asserts this so the omission has to be removed knowingly.

Tests: 42 unit tests covering mapping integrity, the closed catalogue and
coverage maths; 18 UI tests. The UI suite was failing before this change
for reasons unrelated to ATT&CK and is now green — launch arguments land
in NSArgumentDomain and cannot be overridden from the UI, and
-targetMaturityLevel / -osScopeFilter have been inert since v1.7 moved
that state onto the profile. Affected tests now drive the UI instead.

Verified: 42 unit + 18 UI tests pass, serially, on a freshly erased
iPhone 17 simulator.

Co-Authored-By: Claude Opus 5 <[email protected]>
@MaddogWarner
MaddogWarner merged commit 4945794 into main Aug 6, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant