# Audit Readiness and Evidence Collection Reference

Purpose: Turn an audit from a quarterly scramble into a continuous, evidence-driven workflow. Cover evidence mapping by control, chain-of-custody, sampling strategy, auditor interview preparation, findings remediation tracking, continuous-audit automation, and the gap-to-remediation playbook. The goal is that on day one of fieldwork the auditor can pull evidence themselves from a shared evidence room without asking the team to "go find it".

## Scope Boundary

- **Comply `audit`**: audit readiness orchestration — evidence architecture, sampling plan, auditor logistics, findings tracking, continuous audit design.
- **Warden (elsewhere)**: V.A.I.R.E. functional quality gates (user-experience quality), not regulatory audit.
- **Crypt (elsewhere)**: cryptographic evidence artifacts such as KMS key rotation logs, HSM attestations, and TLS cipher inventory — Comply consumes, Crypt designs.
- **Vigil (elsewhere)**: detection rule coverage evidence (Sigma/YARA) — Comply cites the coverage in the audit, Vigil authors the rules.
- **Beacon (elsewhere)**: continuous control telemetry pipelines (log shipping, dashboarding).

If the question is "what does the auditor ask for, in what order, and how do we prove it?" stay in `audit`. If the question is "write the detection rule / set up the KMS / build the SLO dashboard", hand off.

## Evidence Tier Model

| Tier | Example | Auditor weight |
|------|---------|----------------|
| 1 — System-generated | Immutable audit logs, IAM policy JSON, CloudTrail events, KMS rotation events | Highest — cannot be retrofitted |
| 2 — Configuration-as-code | Terraform state, GitHub Actions YAML, OPA policies in the repo | High — diffable, signed commits |
| 3 — Ticketing artifacts | Jira / Linear / ServiceNow ticket with approvals and timestamps | Medium — requires change-management policy backing |
| 4 — Screenshots | Console screenshots with URL + timestamp + user | Low — use only when Tier 1-3 unavailable |
| 5 — Attestations | Signed statements, workforce training acknowledgments | Supporting — rarely the primary evidence |

Always prefer the highest available tier. A screenshot of "access review completed" loses every time to a ticket with approver identity and timestamp, which loses to a log line stamped by the IAM provider.

## Evidence Room Structure

```
audit-evidence/
├── frameworks/
│   ├── soc2-2026/
│   │   ├── CC6.1-logical-access/
│   │   │   ├── design/       # Policies, architecture diagrams
│   │   │   ├── operation/    # Sampled evidence for the audit period
│   │   │   ├── tests/        # Auditor-run tests and results
│   │   │   └── MANIFEST.md   # Control owner, evidence list, hash, timestamps
│   │   └── CC7.2-monitoring/
│   ├── pci-v4/
│   └── iso-27001-2022/
├── shared/                   # Cross-framework evidence (IAM, encryption)
└── chain-of-custody.jsonl    # Append-only log of evidence additions
```

Every file has a SHA-256 in the MANIFEST and an append-only entry in `chain-of-custody.jsonl`. If the auditor later asks "prove this file was not modified after extraction", the hash + signed log line is the answer.

## Workflow

```
READINESS   →  inventory controls in scope, map control → owner → evidence tier
            →  identify gaps (control without evidence, evidence without owner)
            →  generate Prepared-By-Client (PBC) list before auditor arrives

COLLECT     →  automate Tier-1 and Tier-2 extraction on schedule (daily/weekly)
            →  package evidence with manifest, hash, and retention metadata
            →  append to chain-of-custody log; sign with release keys

SAMPLE      →  auditor defines population and sample size — you prepare extraction
            →  population must be complete; missing rows = audit failure
            →  preserve the entire population, not just the sample (re-sampling)

FIELDWORK   →  auditor interviews + walkthroughs; control owner presents evidence
            →  answer one question at a time; provide evidence, not narrative
            →  capture every Information Request (IR) in a tracker

REMEDIATE   →  classify findings: design gap / operating gap / observation
            →  map each finding to remediation owner, root cause, timeline
            →  retest once remediated; archive evidence of closure
```

## Sampling Strategy

Auditors sample from populations to verify operating effectiveness over the audit period. The population must be complete and reproducible.

