In the Diamond Model, why does every event carry a timestamp, direction and result?
answer
- not metadata, the claim itself
- an undated edge is forever true
- which way did the arrow run
- unknown is the honest result value
- ask what would falsify the edge
basics
~20 sBecause they are what make an edge falsifiable. Meta-features date the event, say which way it ran, and record whether it succeeded, so a pivot is a claim someone can disprove rather than a permanent line on a graph.
solid answer
~50 sThe meta-features are not bookkeeping around the interesting part; they are what stop the graph lying. A **timestamp** bounds the claim: a certificate key that linked two hosts in February may be gone by May, and an undated edge silently asserts a relationship that is still true forever. **Direction** says which way the event ran — infrastructure to victim is a very different assertion from victim to infrastructure, and the arrow is the difference between contact and beaconing. **Result** carries success, failure or unknown, and unknown is the honest value for almost every pivot: you reached a vertex, you did not establish an outcome there. Phase places the event in the sequence, and a confidence value records how much weight the assertion bears. Strip the meta-features and you have four nouns joined by lines, which nobody can ever be wrong about.
go deeper
Know that a Diamond Model event carries more than the four nouns — at minimum when it happened, which way it ran, and what came of it. Be able to say why an undated link is a problem.
This is your tier. Explain each meta-feature in terms of the specific error it prevents, and be ready to give the honest values: result unknown, direction unknown, confidence moderate. Interviewers are checking whether you can be uncertain precisely.
Demonstrate the falsification test on a real edge: name the evidence that would remove it. Show how a stale timestamp on leased cloud address space quietly turns a correct claim into a wrong one without anyone touching the graph.
Own the standard for what your organisation is allowed to assert. Deciding that no edge leaves the building without a date, a direction and an explicit result is a policy call, and it is what stops confident graphs travelling further than the evidence behind them.
## The mistake this corrects Ask a competent engineer what the Diamond Model is and you usually get the four core features — adversary, capability, infrastructure, victim — and a drawing. Ask what the meta-features do and the common answer is that they are metadata, the fields you fill in around the real content. That is exactly backwards. The four core features say *what* is connected. The meta-features are what turn a connection into a **claim**, and a claim is the only thing in analysis that can be checked, aged out, or shown to be wrong. ## The event, in full The model's atomic unit is not an intrusion and not a diagram. It is an **event**: an adversary deploys a capability over infrastructure against a victim, at a time, in a direction, in a phase, with a result, held with some confidence. Everything after the fourth noun is a meta-feature, and each one closes a specific hole. ### Timestamp An event has a start and an end, not a moment. This is the meta-feature people drop first and regret most. Adversary infrastructure is leased, rotated and re-leased; cloud addresses in particular pass between tenants on a timescale of days. A pivot that said *this host is the same operator's* in February may be asserting something about a completely different tenant by May. With the timestamp attached, that edge is a bounded statement about a window. Without it, the graph makes a permanent claim, and a permanent claim can never be falsified — which sounds like strength and is actually the absence of information. The timestamp also gives you the only honest way to retire an edge. An artefact does not become wrong; it becomes stale. A dated edge can be aged out on its own terms. ### Direction Direction records which way the event ran between core features: infrastructure to victim, victim to infrastructure, infrastructure to infrastructure, adversary to infrastructure, and so on, with bidirectional and unknown as legitimate values. This is not pedantry. "A staging host reached a cloud control-plane endpoint" and "a cloud control-plane endpoint reached a staging host" are different events with different implications about who initiated and who was already inside. Draw the edge without an arrow and a later reader will guess, and half the time will guess the flattering way. Direction is also frequently genuinely **unknown**, and recording it as unknown is a real answer, not a gap to be tidied up. ### Result Result takes success, failure or unknown. It is the meta-feature that separates *contact* from *outcome*. A pivot that reaches a new victim vertex through shared infrastructure almost always has result **unknown** — you have established that an edge exists between an operator's host and an asset, and nothing whatsoever about what happened at the far end. Writing `success` there because the graph looks alarming is the single most consequential error available in this model, because everything downstream inherits it: the peer organisation you contact, the priority you assign, the story you tell. Failure is equally load-bearing and equally under-recorded. An adversary attempt that did not work is a real event with a real capability and real infrastructure, and dropping it distorts everything you later say about what the operator can do. ### Phase and confidence Phase places the event in the ordering you are using, so events can be strung into a sequence rather than sitting as an unordered pile. Confidence records the analytic weight of the whole tuple, which matters most for the vertices you filled by inference rather than observation — a pivoted vertex and an observed vertex sit at the same place on the drawing and deserve very different confidence. ## What this looks like in practice Take the certificate pivot: one self-signed certificate, the same public key, fronting two staging hosts, and an edge from the second host to a cloud control-plane endpoint at an organisation nobody has touched. As a bare graph: *operator infrastructure connects to that company*. Alarming, unfalsifiable, and quite possibly wrong. As an event with meta-features: *between these two dates, a host presenting this public key initiated a connection toward this endpoint; result unknown; confidence moderate because the endpoint's ownership is inferred from lease records.* Now every part of it can be attacked. Someone can show the address changed hands inside the window. Someone can show the connection was inbound scanning of the whole range rather than anything directed. Someone can show the key leaked and is now used by two unrelated operators. That is what a usable claim looks like. ## The test to apply Before you accept an edge on a diamond, ask what evidence would remove it. If nothing would — if the edge is a bare line between two nouns — the meta-features are missing, and you are looking at a picture rather than an analysis.
- Why is `result: unknown` the correct value for most pivots rather than a gap to be filled in?Because a pivot establishes that an edge exists, not what happened at the far end. Reaching an endpoint through shared infrastructure tells you nothing about whether anything there was breached. Recording `success` because the graph looks bad manufactures an outcome, and every downstream decision — priority, who you contact, what you tell them — inherits the invention. Unknown is information; it says the outcome was never established.
- Two vertices were observed directly and one was reached by inference. On the drawing they look identical. How does the model handle that?Through the confidence value on the event. A pivoted vertex and an observed vertex occupy the same visual position but carry very different weight, and confidence is the only field that records the difference. Without it, an inference chain three hops long reads exactly like a direct observation, which is how a graph launders a guess into a fact.
- What is the practical consequence of leaving the direction meta-feature off an edge?A later reader guesses, and guesses in the direction the story already implies. "Staging host reached the endpoint" and "the endpoint reached the staging host" carry opposite implications about who initiated and whether something inside was already talking outward. Unknown is a legitimate value and should be written; an absent arrow is not the same thing as an unknown one.
saying these in an interview costs you the question
- Calls the meta-features metadata or paperwork around the real content
- Draws edges with no date and treats the relationship as permanent
- Records result as success because the graph looks alarming
- Omits direction and lets the reader infer the arrow
- Cannot say what evidence would remove an edge from the diagram