← Omniscient case study
MSSP Case studies Interactive · 35 sections
Omni Lexicon  ·  V37  ·  the Omniscient security architecture

Every part.
The shape it has.
How far it stands.

A firewall rule is a sequence. A key derivation is a tree. A heartbeat is a waveform. Drawing all of them as boxes with arrows hides what makes each one work — so each section uses the shape its own engineering actually has.

This is the whole system, described as it is meant to work. Some of it is running today, some is half-wired, and a little of it is decided but not yet standing. Rather than hedge the writing, each section carries a marker telling you which — so the page shows you the target and the frontier at the same time.

builtRunning in the current build, with tests behind it. What you would see if you opened the console today.
wiredBuilt and reachable, with one named piece still in progress. The mechanism works; the surface or the last mile is queued.
designedDecided and specified, not yet standing. Where it is blocked, the section names what the block actually is.

J next section · K previous · G back to the top

01
Drawn as a pipeline — because it is one
built

Every instruction enters through one door

Seven checks in a fixed order, and the first refusal ends it. A pipeline is the honest shape here: there are no branches, no parallel routes, no second entrance. A build-time test reads the source and proves that.

The reason this shape is worth insisting on is that the alternative fails quietly. If instructions can reach the work through more than one route, then a check on one route proves nothing about the others, and the gap does not announce itself — everything keeps working. So a test reads the source on every build and asserts there is exactly one entrance, that the check sits in front of it, that a refusal ends the request rather than falling through, and that the answer is actually acted on. That last one was added after a reviewer showed the check passing against a version that consulted the rulebook and then ignored it.

choose an instruction
Deny by default. The pipeline has one entrance and seven checks in a fixed order, and the first refusal ends the request — there is no route that reaches the work having skipped a step, because there is no second route at all.
Refused, never assumed harmlessAn instruction nobody has classified is not permitted on the grounds that nothing forbids it. It is refused, and reported as a gap in the rulebook — a defect for us to fix rather than a permission for the caller to enjoy. Ninety-four of the instructions in this console were once in exactly that position: checked against nothing, and allowed.
The instruction decides, not the messageWhether a request needs a client's permission is determined by what it asks for, never by what the request claims about itself. That was once the other way round, and it meant that leaving one field out of a message skipped the check entirely — the caller was being trusted to declare whether they should be checked.
Proven on every build, not asserted once“We were careful” is not a security property. A test re-reads the source each time and fails the build if a second entrance appears, if the check moves behind the work, or if the answer stops being used. The most useful of those was added after somebody demonstrated the old test passing against a deliberately broken version.
02
Drawn as a staircase — power has a height
built

Privilege is climbed, then given back

A list of permission levels tells you they exist. A staircase tells you the thing that matters: the tool goes up for one job and comes back down. It doesn't live at the top. Trace a job and watch the line rise and fall.

What makes this more than good manners is that the climb is also the record. Elevating, doing the work and standing back down produces a beginning, a middle and an end, all written to an append-only ledger — whereas an account that is permanently an administrator produces nothing at all, because nothing about it ever changes. The account this uses is disclosed to the client in plain text, disabled when idle, refused any interactive logon, and its password lives only in the vault and is replaced on every grant. It is deliberately the opposite of a back door in every property except capability.

Standing privilege is what gets abused, because it is what nobody re-examines. An account that is always an administrator generates nothing to review; one that is elevated for eleven minutes generates a beginning, an end, and a reason.
It closes itselfEvery elevation carries an expiry set when it is granted, and a job scheduled on the machine closes it whether or not anybody remembers. The normal ending is not somebody tidying up; it is the clock. Standing access exists precisely because closing things depends on attention, and attention is the thing that runs out.
A copy of this software cannot open oneElevation requires a signature from a key that lives only with the operator, never on the machine being managed. Somebody who takes a complete copy of this suite and runs it against an enrolled machine cannot elevate anything — they get a refusal and the machine raises an alarm naming the attempt.
Disclosed, not hiddenThe privileged account is written into a file on the machine that the owner can read, saying it exists and what it is for. A hidden administrative account is a back door regardless of who installed it, and the difference between a management tool and an intrusion tool is mostly whether the customer was told.
03
Drawn as topology — position is the point
built

Two machines, and what lives on each

Which computer holds a secret matters more than that the secret is encrypted. This is a map, so it shows location: the operator's machine on the left, the client's on the right, and what crosses between them.

The split matters most in the cases where one side is compromised. The operator's signing key never exists on a client machine, so a client machine that is fully owned still cannot sign anything as us. In the other direction, the console deliberately keeps only the latest fingerprint of each machine's chain and discards what would let it produce the next one — because holding that would mean a compromise of our console could manufacture convincing proof of life for every machine we have ever enrolled. Each side is built so that owning it does not hand you the other.

OPERATOR MACHINE · CARRIED ON USB CLIENT MACHINE idle
A dot marks a component that holds a secret worth stealing. Note how few of them sit on the client side, and that the ones which do are sealed to the machine they are on — the arrangement is deliberately lopsided.
The signing key never travelsIt lives in the operator's own vault and goes where the operator goes. It is not deployed, not copied to a client machine as part of setup, and not recoverable from one. A completely compromised client machine still cannot produce anything signed as us.
The console keeps less than it couldFor each machine's proof of life, the console retains only the most recent fingerprint and deliberately discards what would let it compute the next one. Keeping that would be convenient and would mean a compromise of our console could fabricate proof of life for every machine we have ever enrolled.
Sealed to the machine it sits onThe keys held on a client machine are wrapped by the operating system against that machine, so the file is inert if it is carried off. That is a raised bar rather than the main defence, and it is described that way in the source rather than oversold.
04
Drawn as a matrix — permission is a relation
wired

What the client signed, against what we can do

Consent isn't a list, it's a mapping: this client, this capability, allowed or not. A grid shows the whole answer at once — including the empty cells, which is where the value is. Toggle the grants.

The wording in each cell is written for the client rather than for us, which sounds like a presentational detail and is the substance of the thing: a client who cannot understand what they are agreeing to has not meaningfully agreed to it, and the paperwork becomes theatre. So the invasive capabilities are described in plain terms — watching someone's screen, signing in as a member of staff, leaving software behind that outlives the visit — and each carries its own signature line rather than being bundled into a single yes. The signed document also records what was not agreed to, because the boundary is the part worth having in writing.

Separate signatureThe invasive rows can't be picked up quietly alongside a broader yes — each needs its own line on the paperwork.
Dated, not permanentEvery grant carries an expiry. An expired grant is treated exactly like no grant.
Refusals recordedAn empty cell that gets requested is written to the client's file as a refusal.
05
Drawn as a walkthrough — one real save, byte by byte
wired

One passphrase, and everything that happens to it

This is the best-built thing in the suite, and it is worth following all the way through rather than summarising. Below is a single save of one machine's credentials, step by step: what goes in, what gets generated fresh, where the one input becomes two independent keys, what ends up on disk, and what happens when somebody opens it with the wrong passphrase or edits a byte. Press play, or step through it.

STEP 01 IN MEMORY
01 / 11
The vault

Two keys, never oneThe commonest mistake in home-grown encryption is deriving a single key and using it for both jobs. The derivation deliberately produces sixty-four bytes and cuts them in half: the first thirty-two lock the data, the second thirty-two prove it hasn't been edited. Neither is ever used for the other's purpose.
The file describes itselfCost, salt, nonce and algorithm are all recorded in the file's own header rather than read from a constant in the code. That means the work factor can be raised years later without stranding a single existing vault — and it means opening a file always uses the settings that file was actually written with.
The header is authenticated tooIt would be no good to protect the secret and leave its description editable, so the header is covered by the same integrity check as the contents. Change the recorded cost, the salt, or one byte of ciphertext, and it refuses to open rather than returning something plausible.
Wrong passphrase fails cleanlyIt does not produce garbage that has to be recognised as garbage. The authentication step fails and the answer is no. There is no partial success to misread.
The honest limit, stated in the sourceTo start a program as another user, Windows needs that user's actual password for the instant of launch. The vault narrows that window to a single moment at the operating-system boundary — and on the older runtime the string cannot be wiped from memory afterwards, only abandoned. That window is minimised, not eliminated, and calling it anything else would be overselling.
What is still to comeReading one password out of the vault now returns exactly that one. A bulk path still exists behind an explicit flag, and on that path the secrets cross an internal boundary in the clear. Closing it properly needs the panel redesigned rather than a flag added, which is why it is queued rather than patched.
06
Drawn as a signal — the gap is the message
built

