How do you use CAPEC attack patterns and their CWE links during a design review?
answer
- Two catalogs, two different questions
- Attacker's method versus the underlying flaw
- Meta, Standard, Detailed abstraction levels
- Check the pattern's prerequisites against your design
- Related Weaknesses field is the hinge
basics
~20 sCAPEC is a public catalog of attack patterns, and each pattern links to the CWE weaknesses that make it possible. In a design review you pull the patterns matching your entry points, then design against the linked weaknesses.
solid answer
~50 sCAPEC (Common Attack Pattern Enumeration and Classification) is MITRE's catalog of how attackers behave, organised by abstraction from broad Meta patterns through Standard to Detailed variants. Each entry carries prerequisites, an execution flow, the skills and resources an attacker needs, and a list of Related Weaknesses given as CWE IDs. That linkage is the useful part: CAPEC says what an attacker does, CWE says what is wrong with your system that lets them. I enter the catalog from the design rather than reading it end to end - for each entry point or component type I pull the candidate patterns, check whether the pattern's prerequisites actually hold here, and where they do, follow the link to the weaknesses and turn those into design decisions. I stay at the Meta or Standard level unless more specificity would change a decision.
go deeper
Be able to say in one sentence that CAPEC catalogs how attackers attack and CWE catalogs the weaknesses that let them, and that the two are cross-linked. Getting the direction backwards is the mistake to avoid.
Expect to explain the mechanics: abstraction levels from Meta to Detailed, the prerequisites and execution-flow fields, and how you traverse from a component in your design to candidate patterns and back to weaknesses.
Show that you scope the pass to the real design and discard patterns whose prerequisites do not hold, and that you rate risk yourself rather than inheriting the catalog's generic severity attribute.
Own the question of how much catalog work is proportionate. Argue for curated per-archetype subsets over full traversals, and be able to say what a library pass is worth relative to the design-driven analysis it sits beside.
## What an attack library is Threat elicitation can be driven two ways. **Design-driven** elicitation starts from your diagram, your assets and your trust boundaries and reasons outward to what could go wrong. **Library-driven** elicitation starts from a catalog of attacks other people have already seen and asks, for each one, "does this apply here?" An attack library is the catalog that makes the second style possible. CAPEC - Common Attack Pattern Enumeration and Classification, maintained by MITRE - is the reference example. It is a public, versioned catalog of attack *patterns*: reusable descriptions of an attacker's approach, abstracted away from any one product or incident. ## How CAPEC is structured CAPEC is hierarchical along two independent axes. **Abstraction.** Patterns come at three levels of specificity. A **Meta** pattern describes an attack approach in the broadest terms. A **Standard** pattern describes a specific, recognisable technique. A **Detailed** pattern describes a concrete variant of that technique. Parent/child links connect them, and additional relations express sequencing - one pattern can precede or follow another. **Views.** The catalog is presented through top-level views: one that organises patterns by the *mechanism* of the attack, and one that organises them by the *domain* they operate in (software, hardware, communications, supply chain, social engineering, physical). The domain view is how you find your way in when you are starting from a system rather than from an attack. Each entry is a small structured record: a description, **prerequisites** (what must be true of the target for the attack to be possible), an **execution flow**, the **skills and resources required**, an indicative likelihood and severity, candidate **mitigations**, and **Related Weaknesses**. ## The CWE linkage, and which way it points The Related Weaknesses field is the hinge of the whole thing, and interviewers check that you have the direction right. - **CAPEC describes the attacker's method** - what someone does to your system. - **CWE describes the weakness** - the class of defect in the code, configuration or design that makes the method work. A pattern points *to* the weaknesses it exploits; a weakness points *back* to the patterns that exploit it. Neither is a list of specific flaws in a specific product - that is a different kind of identifier entirely. That two-way link gives you two entrances. Attack-first: you suspect a class of attack and follow it down to the weaknesses you would have to have in order for it to land, which tells you what to look for in the design. Component-first, which is the more common move in a design review: you know you are building, say, an untrusted-input parser, so you start from the weakness families such components suffer and follow the reverse links to the patterns that exercise them. ## Using it on a real design Take an insurance claims ingest that accepts EDI documents and PDF attachments submitted through broker portals. The submitter is effectively anonymous - anyone with a broker account, and in practice anyone the broker's own workflow lets in. What is at stake is the availability of the ingest pipeline and the personal data inside the claims. A whiteboard session will reliably produce "someone uploads a malicious file" and stop there. The catalog will not. Attacks against document and structured-message parsers are extensively documented: resource exhaustion through expansion of nested structures, path traversal via attachment file names, retrieval of external references embedded in the document, deserialization of attacker-controlled structures, and oversized or malformed input driving the parser into pathological behaviour. This is exactly where library-driven elicitation earns its keep - the failure modes are well catalogued and no team recalls them all unaided. The practical loop is: enumerate the entry points and component types in the design, pull candidate patterns for each, **test the prerequisites against the actual design** (a pattern whose preconditions do not hold in your architecture is not a threat here, and saying so out loud is part of the work), and for the ones that survive, follow the CWE links and record a design decision. ## What the catalog does not do for you Three limits are worth stating before an interviewer states them for you. 1. **It does not rate risk for you.** The severity and likelihood attributes on an entry are generic catalog-level judgments made with no knowledge of your exposure, your asset value or your existing controls. Use them to triage which patterns to read, then rate against your own design. 2. **It does not know your business rules**, so it cannot contain the abuse that consists of legitimate operations combined in a way your rules did not anticipate. 3. **Its mitigations are a starting point**, phrased generically. Turning one into a decision your team can implement in this architecture is still your job. ## Keeping the pass proportionate The common failure is volume: a junior reviewer walks the catalog exhaustively and produces eighty low-value entries that nobody triages. Prune hard. Scope to the entry points and technologies actually present, work at the Meta and Standard abstraction levels, and drop to Detailed patterns only when the extra specificity would change what you build. A short list of patterns whose prerequisites you have genuinely checked beats a full traversal every time.
- You are starting from a component rather than from an attack. How do you enter the catalog?Use the domain-oriented view to reach the patterns relevant to that kind of component, or go through the weakness side: name the defect families a component of this type is prone to and follow the reverse links to the attack patterns that exploit them. Entering from the design keeps the pass scoped; reading the catalog end to end does not scale and produces findings whose prerequisites nobody checked.
- CAPEC entries carry an indicative severity and likelihood. Can you use those as your risk rating?No. Those are catalog-level generalisations written without any knowledge of your exposure, asset value, blast radius or existing controls. A pattern rated high may be impossible in your architecture and one rated low may be the cheapest route to your most valuable asset. Use them only to decide reading order, then rate each surviving threat against your own design and impact.
- How do you stop a catalog pass from generating eighty low-value threats?Scope it to the entry points and component types actually in the design, work at the Meta and Standard abstraction levels, and descend to Detailed variants only where the extra specificity would change a design decision. Then discard every candidate whose stated prerequisites do not hold in this architecture, and record that you checked. Ten threats with verified preconditions are worth more than a full traversal.
CAPEC is the burglar's playbook - pick the lock, prop the fire door, tailgate a delivery. CWE is the building survey listing which locks and doors are weak. The playbook is only actionable once you follow it to the survey.
saying these in an interview costs you the question
- Says CWE lists attacks and CAPEC lists weaknesses
- Confuses catalog entries with specific product vulnerability identifiers
- Treats the catalog's severity attribute as this system's risk rating
- Proposes reading the whole catalog rather than entering from the design
- Copies a pattern's generic mitigation text as the design decision
- Never checks whether a pattern's prerequisites hold in the architecture