← Documentation and encyclopedia

Users and security teams

Proof, retest and report verification

How a finding is proven, how a fix is confirmed and how anyone can verify a signed report.

Reviewed

What a replayable proof contains

A finding from a deterministic class carries a proof: the exact request that triggered it, any harmless test marker used, the validator that judged the response and a hash of the original response. Secrets in the stored excerpt are redacted.

For SQL injection, the strongest proof compares an always-true and an always-false condition against a stable baseline page. The finding is proven only when the true condition reproduces the page and the false condition changes it. An unstable page is never judged.

Retest outcomes

A retest re-sends the stored request and re-runs the same validator. A different rule matching is a new finding, not this one reproducing.

  • still_open: the validator matched the fresh response.
  • verified_fixed: the application answered and the validator no longer matches.
  • regressed: a finding verified fixed in an earlier retest has returned.
  • inconclusive: the target could not be judged, for example a timeout, rate limit, gateway error or failed role login. Never treated as fixed.
  • not_retested: the finding has no replayable proof and needs a scoped re-run or an analyst.

Absence is not a fix

A finding that does not appear in a later run is reported as not observed. It might have been fixed, or the later run might have had less coverage or failed to sign in. Only a replay that observed the application can mark a finding verified fixed.

Verify a signed pack

Send the pack fields to the public verification route. It confirms that the manifest folds to the pack root, that the signature verifies, that any supplied documents still match the manifest and that the signing key was issued by Pentriarch.

To verify offline, hash the ordered "kind:sha256" lines joined by newlines; the result must equal packRoot. Then check the Ed25519 signature over "pentriarch-pack/v1", reportId, status, generatedAt and packRoot, joined by newlines. A valid signature proves integrity and origin, not that findings are correct or that a system is compliant.

POST https://pentriarch.com/api/assessment-pack/verify
{
  "reportId": "...", "status": "issued", "generatedAt": "...", "packRoot": "<64 hex>",
  "manifest": [{ "kind": "findings_register", "sha256": "<64 hex>" }],
  "signature": { "keyId": "...", "publicKeyPem": "-----BEGIN PUBLIC KEY-----...", "signature": "<base64>" }
}

Continue reading

Need help with availability or an assessment? Contact Pentriarch support.