Silence is the part an attacker can't forge

A heartbeat is a waveform over time, so it's drawn over time. A message can be forged. The absence of one cannot — which means switching the watcher off to hide is the move that raises the alarm.

15 MIN LIVE
BEAT = boxGuid | seq | timestamp | ok   →   signed: RSA-2048( SHA-256( BEAT ), boxPrivateKey )   or   locked down: reveal link n−1, where SHA-256( link ) = the last one accepted
Sent every 15 minutes. Declared silent after 20 — one missed beat is a hiccup, two is an event. A bad signature or a stale sequence number is rejected on arrival, with no waiting at all. There are two ways to sign, because the hardened machines could not use the first. Locking a machine down blocks the cryptography the signature needs, so every locked-down box was raising an alarm every fifteen minutes, forever — the better the customer, the louder the false alarm. Those boxes now walk backwards through a chain of hashes computed in advance, revealing one link per beat. Forging a future beat means reversing SHA-256. It is reported as a deliberately weaker verdict than a signature, because an administrator on the box can read the remaining links straight out of the file.
Absence is the one thing that cannot be manufacturedEvery other signal here can in principle be attempted. This one cannot be faked into existence, which is why switching the watcher off to avoid being seen is self-defeating: it produces the loudest reading available.
Removing the signature is not a loopholeThe subtlest attempt is not to forge the signature but to delete it and hope unsigned counts as good enough. It did, once. A machine that has been armed for signing and then sends something unsigned is treated as an attack rather than as an older version being accommodating.
A test once defended the holeWhen that was found, an existing test was asserting the broken behaviour as a requirement — so anybody who fixed it correctly would have seen the suite go red and concluded they were wrong. The test was carrying a belief that had been superseded, and it is the most expensive kind of mistake in this codebase because it points the wrong way.
In practiceSilence at three in the morning only means something if somebody is awake to notice it. The reading is automatic; deciding what it means is not. What that looks like as a service →
07
Drawn as a state machine — transitions carry the rules
built

What happens after something trips

Response isn't a list of severities, it's a set of states with rules about how you move between them. Note which arrows point backwards: coming down a level requires a person, never a timer.

The levels are also capped according to what the evidence can actually support, and that limit was learned the hard way. A machine going quiet used to send it straight to the top of this ladder and cut itself off from the network. But a machine going quiet means only that it could not reach us — which is exactly what happens when somebody unplugs a switch. The cheapest possible attack on this system was therefore to interrupt the network and let the system isolate its own machines for you. Silence now raises the alarm loudly and stops short of containment, because deciding to cut a machine off should happen from somewhere that can still see it.

Escalation is automaticEvidence moves you up without waiting for anyone to notice.
De-escalation is notComing back down needs a human decision and a written reason. A system that quietly calms itself down teaches you to ignore it.
Attribution firstBefore escalating: did our own operator cause this seconds ago? If yes it's our footprint, not an intruder.
In practiceClimbing down a tier deliberately requires a person. That is the right design and it is also a staffing question — something has to be watching for the alarm that starts the climb. What that looks like as a service →
08
Drawn as a chain — each link holds the last
built

A record that can't be quietly edited

Every entry commits to the one before it, so removing a page breaks the chain. But a chain only proves internal consistency — rewrite every link and it verifies perfectly. Click any entry to try it.

Click an entry to alter it and watch the chain break from that point on.
seq | utcTimestamp | event | detail | actor | prevHash

Six fields, joined by a fixed separator, hashed. Every field is coerced to a string explicitly rather than left to the serialiser — and that detail is not fussiness. On the first run of this code the timestamp was parsed back out of JSON as a date object and re-rendered as 07/28/2026 02:57:42 instead of 2026-07-28T02:57:42Z. The hash had been computed over one form and was being verified against another, so every chain failed against itself. It is exactly the failure the Round Table design warns about — two serialisers disagreeing is a signature that verifies against a different meaning than the one it was made for — and it showed up within minutes of the code being written.

The chain alone isn't enoughAn attacker who rewrites every entry produces a chain that verifies. That's why the last fingerprint is published outside.
Published headPosted somewhere we don't control. A rewritten log still looks tidy inside — it can't match a fingerprint recorded elsewhere.
Refusals tooWhat we were stopped from doing is recorded as carefully as what we did.
09
The chain that links all eight — following privilege
built

One real job, end to end

Applying a firewall policy touches every part above. Here it is as a single chain, coloured by the privilege level at each link — and each link names which section it comes from.

Following one job all the way through is the only way to see the property that individual sections cannot show you: the privilege in play goes up and comes back down, and the parts that hold real authority are touched briefly and by name rather than held open for the duration. Watch the colour of the chain rather than the boxes. It spends almost all of its length at the bottom, rises for a few links in the middle, and is back at the bottom before the job reports success.

Up once, down onceThe line touches Administrator for one prompt and SYSTEM only to arm the undo. It ends where it started.
The parachute precedes the jumpLink 6 arms the restore before link 7 changes anything. Ordering is the control.
Claim and evidence separatedLink 8 reads the machine back. A command exiting cleanly is not proof the setting took.
10
Drawn as a relational map — the whole estate at rest
wired

Your network, their networks, and what crosses

Everything so far has been one machine or two. This is the whole arrangement: your home network on the left, client fleets on the right, and the traffic that genuinely moves between them. Watch it idle for a moment — the pulses are real heartbeats arriving.

The single most useful property here is that no client machine listens for anything. Every link starts from their side and comes to us, which means there is no door on their network for anyone to find, including us on a day we have not been invited. It also means the arrangement fails safe in an unglamorous way: if their internet goes down, we lose visibility and they lose nothing. The console checks the parts of this that no software can arrange — whether the router forwards, whether the address will still be the address next month, whether it is genuinely reachable from outside the building — and reports each as confirmed, unconfirmable from here, or something only a person can do.

Nothing is listening for inbound connections on a client machine. Every link begins on their side and comes to us, so there is no door on their network to find — and if their connection drops, we lose visibility and they lose nothing.
No client machine listensEvery connection begins on their side. There is no port waiting on their network for us or anybody else to arrive at, which removes an entire class of problem rather than defending against it.
The bench is not the siteThe address a machine is told to call home to is supplied when its setup is generated, and getting it wrong produces the worst possible kind of failure: it works perfectly during testing and fails in front of the client, with the cause invisible from either end. That specific mistake is checked for by name before anything is generated.
A fixed address is not a stable oneUsing a bare internet address works until the connection is renewed, at which point every machine ever set up stops calling home and nothing announces it — they simply go quiet, which is indistinguishable from every machine being switched off. A name is required rather than suggested.
11
Drawn as a journey — one session, from your desk to somebody's screen
wired

From your office to a named person's desktop

Section 10 showed which links exist between the two estates. This is the one that actually gets used, followed end to end: you are sitting in the lab, a manager forty miles away has a fault she cannot describe, and the fastest way to understand it is to watch her do the thing that breaks. Eleven steps, and the interesting part is how many of them are refusals waiting to happen.

Worth saying at the top, because it is the thing people assume wrongly: this does not sign in as her. It does not take her password, it does not start a second session, and it does not need anything from the vault. It attaches to the session she is already sitting in front of, and by default she is asked first and can say no.

STEP 01 AT YOUR DESK
01 / 11
The operator

