skip to content

Paying for Unproven Requests

A flood lands because the resource is committed before anything is proven, so what matters is which resource runs out, how far a request multiplies, and who supplies it. Interviewers test cost here.

on this pageshow

explore

questions

12

What does the amplification factor measure in a reflection attack, and how do you compute it?

level: juniorimportance: must knowfreq 65%

answer

  1. bytes out over bytes in
  2. counted per source packet
  3. the attacker's uplink is the multiplicand
  4. tiny question, bulky answer
  5. reflection can run at 1x

basics

~20 s

The amplification factor is the ratio of response bytes reaching the victim to request bytes the attacker spent. A 62-byte request drawing a 3,000-byte answer runs at roughly 48x, so a small uplink delivers a large flood.

solid answer

~50 s

The factor is simple division: bytes the third party sends to the victim, divided by bytes the attacker sent to that third party. If one 62-byte datagram provokes about 3,000 bytes of answer, the factor is roughly 48x. It matters because the attacker's own upstream bandwidth is the scarce input; the flood the victim receives is that uplink multiplied by the factor. Somebody renting out flood capacity therefore prices protocols by factor per source packet, because raising the factor is free while raising their uplink costs money. Note the factor is a property of a specific request/response pair, not of a protocol as a whole: the same service can run at 3x for a trivial query and hundreds of times for a bulk-status query. Packets can be counted the same way, and the packet factor is often different from the byte factor.

code

text · 11 lines
text
attacker -> answerer   (one connectionless datagram)
  src  = 198.51.100.7        <- the victim's address, not the sender's
  dst  = 203.0.113.44        <- a service that answers whoever asks
  body = 20-byte status request        on the wire: 62 bytes

answerer -> victim     (the reply goes to the src field it was handed)
  dst  = 198.51.100.7
  body = bulk status dump, several datagrams   on the wire: ~3,000 bytes
...
byte factor   = 3000 / 62 = ~48x
packet factor = 6 / 1      = 6x

go deeper

for a junior

Be ready to define the factor as a ratio and compute one from two byte counts out loud. Know that three parties are involved and that the answerer is a stranger, not an accomplice.

for a middle

Expect to explain why the attacker's uplink multiplied by the factor is the delivered flood, and to distinguish the byte factor from the packet factor when an answer spans several datagrams.

for a senior

Demonstrate that the factor belongs to a specific request/response pair, not to a protocol, and that a high ratio from a small answerer population may deliver less than a modest ratio from a large one.

for a principal

Own the framing that this is an economic asymmetry: the defender's cost scales with delivered volume while the attacker's scales with emitted packets, which is why choosing protocols beats buying bandwidth.

## The three parties, then the arithmetic A reflection attack has three parties, not two. The **attacker** sends requests. An **unwitting answerer** — some ordinary internet-facing service — receives those requests and replies. The **victim** receives the replies, because the requests carried the victim's address as the sender. The attacker never speaks to the victim at all; the packets that arrive at the victim were emitted, correctly and in good faith, by strangers. The **amplification factor** describes only one property of that arrangement: how much bigger the answer is than the question. ``` factor = bytes the answerer sends to the victim / bytes the attacker sent to the answerer ``` If one datagram of 62 bytes on the wire provokes an answer totalling about 3,000 bytes, the factor is about 48x. Nothing more subtle than that is being claimed by the number. ## Why it is the number an attacker actually optimises The scarce input on the attacking side is upstream bandwidth. Whatever an operator can push out of their own hosts is fixed by what they rent or control. The flood the victim experiences is approximately: ``` delivered flood = attacker uplink x amplification factor ``` Doubling the uplink means paying for twice the capacity. Doubling the factor — by choosing a different protocol, or a different request within the same protocol — costs nothing. That asymmetry is the whole reason reflection exists as a technique. Someone selling flood capacity on a subscription or revenue split is running a margin business: they hold a fixed, cheap sending capacity and multiply it. Their protocol shortlist is ranked by factor per source packet, and it changes whenever a higher-factor answerer population becomes reachable. ## Byte factor and packet factor are different numbers An answer that does not fit in one datagram arrives as several. A 62-byte request that yields six datagrams totalling 3,000 bytes has a byte factor near 48x and a packet factor of 6x. Both are real multipliers and they are counted separately, because a large answer split into many small datagrams multiplies packet rate far more than it multiplies bytes, while a single large answer does the reverse. When someone quotes "the factor" for a protocol without saying which, treat the figure as approximate. ## The factor belongs to the request, not the protocol This is the detail candidates most often get wrong. A protocol is not a single number. The same service can answer a minimal query with a few hundred bytes and a bulk enumeration query with tens of kilobytes; an attacker sending the bulk request gets a far better ratio from exactly the same population of answerers. Published measurements across abused connectionless services span an enormous range — roughly 30x for one common discovery protocol, into the hundreds for a historical bulk-status query that has since been removed from default builds, and into the tens of thousands for a UDP-exposed in-memory cache abused in 2018. Those are measurements of particular request/response pairs at particular times, not constants. ## Reflection and amplification are not synonyms Reflection is the structural fact: the traffic reaches the victim from a third party that was asked a question. Amplification is the economic fact: the answer is bigger than the question. You can have reflection at a factor near 1 — the traffic still arrives from strangers, but the attacker gained no volume for it, so the technique buys structure without leverage. Amplification is the subset of reflection worth paying for, and a candidate who treats the words as interchangeable will fail to explain why an attacker prefers one connectionless service over another. ## What the factor does not tell you The factor is a per-exchange ratio. It says nothing about how many answerers exist, how much aggregate capacity that population can emit, or how fast the attacker can address them. A factor of 50,000x from a population of two hundred hosts on slow links delivers less than 30x from a population of two million. It also says nothing about the answerer being defective. Every answerer in this arithmetic is doing precisely what it was built to do: it received a well-formed request and replied to the address it was handed. The multiplier is a design consequence, not a bug being exploited. ## What to say in an interview Define it as a ratio, compute one out loud, name the attacker's uplink as the multiplicand, and add the two qualifications that show you have thought about it: the factor is per request type rather than per protocol, and reflection at 1x is still reflection.

  • Is every reflection attack an amplification attack?
    No. Reflection is the structure: the victim receives traffic from a third party that was asked a question. Amplification is the ratio. A reflected exchange at a factor near 1 is still reflection, but it buys the attacker no extra volume, so it is rarely worth the effort compared with sending the same bytes directly.
  • Why price protocols by factor per source packet rather than by total flood delivered?
    Total flood is an output, not a lever. The operator's own upstream capacity is fixed and costs money to increase, so the only free variable is how much each packet they emit turns into. Ranking candidate protocols by return per emitted packet is exactly how a rented-capacity business protects its margin.
  • Two protocols both quote a 50x factor. What else would you want to know before treating them as equivalent?
    How many reachable answerers exist and how much capacity they can collectively emit; whether the 50x is bytes or packets; and which specific request produced it, since the same service may offer a far richer request. A high ratio from a tiny, slow population delivers less than a modest ratio from a huge one.

