skip to content

A zero trust connector decides per request for an internal HTTP console but not for a database listener: why, and what does an implant gain?

level: middleimportance: should knowfreq 55%

answer

  1. Policy can only name what it can see
  2. Framing and semantics, not visibility
  3. Stateful multiplexed streams have no requests
  4. Coarse grants land on the crown jewels
  5. Far side's own roles become the boundary

basics

~20 s

Per-request decisions need the connector to reconstruct discrete requests, which needs the protocol's framing and semantics. For a database, remote-desktop or vendor binary protocol it cannot, so the grant is all-or-nothing and an implant inherits the whole session.

solid answer

~50 s

A per-request decision presupposes that something can see requests. For HTTP the connector knows the framing and can name a method, a path and a host, so policy can talk about them. A database wire protocol, a remote-desktop protocol or a vendor's binary protocol is a stateful, often multiplexed byte stream the connector does not implement; to it there is one session and no requests, so the only things policy can bind are identity, device, destination and time. That grant is all-or-nothing, and it is usually the highest-value system in the estate — which means an implant on an authorised device gets a working channel to it and the far side's own permissions become the only remaining boundary. The honest answers are to put a parseable service in front of the opaque one, or to accept that these applications will always be coarse and say so out loud.

go deeper

for a junior

Know that fine-grained decisions require the enforcement point to understand the protocol, and that some applications therefore only get an all-or-nothing grant.

for a middle

Explain the mechanics: request boundaries, statefulness and multiplexing are what make a protocol undecidable per request, and name the axes that remain bindable.

for a senior

Be ready to walk an estate and classify which systems can be request-scoped, then justify what you do about the ones that cannot, including the cost of fronting them.

for a principal

Own the consequence: coarse grants move the authorisation boundary onto the target system, so its account model and audit trail become the control you are now depending on.

## Why parseability decides granularity Policy can only constrain what the enforcement point can name. To deny "POST to /admin/entitlements" the connector must first turn a stream of bytes into that statement: find request boundaries, decode the method and target, and know when the request ends and the response begins. That is protocol implementation work, and it exists per protocol. For request/response application protocols with well-known framing this is routine, and the connector can offer a genuinely request-scoped grant. For other protocols it is not: - **Database wire protocols** are stateful and vendor-specific: session setup, prepared statements, cursors, multiplexed result streaming, extension messages. A connector that does not implement the dialect sees an opaque conversation. - **Remote-desktop protocols** carry input events, display updates, clipboard and device redirection inside one long-lived multiplexed channel. There is no natural "request" to decide about at all. - **Vendor binary protocols** — a management channel, a message bus, an appliance's own protocol — are often undocumented. When the connector cannot parse, the decision has to be bound to the only axes it can still see: **who, from what device, to which destination, at what time, for how long**. Everything after that is inside one grant. ## What the adversary gets from the difference This is the part interviews are actually testing. The systems that resist parsing are disproportionately the ones worth most: the database holding customer records, the jump path to production, the administrative channel of an appliance. So the coarse grants land exactly where a fine grant would have been worth the most. An implant on an authorised endpoint does not have to break the broker. It waits for the session the user legitimately opens and uses it. Behind an opaque grant there is nothing left between it and the service except the service's own authorisation — the database's own roles and privileges, the appliance's own account model — which in many estates is one shared, broadly privileged account precisely because access was assumed to be controlled at the network layer. ## The four things you can actually do, and what each costs 1. **Put a parseable service in front.** Build or adopt an internal application that performs the privileged operations over a protocol the connector understands, and make the raw listener unreachable. This is the only option that genuinely restores per-request decisions. It costs a service somebody must build, own and keep in step with what operators need — and every gap in it produces a request for the raw path back. 2. **Narrow along the axes you can still see.** One destination rather than a subnet, a specific device state, a time window, a named group. This shrinks who can open the pipe. It does not constrain anything inside it, and each narrowing generates exceptions that someone must handle. 3. **Push the boundary to the far side.** Make the service's own authorisation real: distinct accounts per person, least-privilege roles, and the service's own audit trail as the record of what happened. This works, and it costs you coverage — you now depend on a system you may not own, and its logs become primary evidence. 4. **Say it plainly.** Write down which applications are all-or-nothing and what one grant to each covers. An architecture document that claims per-request enforcement while three critical systems are coarse is worse than one that names them. ## The wrong answer to aim at A competent engineer will often say the connector can "just inspect the traffic" and apply policy. Visibility is not the constraint being described here — the constraint is **semantics**. Even with the plaintext in hand, a connector that does not implement the dialect cannot reliably tell one operation from the next inside a multiplexed, stateful conversation, and a policy engine that guesses at operation boundaries fails in the worst way: it denies legitimate work intermittently while a determined adversary shapes traffic to avoid the pattern it happens to recognise. The second wrong answer is that the coarse grant is acceptable "because it is still better than a flat network". It is better — but the correct framing is that you have moved the authorisation boundary onto the target system, and you now owe an answer about whether that system's own permissions and audit are good enough to be the only boundary.

  • Which axes can a grant still bind when the protocol is opaque to the connector?
    Identity, device and its posture, the destination address and port, the time of day and the session's duration — plus whether a session may be opened at all. Those constrain who gets a pipe. Nothing about what travels inside it can be bound, so the grant remains all-or-nothing once opened.
  • You put an internal HTTP application in front of a database so the raw listener is unreachable. What have you moved rather than removed?
    You now have per-request decisions over that application's operations, which is a real gain. But the application holds the privileged database connection, so its own authorisation and its own request log become the boundary and the evidence. You have moved the all-or-nothing grant from the network to a service you now own and must review.
  • Why are the protocols that resist parsing disproportionately dangerous to grant coarsely?
    Because they are the administrative and data-tier protocols: databases, remote desktop, appliance management. They tend to sit in front of the highest-value data, and their own account models are often coarse and shared, since access was historically restricted by network position. So the coarse grant lands where a fine one would have been worth the most.

saying these in an interview costs you the question

  • Says the connector can just inspect the traffic and apply policy
  • Assumes any protocol can be decided per request
  • Treats an all-or-nothing grant as fine because a decision was made
  • Forgets the target system's own permissions are now the only boundary

context