Audit Report Writer
When to activate
You have completed a security audit (manual, automated, or hybrid) and collected all findings into a structured format. You need to produce a polished, executive-ready security audit report that:
- Summarizes findings with severity levels (Critical, High, Medium, Low, Info)
- Specifies remediation steps, owner, and deadline for each finding
- Includes a verification plan to track fix completion
- Is suitable for leadership, stakeholders, and engineering teams
Activation triggers:
- Audit findings have been documented and deduplicated
- Context is ready: scope, methodology, date range, audit team
- Audience is known: executives, engineers, or both
- Timeline for remediation is defined
When NOT to use
- Audit is incomplete: findings are still being collected or deduplicated
- Data is missing: severity, remediation path, or owner assignment is undefined
- Raw notes only: you have unstructured field notes, not audit data
- Internal-only format needed: you need a technical handoff document, not a formal report
- Compliance artifact only: you need a bare-minimum compliance checkbox, not actionable guidance (consider a compliance template instead)
Instructions
Report Structure
Every audit report must include:
Executive Summary (1/2 page)
- Audit scope, dates, methodology
- High-level risk posture (e.g., "5 critical, 12 high, 8 medium findings")
- Key business impacts if left unaddressed
- Overall recommendation (e.g., "Immediate remediation required for Critical findings")
Findings Table (ordered by severity)
- ID: Unique identifier (e.g., AUD-001, AUD-002)
- Title: Brief, actionable title
- Severity: Critical, High, Medium, Low, Info
- Finding: Technical description of the vulnerability or gap
- Impact: Business or technical consequence
- Remediation: Specific steps to fix (not vague advice)
- Owner: Named team or individual responsible
- Deadline: Target resolution date
- Verification: How to confirm fix is complete (test case, audit step, etc.)
Detailed Findings (one per section)
- Expand on each finding with context, evidence, and examples
- Reference affected systems, users, or data
- Include reproduction steps if applicable
- Link to external resources (CVE, OWASP, compliance framework)
Remediation Roadmap (timeline view)
- Critical findings: due within 7 days
- High findings: due within 30 days
- Medium findings: due within 90 days
- Low/Info: backlog or next quarter
- Optionally group by team or system
Verification Plan
- How each finding will be validated post-remediation
- Who performs verification (independent of implementer when possible)
- Timeline for verification
- Success criteria
Appendix (if applicable)
- Audit tools and configuration used
- Methodology (OWASP Top 10, CIS, internal checklist, etc.)
- Assumptions and limitations
- Disclaimer on scope and liability
Severity Classification Guide
- Critical: Exploit causes immediate system compromise, data breach, or business shutdown. Patch or mitigate immediately.
- High: Exploit likely causes significant data loss, service interruption, or compliance violation. Remediate within 30 days.
- Medium: Exploit requires multi-step attack or privileged access; causes moderate data exposure or service degradation. Remediate within 90 days.
- Low: Exploit unlikely or requires attacker proximity; minimal business impact. Remediate opportunistically or next quarter.
- Info: Observation with no direct security impact but aids reconnaissance or future attacks. Document for situational awareness.
Remediation Requirements
Each remediation must specify:
- What to do: Exact action (patch version X, add WAF rule Y, rotate credential Z)
- Why: Business/technical justification
- Who: Assigned owner with escalation contact
- When: Deadline (day-of-week and date)
- How to verify: Automated test, manual check, or audit re-scan
- Rollback plan: If remediation fails, fallback procedure
- Dependencies: Other fixes or approvals required first
Tone & Language
- Write for a mixed audience: technical implementers and non-technical stakeholders
- Use clear, jargon-light language; define acronyms on first use
- Be direct about risk; avoid euphemism ("data leakage" not "exposure concern")
- Focus on remediation, not blame
- Use active voice and imperative mood for instructions
Format & Delivery
- File format: PDF or Markdown (with HTML export option)
- Page limit: 5–15 pages depending on finding count (aim for brevity without losing detail)
- Metadata: Include date, auditor name/team, version, and confidentiality marking
- Distribution: Track who receives the report; mark "Confidential" or "Internal Only"
- Retention: Archive for compliance records (typically 3+ years)
Example
Executive Summary
Audit Report: API Gateway Security Review
Date: 2024-10-15
Auditor: Security Engineering Team
Scope: REST API Gateway, authentication layer, rate limiting
This audit identified 2 critical, 3 high, and 5 medium-severity security gaps in the API Gateway. The critical findings expose unauthenticated access to user profiles and allow privilege escalation to admin role. Immediate remediation of critical findings is required before further production usage.
Findings Table
| ID |
Title |
Severity |
Owner |
Deadline |
Verification |
| AUD-001 |
Missing authentication on /user/{id} endpoint |
Critical |
Backend Team |
2024-10-22 |
Integration test with invalid token rejected |
| AUD-002 |
JWT secret hardcoded in codebase |
Critical |
DevOps |
2024-10-22 |
Grep codebase, secret moved to Vault |
| AUD-003 |
No rate limiting on login endpoint |
High |
Backend Team |
2024-11-15 |
50 requests/min limit verified via load test |
| AUD-004 |
SQL injection in search filter |
High |
Database Team |
2024-11-15 |
OWASP SQLi test cases pass |
| AUD-005 |
Missing HTTPS enforcement |
Medium |
Infra Team |
2025-01-15 |
Browser test: redirect from HTTP to HTTPS |
Detailed Finding: AUD-001
Title: Missing authentication on /user/{id} endpoint
Severity: Critical
Finding: The GET /user/{id} endpoint accepts requests without Bearer token validation. An unauthenticated attacker can enumerate all user profiles and retrieve sensitive PII (email, phone, address).
Evidence:
- Test request:
curl https://api.example.com/user/1234 returns 200 with user profile
- Affected endpoint:
/api/v1/user/{id}
- Scope: ~50k active user profiles exposed
Remediation:
- Add JWT validation middleware to endpoint
- Extract
user_id from token; reject if user_id != requested_id (prevent cross-user access)
- Return 401 Unauthorized if no token or token invalid
- Add integration test: verify unauthenticated request returns 401
Owner: Backend Team (assigned to alice@example.com)
Deadline: 2024-10-22 (7 days)
Verification: Run /tests/integration/test_auth.py::test_user_endpoint_requires_auth and confirm pass
Rollback: Revert commit; monitor error logs for 401 spikes indicating client-side failures
Remediation Roadmap
Week 1 (Critical):
- AUD-001: Secure
/user/{id} endpoint
- AUD-002: Move JWT secret to Vault
Month 1 (High):
- AUD-003: Add rate limiting to login
- AUD-004: Parameterize SQL queries
- AUD-005: Force HTTPS
Ongoing (Medium & Low):
- Backlog remaining findings
- Schedule for next sprint
Verification Plan
| Finding |
Test Type |
Owner |
Date |
Success Criteria |
| AUD-001 |
Unit + Integration |
QA |
2024-10-23 |
No 200 responses without Bearer token |
| AUD-002 |
Code scan + secret scan |
SecOps |
2024-10-23 |
Vault audit shows secret rotation; no plaintext in repo |
| AUD-003 |
Load test |
DevOps |
2024-11-16 |
>50 req/min from single IP returns 429 |
| AUD-004 |
SQLi payload test |
QA |
2024-11-16 |
Payloads are escaped/parameterized; no error messages leak schema |
| AUD-005 |
HTTP redirect test |
QA |
2025-01-16 |
HTTP requests redirect to HTTPS; Strict-Transport-Security header present |
Report Version: 1.0
Classification: Confidential
Distribution: Exec Leadership, Engineering Leads, Security Team
1---2name: audit-report-writer3description: Audit Report Writer4---5# Audit Report Writer67## When to activate89You have completed a security audit (manual, automated, or hybrid) and collected all findings into a structured format. You need to produce a polished, executive-ready security audit report that:1011- Summarizes findings with severity levels (Critical, High, Medium, Low, Info)12- Specifies remediation steps, owner, and deadline for each finding13- Includes a verification plan to track fix completion14- Is suitable for leadership, stakeholders, and engineering teams1516Activation triggers:17- Audit findings have been documented and deduplicated18- Context is ready: scope, methodology, date range, audit team19- Audience is known: executives, engineers, or both20- Timeline for remediation is defined2122## When NOT to use2324- **Audit is incomplete**: findings are still being collected or deduplicated25- **Data is missing**: severity, remediation path, or owner assignment is undefined26- **Raw notes only**: you have unstructured field notes, not audit data27- **Internal-only format needed**: you need a technical handoff document, not a formal report28- **Compliance artifact only**: you need a bare-minimum compliance checkbox, not actionable guidance (consider a compliance template instead)2930## Instructions3132### Report Structure3334Every audit report must include:35361. **Executive Summary** (1/2 page)37 - Audit scope, dates, methodology38 - High-level risk posture (e.g., "5 critical, 12 high, 8 medium findings")39 - Key business impacts if left unaddressed40 - Overall recommendation (e.g., "Immediate remediation required for Critical findings")41422. **Findings Table** (ordered by severity)43 - **ID**: Unique identifier (e.g., AUD-001, AUD-002)44 - **Title**: Brief, actionable title45 - **Severity**: Critical, High, Medium, Low, Info46 - **Finding**: Technical description of the vulnerability or gap47 - **Impact**: Business or technical consequence48 - **Remediation**: Specific steps to fix (not vague advice)49 - **Owner**: Named team or individual responsible50 - **Deadline**: Target resolution date51 - **Verification**: How to confirm fix is complete (test case, audit step, etc.)52533. **Detailed Findings** (one per section)54 - Expand on each finding with context, evidence, and examples55 - Reference affected systems, users, or data56 - Include reproduction steps if applicable57 - Link to external resources (CVE, OWASP, compliance framework)58594. **Remediation Roadmap** (timeline view)60 - Critical findings: due within 7 days61 - High findings: due within 30 days62 - Medium findings: due within 90 days63 - Low/Info: backlog or next quarter64 - Optionally group by team or system65665. **Verification Plan**67 - How each finding will be validated post-remediation68 - Who performs verification (independent of implementer when possible)69 - Timeline for verification70 - Success criteria71726. **Appendix** (if applicable)73 - Audit tools and configuration used74 - Methodology (OWASP Top 10, CIS, internal checklist, etc.)75 - Assumptions and limitations76 - Disclaimer on scope and liability7778### Severity Classification Guide7980- **Critical**: Exploit causes immediate system compromise, data breach, or business shutdown. Patch or mitigate immediately.81- **High**: Exploit likely causes significant data loss, service interruption, or compliance violation. Remediate within 30 days.82- **Medium**: Exploit requires multi-step attack or privileged access; causes moderate data exposure or service degradation. Remediate within 90 days.83- **Low**: Exploit unlikely or requires attacker proximity; minimal business impact. Remediate opportunistically or next quarter.84- **Info**: Observation with no direct security impact but aids reconnaissance or future attacks. Document for situational awareness.8586### Remediation Requirements8788Each remediation must specify:89901. **What to do**: Exact action (patch version X, add WAF rule Y, rotate credential Z)912. **Why**: Business/technical justification923. **Who**: Assigned owner with escalation contact934. **When**: Deadline (day-of-week and date)945. **How to verify**: Automated test, manual check, or audit re-scan956. **Rollback plan**: If remediation fails, fallback procedure967. **Dependencies**: Other fixes or approvals required first9798### Tone & Language99100- Write for a mixed audience: technical implementers and non-technical stakeholders101- Use clear, jargon-light language; define acronyms on first use102- Be direct about risk; avoid euphemism ("data leakage" not "exposure concern")103- Focus on remediation, not blame104- Use active voice and imperative mood for instructions105106### Format & Delivery107108- **File format**: PDF or Markdown (with HTML export option)109- **Page limit**: 5–15 pages depending on finding count (aim for brevity without losing detail)110- **Metadata**: Include date, auditor name/team, version, and confidentiality marking111- **Distribution**: Track who receives the report; mark "Confidential" or "Internal Only"112- **Retention**: Archive for compliance records (typically 3+ years)113114## Example115116### Executive Summary117118**Audit Report: API Gateway Security Review** 119**Date**: 2024-10-15 120**Auditor**: Security Engineering Team 121**Scope**: REST API Gateway, authentication layer, rate limiting 122123This audit identified 2 critical, 3 high, and 5 medium-severity security gaps in the API Gateway. The critical findings expose unauthenticated access to user profiles and allow privilege escalation to admin role. Immediate remediation of critical findings is required before further production usage.124125---126127### Findings Table128129| ID | Title | Severity | Owner | Deadline | Verification |130|---|---|---|---|---|---|131| AUD-001 | Missing authentication on `/user/{id}` endpoint | Critical | Backend Team | 2024-10-22 | Integration test with invalid token rejected |132| AUD-002 | JWT secret hardcoded in codebase | Critical | DevOps | 2024-10-22 | Grep codebase, secret moved to Vault |133| AUD-003 | No rate limiting on login endpoint | High | Backend Team | 2024-11-15 | 50 requests/min limit verified via load test |134| AUD-004 | SQL injection in search filter | High | Database Team | 2024-11-15 | OWASP SQLi test cases pass |135| AUD-005 | Missing HTTPS enforcement | Medium | Infra Team | 2025-01-15 | Browser test: redirect from HTTP to HTTPS |136137---138139### Detailed Finding: AUD-001140141**Title**: Missing authentication on `/user/{id}` endpoint 142**Severity**: Critical 143**Finding**: The GET `/user/{id}` endpoint accepts requests without Bearer token validation. An unauthenticated attacker can enumerate all user profiles and retrieve sensitive PII (email, phone, address).144145**Evidence**:146- Test request: `curl https://api.example.com/user/1234` returns 200 with user profile147- Affected endpoint: `/api/v1/user/{id}`148- Scope: ~50k active user profiles exposed149150**Remediation**:1511. Add JWT validation middleware to endpoint1522. Extract `user_id` from token; reject if `user_id != requested_id` (prevent cross-user access)1533. Return 401 Unauthorized if no token or token invalid1544. Add integration test: verify unauthenticated request returns 401155156**Owner**: Backend Team (assigned to alice@example.com) 157**Deadline**: 2024-10-22 (7 days) 158**Verification**: Run `/tests/integration/test_auth.py::test_user_endpoint_requires_auth` and confirm pass 159**Rollback**: Revert commit; monitor error logs for 401 spikes indicating client-side failures160161---162163### Remediation Roadmap164165**Week 1 (Critical)**:166- AUD-001: Secure `/user/{id}` endpoint167- AUD-002: Move JWT secret to Vault168169**Month 1 (High)**:170- AUD-003: Add rate limiting to login171- AUD-004: Parameterize SQL queries172- AUD-005: Force HTTPS173174**Ongoing (Medium & Low)**:175- Backlog remaining findings176- Schedule for next sprint177178---179180### Verification Plan181182| Finding | Test Type | Owner | Date | Success Criteria |183|---|---|---|---|---|184| AUD-001 | Unit + Integration | QA | 2024-10-23 | No 200 responses without Bearer token |185| AUD-002 | Code scan + secret scan | SecOps | 2024-10-23 | Vault audit shows secret rotation; no plaintext in repo |186| AUD-003 | Load test | DevOps | 2024-11-16 | >50 req/min from single IP returns 429 |187| AUD-004 | SQLi payload test | QA | 2024-11-16 | Payloads are escaped/parameterized; no error messages leak schema |188| AUD-005 | HTTP redirect test | QA | 2025-01-16 | HTTP requests redirect to HTTPS; Strict-Transport-Security header present |189190---191192**Report Version**: 1.0 193**Classification**: Confidential 194**Distribution**: Exec Leadership, Engineering Leads, Security Team