A one-line postcard reading "send me your full catalogue", with somebody else's address written in the sender field. You pay one stamp; a kilogram of glossy paper lands on their doormat.

saying these in an interview costs you the question

  • Says the factor counts how many answerers were used
  • Treats a high factor as evidence the answerer is compromised
  • Assumes the factor is a fixed constant per protocol
  • Uses reflection and amplification as interchangeable words
  • Cannot state what the attacker's own uplink contributes

context

open as a page

For flood capacity, why rent 100,000 consumer devices over eight high-bandwidth hosts?

level: middleimportance: must knowfreq 60%

basics

~20 s

Because they are different products. Eight fat hosts sell throughput. A hundred thousand consumer addresses sell source diversity: traffic spread across thousands of networks, each flow indistinguishable from an ordinary customer, that no single coarse decision removes.

open as a page

Which two properties make a network protocol usable as a reflection amplifier?

level: middleimportance: must knowfreq 55%

basics

~10 s

Connectionless carriage, so one arriving datagram is enough to commit a full answer, and no check that the address being answered is the address that asked. A bulky request/response pair then supplies the ratio.

open as a page

'Just buy more bandwidth' - which of a web estate's exhaustible resources does that actually relieve?

level: seniorimportance: must knowfreq 47%

basics

~20 s

Only a saturated link. Bigger connection tables and worker pools add slots an attacker occupies almost free, and extra workers push more concurrent calls into the one slow dependency, whose capacity is usually not yours to buy.

open as a page

In a for-hire DDoS attack, what does the buyer actually have to compromise?

level: juniorimportance: should knowfreq 58%

basics

~20 s

Nothing. Flood capacity is a commodity: the buyer rents time on a fleet someone else built, supplies a target and a duration, and never touches a host. The volume that arrives says nothing about the buyer's skill.

open as a page

Why can a few thousand trickle-fed requests exhaust a web tier at almost no cost to the attacker?

level: middleimportance: should knowfreq 54%

basics

~20 s

Rank attacks by what the attacker keeps committed per unit of your capacity. A request dribbled out over minutes costs them one socket and a few bytes; it costs you a connection entry and a pinned worker throughout.

open as a page

A 90 Gbps flood came from six instances in an unrelated company's cloud account. How?

level: seniorimportance: should knowfreq 38%

basics

~20 s

Stolen control-plane credentials. Someone used another organisation's cloud API access to launch a handful of very large instances aimed at the target, so capacity appeared in minutes, cost the attacker nothing, and was billed to the account owner.

open as a page

A service you run answered forged requests in a stranger's flood; why won't patching it help?

level: seniorimportance: should knowfreq 42%

basics

~20 s

Nothing is broken. The service received well-formed requests and answered the address it was handed, exactly as specified, so the next release behaves identically. Only narrowing who may ask, or proving the asker's address, helps.

open as a page

A publicity-driven crew promises an outage during your launch week - what does that predict?

level: seniorimportance: nice to knowfreq 33%

basics

~20 s

An adversary class predicts shape and duration, not capability. A publicity-driven crew needs a visible outage an outsider can verify inside a named window, so expect cheap held slots against a browser-loadable surface, and a stopping rule tied to attention.

open as a page

The board asks whether a 600 Gbps flood means a well-resourced adversary. How do you answer?

level: principalimportance: nice to knowfreq 30%

basics

~20 s

Peak volume no longer indicates resources. Very large short bursts are rented cheaply from fleets somebody else built and holds, so the headline number describes the seller's stock. Duration and adaptation are what imply a budget.

open as a page

Your customers' devices are amplifying a stranger's flood; how do you decide whether to close the service?

level: principalimportance: nice to knowfreq 26%

basics

~10 s

Decide it as a cost case you cannot justify on your own harm, because you have none. Weigh donated transit and peer or contract exposure against support cost, then change the provisioning default first.

open as a page