Nothing here uses a passwordAttaching to a running session uses your own rights as the administrator of that machine. There is no credential to fetch, no plaintext to hold, and no window during which her password exists anywhere. That is a genuinely different risk profile from signing in as somebody, which is a separate capability requiring its own signature.
You cannot watch yourselfAttaching to your own console session would loop a screen inside itself. It is excluded from the list and refused at the moment of connection, which sounds trivial and is the kind of thing that produces a baffling error message at the worst moment if nobody thinks about it.
The list is a photograph, not a windowBetween drawing the session list and clicking a name, the person can log off, go idle, or reboot. So the machine is asked again at the instant of the click. Without that, the request goes out to a session that no longer exists and comes back as an opaque client error rather than a sentence explaining what changed.
The client's own settings have the final sayEverything requested here is a request. The machine carries a policy saying whether watching is permitted at all, whether taking control is permitted, and whether the prompt can be skipped. If the request exceeds it, the request loses. The console warns you in advance rather than letting you discover it as a failure.
Turning the listener on cannot quietly weaken itEnrolling a machine for remote support sets the connectivity side of this and deliberately leaves the consent side alone. If the client's provisioning already chose a stricter setting than enrolment would apply, the stricter one is kept — because a routine operational step must never silently downgrade a decision someone made on purpose.
Every attempt is written downSuccessful or not, permitted or refused, the attempt lands in the record from section 08. Watching somebody work is exactly the capability that has to be answerable afterwards, and a log that only holds the successful attempts proves nothing to anybody.
12
Drawn as chains being cut — each attack needs every link, and loses at the first one missing
built

What an attacker has to get past before any of this matters

Everything so far has been about what the management tool refuses to do. This is the other half, and in practice the more important one: what gets switched on across a client's machines so that an attacker never gets a foothold to begin with. Twenty-eight settings, grouped into network hardening, credential protection, malware defence, application control, removable media and encryption — each one declaring in the catalogue what it guards against, how to check it took effect, and how to put it back.

The reason to draw them as broken chains rather than as a checklist is that an attack is a sequence, and a sequence fails at its weakest link, not on average. The classic way into a Windows network needs four things to work in a row. Take away any one and the whole route is gone — which is why a small number of unglamorous registry settings does far more than their number suggests. Pick a route below and watch where it stops.

Where it stops

Applied is not the same as workingEvery one of the twenty-eight can be read back off the machine afterwards, because a hardening setting with no way to check it can quietly do nothing and report success. That gap was closed deliberately: sixteen of them originally had no reader, which meant sixteen ways to believe a machine was protected when it was not.
Everything is written in the plainest commands availableThe settings are applied with the operating system's own basic tools rather than anything clever, specifically so they still work on a machine that has been locked down to refuse complex scripting. The hardening has to survive the hardening.
Every one of them comes back offEach carries an undo that reverses only what it set, never more. A security setting you cannot reverse is one that people avoid applying, and a setting nobody applies protects nobody.
The ones that can break things say soRequiring signed file sharing on a machine that serves files can lock out older equipment that cannot sign. Refusing the oldest authentication outright is riskier still. Both are marked as carrying real breakage risk, both default to off, and four settings currently sit under an under test divider in the interface rather than being quietly mixed in with the established ones.
A field lesson, kept in the catalogueBlocking the automatic-proxy feature by turning off its service breaks wireless networking outright, with an error code that tells you nothing. So the entry carries the warning and the fix: block it by policy, never by disabling the service. That note exists because it happened, and writing it into the data means it cannot happen twice.
Conflicts are surfaced before, not discovered afterWhere two settings interfere, or one needs another to be on first, the interface warns and suggests the resolution rather than letting an operator find out from a broken machine.
In practiceTwenty-eight settings, applied per machine, verified afterwards, and re-checked as they drift. The catalogue makes it repeatable; somebody still has to run it across a fleet and own the four that can break things. What that looks like as a service →
13
Drawn as a rising bill — because the attacker is doing arithmetic, not a vendetta
built

The only metric that matters: he goes somewhere else

The reason the previous section works is not that those settings are clever. It is that the way into a Windows network is a short and very well-known list, and it is the same list everywhere. Almost nobody invents a new route for your business specifically. They run the playbook — the name-poisoning, the macro, the stick, the unpatched service, the password scrape — because it is cheap, automated, and works often enough across thousands of targets. Closing that list is disproportionately effective precisely because it is the same short list every time.

Which reframes what the defence is actually for. It is not a wall, and pretending otherwise is how people end up believing things that are not true about their own systems. It is a bill. Every closed door turns an automated route into a manual one, and manual costs the only thing an attacker is genuinely short of, which is time. Every decoy turns something he found into something he has to verify. Every failed attempt is not just a stop — it is him showing you where he is. He cannot fail quietly, and he cannot afford to fail slowly. Follow the bill down the five depths and watch the two numbers that decide it.

STEP 01 CHOOSING
01 / 07
The attacker

Every step down arms a heavier answer, automaticallyA decoy's depth decides what happens when it is touched, without anyone configuring it per file. Something opened on a desktop raises an alarm. The same act four levels down revokes live access and cuts the machine off. The response climbs with how far in he has reached, because how far in he has reached is exactly what changes the meaning of the act.
The bait is deliberately worthlessThe fake credentials are random and do not work anywhere. That is not a limitation, it is the design: they cost nothing to leave lying around, they are useless if stolen, and every minute he spends trying one is a minute bought at no price to the client at all. It is the cheapest possible way to buy his time.
Doubt is a tax on every step after the firstOnce he has been fooled once, he cannot trust anything he finds. Every file has to be evaluated rather than used, and evaluating is slow, and slow is expensive. He does not have to know a decoy exists for this to work — he only has to suspect one might.
Failing is not free for himThe point people miss about a blocked attempt is that blocking is the smaller half. The attempt itself is a signal with a time and a place on it, and enough of them make a shape. Section 24 exists because those signals were landing in six separate files where nobody could see they were one sequence.
He is comparing you against a listAlmost all of this is opportunistic, and the opportunist is not trying to beat you. He is deciding whether you are cheaper than the next name down. Every hour you add and every alarm you raise is an argument for moving on — and moving on is the outcome, not a consolation prize.
Where this argument stops, honestlyNone of it deters somebody who has chosen you specifically and has money and time. Against that, cost does not decide anything and the goal changes: see them early, keep them shallow, and be able to prove afterwards what they touched. That is what the rest of this document is for, and it is a different job from making the bill too high.
In practiceThe bait costs nothing to leave lying around. What it costs is somebody reading the alarms it produces — which is the whole of the difference between a decoy and a file nobody ever looks at. What that looks like as a service →
14
Drawn as an attack path — one intruder, six moves
built

Somebody gets into a client's network

Not a hypothetical adversary with magic powers. A realistic one: a phished credential or an exposed service, then the ordinary sequence every intruder runs. Step through what he's actually trying to do — defences are switched off for this pass so you can see the shape of the attack on its own.

move 1 / 6
The intruder

15
The same six moves, defences live
built

Which layer catches him, and which one doesn't

Two of these he walks straight through. That's stated first, because a security story where every move is blocked is a story nobody should believe. What the architecture actually does is make the middle of his campaign expensive and the end of it undeniable.

move 1 / 6
The response

The failure case, drawn honestly

Suppose he wins anyway — he lands domain administrator before anything trips. What does he actually get?

He can read what the tool readsThe agent holds no credentials and the vault never sits on a client machine, so there is nothing there to take. Your passwords are on your machine, behind a passphrase and bound to your Windows account.
He can silence the watcherAnd that is the alarm. Killing it stops the heartbeats, and absence is the one signal he cannot forge. He has to choose between being watched and being noticed.
He can rewrite that box's local logBut not the authority. The chain and its published fingerprint live on your machine and off-site. A rewritten local record cannot match a head recorded elsewhere.

So the honest claim is not that he is stopped. It is that he cannot move quietly, cannot harvest the crown jewels from the machines he holds, and cannot erase the fact that he was there. That is a materially worse position for an attacker than the usual one — and it is a claim we can actually stand behind.

16
Drawn as depth — outermost first
built

Every layer, and what each one is for

Layers are usually drawn as an onion, which implies each one is a wall. These are not all walls. Some prevent, some detect, and some only prove — and mixing those up is how people end up trusting a detector to be a lock.

PreventStops the thing happening. Fewest of these, because prevention is expensive and brittle.
DetectDoesn't stop it — makes it visible fast, ideally with no judgement call required.
ProveNeither stops nor spots. Makes what happened undeniable afterwards, to someone who doesn't trust us.
17
Drawn as a sequence diagram — a protocol is a conversation over time
built

Just-in-time admin: borrowed, then taken back

Standing administrator accounts are the thing attackers look for first. A JIT grant creates access that expires on its own — and crucially, the box that grants it is the one that decides, using a challenge only it knows. Step through the exchange.

