This is a per-technique evidence map, published because a per-technique verdict is only meaningful next to the sensor set that produced it. The same technique reads covered in one estate and unknown in another, and nothing in a coverage percentage tells you which one you are looking at.
Every row below carries two verdicts, and the distance between them is the point.
| Verdict | What the library declares | What this bench can verify |
|---|---|---|
| Essential | 8 | 0 |
| Substitutable | 4 | 1 |
| Complementary | 72 | 17 |
| Still unknown | 0 | 66 |
The four verdicts are not ours. They come from a public exchange with Reza Adineh, author of TID-CMM, who proposed splitting evidence per technique into essential, substitutable, complementary or still unknown, and observed that a bench can contribute evidence within that scope without establishing a universal ratio across techniques. We are contributing within exactly that scope. The framework is his; the measurement is ours; neither claims the other.
Every scenario in the library declares, per stage, a MITRE technique and the data source its detection reads. We took the 186 stages that carry a technique, collapsed them to 84 unique techniques, and classified each one twice.
Column one — what the library declares. A technique whose stages read only network-class sources (network, dns, proxy, ics_protocol) is essential: within this library there is no non-network path to it. A technique with both a network-class and a host-class stage is substitutable. A technique with no network-class stage at all is complementary. This is design intent, recoverable from source, and it is not a measurement.
Column two — what this bench can verify. The bench is one Ubuntu 22.04 host with a Wazuh agent. No Sysmon. No commercial EDR. No Zeek, no Suricata, no NetFlow. No cloud. It therefore collects two of the classes the library uses, and a technique whose evidence never reaches it stays still unknown — not uncovered, and not covered.
The library's most-used evidence class is sysmon, at 68 of 186 stages. This bench
runs Linux and has no Sysmon, so the single largest body of declared evidence is one it cannot
witness at all. That is why 66 techniques stay unknown, and it is a fact about the bench rather
than about the library or about the techniques.
Read the other way: a per-technique verdict is a property of an estate, not of a technique. Two organisations running the same library against the same 84 techniques will produce different maps, and both maps can be honest. Anyone publishing a single universal ratio is publishing a property of their own sensor set without saying so.
One library, one bench, one point in time. Column one is read from source and is therefore a statement about how the library was written, not about whether the detection works. Column two is bounded by the sensor set above and by nothing else — a richer estate moves rows out of still unknown in both directions. Substitutable in particular cannot be proven from source at all: proving that a host signal satisfies the same detection requirement as a network signal takes a run, and this table does not contain one. We publish the list and the raw data so that any of this can be recomputed or contradicted.
84 rows. Technique links go to attack.mitre.org. Sigma column shows the first two rule names the library attaches, where it attaches any.
| Technique | Data sources declared | Library | This bench | Sigma rules |
|---|---|---|---|---|
| T0831 | historian, ics_protocol | Substitutable | Still unknown | t0831 |
| T0836 | historian | Complementary | Still unknown | — |
| T0843 | ot | Complementary | Still unknown | — |
| T1003.001 | edr, sysmon | Complementary | Still unknown | proc_access_lsass_dump, proc_access_win_lsass_mimikatz |
| T1003.003 | sysmon | Complementary | Still unknown | t1003.003 |
| T1003.006 | auth | Complementary | Complementary | win_dcsync_replication, win_security_dcsync |
| T1018 | process, sysmon | Complementary | Complementary | remote_system_discovery, t1018 |
| T1021.001 | auth | Complementary | Complementary | internal_rdp_lateral, t1021.001 |
| T1021.002 | auth, sysmon | Complementary | Complementary | psexec_service_creation, t1021.002 |
| T1027 | sysmon | Complementary | Still unknown | proc_creation_win_powershell_obfuscation |
| T1041 | network | Essential | Still unknown | net_exfil_over_c2, net_exfil_over_c2_large_upload |
| T1046 | auth, network | Substitutable | Substitutable | lin_ssh_invalid_protocol, net_internal_port_scan |
| T1047 | sysmon | Complementary | Still unknown | proc_creation_win_wmic_process_creation |
| T1048.003 | dns | Essential | Still unknown | dns_exfiltration_high_volume |
| T1053.005 | sysmon | Complementary | Still unknown | proc_creation_win_schtasks_creation, schtasks_creation_persistence |
| T1055.001 | sysmon | Complementary | Still unknown | sysmon_createremotethread_loadlibrary |
| T1056.001 | edr | Complementary | Still unknown | keylogger_hook_behavior |
| T1059.001 | sysmon | Complementary | Still unknown | proc_creation_win_iis_susp_child_powershell, proc_creation_win_office_spawn_powershell |
| T1059.004 | edr | Complementary | Still unknown | proc_creation_lnx_shell_susp_rev_shells |
| T1059.005 | sysmon | Complementary | Still unknown | proc_creation_win_office_susp_macro |
| T1068 | sysmon | Complementary | Still unknown | win_byovd_vulnerable_driver_load |
| T1069.002 | sysmon | Complementary | Still unknown | domain_group_recon |
| T1070.001 | sysmon | Complementary | Still unknown | proc_creation_win_wevtutil_clear_logs, t1070.001 |
| T1071.001 | network | Essential | Still unknown | net_beacon_ja3, net_cobaltstrike_beacon_ja3 |
| T1071.004 | dns | Essential | Still unknown | dns_tunneling_high_entropy |
| T1074.001 | [0 KHAI], sysmon | Complementary | Still unknown | file_staging_mass_copy |
| T1078 | auth | Complementary | Complementary | t1078, win_auth_anomalous_valid_account |
| T1078.004 | azuread, cloud_audit, cloudtrail | Complementary | Still unknown | cloud_anomalous_console_login, t1078.004 |
| T1087.002 | sysmon | Complementary | Still unknown | ldap_recon_sharphound |
| T1090 | sysmon | Complementary | Still unknown | t1090 |
| T1098 | cloudtrail | Complementary | Still unknown | — |
| T1098.001 | azuread, cloud_audit | Complementary | Still unknown | t1098.001 |
| T1098.005 | cloud_audit | Complementary | Still unknown | t1098.005 |
| T1105 | network | Essential | Still unknown | net_tool_transfer_ingress, proc_creation_lnx_susp_curl_download |
| T1110.001 | active-response, auth | Complementary | Complementary | lin_auth_ssh_bruteforce, win_auth_rdp_bruteforce |
| T1110.003 | auth | Complementary | Complementary | t1110.003, win_security_password_spray |
| T1114.002 | cloud_audit, m365 | Complementary | Still unknown | t1114.002 |
| T1133 | auth | Complementary | Complementary | t1133 |
| T1134.001 | sysmon | Complementary | Still unknown | proc_creation_win_potato_seimpersonate |
| T1190 | network | Essential | Still unknown | t1190, web_exchange_proxylogon |
| T1204.002 | [0 KHAI], mail | Complementary | Still unknown | file_event_win_office_maldoc_open |
| T1207 | auth | Complementary | Complementary | win_rogue_dc_dcshadow |
| T1213 | cloud_audit | Complementary | Still unknown | cloud_info_repo_bulk_download |
| T1219 | sysmon | Complementary | Still unknown | proc_creation_win_remote_access_tool |
| T1482 | sysmon | Complementary | Still unknown | domain_trust_discovery |
| T1484.001 | auth | Complementary | Complementary | win_gpo_modification |
| T1485 | sysmon | Complementary | Still unknown | file_mass_overwrite_delete, t1485 |
| T1486 | edr | Complementary | Still unknown | file_mass_encryption, t1486 |
| T1489 | sysmon | Complementary | Still unknown | service_stop_backup, service_stop_critical |
| T1490 | sysmon | Complementary | Still unknown | t1490 |
| T1491.001 | sysmon | Complementary | Still unknown | file_mod_webroot_index |
| T1496 | network | Essential | Still unknown | net_stratum_mining_pool |
| T1505.003 | edr, sysmon | Complementary | Still unknown | file_event_win_exchange_webshell_drop, web_shell_drop_iis |
| T1528 | azuread, cloud_audit | Complementary | Still unknown | t1528 |
| T1529 | sysmon | Complementary | Still unknown | t1529 |
| T1530 | cloud_audit, cloudtrail | Complementary | Still unknown | cloud_storage_mass_object_access |
| T1539 | cloud_audit | Complementary | Still unknown | cloud_stolen_session_cookie, t1539 |
| T1543.003 | sysmon | Complementary | Still unknown | win_new_service_creation |
| T1546.003 | sysmon | Complementary | Still unknown | sysmon_wmi_event_subscription |
| T1547.001 | sysmon | Complementary | Still unknown | reg_persistence_run_key, registry_run_key_persistence |
| T1548.002 | sysmon | Complementary | Still unknown | proc_creation_win_uac_bypass_fodhelper, registry_uac_bypass_fodhelper |
| T1550.002 | auth | Complementary | Complementary | pass_the_hash_ntlm |
| T1550.003 | auth | Complementary | Complementary | pass_the_ticket_kerberos |
| T1552.004 | process | Complementary | Complementary | t1552.004 |
| T1558.001 | auth | Complementary | Complementary | — |
| T1558.003 | auth | Complementary | Complementary | win_kerberoasting_tgs, win_security_kerberoasting_4769 |
| T1558.004 | auth | Complementary | Complementary | win_security_asreproast_4768 |
| T1560.001 | sysmon | Complementary | Still unknown | proc_creation_win_7z_rar_password_archive |
| T1561.002 | sysmon | Complementary | Still unknown | raw_disk_write_mbr, t1561.002 |
| T1562.001 | sysmon | Complementary | Still unknown | proc_creation_win_powershell_set_mppreference, t1562.001 |
| T1564.008 | m365 | Complementary | Still unknown | — |
| T1565.001 | sysmon | Complementary | Still unknown | db_stored_data_tamper |
| T1566.001 | Complementary | Still unknown | mail_phishing_link, t1566.001 | |
| T1566.002 | m365, proxy | Substitutable | Still unknown | phish_credential_harvest_url |
| T1567.002 | cloudtrail, network | Substitutable | Still unknown | net_exfil_cloud_rclone, net_exfil_cloud_storage |
| T1570 | sysmon | Complementary | Still unknown | lateral_tool_transfer_smb |
| T1573.002 | network | Essential | Still unknown | net_malleable_c2_profile |
| T1574.009 | sysmon | Complementary | Still unknown | file_event_win_unquoted_service_path, proc_creation_win_wmic_service_discovery |
| T1606.002 | auth | Complementary | Complementary | t1606.002 |
| T1610 | kubernetes | Complementary | Still unknown | — |
| T1611 | falco | Complementary | Still unknown | — |
| T1613 | kubernetes | Complementary | Still unknown | — |
| T1621 | cloud_audit | Complementary | Still unknown | cloud_mfa_push_fatigue, t1621 |
| T1648 | cloud_audit | Complementary | Still unknown | cloud_serverless_malicious_function |
Published rather than available on request, so every number above is recomputable:
ATK New Technology · Hanoi, Vietnam · Dong Nguyen · dongnx@atkvn.com
Related, same terms: Detection Reality Index Vol.1 · Vol.2 (IBM QRadar) · Vol.3 · Crypto Reality Index Vol.1 · IETF PQ authentication position paper · atkvn.com