| Population frequency | AICPA typical sample size | Example |
|----------------------|---------------------------|---------|
| Daily (>= 250/year) | 25 | Daily vulnerability scans |
| Weekly (52/year) | 5 | Weekly access reviews |
| Monthly (12/year) | 2 | Monthly patch cycles |
| Quarterly (4/year) | 2 | Quarterly user access review |
| Annual (1/year) | 1 | Annual policy re-approval, DR test |
| On-event | All or judgmental | Every termination in the period |

If you cannot produce the full population, the auditor expands sample size or issues an exception. Populations built with `gap-less` cursors (auto-incrementing IDs + retention check) prove completeness.

## Auditor Interview Prep

Control owners must be able to answer three questions in under two minutes each:

1. **What is the control and why does it exist?** (Risk → objective → control language.)
2. **How does the control operate day-to-day?** (Who triggers, who approves, where logged.)
3. **How do we know it is working?** (Evidence source, frequency, monitoring alert.)

Dry-run these interviews one week before fieldwork. The most common failure mode is a control owner who cannot name the regulation section their control covers.

## Findings Remediation Tracking

| Field | Content |
|-------|---------|
| Finding ID | e.g., `SOC2-2026-F001` |
| Framework / control | `SOC2 CC6.2` |
| Severity | Critical / High / Medium / Low |
| Type | Design gap / Operating gap / Observation |
| Root cause | One-line causal statement, not symptom |
| Owner | Named individual + accountable executive |
| Target date | Calendar date — not "ASAP" |
| Evidence of closure | Path in evidence room + hash |
| Retest status | Open / Retested-Pass / Retested-Fail |

Track each finding to closure even if the audit report is already signed. Repeat findings across audits are a red-flag pattern auditors escalate.

## Continuous Audit Automation

Move from point-in-time to continuous with three layers:

1. **Automated evidence collection** — scheduled jobs pull IAM policy, CloudTrail rollups, Kubernetes admission webhook decisions, and OPA policy hits into the evidence room daily.
2. **Control health dashboards** — each control publishes a health metric (pass rate, drift count, mean time to remediate). Thresholds trigger on-call.
3. **48-hour drift flag** — per SOC 2 CC4.1-CC4.2, a deficiency must be detectable within 48 hours. Alert path = on-call → control owner → evidence of remediation appended.

## Gap-to-Remediation Playbook

```
GAP IDENTIFIED
  └─> classify (design / operating)
        └─> assign owner + accountable exec
              └─> root cause analysis (5 whys, documented)
                    └─> remediation: code / policy / process
                          └─> evidence of remediation
                                └─> retest
                                      └─> close finding, update trend report
```

A gap is not closed when the fix ships — it is closed when the retest evidence is filed.

## Anti-Patterns

- Building the evidence room for the first time one month before fieldwork — quality and completeness collapse under time pressure.
- Letting control owners write narrative answers instead of pointing to evidence artifacts.
- Sampling from an incomplete population ("we only kept 6 months of logs") — auditor expands scope or issues an exception.
- Screenshot-only evidence for automatable controls — auditors downgrade confidence.
- Treating findings as closed at remediation rather than retest — rubs against Type II operating-effectiveness requirements.
- Using the same evidence for SOC 2 and PCI-DSS without scope analysis — PCI CDE scope is narrower; irrelevant SOC 2 evidence adds noise and can expand PCI scope unintentionally.
- Missing chain-of-custody log entries when copying evidence between tools — auditor questions authenticity.
- Single-person knowledge for a control ("only X knows how this works") — if X is unavailable during fieldwork, the control fails to demonstrate.

## Handoff

**To Builder** — automation to extract Tier-1 evidence (CloudTrail digest jobs, IAM snapshot jobs, KMS rotation event exporters, access-review ticket generators).

**To Beacon** — control health dashboards, drift alerts, SLA burn for remediation timelines, on-call routing for 48-hour flags.

**To Scribe** — PBC list, control narratives, control matrix, findings remediation report, post-audit lessons-learned.

**To Gear** — CI/CD policy gates that block deploys when control-health signal is red; evidence-collection cron jobs.

**To Vigil** — detection rule coverage matrix for CC7.2 / PCI Req 10, threat hunting evidence for audit period.