1 / 9
Exchange

18
Drawn as a convergence — many signatures, one unchanged sentence
designed

Round Table: the actions no single person can authorise

A few operations are dangerous enough that one compromised console should not be able to order them. Those require independent signatures from separate trust domains — the operator console and an independent witness on a different network — over the byte-identical request. Every holder signs the same sentence, or the quorum does not close. Note what this deliberately is not: no secret is ever split and reassembled.

Where it currently stands. The requirement is real and enforced today: each kind of grant declares how many signers it needs, and a signature set is checked against that declaration by the machinery that already hands out temporary privilege. What is not yet standing is the ceremony around it — convening, signed refusals, and a machine attesting to its own state. That is held up by two questions, and both are decisions rather than work.

Outcome

Not secret sharingSplitting one key into shares means somewhere, something reassembles it — and that assembler becomes the target. Independent signatures never combine: each stands alone and all must verify.
Being down and being forged look differentA missing signature and an invalid one are reported separately. “Quorum not met” doesn't tell you whether a signer is offline or something is forging, and those need opposite responses. A partial quorum is an alarm, never something to retry until it passes.
Cannot check is a refusal, not a passOn a locked-down machine the signature maths is unavailable. That returns a refusal. Accepting on the grounds that we were unable to verify would make locking a machine down the cheapest way around the whole mechanism.
Replay is closed one layer belowThe challenge a signer answers is destroyed the moment it succeeds, so a captured signature can't be presented twice. It is burned only on success — burning it on failure would let anyone wipe a legitimate operator's pending request for free.
Refusals are signed tooA holder that says no produces a signed refusal rather than silence. Dropping a message on the wire then cannot be used to manufacture a missing objection — an absent signature and a signed “no” are different things, and only one of them can be faked by cutting a cable.
Sequence only moves forwardEach convening carries a counter that never goes backwards, so an old but genuinely signed request cannot be produced again later and honoured a second time.
What actually needs twoLifting a machine's language lockdown, rotating a box identity key, and break-glass repair of a bricked endpoint. Rare, plannable, and each one would otherwise hand a single console far too much reach. Everyday administration stays single-signer on purpose — a quorum on routine work is a quorum people learn to route around.
Why byte-identical, not "the same request"Two systems that agree on meaning but disagree on formatting produce a signature that verifies against something other than what was intended — that exact bug appeared in this codebase's own log chain, over a date format. Signing the bytes removes the judgement call.
The two decisions this is waiting on
How does a machine vouch for itself when it is locked down?The lockdown that makes a machine worth trusting also removes the cryptography it would need to sign its own state. Verified directly: file hashing survives, keyed signing does not, and the agent is an ordinary script under a scheduled task rather than a compiled program. Three ways out — ship a properly signed native component, accept a weaker pre-signed assertion, or have the endpoint carry out the decision rather than take part in making it. This is a choice about what to trust, not a piece of work to schedule.
Who holds the signing certificate?Whoever does can produce a component that runs with full privilege across every managed machine without convening anybody. One key, no ceremony, the whole fleet — a fourth trust domain needing a single compromise, against a design premised on three. It outranks every multi-signer scenario on this page, and no amount of ceremony code touches it. What it needs is an answer: where the key lives, who may sign with it, whether signing is itself quorumed, and what revocation looks like once a signed agent is already deployed.
Both are recorded as blocked rather than solved, and the system reports them that way rather than letting a working record be mistaken for a working ceremony.
19
Drawn as anatomy plus a verifier — what is in it, and what is checked
built

Inside a single heartbeat

Section 06 showed the waveform. This is one beat pulled apart: what the message contains, what signs it, and the four questions asked at the other end. Four questions, seven possible verdicts — and two of them are neither a clean pass nor an attack.

Verdict

20
Drawn as a matrix — because the answer depends on who is asking
designed

“Is 3389 open?” is the wrong question

Most tools reason about ports. A port is open, or it isn't; it's sensitive, or it isn't; and every conclusion follows from those two bits. A firewall does not work that way. For each arriving packet it resolves a whole tuple — direction, protocol, local port, source address, network profile, interface type, owning program — and returns allow or block. Open is not something it can tell you.

This matters more than it sounds, because it means the most severe thing the old model could say was also the thing it was least equipped to say. A critical “exposed to the internet” finding fired from a listening socket plus a note in the topology. But on a machine this system has hardened, inbound is denied by default — so that port is very probably not reachable at all. The loudest alarm was, on our own standard configuration, usually wrong.

EVERY LISTENING PORT, ASKED FROM EVERY DIRECTION THAT MEANS SOMETHING PORT ANSWERS TO LOOPBACK SUBNET LAN WAN v4 WAN v6 3389rdp TermService allow allow block block block 445smb System allow allow allow block allow 443https nginx.exe allow allow allow allow allow 5985winrm WinRM allow allow block block block 49712? owner unknown allow cannot say cannot say cannot say cannot say
Row two is the finding worth building the whole thing for: file sharing is shut off from the internet over IPv4 and wide open over IPv6, because the rule that blocks it was written against an IPv4 range and this machine has a routable v6 address. It is a common hole in the real world, and nothing an operator is likely to run on a single machine will show it to them.
Block beats allow, and order does not matterThe textbook firewall model is an ordered list where the first matching rule wins, so a rule's position decides whether it ever fires. Windows is not that: it evaluates everything that matches and a block always wins. Applying the ordered model here would produce confident nonsense, so the analysis models what Windows actually does.
Cannot say is a real answerWhen nothing on the machine can tell us which program owns a socket, the honest result is that the question has no answer — not that no rule matched. Those two get treated the same way by most tools, and they are opposites.
Some rules are inert without looking itA disabled rule is still returned by Windows when you ask for the rule list. A rule scoped to a corporate network is dead weight on a café wifi. Both look like protection in a listing and neither is doing anything.
One escape hatch, deliberately narrowThere is a kind of rule that can override a block. If one is present, the answer becomes “undetermined” and the rule is named, rather than guessed at. A wrong confident answer here is worse than an admitted limit.
The internet column needs the mapAsking whether something is reachable from the internet is only meaningful if we know where the machine sits. If it hasn't been placed on the network map, that column reads unknown and the analysis says so, rather than quietly assuming.
Five layers, and a rule between themObserve, resolve, assess, plan, commit. Each may only read what the layer below it has promised to provide, and every promised field is checked by a test. Three features were previously built, never connected, and reported nothing wrong the entire time — that is what this rule exists to stop.
21
Drawn as findings that show their working — because you should be able to argue with the input
wired

What it notices, and how sure it actually is

A findings panel earns being ignored the first time it cries wolf. So every item carries the evidence it was built from and an explicit confidence, and the weak signals are labelled weak rather than dressed up. The point is to let an operator disagree with the input instead of having to take the output on faith.

HIGH
445 is open here and closed on every comparable machine Three other machines running the same profile have it shut. One that differs was either misconfigured or changed by somebody. A tool that only ever sees one machine cannot notice this at all.
fleet comparison
HIGH
File sharing is open on a machine that shares nothing The network map records what this box is for — gateway and DNS, no file-server role. An open sharing port on it is unexplained rather than merely present.
role contradiction
MED
This port has carried no traffic in a week — closing it costs nothing Confidence rises with the observation window and nothing else. Below a day it will not make this claim at all.
earned by the window
LOW
Something is listening on a high port and nothing accounts for it Deliberately rated low, because that is the honest strength of the signal. Rating it higher would train you to distrust every other row on this list.
weak by design
INFO
Two rules disagree, and Windows will silently pick one An allow sitting entirely inside a broader block never takes effect. The plan says so before you apply it rather than after you wonder why nothing changed.
policy conflict
The window earns the conclusion“Nothing has used this port” is worthless if we only watched for a minute, and acting on it can cut off something an administrator uses weekly. The same observation produces three different verdicts depending on how long we looked — below a day it says do not act on this, past a week it is a firm recommendation. The window changes the conclusion, not just the wording.
A label that contradicts its own ruleOne catalogue entry read “restrict remote desktop to the local subnet” and was in fact an allow. On a machine already denying inbound by default it was the single rule that changed anything — in the permissive direction, while describing itself as a restriction. Every rule now declares whether it permits or denies, and a hardening profile will never suggest one that opens something.
Don't recommend what was already doneThe provisioning baseline and the firewall catalogue overlap. Findings covered by something already applied are suppressed — but counted and reported, never silently dropped, because a shorter list for unexplained reasons is its own problem.
One list, not fourFindings used to come from three modules behind four different commands, which means you had to already know which question lived where. They are merged, de-duplicated — one port flagged by two sources is one problem — and ranked, with a per-source count so the merge can be audited.
Switching it off does not return a clean resultIf the advisor is disabled, it says so in place of the findings. An empty list that reads like a pass is the most dangerous response this could give.
Outbound is missing on purposeThe catalogue only covers traffic coming in. Staging and theft are outgoing, so this is a real gap — but allowing outbound traffic is load-bearing for essentially every application, so it has to be an allow-list per role rather than a handful of blocked ports. A few outbound blocks would be theatre against anyone who can pick a different port.
22
Drawn as a sequence with a clock running — because the order is the safety
wired

