open-agreements 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +371 -0
- package/README.es.md +371 -0
- package/README.md +40 -2
- package/README.pt-br.md +371 -0
- package/README.zh.md +371 -0
- package/content/templates/closing-checklist/metadata.yaml +6 -13
- package/content/templates/closing-checklist/template.docx +0 -0
- package/content/templates/common-paper-ai-addendum/README.md +18 -0
- package/content/templates/common-paper-ai-addendum/metadata.yaml +136 -0
- package/content/templates/common-paper-ai-addendum/replacements.json +5 -0
- package/content/templates/common-paper-ai-addendum/selections.json +62 -0
- package/content/templates/common-paper-ai-addendum/template.docx +0 -0
- package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +88 -0
- package/content/templates/common-paper-ai-addendum-in-app/replacements.json +5 -0
- package/content/templates/common-paper-ai-addendum-in-app/selections.json +62 -0
- package/content/templates/common-paper-amendment/README.md +18 -0
- package/content/templates/common-paper-amendment/metadata.yaml +48 -0
- package/content/templates/common-paper-amendment/template.docx +0 -0
- package/content/templates/common-paper-business-associate-agreement/README.md +20 -1
- package/content/templates/common-paper-business-associate-agreement/metadata.yaml +111 -3
- package/content/templates/common-paper-business-associate-agreement/replacements.json +2 -1
- package/content/templates/common-paper-business-associate-agreement/selections.json +38 -0
- package/content/templates/common-paper-business-associate-agreement/template.docx +0 -0
- package/content/templates/common-paper-cloud-service-agreement/README.md +18 -0
- package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +48 -0
- package/content/templates/common-paper-cloud-service-agreement/template.docx +0 -0
- package/content/templates/common-paper-csa-with-ai/README.md +18 -0
- package/content/templates/common-paper-csa-with-ai/metadata.yaml +462 -2
- package/content/templates/common-paper-csa-with-ai/replacements.json +5 -2
- package/content/templates/common-paper-csa-with-ai/selections.json +291 -0
- package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
- package/content/templates/common-paper-csa-with-sla/README.md +18 -0
- package/content/templates/common-paper-csa-with-sla/metadata.yaml +387 -2
- package/content/templates/common-paper-csa-with-sla/replacements.json +4 -2
- package/content/templates/common-paper-csa-with-sla/selections.json +257 -0
- package/content/templates/common-paper-csa-with-sla/template.docx +0 -0
- package/content/templates/common-paper-csa-without-sla/README.md +18 -0
- package/content/templates/common-paper-csa-without-sla/metadata.yaml +380 -2
- package/content/templates/common-paper-csa-without-sla/replacements.json +5 -2
- package/content/templates/common-paper-csa-without-sla/selections.json +250 -0
- package/content/templates/common-paper-csa-without-sla/template.docx +0 -0
- package/content/templates/common-paper-data-processing-agreement/README.md +16 -0
- package/content/templates/common-paper-data-processing-agreement/metadata.yaml +397 -3
- package/content/templates/common-paper-data-processing-agreement/replacements.json +2 -1
- package/content/templates/common-paper-data-processing-agreement/selections.json +211 -0
- package/content/templates/common-paper-data-processing-agreement/template.docx +0 -0
- package/content/templates/common-paper-design-partner-agreement/README.md +18 -0
- package/content/templates/common-paper-design-partner-agreement/metadata.yaml +99 -3
- package/content/templates/common-paper-design-partner-agreement/selections.json +27 -0
- package/content/templates/common-paper-design-partner-agreement/template.docx +0 -0
- package/content/templates/common-paper-independent-contractor-agreement/README.md +18 -0
- package/content/templates/common-paper-independent-contractor-agreement/clean.json +8 -0
- package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +52 -0
- package/content/templates/common-paper-independent-contractor-agreement/replacements.json +3 -0
- package/content/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
- package/content/templates/common-paper-letter-of-intent/README.md +18 -0
- package/content/templates/common-paper-letter-of-intent/metadata.yaml +48 -0
- package/content/templates/common-paper-letter-of-intent/template.docx +0 -0
- package/content/templates/common-paper-mutual-nda/README.md +29 -7
- package/content/templates/common-paper-mutual-nda/metadata.yaml +48 -0
- package/content/templates/common-paper-mutual-nda/template.docx +0 -0
- package/content/templates/common-paper-one-way-nda/README.md +13 -0
- package/content/templates/common-paper-one-way-nda/metadata.yaml +24 -0
- package/content/templates/common-paper-one-way-nda/selections.json +38 -0
- package/content/templates/common-paper-one-way-nda/template.docx +0 -0
- package/content/templates/common-paper-order-form/README.md +18 -0
- package/content/templates/common-paper-order-form/metadata.yaml +115 -3
- package/content/templates/common-paper-order-form/replacements.json +5 -2
- package/content/templates/common-paper-order-form/selections.json +56 -0
- package/content/templates/common-paper-order-form/template.docx +0 -0
- package/content/templates/common-paper-order-form-with-sla/README.md +18 -0
- package/content/templates/common-paper-order-form-with-sla/metadata.yaml +149 -3
- package/content/templates/common-paper-order-form-with-sla/replacements.json +6 -2
- package/content/templates/common-paper-order-form-with-sla/selections.json +64 -0
- package/content/templates/common-paper-order-form-with-sla/template.docx +0 -0
- package/content/templates/common-paper-partnership-agreement/README.md +18 -0
- package/content/templates/common-paper-partnership-agreement/metadata.yaml +293 -4
- package/content/templates/common-paper-partnership-agreement/replacements.json +5 -2
- package/content/templates/common-paper-partnership-agreement/selections.json +138 -0
- package/content/templates/common-paper-partnership-agreement/template.docx +0 -0
- package/content/templates/common-paper-pilot-agreement/README.md +18 -0
- package/content/templates/common-paper-pilot-agreement/metadata.yaml +48 -0
- package/content/templates/common-paper-pilot-agreement/template.docx +0 -0
- package/content/templates/common-paper-professional-services-agreement/README.md +18 -0
- package/content/templates/common-paper-professional-services-agreement/metadata.yaml +338 -4
- package/content/templates/common-paper-professional-services-agreement/replacements.json +7 -4
- package/content/templates/common-paper-professional-services-agreement/selections.json +207 -0
- package/content/templates/common-paper-professional-services-agreement/template.docx +0 -0
- package/content/templates/common-paper-statement-of-work/README.md +18 -0
- package/content/templates/common-paper-statement-of-work/metadata.yaml +110 -2
- package/content/templates/common-paper-statement-of-work/replacements.json +4 -1
- package/content/templates/common-paper-statement-of-work/selections.json +55 -0
- package/content/templates/common-paper-statement-of-work/template.docx +0 -0
- package/content/templates/common-paper-term-sheet/README.md +18 -0
- package/content/templates/common-paper-term-sheet/metadata.yaml +48 -0
- package/content/templates/common-paper-term-sheet/template.docx +0 -0
- package/content/templates/working-group-list/template.docx +0 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +47 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/checklist.d.ts +21 -1
- package/dist/commands/checklist.d.ts.map +1 -1
- package/dist/commands/checklist.js +176 -44
- package/dist/commands/checklist.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +1 -46
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/recipe.js +3 -11
- package/dist/commands/recipe.js.map +1 -1
- package/dist/core/checklist/format-checklist-docx.d.ts +10 -0
- package/dist/core/checklist/format-checklist-docx.d.ts.map +1 -0
- package/dist/core/checklist/format-checklist-docx.js +321 -0
- package/dist/core/checklist/format-checklist-docx.js.map +1 -0
- package/dist/core/checklist/index.d.ts +23 -14
- package/dist/core/checklist/index.d.ts.map +1 -1
- package/dist/core/checklist/index.js +83 -39
- package/dist/core/checklist/index.js.map +1 -1
- package/dist/core/checklist/jsonl-stores.d.ts +3 -0
- package/dist/core/checklist/jsonl-stores.d.ts.map +1 -0
- package/dist/core/checklist/jsonl-stores.js +16 -0
- package/dist/core/checklist/jsonl-stores.js.map +1 -0
- package/dist/core/checklist/schemas.d.ts +2 -2
- package/dist/core/checklist/schemas.js +1 -1
- package/dist/core/checklist/schemas.js.map +1 -1
- package/dist/core/checklist/state-manager.d.ts +146 -0
- package/dist/core/checklist/state-manager.d.ts.map +1 -0
- package/dist/core/checklist/state-manager.js +147 -0
- package/dist/core/checklist/state-manager.js.map +1 -0
- package/dist/core/checklist/status-labels.d.ts +6 -0
- package/dist/core/checklist/status-labels.d.ts.map +1 -0
- package/dist/core/checklist/status-labels.js +29 -0
- package/dist/core/checklist/status-labels.js.map +1 -0
- package/dist/core/engine.d.ts +1 -0
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +72 -11
- package/dist/core/engine.js.map +1 -1
- package/dist/core/selector.d.ts +2 -0
- package/dist/core/selector.d.ts.map +1 -1
- package/dist/core/selector.js +181 -39
- package/dist/core/selector.js.map +1 -1
- package/dist/core/template-listing.d.ts +40 -0
- package/dist/core/template-listing.d.ts.map +1 -0
- package/dist/core/template-listing.js +91 -0
- package/dist/core/template-listing.js.map +1 -0
- package/dist/core/validation/recipe.d.ts.map +1 -1
- package/dist/core/validation/recipe.js +47 -61
- package/dist/core/validation/recipe.js.map +1 -1
- package/dist/core/validation/template.d.ts.map +1 -1
- package/dist/core/validation/template.js +10 -2
- package/dist/core/validation/template.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +8 -2
- package/skills/cloud-service-agreement/SKILL.md +9 -0
- package/skills/data-privacy-agreement/SKILL.md +9 -0
- package/skills/edit-docx-agreement/CONNECTORS.md +20 -0
- package/skills/edit-docx-agreement/SKILL.md +77 -0
- package/skills/employment-contract/SKILL.md +9 -0
- package/skills/iso-27001-evidence-collection/CONNECTORS.md +39 -0
- package/skills/iso-27001-evidence-collection/SKILL.md +304 -0
- package/skills/iso-27001-evidence-collection/rules/api-exports.md +191 -0
- package/skills/iso-27001-evidence-collection/rules/evidence-types.md +107 -0
- package/skills/iso-27001-evidence-collection/rules/screenshot-guide.md +77 -0
- package/skills/iso-27001-internal-audit/CONNECTORS.md +39 -0
- package/skills/iso-27001-internal-audit/SKILL.md +275 -0
- package/skills/iso-27001-internal-audit/rules/access-control.md +191 -0
- package/skills/iso-27001-internal-audit/rules/business-continuity.md +94 -0
- package/skills/iso-27001-internal-audit/rules/change-management.md +211 -0
- package/skills/iso-27001-internal-audit/rules/encryption.md +93 -0
- package/skills/iso-27001-internal-audit/rules/incident-response.md +127 -0
- package/skills/iso-27001-internal-audit/rules/isms-management.md +164 -0
- package/skills/iso-27001-internal-audit/rules/logging-monitoring.md +96 -0
- package/skills/iso-27001-internal-audit/rules/people-controls.md +161 -0
- package/skills/iso-27001-internal-audit/rules/supplier-management.md +92 -0
- package/skills/nda/SKILL.md +9 -0
- package/skills/open-agreements/SKILL.md +9 -0
- package/skills/safe/SKILL.md +9 -0
- package/skills/services-agreement/SKILL.md +9 -0
- package/skills/soc2-readiness/CONNECTORS.md +39 -0
- package/skills/soc2-readiness/SKILL.md +301 -0
- package/skills/soc2-readiness/rules/change-vendor-management.md +104 -0
- package/skills/soc2-readiness/rules/communication-info.md +85 -0
- package/skills/soc2-readiness/rules/control-activities.md +95 -0
- package/skills/soc2-readiness/rules/control-environment.md +126 -0
- package/skills/soc2-readiness/rules/logical-access.md +264 -0
- package/skills/soc2-readiness/rules/monitoring-activities.md +66 -0
- package/skills/soc2-readiness/rules/optional-categories.md +264 -0
- package/skills/soc2-readiness/rules/privacy-criteria.md +359 -0
- package/skills/soc2-readiness/rules/risk-assessment.md +100 -0
- package/skills/soc2-readiness/rules/system-operations.md +170 -0
- package/skills/venture-financing/SKILL.md +9 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Risk Assessment — CC 3.1–3.4
|
|
2
|
+
|
|
3
|
+
Per-criterion audit guidance for risk objectives, identification, fraud risk, and change impact analysis.
|
|
4
|
+
|
|
5
|
+
## CC 3.1 — Risk objectives
|
|
6
|
+
|
|
7
|
+
**Priority**: High | **NIST**: PM-9, RA-1 | **ISO**: C.6.1.1
|
|
8
|
+
|
|
9
|
+
Auditors verify that the organization defines clear objectives against which risks are assessed. Without stated objectives, there's no basis for evaluating whether risks are acceptable. In practice, this means the organization has documented what it's trying to protect, what "good" looks like, and what level of risk is tolerable.
|
|
10
|
+
|
|
11
|
+
**What auditors test**:
|
|
12
|
+
- Information security objectives are documented and approved by management
|
|
13
|
+
- Objectives are specific enough to be measurable (e.g., "99.9% uptime" not just "high availability")
|
|
14
|
+
- Objectives align with business strategy and customer commitments (SLAs, contracts)
|
|
15
|
+
- Risk appetite or tolerance statement exists — management has decided how much risk is acceptable
|
|
16
|
+
- Objectives are reviewed at least annually and updated when business changes
|
|
17
|
+
|
|
18
|
+
**Evidence to prepare**:
|
|
19
|
+
- Information security policy with stated objectives (effective date within audit period)
|
|
20
|
+
- Risk appetite statement or risk tolerance matrix (signed by management)
|
|
21
|
+
- SLA commitments to customers that drive security objectives
|
|
22
|
+
- Management review minutes where objectives were discussed/approved
|
|
23
|
+
- Year-over-year comparison showing objectives were reviewed and updated
|
|
24
|
+
|
|
25
|
+
**Startup pitfalls**:
|
|
26
|
+
- No written security objectives — "don't get hacked" is not a measurable objective
|
|
27
|
+
- Objectives copied from a template without customization to actual business context
|
|
28
|
+
- Risk appetite never discussed — every risk is treated equally instead of being prioritized
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## CC 3.2 — Risk identification and analysis
|
|
33
|
+
|
|
34
|
+
**Priority**: High | **NIST**: RA-3 | **ISO**: C.6.1.2, C.8.2
|
|
35
|
+
|
|
36
|
+
Auditors verify that the organization systematically identifies and analyzes risks to achieving its objectives. The risk assessment must be documented, cover relevant categories (operational, technical, compliance, people), and use a consistent methodology for evaluating likelihood and impact.
|
|
37
|
+
|
|
38
|
+
**What auditors test**:
|
|
39
|
+
- Formal risk assessment conducted at least annually with documented methodology
|
|
40
|
+
- Risk register includes: risk description, likelihood, impact, risk rating, owner, and treatment decision
|
|
41
|
+
- Risk categories cover: technical (infra, code), operational (process, people), compliance (regulatory), and third-party
|
|
42
|
+
- Risk assessment considers both internal and external threats
|
|
43
|
+
- Assessment methodology is consistent (e.g., 5×5 likelihood-impact matrix used uniformly)
|
|
44
|
+
|
|
45
|
+
**Evidence to prepare**:
|
|
46
|
+
- Risk register (spreadsheet or GRC tool export) with all required fields populated
|
|
47
|
+
- Risk assessment methodology document (how risks are scored and prioritized)
|
|
48
|
+
- Most recent risk assessment report with date and participants
|
|
49
|
+
- Threat landscape analysis or threat modeling documentation
|
|
50
|
+
- Risk register change log showing risks added, updated, or closed during audit period
|
|
51
|
+
|
|
52
|
+
**Startup pitfalls**:
|
|
53
|
+
- Risk register is a checkbox exercise — created once, never updated
|
|
54
|
+
- Only technical risks listed — operational, compliance, and people risks are absent
|
|
55
|
+
- Risk assessment done by one person in isolation — should involve cross-functional input
|
|
56
|
+
- All risks rated "medium" to avoid triggering remediation
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## CC 3.3 — Fraud risk
|
|
61
|
+
|
|
62
|
+
**Priority**: Medium | **NIST**: RA-3 | **ISO**: C.6.1.2
|
|
63
|
+
|
|
64
|
+
Auditors verify that the organization considers the potential for fraud when assessing risks — both internal (employee misuse, embezzlement, data theft) and external (social engineering, account takeover). This doesn't require a massive fraud program; it requires that fraud scenarios are part of the risk assessment.
|
|
65
|
+
|
|
66
|
+
**What auditors test**:
|
|
67
|
+
- Risk assessment explicitly includes fraud risk scenarios (not just technical vulnerabilities)
|
|
68
|
+
- Internal fraud risks considered: data theft by insiders, financial fraud, unauthorized access abuse
|
|
69
|
+
- External fraud risks considered: phishing, business email compromise, social engineering
|
|
70
|
+
- Segregation of duties addresses fraud opportunity (e.g., person approving payments ≠ person initiating)
|
|
71
|
+
- Management override controls: even founders/executives cannot bypass financial or access controls without detection
|
|
72
|
+
|
|
73
|
+
**Evidence to prepare**:
|
|
74
|
+
- Risk register entries specifically categorized as fraud risks
|
|
75
|
+
- Segregation of duties matrix for financial and access management processes
|
|
76
|
+
- Anti-fraud controls documentation (approval workflows, dual authorization for payments)
|
|
77
|
+
- Phishing simulation results demonstrating awareness of social engineering threats
|
|
78
|
+
- Financial reconciliation procedures showing detection controls for unauthorized transactions
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## CC 3.4 — Change impact on controls
|
|
83
|
+
|
|
84
|
+
**Priority**: Medium | **NIST**: RA-3, CM-4 | **ISO**: C.6.1.2, A.8.9
|
|
85
|
+
|
|
86
|
+
Auditors verify that the organization assesses how changes — business, technical, regulatory, or personnel — affect the internal control environment. When the company adds a new product, enters a new market, adopts a new cloud provider, or undergoes significant personnel changes, the risk assessment should be revisited.
|
|
87
|
+
|
|
88
|
+
**What auditors test**:
|
|
89
|
+
- Process exists for evaluating control impact when significant changes occur
|
|
90
|
+
- Evidence of risk reassessment triggered by actual changes during the audit period
|
|
91
|
+
- New systems, vendors, or services underwent security review before deployment
|
|
92
|
+
- Organizational changes (mergers, rapid hiring, leadership changes) triggered control reviews
|
|
93
|
+
- Regulatory changes relevant to the business were identified and controls adjusted
|
|
94
|
+
|
|
95
|
+
**Evidence to prepare**:
|
|
96
|
+
- Change impact assessment records for significant changes during the audit period
|
|
97
|
+
- Security review documentation for new vendors, systems, or services onboarded
|
|
98
|
+
- Risk register entries added or modified in response to business changes
|
|
99
|
+
- Management review minutes discussing impact of organizational changes on controls
|
|
100
|
+
- Regulatory monitoring log showing awareness of relevant regulatory developments
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# System Operations — CC 7.1–7.5
|
|
2
|
+
|
|
3
|
+
Per-criterion audit guidance for configuration management, monitoring, incident response, and recovery.
|
|
4
|
+
|
|
5
|
+
## CC 7.1 — Configuration and baseline monitoring
|
|
6
|
+
|
|
7
|
+
**Priority**: Critical | **NIST**: CM-6, RA-5 | **ISO**: A.8.9, A.8.8
|
|
8
|
+
|
|
9
|
+
Auditors verify that production systems run from documented, approved configurations and that drift from baselines is detected. This means infrastructure-as-code, golden images, or documented configuration standards — not ad-hoc server setup.
|
|
10
|
+
|
|
11
|
+
**What auditors test**:
|
|
12
|
+
- Configuration baselines exist for production systems (OS hardening, application settings, network rules)
|
|
13
|
+
- Drift detection: mechanism to identify when running config diverges from approved baseline
|
|
14
|
+
- Configuration changes follow the change management process (CC 8.1)
|
|
15
|
+
- Default credentials and unnecessary services are removed from production systems
|
|
16
|
+
- Firewall rules and security group configurations are reviewed at least quarterly
|
|
17
|
+
|
|
18
|
+
**Evidence to prepare**:
|
|
19
|
+
```bash
|
|
20
|
+
# GCP: firewall rules
|
|
21
|
+
gcloud compute firewall-rules list --format=json | jq '.[] | {name, direction, allowed, sourceRanges, targetTags}'
|
|
22
|
+
|
|
23
|
+
# GCP: instance configurations
|
|
24
|
+
gcloud compute instances list --format=json | jq '.[] | {name, machineType, zone, status}'
|
|
25
|
+
|
|
26
|
+
# Azure: NSG rules
|
|
27
|
+
az network nsg list --output json | jq '.[] | {name, location, securityRules: [.securityRules[] | {name, access, direction, sourceAddressPrefix, destinationPortRange}]}'
|
|
28
|
+
|
|
29
|
+
# GitHub: infrastructure-as-code repos (Terraform, Pulumi, etc.)
|
|
30
|
+
gh repo list {org} --json name,description --jq '.[] | select(.name | test("infra|terraform|pulumi|deploy"))'
|
|
31
|
+
```
|
|
32
|
+
- Infrastructure-as-code repository with version history
|
|
33
|
+
- CIS benchmark assessment results (if available)
|
|
34
|
+
- Configuration review records from most recent quarterly review
|
|
35
|
+
|
|
36
|
+
**Startup pitfalls**:
|
|
37
|
+
- Production servers configured manually via SSH — no reproducible baseline exists
|
|
38
|
+
- Security groups with 0.0.0.0/0 inbound rules left from early development
|
|
39
|
+
- No documentation of what "production configuration" actually is
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## CC 7.2 — Anomaly detection and monitoring
|
|
44
|
+
|
|
45
|
+
**Priority**: Critical | **NIST**: AU-6, SI-4 | **ISO**: A.8.15, A.8.16
|
|
46
|
+
|
|
47
|
+
Auditors assess whether the organization collects, centralizes, and actively monitors logs for security-relevant events. Passive log collection is insufficient — there must be alerting rules that trigger investigation when anomalies occur.
|
|
48
|
+
|
|
49
|
+
**What auditors test**:
|
|
50
|
+
- Log centralization: security events from all systems flow to a single platform (SIEM or log aggregator)
|
|
51
|
+
- Alert rules configured for: authentication failures, privilege escalation, unauthorized access attempts, configuration changes
|
|
52
|
+
- Sample 2-3 recent alerts: verify each was investigated and documented with a resolution
|
|
53
|
+
- Log retention covers the full audit period (typically 12 months for Type II)
|
|
54
|
+
- Log integrity: logs are protected from tampering (write-once storage or separate account)
|
|
55
|
+
|
|
56
|
+
**Evidence to prepare**:
|
|
57
|
+
```bash
|
|
58
|
+
# GCP: alerting policies
|
|
59
|
+
gcloud monitoring policies list --format=json | jq '.[].displayName'
|
|
60
|
+
|
|
61
|
+
# GCP: log sinks (centralization)
|
|
62
|
+
gcloud logging sinks list --format=json | jq '.[] | {name, destination, filter}'
|
|
63
|
+
|
|
64
|
+
# GCP: log retention settings
|
|
65
|
+
gcloud logging buckets list --location=global --format=json | jq '.[] | {name, retentionDays}'
|
|
66
|
+
|
|
67
|
+
# Azure: alert rules
|
|
68
|
+
az monitor metrics alert list --output json | jq '.[] | {name, enabled, severity}'
|
|
69
|
+
|
|
70
|
+
# Azure: diagnostic settings (log forwarding)
|
|
71
|
+
az monitor diagnostic-settings list --resource {resource_id} --output json
|
|
72
|
+
```
|
|
73
|
+
- SIEM dashboard screenshot showing active alert rules
|
|
74
|
+
- Sample alert investigation records (ticket or incident log)
|
|
75
|
+
- Log retention policy document
|
|
76
|
+
|
|
77
|
+
**Startup pitfalls**:
|
|
78
|
+
- Logs exist in cloud provider but nobody monitors them — no alert rules configured
|
|
79
|
+
- Alert fatigue: hundreds of alerts firing daily, all ignored
|
|
80
|
+
- Log retention set to default 30 days — insufficient for a 12-month audit period
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## CC 7.3 — Incident response
|
|
85
|
+
|
|
86
|
+
**Priority**: Critical | **NIST**: IR-4 | **ISO**: A.5.24, A.5.25
|
|
87
|
+
|
|
88
|
+
Auditors verify that the organization has a defined, tested process for responding to security incidents. The plan must exist before the audit period — writing it during the audit is a finding. Expect auditors to walk through a recent incident or tabletop exercise.
|
|
89
|
+
|
|
90
|
+
**What auditors test**:
|
|
91
|
+
- Incident response plan exists, is approved by management, and was in effect during the audit period
|
|
92
|
+
- Plan covers: identification, containment, eradication, recovery, and lessons learned
|
|
93
|
+
- Roles and responsibilities are defined (who leads response, who communicates, who escalates)
|
|
94
|
+
- Plan has been tested: tabletop exercise or response to actual incident within the audit period
|
|
95
|
+
- Post-incident reviews are conducted and documented with action items
|
|
96
|
+
|
|
97
|
+
**Evidence to prepare**:
|
|
98
|
+
- Incident response plan document (with version date proving it predates the audit period)
|
|
99
|
+
- Tabletop exercise records: scenario, participants, decisions made, findings
|
|
100
|
+
- Post-incident review reports (if real incidents occurred)
|
|
101
|
+
- On-call rotation or escalation contact list
|
|
102
|
+
- Incident severity classification matrix
|
|
103
|
+
|
|
104
|
+
**Startup pitfalls**:
|
|
105
|
+
- No written plan — "we'd just figure it out" is a guaranteed finding
|
|
106
|
+
- Plan exists but has never been tested — auditors expect at least one tabletop exercise per year
|
|
107
|
+
- No post-incident review process — incidents happen but lessons aren't captured
|
|
108
|
+
- Incident response plan written by one person and unknown to the rest of the team
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## CC 7.4 — Incident communication
|
|
113
|
+
|
|
114
|
+
**Priority**: High | **NIST**: IR-5, IR-6 | **ISO**: A.5.25, A.5.26
|
|
115
|
+
|
|
116
|
+
Beyond responding to incidents internally, auditors check whether the organization communicates appropriately with affected parties — customers, regulators, and management. Notification timelines and channels should be predefined, not improvised.
|
|
117
|
+
|
|
118
|
+
**What auditors test**:
|
|
119
|
+
- Communication plan: who gets notified, through what channel, within what timeframe
|
|
120
|
+
- Customer notification SLAs match contractual commitments (check customer agreements for breach notification terms)
|
|
121
|
+
- Regulatory notification requirements identified by jurisdiction (e.g., 72 hours for GDPR, state breach laws)
|
|
122
|
+
- Management receives periodic incident summaries (at least quarterly)
|
|
123
|
+
- Status page or customer communication channel for service-affecting incidents
|
|
124
|
+
|
|
125
|
+
**Evidence to prepare**:
|
|
126
|
+
- Incident communication procedures (section of IR plan or standalone document)
|
|
127
|
+
- Sample customer notification (if a reportable incident occurred during audit period)
|
|
128
|
+
- Regulatory notification requirements matrix (jurisdiction × data type × timeline)
|
|
129
|
+
- Management incident summary reports
|
|
130
|
+
- Status page URL and historical incident postings
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## CC 7.5 — Recovery operations
|
|
135
|
+
|
|
136
|
+
**Priority**: Critical | **NIST**: CP-4, CP-9, CP-10 | **ISO**: A.5.30, A.8.13
|
|
137
|
+
|
|
138
|
+
Auditors verify that the organization can recover from incidents and disasters — not just that backups exist, but that recovery has been tested and meets defined objectives. Untested backups are assumed to be non-functional.
|
|
139
|
+
|
|
140
|
+
**What auditors test**:
|
|
141
|
+
- Backup configuration: automated, encrypted, and stored separately from production (different region or account)
|
|
142
|
+
- Backup frequency matches RPO (recovery point objective) — if RPO is 1 hour, daily backups fail
|
|
143
|
+
- Restore testing: at least one successful restore test during the audit period, documented with results
|
|
144
|
+
- RTO/RPO defined for critical systems and achievable based on test results
|
|
145
|
+
- Disaster recovery plan covering major failure scenarios (region outage, data corruption, ransomware)
|
|
146
|
+
|
|
147
|
+
**Evidence to prepare**:
|
|
148
|
+
```bash
|
|
149
|
+
# GCP: Cloud SQL backup configuration
|
|
150
|
+
gcloud sql instances describe {instance} --format=json | jq '{backupConfiguration, settings: {backupConfiguration}}'
|
|
151
|
+
|
|
152
|
+
# GCP: recent backups
|
|
153
|
+
gcloud sql backups list --instance={instance} --limit=10 --format=json | jq '.[0:5] | .[] | {id, startTime, status, type}'
|
|
154
|
+
|
|
155
|
+
# Azure: backup status
|
|
156
|
+
az backup item list --resource-group {rg} --vault-name {vault} --output json | jq '.[] | {name, properties: {lastBackupTime, protectionState}}'
|
|
157
|
+
|
|
158
|
+
# GCP: snapshot policies
|
|
159
|
+
gcloud compute resource-policies list --format=json | jq '.[] | {name, snapshotSchedulePolicy}'
|
|
160
|
+
```
|
|
161
|
+
- Backup restore test report (date, scope, time to restore, success/failure, issues encountered)
|
|
162
|
+
- RTO/RPO definitions per critical system
|
|
163
|
+
- Disaster recovery plan document
|
|
164
|
+
- Business impact analysis identifying critical systems and acceptable downtime
|
|
165
|
+
|
|
166
|
+
**Startup pitfalls**:
|
|
167
|
+
- Cloud provider "handles backups" — but automated backups may not be enabled or may not cover all services
|
|
168
|
+
- Backups exist but have never been restored — first restore attempt during a real outage reveals corruption
|
|
169
|
+
- No defined RTO/RPO — "as fast as possible" is not measurable
|
|
170
|
+
- DR plan is a copy-paste template that doesn't match actual infrastructure
|
|
@@ -167,3 +167,12 @@ Use `list_templates` (MCP) or `list --json` (CLI) for the latest inventory and f
|
|
|
167
167
|
- NVCA model documents are licensed under CC-BY-4.0
|
|
168
168
|
- These documents are typically used together as a suite for a priced equity round
|
|
169
169
|
- This tool does not provide legal advice — consult an attorney
|
|
170
|
+
|
|
171
|
+
## Bespoke edits (beyond template fields)
|
|
172
|
+
|
|
173
|
+
If you need to edit boilerplate or add custom language that is not exposed as a template field,
|
|
174
|
+
use the `edit-docx-agreement` skill to surgically edit the generated DOCX and produce a
|
|
175
|
+
tracked-changes output for review. This requires a separately configured Safe Docx MCP server.
|
|
176
|
+
|
|
177
|
+
Note: templates licensed under CC-BY-ND-4.0 (e.g., YC SAFEs) can be filled for your own use
|
|
178
|
+
but must not be redistributed in modified form.
|