Evidence

Chain of Custody for Administrative Access

Most access logs are written to help engineers. On a mission network the same records are read by an inspector general, an auditor, or a defence attorney — and they are read specifically to find the gap.

Chain of Custody for Administrative Access — diagram

Two different jobs for one record

Operational logging answers "what happened, roughly, so we can fix it". Evidentiary records answer "prove this specific person did this specific thing, and prove nobody changed the record afterwards". The second is a much higher bar, and systems that were designed for the first almost never clear it.

The distinction becomes concrete the first time somebody asks you to prove a negative — that a named administrator did not access a particular case file during a particular week. Operational logs can rarely support that claim, because absence of a log entry only proves the logging worked.

What breaks a chain of custody

  • Attribution ending at a shared account. If four people know the oracle password, the record names the account and not the human, and the chain ends there.
  • Records the subject can edit. Shell history, local syslog, and application logs on the target are all writable by exactly the person an investigation is about.
  • Gaps nobody can explain. A recorder that stopped for six hours creates a period you cannot make claims about, and a defence only needs the possibility.
  • Unverifiable copies. An exported recording with no way to demonstrate it matches what was captured is a file, not evidence.
  • Retention that expired quietly. Evidence deleted on a default 90-day policy while the matter was still live is a problem you cannot fix afterwards.

What a defensible record looks like

  1. A named human, verified at the gateway. The session is authenticated to an individual with MFA before any target credential is involved. The account used on the target is injected and never known to the operator, so the two identities stay linked.
  2. Complete capture. Keystrokes, output, commands, transferred files, and duration — captured at the broker rather than on the target, where the subject of the investigation cannot reach it.
  3. Sealed at close. When the session ends, a SHA-256 digest is computed over the recording and written into an append-only ledger. Any later modification changes the digest.
  4. Hash-chained. Each ledger entry incorporates the previous entry’s digest, so removing or altering a record breaks every entry after it. Deleting one session is not a local edit; it is a visible discontinuity.
  5. Verified on export. Anything handed to an auditor, an IG, or a court is re-verified against its digest at the moment of export, and the verification is itself recorded.
Proving a negative, properly. Because every path to the system crosses the gateway and every crossing is recorded in a chained ledger, "no session exists" is a claim backed by the integrity of the chain rather than by the absence of a log line.

Who reads it, and what they ask

ReaderThe question they actually ask
Internal affairs / IGWho reached this record, when, and under whose authorisation?
CJIS auditorIs every person with access to criminal justice information individually identified and authorised?
Defence counselCan you exclude the possibility that this evidence was altered administratively?
Contracting officeDid the contractor’s access end when the contract did?

Give the auditor a login, not a binder

The last practical point is access itself. Producing evidence as a stack of exports puts your own staff between the auditor and the data, which is slow and, from the auditor’s perspective, unsatisfying. A read-only role that lets them search sessions and verify digests directly answers the integrity question far better than any document, because they are looking at the ledger rather than at your description of it.

Related field notes

← OlderThe 3 a.m. Test: Access Control That Survives an Emergency

Next Step

Want this discipline over your own network?

We will walk your current access paths and show exactly where the gateway sits.