Changing a firewall without losing the machine

This is the one subsystem where being careful is not enough. A typed confirmation, a risk rating and a written rollback all reduce the chance of a careless change, and not one of them notices that the specific plan in front of you severs the specific connection you are using to make it. That check is cheap, and it was entirely absent. What follows is the order everything now happens in, and every step of it exists because skipping it is how you end up driving to a restaurant at nine on a Friday.

Outcome

The snapshot is the whole policy, not our rulesUndoing only what we added cannot recover a machine where an existing rule was disturbed or the default action changed. So the entire firewall configuration is exported first, and a third script is written that does nothing but put it back. That is the file you want when a machine is behaving strangely and you don't want to reason about which rule came from where.
It names the session it would dropNot “this may affect connectivity” but “you are administering this machine over 3389 from 10.0.4.22.” It also reports a colleague's session, which is the case nobody thinks about until it happens to them.
You can still do it anywayStanding at the physical console deliberately closing remote desktop is a real workflow, so the refusal can be overridden — as a second, separate, deliberate decision, never as part of the same yes.
Why it runs as the machine, not as youThe rollback is scheduled under the system account. If it ran as the operator, being locked out would end the session and take the rollback down with it — the parachute would disappear at the exact moment it was needed.
And why it lives on local diskA recovery script on a network share is a recovery script reached over the network. A firewall change is precisely the thing that can make that unreachable.
Applied is not the same as workingThe last step re-reads the machine and compares it against what the plan intended, per rule and per direction of travel. “The rule exists” and “the rule did what we expected” are different claims, and only the second one is worth anything.
The whole point of the ordering: the worst outcome this subsystem can produce stops being a lost machine and becomes a fifteen-minute wait.
In practiceThe parachute opens by itself. Confirming you can still reach the machine does not, and neither does deciding whether the change was right in the first place. What that looks like as a service →
23
Drawn as a ladder with a ceiling — because rising is a decision, not a reflex
wired

The repair that is built to refuse first

Settings drift. A feature gets applied, and six weeks later it isn't there any more — someone changed it back, or the apply reported success and never took effect. The obvious answer is a job that checks and re-applies. The obvious answer is also a scheduled, elevated, remote-code-execution primitive pointed at the whole fleet, so it is built in the opposite order: every condition under which it must refuse comes first, and the loop that does the repairing comes last.

HOW FAR IT MAY GO WHAT HOLDS IT THERE H0   Report only H1   Report and propose H2   Re-apply, dead-man armed H3   Re-apply unattended H4   Re-apply and escalate CEILING FOR ANYTHING THAT TOUCHES THE NETWORK RISES ONLY WHEN A PERSON SAYS SO Policy unverified no healing at all, at any rung No dead-man armed network features refuse outright Could not read the state never healed — nothing was learned Retried and failed, repeatedly backoff stops at 24h and stays stopped
The ladder mirrors the response tiers in section 07 rather than inventing a second vocabulary, because two ladders drift and the drifted one is the copy nobody corrects.
Unreadable is never healedA checker that could not read has told you nothing. Treating nothing as non-compliance re-applies features that were never broken, on a schedule, forever — and it looks like diligence the whole time.
Never applied is not the same as driftedThe same observation has two very different causes: the apply lied, or something on the machine changed it back. They need different fixes, so they are never collapsed into one word.
Why the network cap existsRe-applying a firewall rule is the one action that can sever the path the machine is administered over — at three in the morning, with nobody there to type the confirm. The parachute rule from section 22 applies with more force when nobody is watching, not less.
An untrusted catalogue is a delivery mechanismAn unattended re-applier reading a rulebook someone has edited distributes that edit across the fleet automatically. So the rulebook is checked before anything is repaired, every time.
Backoff terminatesA retry schedule that keeps stretching looks like it is still trying while having effectively given up. It stops at twenty-four hours and says so.
What is still to comePer-feature state kept between runs, a risk grade per feature in the catalogue, and the scheduled loop itself. Everything underneath it can already say no, which is the point of building in this order.
In practiceThe healing loop is deliberately unfinished, because an unattended re-applier pointed at a fleet is a serious thing to build. Until it exists, drift is closed by a person looking at the report. What that looks like as a service →
24
Drawn as a merge — because an incident does not respect file boundaries
built

One sequence, spread across six files

There are six separate records, and four of them were added by the security work itself — each one well-formed, each one individually correct. None of them was the problem. The problem was that nothing ever joined them, and an attack does not arrive politely sorted into the log that expects it.

SIX RECORDS, READ SEPARATELY ONE SEQUENCE, READ TOGETHER Actions taken Decoys tripped Consent decisions Heartbeats Published fingerprints Machine evidence 14:02 A decoy file is opened 14:03 A credential request is refused 14:04 A second machine is reached 14:05 A heartbeat goes silent Four oddities in four files. One sequence, read in order.
Ask it about 14:02 and it returns 13:50 to 14:20 across everything, rather than six full logs to read side by side.
The clock had to agree firstThe oldest and most-used record wrote local time with no zone marker. In a western timezone that puts one sequence hours apart in the merged view, where it reads as unrelated events rather than as an attack.
It deliberately does not concludeAn automatic incident classifier built over six different logs would be confidently wrong often enough to get ignored — and an ignored alarm is the failure this whole project keeps finding. It orders the events. A person reads them.
Unparseable lines are counted, not droppedA line it cannot read is reported as a line it cannot read. Silently discarding it would make the merged view look cleaner than the evidence actually is.
Store health is reported separatelyWhether a record's chain is intact is a finding in its own right, independent of what the entries say. A broken chain is news even when nothing in it looks alarming.
25
Drawn as a ratchet — because a number that only climbs is harder to ignore
built

How we know any of this is true

Everything above this section is a claim. This is the part that decides whether the claims are worth anything, and it starts from an uncomfortable admission: a check that cannot fail is worse than no check at all. It occupies a slot, reports success, and tells everyone downstream that the property it names is enforced. That exact thing shipped here — a gate that searched a folder for tests, found none, ran nothing, and printed a pass. It was caught by an outside reviewer, not by us.

CODE THAT WAS BUILT AND NEVER CONNECTED NEW noticed LINGERING two builds later STALE four ENTRENCHED six — the build stops A flat list of loose ends reads as noise and gets skimmed. A count that climbs every single build becomes harder to ignore at exactly the rate it becomes more dangerous.
This mechanism found a second, disconnected copy of a security rule that had already been fixed once — still carrying the old, dangerous version. Connecting it would have reintroduced the flaw. It was deleted instead, with the reason recorded in its place.
Every check is broken on purposeFor each one, the specific property it claims to protect is deliberately sabotaged, and the check must go red. It has to break that named property — a check that fails on any old garbage has proved nothing about what it actually enforces.
Every test has an evil twinEach test that claims to prove something ships alongside a deliberately broken version of itself that must fail. If the twin passes, the test cannot tell the difference between working and not working, so it is marked blind and its evidence is withheld.
The counts are published, including the bad onesTen of twenty-eight checks have been proven able to fail. Three of seventeen machine behaviours have recorded evidence. Those numbers are on the board precisely because they are not finished.
A waiver is a claim, not a silencerAnything set aside must name a real person and expires after three builds, then reopens by itself. Nine waivers were once filed at once, all owned by “next session”. All nine were voided on the following run.
A missing check is a deleted controlIf a declared check is not on disk, that is a failure rather than something to skip. Deleting the file that proves the main gate works used to make the gate report clean.
The honest limit of all of itNone of this produces evidence from real machines. It removes every reason such evidence has not been produced except one: getting hold of the machines.
26
The same ideas, acted out
built

