@open-agreements/open-agreements 0.2.2 → 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.
Files changed (143) hide show
  1. package/README.md +30 -0
  2. package/content/templates/closing-checklist/template.docx +0 -0
  3. package/content/templates/common-paper-ai-addendum/README.md +18 -0
  4. package/content/templates/common-paper-ai-addendum/metadata.yaml +136 -0
  5. package/content/templates/common-paper-ai-addendum/replacements.json +5 -0
  6. package/content/templates/common-paper-ai-addendum/selections.json +62 -0
  7. package/content/templates/common-paper-ai-addendum/template.docx +0 -0
  8. package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +88 -0
  9. package/content/templates/common-paper-ai-addendum-in-app/replacements.json +5 -0
  10. package/content/templates/common-paper-ai-addendum-in-app/selections.json +62 -0
  11. package/content/templates/common-paper-amendment/README.md +18 -0
  12. package/content/templates/common-paper-amendment/metadata.yaml +48 -0
  13. package/content/templates/common-paper-amendment/template.docx +0 -0
  14. package/content/templates/common-paper-business-associate-agreement/README.md +20 -1
  15. package/content/templates/common-paper-business-associate-agreement/metadata.yaml +111 -3
  16. package/content/templates/common-paper-business-associate-agreement/replacements.json +2 -1
  17. package/content/templates/common-paper-business-associate-agreement/selections.json +38 -0
  18. package/content/templates/common-paper-business-associate-agreement/template.docx +0 -0
  19. package/content/templates/common-paper-cloud-service-agreement/README.md +18 -0
  20. package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +48 -0
  21. package/content/templates/common-paper-cloud-service-agreement/template.docx +0 -0
  22. package/content/templates/common-paper-csa-with-ai/README.md +18 -0
  23. package/content/templates/common-paper-csa-with-ai/metadata.yaml +462 -2
  24. package/content/templates/common-paper-csa-with-ai/replacements.json +5 -2
  25. package/content/templates/common-paper-csa-with-ai/selections.json +291 -0
  26. package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
  27. package/content/templates/common-paper-csa-with-sla/README.md +18 -0
  28. package/content/templates/common-paper-csa-with-sla/metadata.yaml +387 -2
  29. package/content/templates/common-paper-csa-with-sla/replacements.json +4 -2
  30. package/content/templates/common-paper-csa-with-sla/selections.json +257 -0
  31. package/content/templates/common-paper-csa-with-sla/template.docx +0 -0
  32. package/content/templates/common-paper-csa-without-sla/README.md +18 -0
  33. package/content/templates/common-paper-csa-without-sla/metadata.yaml +380 -2
  34. package/content/templates/common-paper-csa-without-sla/replacements.json +5 -2
  35. package/content/templates/common-paper-csa-without-sla/selections.json +250 -0
  36. package/content/templates/common-paper-csa-without-sla/template.docx +0 -0
  37. package/content/templates/common-paper-data-processing-agreement/README.md +16 -0
  38. package/content/templates/common-paper-data-processing-agreement/metadata.yaml +397 -3
  39. package/content/templates/common-paper-data-processing-agreement/replacements.json +2 -1
  40. package/content/templates/common-paper-data-processing-agreement/selections.json +211 -0
  41. package/content/templates/common-paper-data-processing-agreement/template.docx +0 -0
  42. package/content/templates/common-paper-design-partner-agreement/README.md +18 -0
  43. package/content/templates/common-paper-design-partner-agreement/metadata.yaml +99 -3
  44. package/content/templates/common-paper-design-partner-agreement/selections.json +27 -0
  45. package/content/templates/common-paper-design-partner-agreement/template.docx +0 -0
  46. package/content/templates/common-paper-independent-contractor-agreement/README.md +18 -0
  47. package/content/templates/common-paper-independent-contractor-agreement/clean.json +8 -0
  48. package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +52 -0
  49. package/content/templates/common-paper-independent-contractor-agreement/replacements.json +3 -0
  50. package/content/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
  51. package/content/templates/common-paper-letter-of-intent/README.md +18 -0
  52. package/content/templates/common-paper-letter-of-intent/metadata.yaml +48 -0
  53. package/content/templates/common-paper-letter-of-intent/template.docx +0 -0
  54. package/content/templates/common-paper-mutual-nda/README.md +29 -7
  55. package/content/templates/common-paper-mutual-nda/metadata.yaml +48 -0
  56. package/content/templates/common-paper-mutual-nda/template.docx +0 -0
  57. package/content/templates/common-paper-one-way-nda/README.md +13 -0
  58. package/content/templates/common-paper-one-way-nda/metadata.yaml +24 -0
  59. package/content/templates/common-paper-one-way-nda/selections.json +38 -0
  60. package/content/templates/common-paper-one-way-nda/template.docx +0 -0
  61. package/content/templates/common-paper-order-form/README.md +18 -0
  62. package/content/templates/common-paper-order-form/metadata.yaml +115 -3
  63. package/content/templates/common-paper-order-form/replacements.json +5 -2
  64. package/content/templates/common-paper-order-form/selections.json +56 -0
  65. package/content/templates/common-paper-order-form/template.docx +0 -0
  66. package/content/templates/common-paper-order-form-with-sla/README.md +18 -0
  67. package/content/templates/common-paper-order-form-with-sla/metadata.yaml +149 -3
  68. package/content/templates/common-paper-order-form-with-sla/replacements.json +6 -2
  69. package/content/templates/common-paper-order-form-with-sla/selections.json +64 -0
  70. package/content/templates/common-paper-order-form-with-sla/template.docx +0 -0
  71. package/content/templates/common-paper-partnership-agreement/README.md +18 -0
  72. package/content/templates/common-paper-partnership-agreement/metadata.yaml +293 -4
  73. package/content/templates/common-paper-partnership-agreement/replacements.json +5 -2
  74. package/content/templates/common-paper-partnership-agreement/selections.json +138 -0
  75. package/content/templates/common-paper-partnership-agreement/template.docx +0 -0
  76. package/content/templates/common-paper-pilot-agreement/README.md +18 -0
  77. package/content/templates/common-paper-pilot-agreement/metadata.yaml +48 -0
  78. package/content/templates/common-paper-pilot-agreement/template.docx +0 -0
  79. package/content/templates/common-paper-professional-services-agreement/README.md +18 -0
  80. package/content/templates/common-paper-professional-services-agreement/metadata.yaml +338 -4
  81. package/content/templates/common-paper-professional-services-agreement/replacements.json +7 -4
  82. package/content/templates/common-paper-professional-services-agreement/selections.json +207 -0
  83. package/content/templates/common-paper-professional-services-agreement/template.docx +0 -0
  84. package/content/templates/common-paper-statement-of-work/README.md +18 -0
  85. package/content/templates/common-paper-statement-of-work/metadata.yaml +110 -2
  86. package/content/templates/common-paper-statement-of-work/replacements.json +4 -1
  87. package/content/templates/common-paper-statement-of-work/selections.json +55 -0
  88. package/content/templates/common-paper-statement-of-work/template.docx +0 -0
  89. package/content/templates/common-paper-term-sheet/README.md +18 -0
  90. package/content/templates/common-paper-term-sheet/metadata.yaml +48 -0
  91. package/content/templates/common-paper-term-sheet/template.docx +0 -0
  92. package/content/templates/working-group-list/template.docx +0 -0
  93. package/dist/commands/checklist.d.ts.map +1 -1
  94. package/dist/commands/checklist.js +2 -1
  95. package/dist/commands/checklist.js.map +1 -1
  96. package/dist/commands/list.d.ts.map +1 -1
  97. package/dist/commands/list.js +1 -46
  98. package/dist/commands/list.js.map +1 -1
  99. package/dist/core/checklist/format-checklist-docx.d.ts +10 -0
  100. package/dist/core/checklist/format-checklist-docx.d.ts.map +1 -0
  101. package/dist/core/checklist/format-checklist-docx.js +321 -0
  102. package/dist/core/checklist/format-checklist-docx.js.map +1 -0
  103. package/dist/core/checklist/index.d.ts +1 -0
  104. package/dist/core/checklist/index.d.ts.map +1 -1
  105. package/dist/core/checklist/index.js +7 -3
  106. package/dist/core/checklist/index.js.map +1 -1
  107. package/dist/core/engine.d.ts +1 -0
  108. package/dist/core/engine.d.ts.map +1 -1
  109. package/dist/core/engine.js +72 -11
  110. package/dist/core/engine.js.map +1 -1
  111. package/dist/core/selector.d.ts +2 -0
  112. package/dist/core/selector.d.ts.map +1 -1
  113. package/dist/core/selector.js +181 -39
  114. package/dist/core/selector.js.map +1 -1
  115. package/dist/core/template-listing.d.ts +40 -0
  116. package/dist/core/template-listing.d.ts.map +1 -0
  117. package/dist/core/template-listing.js +91 -0
  118. package/dist/core/template-listing.js.map +1 -0
  119. package/dist/core/validation/template.d.ts.map +1 -1
  120. package/dist/core/validation/template.js +10 -2
  121. package/dist/core/validation/template.js.map +1 -1
  122. package/dist/index.d.ts +2 -0
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +4 -0
  125. package/dist/index.js.map +1 -1
  126. package/package.json +8 -2
  127. package/skills/iso-27001-evidence-collection/CONNECTORS.md +25 -9
  128. package/skills/iso-27001-evidence-collection/SKILL.md +10 -6
  129. package/skills/iso-27001-internal-audit/CONNECTORS.md +25 -9
  130. package/skills/iso-27001-internal-audit/SKILL.md +12 -9
  131. package/skills/soc2-readiness/CONNECTORS.md +25 -9
  132. package/skills/soc2-readiness/SKILL.md +17 -5
  133. package/skills/soc2-readiness/rules/change-vendor-management.md +104 -0
  134. package/skills/soc2-readiness/rules/communication-info.md +85 -0
  135. package/skills/soc2-readiness/rules/control-activities.md +95 -0
  136. package/skills/soc2-readiness/rules/control-environment.md +126 -0
  137. package/skills/soc2-readiness/rules/logical-access.md +264 -0
  138. package/skills/soc2-readiness/rules/monitoring-activities.md +66 -0
  139. package/skills/soc2-readiness/rules/optional-categories.md +264 -0
  140. package/skills/soc2-readiness/rules/privacy-criteria.md +359 -0
  141. package/skills/soc2-readiness/rules/risk-assessment.md +100 -0
  142. package/skills/soc2-readiness/rules/system-operations.md +170 -0
  143. package/skills/soc2-readiness/rules/trust-services.md +0 -230
