What a control framework can and cannot prevent
A new interactive map shows, for any two security frameworks, how much one covers the other. The most useful thing it surfaces is where a control catalog structurally runs out of reach. Last updated: 2026-08-22
Security control frameworks are not interchangeable, and they are not equally good at everything. I built an interactive map that shows, for any two frameworks, how much one covers the other, in both directions, backed by the individual control-to-control mappings. The single most useful thing it surfaces is a boundary most compliance conversations skip: what a control catalog can prevent, and what it structurally cannot.
The finding
When I map NIST 800-53 against the ten CWE weakness families (the research-view "pillars" that every specific weakness rolls up to), the coverage is lopsided in a way that makes sense the moment you see it. At the strong end, 800-53 covers Improper Access Control well. At the weak end sit the code-correctness families: Incorrect Comparison, Incorrect Calculation, and Insufficient Control Flow Management.
| CWE weakness family | 800-53 coverage |
|---|---|
| Improper Access Control | 0.83 |
| Protection Mechanism Failure | 0.77 |
| Improper Neutralization | 0.73 |
| Improper Check or Handling of Exceptional Conditions | 0.68 |
| Improper Control of a Resource Through its Lifetime | 0.64 |
| Improper Adherence to Coding Standards | 0.56 |
| Improper Interaction Between Multiple Correctly-Behaving Entities | 0.55 |
| Insufficient Control Flow Management | 0.48 |
| Incorrect Comparison | 0.42 |
| Incorrect Calculation | 0.35 |
Coverage is a 0 to 1 index over the weaknesses we have mapped 800-53 to in each family, weighted by how completely each control addresses each weakness. It reads "how strongly this framework covers the weaknesses we have mapped," not "share of every weakness that exists."
This is not a knock on 800-53. It is the honest shape of what an administrative and technical control catalog can do. You can mandate access control, logging, configuration baselines, and separation of duties. You cannot mandate away an off-by-one, a wrong comparison operator, or a bad arithmetic bound. Those are implementation defects, and the controls that actually close them are code review, testing, and memory-safe or strongly typed languages, none of which a policy catalog can require into existence. Graded honestly, this is an observation from our own mapping data, corroborated by the obvious prior: a control that says "review access quarterly" has no purchase on a calculation error.
Why the map, and not a spreadsheet
Here is the part that makes the map worth building rather than reading off a table. Map the same ten weakness families against NIST CSF 2.0 instead, and the lopsidedness vanishes. CSF covers all ten families at a uniformly high level, roughly 0.74 to 0.82 across the board.
That is not because CSF is a better framework than 800-53. It is because CSF describes outcomes ("Identify," "Protect," "Detect") rather than specific controls, so each outcome maps broadly to many weaknesses at a decent strength. The gaps that 800-53 exposes are still there in reality; CSF is simply at too coarse a resolution to show them. That resolution difference is the reason to have both, and to look at them side by side. Use the granular catalog to find the gaps. Use the outcome framework to check breadth. A map that puts the two next to each other, on the same weakness axis, makes the tradeoff legible in a way that neither framework's own documentation ever will.
What is under the hood
Every mapping is direct. We do not chain a weakness through a second or third taxonomy to reach a control. Chaining is lossy: when we tested the standard CWE to CAPEC to ATT&CK path on the twenty most common weaknesses, the middle taxonomy dropped most of the signal, leaving twelve of twenty with no technique at all, including the two most common. Every edge on this map is a mapping we authored and graded ourselves, first hand.
It is bidirectional, and the two directions can disagree. How much 800-53 covers CSF is a different question from how much CSF covers 800-53, and we store and show both. Where our two directions disagree at the individual control level, the map marks it rather than averaging the disagreement away.
We stopped counting policy as protection. When a governance control mandates a technical control, that is a mandate, not coverage. A policy analyzes nothing and blocks nothing on its own, so it provides none of the technical control's protective effect. We re-authored those cross-layer links as a distinct "governs and implements" relation that sits off the coverage scale entirely, 423 such links. Coverage numbers for policy-heavy control families dropped as a result. That was the honest correction, not a regression, and the map has a toggle to show the governance links on their own.
How to use it
- Security leader. Before you adopt a framework as your control baseline, look at what it does not reach. If your risk is dominated by code-level defects in software you build or run, a compliance catalog is necessary but visibly insufficient, and the map shows you where the shortfall is so you can fund the missing controls on purpose.
- Lean IT. You will never implement two full frameworks. The map lets you pick one as your spine and see, concretely, which weakness families it leaves uncovered, so you can add a small number of targeted controls instead of adopting a second framework wholesale.
- MSP. When a client asks "are we covered," the honest answer depends on the framework and the threat. The pair panel gives you the specific control-to-control receipts to answer without hand-waving.
- Researcher. The full mapping set is inspectable, direct, and gradeable, and the disagreements between directions are visible rather than smoothed over.