In pictures

Everything above is a diagram of a mechanism. This section is the same content played as small scenes, because a thing you can watch happen is easier to keep than a thing you read. Each one loops. Nothing here is a simplification of the engineering — it is the same engineering, drawn as people and doors.

1 / 6
RULEBOOK OK OPERATOR GATEKEEPER
01 · Consent enforcement

Nobody gets past without the book agreeing

The operator can ask for anything. Asking is free and always allowed — that's the point of a request. What they cannot do is act without the gatekeeper checking the book first.

The book is the client's own signed agreement, in plain English, and the check happens on every single instruction — not once when the engagement starts, not nightly, not when somebody remembers. If the book doesn't cover it, the stamp comes down red and the request stops there.

Why this is unusualMost tools check permissions once and hold a session open afterwards. This one has no session. Every action is re-checked from scratch, which is slower to build and much harder to get wrong.
7f3a… ONE-TIME CHALLENGE TORN UP AFTER USE OPERATOR THE MACHINE
02 · JIT grants, in one picture

The machine asks a question only it knows the answer to

When an operator needs administrator rights, the machine doesn't just take their word for it. It invents a random number it has never used before, hands it over, and says sign this back to me.

Only the real operator can produce that signature, because the key that makes it never leaves their computer. And the moment the machine checks it, it tears the card up. Not marks it used — destroys it. So even someone who recorded the whole exchange has captured an answer to a question that no longer exists.

The bit people missThe signature covers the number and what it's for and when it expires — all together. A proof captured for a fifteen-minute job cannot be re-used to authorise a twelve-hour one, because the expiry was part of what got signed.
still here, still me CLIENT MACHINE + WATCHER INTRUDER
03 · The heartbeat

A small thing that waves every fifteen minutes

On each managed machine sits a watcher whose entire job is to wave. Every fifteen minutes it says still here, still me — signed with a key that is glued to that specific computer and cannot be lifted off it.

Now look at what the intruder has to do. He wants that watcher gone, because it will notice him. But the moment he switches it off, the waving stops — and the silence is the alarm.

He can forge a message. Nobody can forge an absence. So he has to choose: leave the watcher running and be seen, or switch it off and be announced.

Why this beats a louder alarmAlarms that fire on activity get tuned down until they are useless. This one fires on inactivity, which cannot be tuned away — and the attacker's most natural move is the one that triggers it.
ONE UNCHANGED PAGE MOTHERSHIP GOVERNOR TWO SEPARATE STAMPS · NOTHING IS COMBINED
04 · The Round Table

Some doors need two keys turned in two different buildings

A handful of operations are dangerous enough that one compromised console should not be able to order them alone. For those, two independent parties — sitting on different networks, on different hardware — each have to stamp the same unchanged page.

Here is the design decision that matters, and it is the opposite of what most people expect. We could have split one master key into halves that combine. We deliberately didn't. Splitting a key means that somewhere, for a moment, something holds the whole thing — and that moment is what an attacker waits for.

Instead the two stamps never merge. Each is checked separately, both must be present, and there is no instant anywhere in the process when a complete secret exists.

And a refusal is signed tooIf a holder says no, that no is stamped as well. So nobody can quietly drop a message and pretend an objection was never raised.
passwords.xlsx ALARM THE FILE SERVER
05 · Tripwires

The file that exists purely to be opened by the wrong person

Among the real documents sits one that looks irresistible — passwords.xlsx, or a client list, or an export of credentials. It is entirely fake, and no member of staff has any reason to open it. Ever.

That last word is what makes this so valuable. Almost every security alert asks a human "was that suspicious?" — and because the honest answer is usually "probably not", alerts get tuned down until they stop meaning anything.

A decoy asks nothing. There is no threshold, no baseline, no tuning. Nobody legitimate touches it, so anyone who does has announced themselves.

The same trick, on a credentialOne of the saved passwords is also planted. It opens nothing, belongs to no one, and raises an alarm wherever it is tried. An intruder who harvests credentials takes it along with the real ones — and it reports back on him.
UNDO CHANGE ARMED FIRST CLIENT MACHINE
06 · The dead-man restore

The parachute is packed before the jump, not after

Changing a firewall is the one action that can cut off the very connection being used to make it. So before a single rule is touched, a job is scheduled on the client's own machine holding the instructions to put everything back.

Then the change is applied. If it works and the operator confirms it, the job is cancelled. If the operator's laptop dies, the connection drops, or they simply walk away — the machine repairs itself without anyone present.

There is a separate check before any of this: would this rule sever the path being used right now? If so it refuses outright, rather than locking you out and relying on the parachute.

Ordering is the controlPlenty of tools offer a rollback. The difference is when it exists. A rollback you have to reach for after something goes wrong is only useful if you are still able to reach anything.
27
Played through — both networks, eleven attempts
built

Watch someone actually try

One attacker, both networks on screen, and every route he realistically has — fourteen chapters, from the reconnaissance that costs him nothing to the bill at the end. It plays on its own like a short lesson — press play and read along, or jump to any chapter. Two of his attempts succeed, and those are labelled in red, because the ones that get through are the part worth understanding.

CHAPTER 01 RECONNAISSANCE
01 / 11
The attacker

28
Drawn as the path an instruction travels — every control it meets, in order
built

Every part of the security architecture, and what each one is worth

Everything above described a mechanism from the inside. This is the whole set from the outside: there are six security controls in this system, they sit at different points on the path an instruction takes, and they are emphatically not of equal weight. Two carry the design. Two more genuinely help and are honest about not being boundaries. One is a guardrail whose own source says so in capital letters. And the first thing an instruction meets is deliberately not a control at all.

The reason to lay it out like this rather than as a list of features is that a security architecture is only as good as the weakest thing on the path, and calling six things “security” without saying which two actually hold invites exactly the wrong conclusion. Select any control to see what it does, what it is graded, and what it explicitly does not do.

Control

Green carries the design. Amber helps and says plainly that it is not a boundary. Blue is detection rather than prevention. The first box is not coloured at all, because it is not a control.
Four levels of privilege, and most work happens at the lowestReading, model edits and client records run as you, with nothing elevated. Anything that changes a machine takes one elevation prompt for that one action. Exactly one thing runs as the machine itself — the firewall restore, deliberately, so that being locked out cannot take the recovery down with it. The fourth is anything that goes out over the wire to somebody else's network, which is the only tier that leaves the building.
Three secrets, and none of them is the othersThe key that proves authority, the key that encrypts stored passwords, and the key that signs as us are three separate things held three separate ways. Merging any two would be convenient and would create a single point of total compromise — one stolen secret that both unlocks everything and can authorise its own use. They are kept apart on purpose, and the inventory that lists them never returns any of their material.
A hash proves sameness, not authorshipChecking the rulebook against a recorded fingerprint catches an edit — but anyone who can edit it can also re-record the fingerprint, and re-recording is deliberately reachable so that a stuck operator can recover. So a signature outranks the hash wherever one exists, because signing needs a private key that never touches a client machine. Where no signature exists the hash still gates, and the answer says plainly that authorship is unproven rather than showing a tick that means more than it should.
The inversion worth staring atPrivilege in this system runs downhill from the least trusted component. The part that draws the screen also displays text that came from client machines, and it is nonetheless the origin of every elevated action. The design assumes that part is as trustworthy as the operator sitting in front of it. Nothing enforces that assumption — the control immediately after it does the enforcing, which is exactly why that one control has to hold.
What is still missing, namedThe channel between the screen and the engine accepts any instruction by name, with no list of which ones are permitted to arrive that way. Adding that list is queued, and it is the single highest-value thing left on the security side — not because the door behind it is weak, but because defence in depth means not relying on one door being perfect.
Why this section is graded rather than celebratedSix controls presented as equals would leave you believing the system is six deep. It is two deep, with useful help on either side. Knowing which two is what lets you spend attention correctly, and it is the difference between a security architecture and a list of security-sounding components.
29
Drawn as two answers to one question — who is actually operating this
built