@@ -0,0 +1,95 @@
1
+ # Control Activities — CC 5.1–5.3
2
+
3
+ Per-criterion audit guidance for risk mitigation selection, technology controls, and policy deployment.
4
+
5
+ ## CC 5.1 — Risk mitigation selection
6
+
7
+ **Priority**: High | **NIST**: AC-5 | **ISO**: A.5.3
8
+
9
+ Auditors verify that the organization selects and deploys control activities that mitigate identified risks to acceptable levels. This is the bridge between the risk assessment (CC 3) and actual controls — each significant risk should trace to one or more controls. Segregation of duties is a key element auditors evaluate here.
10
+
11
+ **What auditors test**:
12
+ - Control activities are mapped to specific risks from the risk register (traceability)
13
+ - Segregation of duties: conflicting responsibilities are separated across different individuals
14
+ - Key incompatible functions identified and separated: access provisioning vs. access review, code development vs. deployment approval, payment initiation vs. payment approval
15
+ - Compensating controls documented where full segregation isn't feasible (common in small teams)
16
+ - Control design considers both preventive (stop it before it happens) and detective (find it after it happens) controls
17
+
18
+ **Evidence to prepare**:
19
+ - Risk-to-control mapping matrix (risk register entries linked to specific controls)
20
+ - Segregation of duties matrix identifying incompatible functions and how they're separated
21
+ - Compensating controls documentation for small-team exceptions
22
+ - Control design rationale for critical risks (why this control was selected over alternatives)
23
+
24
+ **Startup pitfalls**:
25
+ - No traceability between risks and controls — controls exist but aren't linked to specific risks
26
+ - Segregation of duties impossible with 3-person engineering team — document compensating controls instead of ignoring the requirement
27
+ - Only preventive controls, no detective controls — if prevention fails, there's no detection
28
+
29
+ ---
30
+
31
+ ## CC 5.2 — Technology general controls
32
+
33
+ **Priority**: High | **NIST**: AC-1, IA-2 | **ISO**: A.5.15, A.8.5
34
+
35
+ Auditors verify that technology infrastructure supporting the control environment is itself controlled. This covers IT general controls (ITGCs): access management for infrastructure, authentication mechanisms, and the foundational technology controls that other controls depend on.
36
+
37
+ **What auditors test**:
38
+ - Infrastructure access controls: who can access production servers, databases, cloud consoles
39
+ - Authentication strength: MFA enforced for infrastructure access (cloud console, SSH, VPN)
40
+ - Automated controls functioning correctly: CI/CD gates, automated access reviews, scheduled scans
41
+ - Dependency management: technology controls don't rely on manual processes that could be skipped
42
+ - Technology control monitoring: alerts when automated controls fail or are bypassed
43
+
44
+ **Evidence to prepare**:
45
+ ```bash
46
+ # GitHub: branch protection (automated control)
47
+ gh api repos/{owner}/{repo}/branches/main/protection | jq '{
48
+ required_reviews: .required_pull_request_reviews.required_approving_review_count,
49
+ required_checks: .required_status_checks.contexts,
50
+ enforce_admins: .enforce_admins.enabled
51
+ }'
52
+
53
+ # GCP: organization policies (automated guardrails)
54
+ gcloud resource-manager org-policies list --organization={org_id} --format=json | jq '.[].constraint'
55
+
56
+ # GitHub: required status checks (CI gates)
57
+ gh api repos/{owner}/{repo}/branches/main/protection/required_status_checks | jq '.contexts'
58
+ ```
59
+ - Infrastructure access control matrix (who has access to what, at what level)
60
+ - Automated control inventory (CI/CD gates, automated scans, scheduled reviews)
61
+ - Technology control failure alerting configuration
62
+
63
+ **Startup pitfalls**:
64
+ - All engineers have production database access "for debugging" — violates least privilege
65
+ - CI/CD pipeline has no required checks — tests are optional and frequently skipped
66
+ - Cloud console access not protected by MFA — "it's inconvenient" is not an acceptable justification
67
+
68
+ ---
69
+
70
+ ## CC 5.3 — Policy and procedure deployment
71
+
72
+ **Priority**: Medium | **NIST**: PM-1, PL-1 | **ISO**: A.5.1, C.5.2
73
+
74
+ Auditors verify that security policies and procedures are formalized, approved, communicated, and accessible to all relevant personnel. Policies must be living documents — reviewed periodically, updated when changes occur, and acknowledged by employees.
75
+
76
+ **What auditors test**:
77
+ - Information security policy suite exists: overarching policy plus supporting procedures
78
+ - Policies are approved by management (signature or formal approval record)
79
+ - Policies are reviewed at least annually and updated when significant changes occur
80
+ - Employees can access policies (intranet, shared drive, wiki) and know where to find them
81
+ - Policy acknowledgment: employees sign or electronically acknowledge reading policies
82
+ - Version control: policies have version numbers, effective dates, and review dates
83
+
84
+ **Evidence to prepare**:
85
+ - Policy inventory (list of all security-related policies with version, effective date, next review date)
86
+ - Signed management approval for each policy
87
+ - Policy acknowledgment records (employee signatures or electronic acknowledgment log)
88
+ - Policy distribution mechanism (shared drive link, wiki URL, HRIS integration)
89
+ - Policy review log showing annual review was conducted with any changes noted
90
+
91
+ **Startup pitfalls**:
92
+ - Policies exist in someone's Google Drive but aren't shared or discoverable
93
+ - No version control — impossible to prove which version was in effect during the audit period
94
+ - Policies never reviewed after initial creation — outdated content that doesn't match current practices
95
+ - Acknowledgment collected at onboarding but not when policies are updated
@@ -0,0 +1,126 @@
1
+ # Control Environment — CC 1.1–1.5
2
+
3
+ Per-criterion audit guidance for governance, ethics, organizational structure, and accountability.
4
+
5
+ ## CC 1.1 — Ethics and integrity
6
+
7
+ **Priority**: Medium | **NIST**: PS-1, PS-3, PS-6 | **ISO**: A.6.1, A.6.2, A.6.4
8
+
9
+ Auditors assess whether the organization sets the tone from the top on integrity and ethical behavior. This isn't about having a perfect culture — it's about demonstrating that leadership has established expectations, communicated them, and created mechanisms for accountability. For startups, the code of conduct and background checks are the minimum viable evidence.
10
+
11
+ **What auditors test**:
12
+ - Code of conduct or ethics policy exists and is signed by all employees (including founders)
13
+ - Background checks completed for employees with access to sensitive data — verify checks completed before start date
14
+ - Whistleblower or ethics reporting mechanism exists (even a simple anonymous form counts)
15
+ - Management demonstrates ethical tone: policies apply equally to leadership and staff
16
+ - Sample 3-5 employee files for signed acknowledgments
17
+
18
+ **Evidence to prepare**:
19
+ - Code of conduct or ethics policy (with effective date predating audit period)
20
+ - Signed acknowledgment records for all employees (export from HRIS or document management)
21
+ - Background check completion records (date of check vs. start date)
22
+ - Whistleblower policy or ethics reporting channel documentation
23
+ - Employee handbook section covering ethical standards and consequences
24
+
25
+ **Startup pitfalls**:
26
+ - Code of conduct doesn't exist or was written after the audit period started
27
+ - Background checks skipped for early employees and contractors
28
+ - "We're too small for a whistleblower policy" — auditors expect one regardless of size
29
+
30
+ ---
31
+
32
+ ## CC 1.2 — Board oversight
33
+
34
+ **Priority**: Medium | **NIST**: PM-1, PM-2 | **ISO**: C.5.1, C.5.3
35
+
36
+ Auditors verify that governance bodies (board, advisory board, or management committee) exercise oversight of the internal control environment. For startups without a formal board, the equivalent is documented management reviews where leadership evaluates security posture and risk.
37
+
38
+ **What auditors test**:
39
+ - Board or management committee meets at regular intervals (at least quarterly)
40
+ - Meeting minutes include discussion of security, risk, or compliance topics
41
+ - Board members have relevant expertise or access to advisors for security/technology oversight
42
+ - Management reporting: leadership receives periodic updates on security metrics, incidents, and compliance status
43
+ - Charter or terms of reference define the governance body's responsibilities for internal controls
44
+
45
+ **Evidence to prepare**:
46
+ - Board or management meeting minutes from the audit period (at least quarterly)
47
+ - Board charter or management review charter covering security oversight responsibilities
48
+ - Security/compliance status reports presented to leadership
49
+ - Board member biographies showing relevant expertise
50
+ - Evidence of independent oversight (external advisors, audit committee, or independent board members)
51
+
52
+ **Startup pitfalls**:
53
+ - No documented board meetings — investor updates don't count unless they cover security governance
54
+ - Management reviews happen informally but are never documented with minutes
55
+ - Security is never a board/management agenda item — only discussed reactively after incidents
56
+
57
+ ---
58
+
59
+ ## CC 1.3 — Organizational structure
60
+
61
+ **Priority**: Medium | **NIST**: PM-2 | **ISO**: C.5.3
62
+
63
+ Auditors verify that the organization has a defined structure with clear lines of authority and reporting for security-related functions. Someone must be accountable for the security program — even if it's a shared responsibility in a small team, it should be documented.
64
+
65
+ **What auditors test**:
66
+ - Organizational chart showing reporting lines for security function
67
+ - Named security owner (CISO, VP Engineering, CTO, or designated security lead)
68
+ - Reporting line: security function reports to management with authority to act
69
+ - Segregation of duties: key security functions (access management, change approval, incident response) are not concentrated in one person without compensating controls
70
+ - Job descriptions include security responsibilities where applicable
71
+
72
+ **Evidence to prepare**:
73
+ - Current organizational chart (with date)
74
+ - Security program charter or policy naming the responsible individual
75
+ - Job descriptions for security-relevant roles (even if security is one of several responsibilities)
76
+ - RACI matrix for key security processes (access management, incident response, change control)
77
+
78
+ ---
79
+
80
+ ## CC 1.4 — Competence commitment
81
+
82
+ **Priority**: High | **NIST**: AT-2, PS-3 | **ISO**: A.6.1, A.6.3
83
+
84
+ Auditors verify that the organization hires competent people and invests in keeping their skills current through training. Security awareness training is the most commonly tested element — expect auditors to check completion rates and content relevance.
85
+
86
+ **What auditors test**:
87
+ - Security awareness training completed by all employees within audit period (100% completion expected)
88
+ - Training content covers: phishing recognition, password hygiene, incident reporting, acceptable use
89
+ - New hire training completed within first 30 days of employment
90
+ - Role-specific training for security-critical positions (e.g., secure coding for developers)
91
+ - Training records are maintained with dates, participants, and completion status
92
+
93
+ **Evidence to prepare**:
94
+ - Training completion records with dates (export from LMS, Google Classroom, or training platform)
95
+ - Training content outline or syllabus covering security topics
96
+ - Phishing simulation results (if applicable — demonstrates training effectiveness)
97
+ - New hire onboarding checklist showing security training step with deadline
98
+ - Certificates or completion records for role-specific training
99
+
100
+ **Startup pitfalls**:
101
+ - No formal training — "we talk about security in all-hands" isn't documented or verifiable
102
+ - Training completed by 80% of employees — the 20% gap is a finding
103
+ - Training content is generic and doesn't cover the organization's specific policies
104
+ - No tracking mechanism — "everyone did it" without records is unverifiable
105
+
106
+ ---
107
+
108
+ ## CC 1.5 — Accountability
109
+
110
+ **Priority**: Medium | **NIST**: PS-3, PS-4 | **ISO**: A.6.4, A.6.5
111
+
112
+ Auditors verify that individuals are held accountable for their internal control responsibilities. This connects ethics (CC 1.1) with consequences — if someone violates security policy, there's a defined process for addressing it. Accountability also means performance evaluations include security responsibilities.
113
+
114
+ **What auditors test**:
115
+ - Disciplinary process exists for security policy violations (documented in employee handbook)
116
+ - The process is communicated to all employees (typically at onboarding and via training)
117
+ - Performance evaluations include security-related responsibilities for relevant roles
118
+ - Consequences are applied consistently — leadership is not exempt
119
+ - Termination procedures include security considerations (access revocation, NDA reminders)
120
+
121
+ **Evidence to prepare**:
122
+ - Employee handbook section covering disciplinary process for policy violations
123
+ - Signed policy acknowledgment forms (proving employees know the consequences)
124
+ - Performance review template showing security-related criteria (for security-relevant roles)
125
+ - Termination checklist with security steps (access revocation, equipment return, NDA reminder)
126
+ - Exit interview template covering ongoing confidentiality obligations
@@ -0,0 +1,264 @@
1
+ # Logical and Physical Access — CC 6.1–6.8
2
+
3
+ Per-criterion audit guidance for access control, provisioning, physical security, threat detection, and data protection.
4
+
5
+ ## CC 6.1 — Logical access security
6
+
7
+ **Priority**: Critical | **NIST**: AC-2, AC-3, IA-2, SC-28 | **ISO**: A.5.15, A.8.5, A.8.24
8
+
9
+ Auditors assess whether the organization restricts system access to authorized users through layered controls — identity verification, role-based permissions, encryption, and session management. The focus is on whether controls work together as a system, not just whether individual tools are configured.
10
+
11
+ **What auditors test**:
12
+ - Sample 10-15 user accounts across systems: verify each account's access matches the person's documented role
13
+ - Confirm MFA is enforced (not just available) on all systems storing or processing sensitive data
14
+ - Verify encryption at rest (AES-256 or equivalent) for databases, object storage, and backups
15
+ - Check for shared or generic accounts — each should be documented with a named owner
16
+ - Test that failed login attempts are logged and trigger alerts after threshold (typically 5-10 attempts)
17
+
18
+ **Evidence to prepare**:
19
+ ```bash
20
+ # Google Workspace: user list with MFA enforcement status
21
+ gam print users fields primaryEmail,name,orgUnitPath,isAdmin,isEnforcedIn2Sv
22
+
23
+ # GitHub: org-level security settings
24
+ gh api orgs/{org} | jq '{two_factor_requirement_enabled, default_repository_permission}'
25
+
26
+ # GCP: IAM bindings showing role assignments
27
+ gcloud projects get-iam-policy {project} --format=json | jq '.bindings[] | {role, members}'
28
+
29
+ # TLS configuration check
30
+ openssl s_client -connect {host}:443 -tls1_2 < /dev/null 2>&1 | grep "Protocol\|Cipher"
31
+
32
+ # Azure: list role assignments
33
+ az role assignment list --all --output json | jq '.[] | {principalName, roleDefinitionName, scope}'
34
+ ```
35
+
36
+ **Startup pitfalls**:
37
+ - Using personal Gmail/GitHub accounts for company systems — creates access gaps when people leave
38
+ - MFA "enabled" but not "enforced" — users can skip enrollment indefinitely
39
+ - Encryption at rest assumed because "cloud provider handles it" — auditors want explicit confirmation per service
40
+ - Shared credentials for CI/CD, monitoring, or SaaS tools with no documented owner
41
+
42
+ ---
43
+
44
+ ## CC 6.2 — Access provisioning and deprovisioning
45
+
46
+ **Priority**: Critical | **NIST**: AC-2, PS-4, PS-5 | **ISO**: A.5.18, A.6.5
47
+
48
+ Auditors verify that access is granted through a documented authorization process and revoked promptly when no longer needed. The provisioning-to-deprovisioning lifecycle is one of the most frequently tested areas in a SOC 2 audit — expect auditors to trace individual employees from hire to termination.
49
+
50
+ **What auditors test**:
51
+ - Sample 5-10 new hires: verify access was authorized before provisioning (ticket, email approval, or workflow)
52
+ - Sample 5-10 terminations: verify access was revoked within 24-48 hours across all systems
53
+ - Cross-reference HR termination dates with last-active dates in IdP, GitHub, cloud consoles, and SaaS tools
54
+ - Check for orphaned accounts — active accounts with no corresponding current employee
55
+ - Verify that access request and revocation processes are documented, not just tribal knowledge
56
+
57
+ **Evidence to prepare**:
58
+ ```bash
59
+ # Google Workspace: identify potentially orphaned accounts
60
+ gam print users fields primaryEmail,lastLoginTime,suspended | \
61
+ awk -F',' '$2 < "2024-01-01" && $3 != "True" {print $1, $2}'
62
+
63
+ # GitHub: org members with activity dates
64
+ gh api orgs/{org}/members --paginate | jq '.[] | {login, type}'
65
+
66
+ # Cross-reference terminated employees (manual step):
67
+ # Export HR termination list → compare against active accounts in each system
68
+ ```
69
+ - HR-to-IT onboarding workflow documentation (ticketing system or checklist)
70
+ - Termination checklist with explicit IT deprovisioning steps
71
+ - Access request approval records (email threads, Jira tickets, or HRIS workflow logs)
72
+
73
+ **Startup pitfalls**:
74
+ - No formal offboarding process — founder "remembers" to revoke access but misses secondary systems
75
+ - Deprovisioning only covers email — GitHub, cloud console, SaaS tools, and API keys are forgotten
76
+ - Relying on quarterly access reviews to catch terminations instead of event-driven revocation
77
+
78
+ ---
79
+
80
+ ## CC 6.3 — Access modification
81
+
82
+ **Priority**: High | **NIST**: AC-2, AC-6 | **ISO**: A.5.15, A.5.18
83
+
84
+ When employees change roles, get promoted, or shift teams, their access should be reviewed and adjusted. Auditors look for permission accumulation — people who retain old access after moving to a new role, gradually amassing broader access than any single role requires.
85
+
86
+ **What auditors test**:
87
+ - Sample 3-5 internal transfers or promotions: verify previous role's access was reviewed and excess removed
88
+ - Check for users with permissions spanning multiple business functions (e.g., engineering + finance access)
89
+ - Verify that role changes trigger an access review workflow, not just additive provisioning
90
+ - Look for dormant permissions: access granted months ago that hasn't been used
91
+
92
+ **Evidence to prepare**:
93
+ ```bash
94
+ # GCP: identify users with multiple high-privilege roles
95
+ gcloud projects get-iam-policy {project} --format=json | \
96
+ jq '[.bindings[] | .members[] as $m | {member: $m, role: .role}] | group_by(.member) | map(select(length > 2))'
97
+
98
+ # GitHub: users who are members of multiple teams
99
+ gh api orgs/{org}/members --paginate | jq '.[].login' | while read user; do
100
+ teams=$(gh api orgs/{org}/members/$user/teams 2>/dev/null | jq length)
101
+ echo "$user: $teams teams"
102
+ done
103
+ ```
104
+ - Access review records from most recent quarterly review cycle
105
+ - Documentation of role-change access review process
106
+
107
+ ---
108
+
109
+ ## CC 6.4 — Physical access controls
110
+
111
+ **Priority**: High | **NIST**: PE-2, PE-3, PE-6 | **ISO**: A.7.2, A.7.4
112
+
113
+ Physical access to facilities housing systems and data must be restricted to authorized personnel. For cloud-native companies, this primarily means relying on cloud provider SOC 2 reports for data center controls while managing office and endpoint physical security directly.
114
+
115
+ **What auditors test**:
116
+ - For on-premises: visitor logs, badge access records, security camera footage availability
117
+ - For cloud-hosted: confirm cloud provider SOC 2 Type II report covers physical security and review for exceptions
118
+ - Office security: verify that server rooms, network closets, or sensitive areas have restricted access
119
+ - Remote workforce: endpoint encryption and screen lock policies serve as compensating controls
120
+ - Verify that physical access lists are reviewed periodically (at least annually)
121
+
122
+ **Evidence to prepare**:
123
+ ```bash
124
+ # macOS: verify FileVault disk encryption
125
+ fdesetup status
126
+
127
+ # macOS: verify screen lock is configured
128
+ system_profiler SPConfigurationProfileDataType 2>/dev/null | grep -A5 "maxInactivity"
129
+ ```
130
+ - Cloud provider SOC 2 Type II reports (AWS, GCP, Azure) — specifically the physical security sections
131
+ - Office badge access logs or visitor sign-in records (if applicable)
132
+ - Clean desk policy documentation
133
+ - Remote work security policy with endpoint requirements
134
+
135
+ ---
136
+
137
+ ## CC 6.5 — Asset disposal
138
+
139
+ **Priority**: Medium | **NIST**: MP-6 | **ISO**: A.7.10, A.7.14
140
+
141
+ When hardware, media, or storage containing sensitive data is decommissioned, the organization must ensure data is irrecoverably destroyed. Auditors verify that disposal is documented and that data can't be recovered from retired assets.
142
+
143
+ **What auditors test**:
144
+ - Inventory of disposed hardware and storage media during the audit period
145
+ - Certificates of destruction from disposal vendors (for physical media)
146
+ - Verification that cloud storage and database instances are fully deleted, not just "stopped"
147
+ - Data wiping procedures for laptops and devices before reassignment or disposal
148
+
149
+ **Evidence to prepare**:
150
+ ```bash
151
+ # GCP: list deleted instances (audit log)
152
+ gcloud logging read 'resource.type="gce_instance" AND protoPayload.methodName="v1.compute.instances.delete"' \
153
+ --limit=20 --format=json | jq '.[].protoPayload | {timestamp: .requestMetadata.requestAttributes.time, instance: .resourceName}'
154
+
155
+ # Azure: activity log for resource deletions
156
+ az monitor activity-log list --offset 90d --query "[?operationName.value=='Microsoft.Compute/virtualMachines/delete']" --output json
157
+ ```
158
+ - Hardware disposal log (serial number, date, method, witness)
159
+ - Certificates of destruction from e-waste or shredding vendors
160
+ - Policy document covering data sanitization standards (NIST 800-88 reference)
161
+
162
+ ---
163
+
164
+ ## CC 6.6 — Threat and vulnerability detection
165
+
166
+ **Priority**: Critical | **NIST**: RA-5, SI-4 | **ISO**: A.8.8, A.8.16
167
+
168
+ Auditors verify that the organization proactively identifies vulnerabilities and threats before they're exploited. This means automated scanning, not just reactive patching. Expect auditors to ask for scan reports and remediation timelines.
169
+
170
+ **What auditors test**:
171
+ - Vulnerability scanning: automated scans running at least weekly against production infrastructure
172
+ - Scan coverage: all production-facing systems are in scope, not just a subset
173
+ - Remediation SLAs: critical vulnerabilities patched within 14-30 days, with evidence of tracking
174
+ - Penetration testing: at least annual, with documented findings and remediation
175
+ - Dependency scanning: automated checks for known vulnerabilities in third-party libraries
176
+
177
+ **Evidence to prepare**:
178
+ ```bash
179
+ # GitHub: Dependabot alerts summary
180
+ gh api repos/{owner}/{repo}/dependabot/alerts --jq '[.[] | {severity: .security_advisory.severity, state}] | group_by(.severity) | map({severity: .[0].severity, count: length})'
181
+
182
+ # GitHub: code scanning alerts
183
+ gh api repos/{owner}/{repo}/code-scanning/alerts --jq '[.[] | {severity: .rule.severity, state}] | group_by(.state) | map({state: .[0].state, count: length})'
184
+
185
+ # GCP: Security Command Center findings
186
+ gcloud scc findings list organizations/{org_id} --format=json | jq '.[].finding | {category, severity, state}'
187
+ ```
188
+ - Most recent vulnerability scan report (redacted if needed)
189
+ - Penetration test report and remediation status
190
+ - Vulnerability management policy with remediation SLAs by severity
191
+
192
+ **Startup pitfalls**:
193
+ - Dependabot enabled but alerts ignored — hundreds of unresolved alerts is worse than no scanner
194
+ - No penetration test ever conducted — budget at least one external test before audit
195
+ - Scanning only covers web app, not infrastructure, containers, or dependencies
196
+
197
+ ---
198
+
199
+ ## CC 6.7 — Transmission security
200
+
201
+ **Priority**: High | **NIST**: SC-8 | **ISO**: A.5.14, A.8.24
202
+
203
+ Data in transit must be protected from interception and tampering. Auditors verify that TLS/encryption is enforced on all channels carrying sensitive data — not just the main web app, but internal service communication, API endpoints, and data transfers.
204
+
205
+ **What auditors test**:
206
+ - TLS 1.2+ enforced on all public-facing endpoints (TLS 1.0/1.1 disabled)
207
+ - Internal service-to-service communication encrypted (mutual TLS or service mesh)
208
+ - Email encryption for sensitive communications (TLS enforcement on mail servers)
209
+ - File transfer mechanisms use encrypted protocols (SFTP, SCP — not plain FTP)
210
+ - Certificate management: no expired certificates, automated renewal preferred
211
+
212
+ **Evidence to prepare**:
213
+ ```bash
214
+ # Check TLS version and cipher on production endpoint
215
+ openssl s_client -connect {host}:443 -tls1_2 < /dev/null 2>&1 | grep "Protocol\|Cipher"
216
+
217
+ # Verify TLS 1.0/1.1 are rejected
218
+ openssl s_client -connect {host}:443 -tls1 < /dev/null 2>&1 | grep "alert"
219
+ openssl s_client -connect {host}:443 -tls1_1 < /dev/null 2>&1 | grep "alert"
220
+
221
+ # GCP: SSL policy check
222
+ gcloud compute ssl-policies describe {policy-name} --format=json | jq '{minTlsVersion, profile}'
223
+
224
+ # Check certificate expiration
225
+ echo | openssl s_client -connect {host}:443 2>/dev/null | openssl x509 -noout -dates
226
+ ```
227
+ - Network architecture diagram showing encryption boundaries
228
+ - TLS configuration documentation for internal services
229
+
230
+ ---
231
+
232
+ ## CC 6.8 — Malware prevention
233
+
234
+ **Priority**: High | **NIST**: SI-2, SI-3 | **ISO**: A.8.7, A.8.19
235
+
236
+ Auditors verify that endpoint and server protection mechanisms detect, prevent, and respond to malware. For cloud-native organizations, this extends to container image scanning and CI/CD pipeline protections.
237
+
238
+ **What auditors test**:
239
+ - Endpoint protection deployed on all company-managed devices (laptops, workstations)
240
+ - Endpoint agent is active and reporting — not just installed but disabled
241
+ - Server/container protection: image scanning in CI/CD, runtime protection in production
242
+ - Patch management: OS and application patches applied within defined SLAs
243
+ - Email filtering: anti-phishing and attachment scanning on inbound email
244
+
245
+ **Evidence to prepare**:
246
+ ```bash
247
+ # macOS: check for endpoint protection agent
248
+ ls /Library/Application\ Support/ | grep -i -E "(crowdstrike|sentinel|carbon|defender)"
249
+
250
+ # macOS: verify OS is current
251
+ sw_vers
252
+
253
+ # GitHub: check for container scanning in CI
254
+ gh api repos/{owner}/{repo}/actions/workflows --jq '.workflows[].name' | grep -i -E "scan|security|snyk|trivy"
255
+ ```
256
+ - Endpoint protection dashboard export showing device coverage and status
257
+ - Patch management report showing compliance percentage
258
+ - Container image scanning results from CI/CD pipeline
259
+ - Email security configuration (SPF, DKIM, DMARC records)
260
+
261
+ **Startup pitfalls**:
262
+ - "We use Macs, Macs don't get malware" — auditors expect endpoint protection regardless of OS
263
+ - Endpoint agent installed during onboarding but never verified as running
264
+ - No patch management cadence — relying on users to update their own devices
@@ -0,0 +1,66 @@
1
+ # Monitoring Activities — CC 4.1–4.2
2
+
3
+ Per-criterion audit guidance for ongoing monitoring and deficiency evaluation.
4
+
5
+ ## CC 4.1 — Ongoing monitoring
6
+
7
+ **Priority**: Medium | **NIST**: CA-7, PM-6 | **ISO**: C.9.1
8
+
9
+ Auditors verify that the organization continuously monitors the effectiveness of its internal controls — not just at audit time, but throughout the year. This means management has mechanisms to detect when controls degrade, stop working, or are bypassed. The distinction from CC 7.2 (anomaly detection) is that CC 4.1 covers monitoring of the controls themselves, not just the systems they protect.
10
+
11
+ **What auditors test**:
12
+ - Management reviews of control effectiveness at defined intervals (at least quarterly)
13
+ - Automated monitoring: alerts when critical controls fail (e.g., branch protection disabled, MFA turned off, backups stop running)
14
+ - Key metrics tracked over time: access review completion rates, vulnerability remediation timelines, training completion percentages
15
+ - Internal audit or self-assessment conducted during the audit period
16
+ - Control monitoring results are reported to management with trends and exceptions
17
+
18
+ **Evidence to prepare**:
19
+ ```bash
20
+ # GitHub: verify branch protection is still active (control monitoring)
21
+ gh api repos/{owner}/{repo}/branches/main/protection --jq '{enforced: true}' 2>&1
22
+
23
+ # GCP: verify monitoring policies are active (alerting on control failures)
24
+ gcloud monitoring policies list --format=json | jq '.[] | {displayName, enabled}'
25
+
26
+ # GCP: check backup automation status
27
+ gcloud sql instances describe {instance} --format=json | jq '.settings.backupConfiguration'
28
+ ```
29
+ - Management review meeting minutes discussing control effectiveness
30
+ - Control monitoring dashboard or metrics report (quarterly at minimum)
31
+ - Internal audit or self-assessment report from the audit period
32
+ - Exception log: instances where controls failed or were bypassed, with resolution
33
+
34
+ **Startup pitfalls**:
35
+ - Controls implemented at audit prep time but no ongoing monitoring to verify they keep working
36
+ - Management reviews are informal conversations with no documentation
37
+ - No alerting on control failures — branch protection silently disabled for months
38
+ - Metrics collected but never reviewed or acted upon
39
+
40
+ ---
41
+
42
+ ## CC 4.2 — Deficiency evaluation and remediation
43
+
44
+ **Priority**: Medium | **NIST**: CA-2 | **ISO**: C.9.2.1
45
+
46
+ Auditors verify that when control deficiencies are identified — through monitoring, incidents, audits, or testing — they are evaluated for severity, tracked to remediation, and reported to management. A deficiency that's identified but never fixed is arguably worse than one never discovered, because it demonstrates awareness without action.
47
+
48
+ **What auditors test**:
49
+ - Deficiencies identified through monitoring (CC 4.1), incidents (CC 7.3), or assessments are logged
50
+ - Each deficiency has: severity rating, owner, remediation plan, and target completion date
51
+ - Remediation is tracked to completion — not just planned but verified as resolved
52
+ - Management receives reports on open deficiencies and remediation progress
53
+ - Root cause analysis conducted for significant deficiencies to prevent recurrence
54
+
55
+ **Evidence to prepare**:
56
+ - Deficiency tracking log or remediation tracker (Jira, spreadsheet, or GRC tool)
57
+ - Remediation evidence for deficiencies closed during the audit period
58
+ - Management reports showing deficiency status and trends
59
+ - Root cause analysis documentation for significant deficiencies
60
+ - Corrective action verification records (confirming fixes actually work)
61
+
62
+ **Startup pitfalls**:
63
+ - Deficiencies noted during previous audit but not remediated by the next one — repeat findings
64
+ - No formal tracking — issues discussed in Slack but never logged or followed through
65
+ - Remediation planned but not verified — "we fixed it" without testing the fix
66
+ - No root cause analysis — same type of deficiency keeps recurring