Evidence

Verify the audit chain

Verification covers the full chain, not a sample. It either verifies or it names the link that does not.

  • Activity & evidence
  • 4 min read

How the chain works

Every audit event is chained to the one before it with an HMAC-SHA-256 digest. The head of the chain is signed and anchored, so removing, reordering, or editing an event breaks verification at that point rather than passing silently.

This is what makes the difference between a log and evidence. A log tells you what someone wrote down; a verified chain tells you nobody has changed it since.

Running verification

Run a full-chain verification from the audit screen, and as part of runtime verification. Worth doing:

  • After any plugin, WordPress, or PHP update.
  • After a database restore or a host migration.
  • Before exporting evidence someone else will rely on.
  • At the start of any investigation, so you know the record you are about to read is intact.

Fail-secure writes

If an audit event cannot be written, the request does not proceed. The system declines to act rather than act unrecorded. That means a chain with a gap in it is not something normal operation can produce.

Refusing to act is the safe failure

An action you did not take is recoverable. An action nobody can account for is not.

Backups and restores

Restoring the database to an earlier point restores an earlier chain. That is legitimate, and it verifies — but it is a different record from the one you had. If both matter, export the evidence before restoring.

Activity & evidence

Keep the boundary while you fix the problem.

A good fix restores intended behaviour without creating a second path around WordPress or the governed request lifecycle.