What running it actually looks like

Everything above this is architecture. None of it operates itself, and the document has been fairly blunt about where that is true: the response ladder only climbs down when a person decides, the decoys only work if somebody reads the alarms they raise, the healing loop is deliberately unfinished, and silence at three in the morning is just silence until somebody notices it. Those are not gaps in the design. They are the design being honest about the difference between a mechanism and an operator.

So there are two ways to have this running, and the difference between them is not how much software you get — it is whether anybody touches your machines.

Tier one

Monitoring & auto-containment

/ month
We see it early, and it stays shallow. Nothing on your estate is changed by us.
  • Proof of life from every machine, every fifteen minutes, in a form that cannot be faked by going quiet
  • Decoys planted at all five depths, each arming a heavier response the deeper it sits
  • Containment that fires on its own — revoke, isolate, disable — without waiting for anyone to wake up
  • Six separate records joined into one timeline, so a sequence reads as a sequence
  • A person reading what comes out of all of it
The parts of this document that are this tier: 06 07 13 24 26
Tier two  ·  most clients

Fully managed

$300 / month
We run the whole posture — the closing of the doors as well as the watching of them.
  • Everything in tier one
  • Twenty-eight hardening settings applied per machine, verified afterwards, and re-checked as they drift
  • Firewall changes made with a snapshot taken first and a rollback armed before anything is written
  • Administrator rights borrowed for minutes and handed back, instead of accounts that are permanently admin
  • Written, scoped, expiring permission for everything invasive — signed by you, refusable by you
  • Someone watching a member of staff's screen, with their consent, when they are stuck
The parts of this document that are this tier: 04 11 12 17 22
Which one you need is a real question, not a sales oneSection 13 draws the distinction that decides it. If what you face is opportunistic — the playbook, run at scale, against whoever is cheapest — then closing the doors does most of the work and tier two is the one that pays. If you have reason to think somebody might choose you specifically, cost stops deterring anything and seeing them early matters more than any single setting. Most businesses are firmly in the first case and are told so.
What neither tier claimsNeither stops somebody who already holds full administrative control of a machine. The footer below says so, and it says so because a defence you have overestimated is more dangerous than one whose shape you know. Anybody selling you a tier that closes that gap is selling you something that does not exist.
You can read the whole thing firstThis document is the product description. There is no second, more candid version kept for people who have signed — the graded security map, the four settings that can break things, the loop that is deliberately not finished, and the certificate-custody problem are all in here.
Book a call

Thirty minutes, and the first thing we work out is which of the two you actually need — which is often neither one yet, because a fleet nobody has mapped is not ready to be monitored. Bring the number of machines and roughly what they do.

30
Drawn as an inventory — every single thing that lands, and what each one is for
built

Exactly what appears on your machine

“We install a lightweight agent” is not something anybody can meaningfully consent to. It is the sentence every remote-management vendor uses and it tells a client nothing — not what runs, not what it can reach, not what an incident-response firm will find on their server in two years and ask them to explain. So the list below is produced before anything is installed, by the software itself, and a build test asserts that every item on it carries a stated purpose. A filename nobody can account for cannot survive in this list.

The whole footprint is one scheduled task and nine files. No Windows service. No registry run key. No driver, no kernel component, and no listening port — the agent does not accept incoming connections at all. It beats outward every fifteen minutes and does nothing else.

THE ONLY THING THAT RUNS Omniscient Heartbeat a scheduled task — runs every fifteen minutes, as the machine itself 1 TASK · 0 SERVICES
01
omn-heartbeat.ps1The beat script the task runs.
runs
02
omn-heartbeat.jsonThe most recent beat, signed.
proof
03
omn-heartbeat-seq.jsonThe sequence counter, so a replayed beat can be spotted.
proof
04
omn-box-identity.datThe box private key, sealed by Windows to this machine. Carried elsewhere it is inert.
secret
05
omn-box-identity.pubThe matching public key. This is what the console verifies beats against.
public
06
ofm-identity.pubThe operator's public key — the public half only. Nothing on your machine can sign as us.
public
07
box-claim.jsonWhich console manages this box, so two consoles cannot silently both think they do.
ownership
08
omn-alarms.jsonA local record of alarms, so the evidence survives the machine losing its network.
evidence
09
agent-profile.jsonWhat this box was seeded with, and when. The disclosure the owner can read.
disclosure
Nine files in one folder. Six of them exist so that a beat can be proved genuine; the other three say who is responsible for the machine and what was done to it.
Seeding is one action, in a fixed orderIt used to be three or four, in an order that was written down nowhere. The identity keypair is created first, because a beat sent before the key exists is unsigned — and an unsigned beat reads as not-live. Seed in the wrong order and the machine alarms every fifteen minutes from the moment it is installed, until somebody learns to ignore the alarm.
The task is registered last, deliberatelyNothing is scheduled until everything it depends on already exists, so the very first beat is a real one rather than a failure that has to be explained.
A half-seeded machine is the worst outcome availableNot because it is broken but because it is invisible: the fleet view lists it, the operator believes it is covered, and nothing ever contradicts either of them. So the preconditions are checked before the machine is touched at all, and a seed that would land halfway is refused rather than started.
It refuses without the signed scopeLeaving software running on somebody else's machine is the single most invasive thing this product does, and it is explicitly not covered by a general agreement to look after the computers. No signature, no seed — and the refusal says which scope is missing.
Connecting and seeding are different jobsConnecting happens once per client, is generated and delivered by hand because its whole purpose is to create a channel where none exists, and leaves nothing running afterwards. Seeding happens per machine, over that channel, and is the one that leaves something behind. A seed with no channel is refused with the reason stated plainly: seeding cannot create its own route.
Afterwards, it checks rather than assumesA separate step confirms what must actually be true for the machine to be managed — the task exists, the keys are present, a beat has arrived and verified. An install that reported success is not the same as a machine that is reporting in.
In practiceThe list on this page is what we hand a client before we seed anything, and it is generated from the code rather than written by hand, so it cannot quietly drift away from what is actually installed. What that looks like as a service →
31
Drawn as a leak that grew with the defence — because that is exactly what it did
built

The passphrase was travelling on the command line

Thirty bundles of work sat downstream of this and none of it noticed. The console launched the engine by putting the whole request — passphrase included — into the arguments of the process it started. On Windows a process argument is not private. It is visible in Task Manager, in a one-line query any user can run, in the security log if command-line auditing is on, and to every monitoring agent on the machine. The passphrase was readable before it was ever used.

Which made everything downstream irrelevant. Two and a half seconds of deliberately expensive key derivation, authenticated encryption, the keyslot model, a written passphrase in a safe — none of it matters if the passphrase can be lifted out of a process listing while the operator is still typing the next command.

And here is the part worth remembering. The exposure scaled with the protection. A well-run machine is more likely to have PowerShell transcript and module logging turned on — so the better secured the box, the more reliably the operator's passphrase was written to a log file. The control and the leak grew together. That is the shape of failure this whole document keeps circling: not an absent defence, but a defence whose own success quietly widened the hole beside it.

