nx_attack_taxonomy.nx
buildroot/runtime/nx_attack_taxonomy.nx
about
nx_attack_taxonomy.nx -- MITRE ATT&CK + CWE sealed-enum reference.
license_tier: INDEPENDENT_REDERIVE
genealogy_id: international-research-sources/mitre/attack_cwe
MITRE ATT&CK Enterprise Tactics + CWE Top 5 weakness IDs encoded
as substrate sealed enums. The taxonomy itself is fact (the
names + numeric IDs published by MITRE); we never copy ATT&CK
prose / descriptions / technique catalogs into substrate code.
This file is the foundation for two future Layer-3 grader
perspectives:
1. nx_attack_grader -- scans substrate source for code patterns
indicative of ATT&CK techniques + maps to
tactics; emits "tactic-coverage" verdict
per file (a defensive-review signal).
2. nx_cwe_grader -- scans for substrate code patterns
indicative of CWE Top 25 weaknesses;
emits per-CWE LOSE with named_improvement.
Both consume the sealed enums declared here so the taxonomy lives
in one place.
Licensing note: MITRE ATT&CK is published under CC-BY 4.0
(attribution-required, banned from substrate code per the wall).
We INDEPENDENT_REDERIVE the taxonomy by re-encoding the NUMERIC IDS
(uncopyrightable facts) and re-paraphrasing names in our own
language; no prose, no descriptions, no technique catalog text
crosses into this file.
Reference (research only -- do NOT include in substrate output):
https://attack.mitre.org/ (CC-BY 4.0)
https://cwe.mitre.org/ (free public catalog)
dependencies 4 imports · 1 importers
imports: nx_syscalls.nxnx_runtime.nxnx_types.nxnx_tier.nx
imported by: nx_attack_taxonomy_test.nx
structs
| none |
consts
| 53 | const NX_ATTACK_TA_RECON: nx_int = 0 |
| 54 | const NX_ATTACK_TA_RESOURCE_DEV: nx_int = 1 |
| 55 | const NX_ATTACK_TA_INITIAL_ACCESS: nx_int = 2 |
| 56 | const NX_ATTACK_TA_EXECUTION: nx_int = 3 |
| 57 | const NX_ATTACK_TA_PERSISTENCE: nx_int = 4 |
| 58 | const NX_ATTACK_TA_PRIV_ESC: nx_int = 5 |
| 59 | const NX_ATTACK_TA_DEFENSE_EVASION: nx_int = 6 |
| 60 | const NX_ATTACK_TA_CRED_ACCESS: nx_int = 7 |
| 61 | const NX_ATTACK_TA_DISCOVERY: nx_int = 8 |
| 62 | const NX_ATTACK_TA_LATERAL: nx_int = 9 |
| 63 | const NX_ATTACK_TA_COLLECTION: nx_int = 10 |
| 64 | const NX_ATTACK_TA_C2: nx_int = 11 |
| 65 | const NX_ATTACK_TA_EXFIL: nx_int = 12 |
| 66 | const NX_ATTACK_TA_IMPACT: nx_int = 13 |
| 67 | const NX_ATTACK_TA_N: nx_int = 14 |
| 118 | const NX_CWE_BUFFER_OVERFLOW: nx_int = 0 // CWE-119 |
| 119 | const NX_CWE_OOB_READ: nx_int = 1 // CWE-125 |
| 120 | const NX_CWE_OOB_WRITE: nx_int = 2 // CWE-787 |
| 121 | const NX_CWE_USE_AFTER_FREE: nx_int = 3 // CWE-416 |
| 122 | const NX_CWE_NULL_DEREF: nx_int = 4 // CWE-476 |
| 123 | const NX_CWE_N: nx_int = 5 |
| 154 | const NX_ATTACK_SEV_INFO: nx_int = 0 |
| 155 | const NX_ATTACK_SEV_LOW: nx_int = 1 |
| 156 | const NX_ATTACK_SEV_MEDIUM: nx_int = 2 |
| 157 | const NX_ATTACK_SEV_HIGH: nx_int = 3 |
| 158 | const NX_ATTACK_SEV_CRITICAL: nx_int = 4 |
| 159 | const NX_ATTACK_SEV_N: nx_int = 5 |
functions
| 69 | func nx_attack_tactic_is_valid(t: nx_int) -> nx_int called by 1: main |
| 76 | func nx_attack_tactic_name(t: nx_int) -> *u8 called by 1: main |
| 95 | func nx_attack_tactic_mitre_id(t: nx_int) -> nx_int called by 1: main |
| 125 | func nx_cwe_is_valid(c: nx_int) -> nx_int called by 1: main |
| 131 | func nx_cwe_mitre_id(c: nx_int) -> nx_int called by 1: main |
| 140 | func nx_cwe_name(c: nx_int) -> *u8 |
| 161 | func nx_attack_sev_is_valid(s: nx_int) -> nx_int called by 1: main |