Your IDS reassembly-policy map is keyed to address ranges a merger renumbered - where does an attacker get through, and what does re-deriving cost?
answer
- the table is an assertion, not a control
- renumbering breaks it silently, with no error
- exposure lands on the estate you know least
- inventory first, passive inference second
- dynamic pools and translated addresses defeat address keying
basics
~20 sWherever the map now names the wrong stack, the sensor resolves overlapping data the way the old occupant did, so an attacker who fingerprints the real host wins there. Re-deriving means rebuilding an OS inventory for an estate you inherited and do not control.
solid answer
~50 sThe map asserts that hosts in a range reassemble like a named family. After a renumber that assertion is false for every moved range, and the sensor quietly imitates a stack that is no longer there - so overlapping segments and fragments resolve one way in the sensor and another way at the host. The exposure lands on exactly the addresses you understand least, the acquired estate. Re-deriving is the cost, and it is not one afternoon: you need an operating-system inventory for hosts whose build system belongs to another team, and a passive route where you have none, inferring the family from initial TTL values, MSS, window scaling and option ordering in traffic you already collect. Meanwhile, treat unclassified ranges as ranges where content matching is unreliable, exclude dynamically addressed pools from the map entirely because an address does not identify a host across a lease, and accept that ranges behind an address translator cannot be expressed at all.
go deeper
Know that the reassembly setting is keyed to address ranges and that renumbering a subnet can therefore make it wrong without anything appearing broken.
Explain both consequences of a wrong entry - missed detections where the host resolves overlaps differently, and false alerts on streams the host never assembled - and why an inline device makes the second one expensive.
Show a re-derivation plan for an estate you do not control: inventory export first, passive family inference second, explicit exclusions for dynamic pools and translated ranges, and generation rather than hand editing.
Argue for owning the map as a generated artefact tied to the addressing source of truth, and be honest about the ranges where reconstruction-based matching should not be relied on at all.
## What the map claims and when it stops being true A target-based reassembly configuration is a table of assertions: *hosts in this range resolve conflicting overlapping data like family X*. It is not a security policy and it grants nothing. It exists so that the sensor's reconstruction of a stream matches the reconstruction the destination will perform. Every assertion in it was true on the day it was derived, and each one is invalidated by an ordinary infrastructure event. A renumber moves ranges wholesale. A merger brings in ranges nobody in your team has ever inventoried, often overlapping with your own addressing and therefore forcing further renumbering on both sides. A re-platforming swaps builds under a range that did not move. None of these are security events, none of them notify the sensor team, and none of them cause an error - a wrong policy produces a sensor that runs happily and reconstructs the wrong bytes. ## Where the exposure actually lands The failure is not spread evenly. It concentrates on the ranges that just changed, which after an acquisition are the hosts you have the least knowledge of and the least ability to patch or rebuild. An attacker who wants a specific service does not need to defeat the sensor's rules; they need to know which stack the destination runs, which is cheap to determine from outside, and then choose the overlap that resolves differently in the two devices. Both failure directions are available: the sensor keeping bytes the host discards, and the host accepting bytes the sensor discarded. A second, quieter effect is that stale ranges also generate false positives, because a sensor imitating the wrong stack sometimes assembles an attack the host would never have seen. On a passive sensor that costs an investigation. On an inline device it costs a dropped session for a real user, and that is the version somebody escalates. ## How to re-derive it without pretending you own the estate **Prefer inventory over inference.** The authoritative answer to *what does this host run* lives in the build or configuration-management system, not on the wire. After a merger there are two such systems. Getting a periodic export from both, and generating the policy map from that export rather than editing it by hand, is what turns a one-off derivation into something that survives the next subnet move. This is the difference between a map that rots and a map that regenerates. **Use passive inference for what inventory cannot reach.** Stack families leave usable traces in traffic you already collect: initial time-to-live values cluster around well-known starting points that differ between families, and the maximum segment size, window scaling and the ordering of options in a connection opening differ by implementation. This is inference, not fact - it gives you a family, not a version - and it degrades where a middlebox rewrites options. It is still the right tool for an estate whose inventory you cannot read. **Handle the ranges the map cannot express.** Three cases defeat address keying outright and you should name them rather than pretend a policy covers them: - dynamically addressed client pools, where an address identifies a host only for the length of a lease and two builds share the pool; - addresses behind translation, where many hosts of different kinds appear as one address and no single policy is correct; - anything reached over a tunnel that terminates elsewhere, where what the sensor sees is not what the host sees. For those, content matching on reassembled streams is unreliable by construction, and the honest response is to say so and to lean on the controls that do not depend on reconstruction rather than to write a comforting entry in the table. **Set a defensible default.** For ranges you have not classified, pick the conservative family for your traffic mix and record that it is a default rather than a finding, so the next person knows which entries are knowledge and which are guesses. An unlabelled table is the reason nobody dares to change it. ## The cost, stated plainly Re-deriving is a data problem, not a sensor problem: an inventory you must obtain from another team, a passive inference pipeline for the rest, and a generation step so that the next renumber updates the map instead of silently invalidating it. The recurring part is the part that gets dropped, which is exactly why so many deployments run a map describing an estate that has not existed for years.
- What can you infer about a host's stack family from traffic you already collect?Enough for a family guess: initial time-to-live values start at different well-known values per family and decrement predictably with hop count, and the maximum segment size, window scaling and the order of options in a connection opening vary by implementation. It is inference, not inventory - it will not give you a version, and a middlebox that rewrites options can spoil it.
- Why can you not just write one entry for a dynamically addressed client pool?Because the address does not identify the host beyond a lease, and the pool routinely holds several builds at once. Any single entry is wrong for part of the pool at any moment. Treat those ranges as ones where reassembly-dependent content matching is unreliable, and say so explicitly rather than leaving a misleading entry.
- How do you stop the map from rotting again after the next renumber?Generate it from the inventory rather than editing it by hand, so a subnet move updates the source of truth and the map follows. Label defaults as defaults. The recurring generation is the part that gets dropped when nobody owns it, so tie it to the same pipeline that already publishes the addressing plan.
saying these in an interview costs you the question
- Treats the policy map as an access control rather than an assertion
- Proposes active scanning of an acquired estate as the first move
- Assumes a wrong entry produces a visible error somewhere
- Writes a single entry for a dynamically addressed pool
- Ignores that translated addresses hide several stacks behind one entry