BEFORE — ONE CHANNEL, EVERYTHING ON IT powershell.exe −PayloadJson '{ verb, machine, passphrase }' visible in the process table and written to the transcript AFTER — TWO CHANNELS, AND THE MERGE ONLY GOES ONE WAY −PayloadJson '{ verb, machine }' harmless, and useful when debugging stdin  →  { passphrase } not in the process table, not in command-line auditing, not in a transcript
Nine field names are treated as secret-shaped and split out automatically, so this is a property of the transport rather than a rule each caller has to remember.
The merge is deliberately one-wayA secret arriving over the private channel may add a field and may never overwrite one already present in the public payload. Allowing an override would mean an attacker who could influence either channel could decide which one won.
An empty channel refusesIf nothing arrives where a secret was expected, it stops rather than carrying on. Continuing produces a failure further down that looks exactly like a wrong passphrase — and sends the operator off to rewrite a journal that was never the problem.
Erasure is called best-effort, because that is what it isBoth sides scrub their copy afterwards and both say plainly that they cannot guarantee it: strings in these languages cannot be reliably wiped. Claiming otherwise would be the same class of error as the bug itself.
A gate test that has been seen to go redThree rules now run on every build: no secret-shaped field on a launch argument, the private channel must exist on both sides and actually be read, and no secret interpolated into a log call. The second one matters most — a channel nobody reads is a comment, and the caller sends secrets into a void believing they are protected.
Two ways in, because one cannot be backed upThe instinct was to make a hardware token the only key. That was refused: the property that makes such a token strong is that it cannot be extracted — which means it cannot be copied either. One dead token and the ability to prove what any client ever consented to is gone, on every machine, permanently. So the token is the daily key and a written passphrase in a safe is the way back.
The way back is rehearsed, not assumedThere is a drill that restores from the written passphrase deliberately, before it is needed. An untested recovery path is a belief rather than a plan, and this is the one place where finding out you were wrong is unrecoverable.
In practiceThis one is worth asking any provider about, including us: where does your passphrase go between the keyboard and the thing that uses it, and what proves it did not end up in a log? What that looks like as a service →
32
Drawn as three states — because only one of them touches a machine
wired

A drawing of a network is not a network

Every fleet tool eventually confuses the map with the territory. Somebody sketches the estate they intend to build, and six weeks later nobody can remember which of those boxes exist. The answer here is to make the distinction structural rather than a matter of memory: a node is a template, a plan, or real, it says which on its own record, and only the last one has ever been touched.

The rule that makes it work is stated flatly in the source: templates and plans have no bearing on reality. You can design a whole site, arrange it, hand it to a client to look at, and change your mind twice — and not one machine has been contacted. Provisioning is the single step that crosses from drawing to doing, and it is the step that flips the record.

ONE NODE, THREE STATES template an inert definition NOT ON THE MAP plan placed, visible, still inert ON THE MAP · NOTHING CONTACTED real provisioned, and beating THE ONLY STATE THAT EXISTS place it provision the one step that touches a machine
A provisioned node earns a marker on the map. Everything without one is something somebody drew.
The demo data is physically separateThe suite ships in demo mode with a synthetic estate so the first run has something in it. Switching to production does not hide those fixtures — it moves them out, empties the roster, and leaves a clean map. It is fully reversible, and only the demo-flagged fixtures move, so real machines added in production stay exactly where they are.
Why a demo dataset is worth shipping at allThe alternative is a product whose first screen is empty, which teaches nobody anything and makes every feature look theoretical. The cost of that convenience is the risk of mistaking it for real, which is precisely why the separation is structural rather than a label.
A plan is a promise, not a changeDesigning a site, arranging it, and showing it to a client contacts nothing. That means the estate can be drawn before the engagement is signed, and redrawn as often as the client changes their mind, with no cost and no risk.
Provisioning is the boundary, and it is deliberately narrowOne step crosses from drawing to doing, and it is the same step described in section 30 — declared footprint first, fixed order, refuses rather than half-installing.
What is still to comeThe mode switch, the lifecycle field and the template maker are built. The map-pane controls that let you create and arrange planned nodes visually, and the marker that distinguishes a planned box from a real one on the map, are the next renderer build.
You can try both statesThe simulation on this page is the same idea: it ships with a demo estate and a control to wipe it to nothing, sweep a real network, accept what answered, and provision it. Those are the two modes, and the middle step is the difference between a plan and a machine.
In practiceThe first thing we do for a new client is draw their estate before touching any of it — which means you see the plan, and approve it, before a single machine is contacted. What that looks like as a service →

What an operator can do

The lexicon lists the operations by name. This lists them by intention — nine things you might be trying to achieve, and the thirty-six capabilities underneath them. Open any card for what it actually does, what it will refuse to do, and where to go next.

The refusals are the part worth reading. Almost every card has some, and they are not edge cases — they are the design. A tool that never refuses anything is a tool that has not decided what it is for.

The lexicon

Every operation the console can perform: two hundred and fifteen of them, each one named, described, and shown under the permission that governs it. This is the operator's reference rather than the argument — the architecture tab explains why the system is shaped the way it is, and this one tells you what you can actually do with it and what each thing will refuse.

The organising principle is the same one the reference monitor uses. Every operation belongs to exactly one permission scope, and a scope is a sentence the client has read and signed rather than a technical category. Five of the ten require their own signature and cannot be bundled into a general agreement. Nothing is unclassified: an operation that matched no scope used to be permitted by default, which is exclusion-based access control and precisely the shape the principle forbids — so today an unmatched operation is refused and reported as a gap in the catalogue.

none47 verbs

Operator-local

Acts on your own console and fleet, never on a client machine. Client consent is not the governing question for these — but they are still classified, because "unclassified" must never be a category that means permitted.

read48 verbs

Assess (read-only)

We may scan your network and computers to see what is running, what is exposed, and what is out of date. We do not change anything.

Nothing can be secured before it is known. This is the baseline every engagement needs.

change44 verbs

Harden and maintain

We may change security settings on your computers - firewall rules, account policies, and Windows security options - and install approved software. These changes are recorded and can be undone.

This is the actual service: applying and maintaining a security baseline across the fleet.

change18 verbs

Remote administration

We may sign in to your computers remotely, including as an administrator, to fix problems. Sessions are logged.

Fixing a problem usually requires being on the machine as a user who can fix it.

observeseparate signature2 verbs

Watch a session in progress

We may watch a staff member's screen while they are using the computer. By default they are asked first and can decline.

Watching someone work is the fastest way to diagnose an intermittent fault they cannot describe.

impersonateseparate signature8 verbs

Act as a specific user account

We may sign in AS one of your staff accounts - seeing that person's desktop, files, and saved logins - to reproduce or fix a problem that only happens for them.

Some faults only occur in one person's profile. This is powerful and is deliberately separated so a client agrees to it knowingly.

impersonateseparate signature5 verbs

Read stored credentials and secrets

We may read passwords, keys and other secrets stored on your computers, including revealing them in readable form.

Finding weak or reused credentials requires reading them. This is separated because a client would obviously consider "look at our security settings" and "read our passwords" different permissions.

persistseparate signature12 verbs

Leave a management agent installed

We may install software that stays on your computers so we can manage them without you being present, including a dedicated administrator account that we control.

Ongoing managed service is not possible without lasting access; a client should understand it persists after we leave.

persistseparate signature12 verbs

Route through your network

We may create a connection from your network back to ours, and use one of your computers as a route to reach the others.

Reaching machines behind NAT requires a route out; a client should know a tunnel exists and where it terminates.

interfereseparate signature8 verbs

Actively interfere with your network traffic

We may actively disrupt your network: impersonating devices to intercept traffic (ARP spoofing), and forcing wireless devices to disconnect (deauthentication). This INTERFERES with your network while it runs, not merely observes it.

These prove an exposure is real rather than theoretical - demonstrating that traffic CAN be intercepted is different from reporting that it might be. They are disruptive by nature, are illegal without authorization on a network you do not own, and should be scheduled rather than run casually.

Runbooks

The index above tells you what exists. This tells you the order. Eight jobs an operator actually does, each one the real sequence of operations with the decision points marked — because almost every problem in this system comes from doing the right things in the wrong order, and none of that is visible from an alphabetical list. Amber steps are the ones that can refuse, and refusing is usually the correct outcome.

The simulation

This is not a mock-up. It is the console's own renderer — the same React source that ships in the Electron app, compiled here and served the interface it expects, with the PowerShell engine replaced by a stateful mock fleet that ticks. Every screen, every control and every piece of wording is the real one, because it is the real code.

What is missing is the part that touches machines. The capability seam the console checks for at startup is present and answers, so the interface behaves as though it were wired; behind it there is nothing but sample data. Nothing here reaches a network, a file, or a fleet.

It is a two-megabyte renderer and it is not parsed until you ask for it. Reading the other three tabs costs nothing.

Omniscient Fleet Console

The real renderer over a simulated estate that runs. It starts empty. Wipe it, sweep the wire, accept what answered, seed it and watch the first beats arrive — or load a demo estate mid-incident and take it apart. Everything on the board came from the engine. It opens here — you will not leave this document.

real renderer · live mock fleet · nothing leaves the page