fedramp-compliance-mcp 0.1.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.md +65 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +866 -0
- package/package.json +51 -0
package/README.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# fedramp-compliance-mcp
|
|
2
|
+
|
|
3
|
+
MCP server for **FedRAMP (Federal Risk and Authorization Management Program)** compliance — browse security controls by baseline, assess authorization readiness, generate SSP sections, evidence checklists, gap analysis, and continuous monitoring deliverable templates for cloud service providers.
|
|
4
|
+
|
|
5
|
+
Built for CSPs seeking FedRAMP authorization, 3PAO assessors, and federal agency security teams.
|
|
6
|
+
|
|
7
|
+
## Tools
|
|
8
|
+
|
|
9
|
+
| Tool | Description |
|
|
10
|
+
|------|-------------|
|
|
11
|
+
| `browse_controls` | Browse FedRAMP controls by baseline (Low/Moderate/High), family, priority, or search |
|
|
12
|
+
| `assess_readiness` | Score authorization readiness with baseline-specific and path-specific (JAB/Agency/Li-SaaS) assessment |
|
|
13
|
+
| `generate_ssp` | Generate SSP sections per FedRAMP template format for any control or family |
|
|
14
|
+
| `evidence_checklist` | Generate 3PAO assessment evidence collection checklists |
|
|
15
|
+
| `gap_analysis` | Compare implemented controls vs. baseline requirements, generate POA&M |
|
|
16
|
+
| `conmon_deliverables` | Generate monthly, quarterly, and annual ConMon deliverable templates |
|
|
17
|
+
|
|
18
|
+
## Control Families Covered
|
|
19
|
+
|
|
20
|
+
AC (Access Control), AU (Audit & Accountability), CA (Security Assessment & Authorization), CM (Configuration Management), CP (Contingency Planning), IA (Identification & Authentication), IR (Incident Response), PL (Planning), RA (Risk Assessment), SC (System & Communications Protection), SI (System & Information Integrity)
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx fedramp-compliance-mcp
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Claude Desktop
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"mcpServers": {
|
|
33
|
+
"fedramp-compliance": {
|
|
34
|
+
"command": "npx",
|
|
35
|
+
"args": ["-y", "fedramp-compliance-mcp"]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
Browse all P1 controls for Moderate baseline:
|
|
44
|
+
```
|
|
45
|
+
browse_controls({ baseline: "moderate", priority: "P1" })
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Assess readiness for JAB P-ATO:
|
|
49
|
+
```
|
|
50
|
+
assess_readiness({ implementedControls: ["AC-1", "AC-2", "AC-3", "AU-2", "SC-13"], targetBaseline: "moderate", authorizationPath: "jab" })
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Generate SSP for Incident Response controls:
|
|
54
|
+
```
|
|
55
|
+
generate_ssp({ family: "IR", cspName: "Acme Cloud", systemName: "AcmeCloud Platform" })
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Generate monthly ConMon deliverables:
|
|
59
|
+
```
|
|
60
|
+
conmon_deliverables({ period: "monthly", month: "May 2026", cspName: "Acme Cloud", systemName: "AcmeCloud Platform" })
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## License
|
|
64
|
+
|
|
65
|
+
MIT
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,866 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
const FAMILY_NAMES = {
|
|
6
|
+
AC: "Access Control",
|
|
7
|
+
AU: "Audit & Accountability",
|
|
8
|
+
AT: "Awareness & Training",
|
|
9
|
+
CA: "Security Assessment & Authorization",
|
|
10
|
+
CM: "Configuration Management",
|
|
11
|
+
CP: "Contingency Planning",
|
|
12
|
+
IA: "Identification & Authentication",
|
|
13
|
+
IR: "Incident Response",
|
|
14
|
+
MA: "Maintenance",
|
|
15
|
+
MP: "Media Protection",
|
|
16
|
+
PE: "Physical & Environmental Protection",
|
|
17
|
+
PL: "Planning",
|
|
18
|
+
PM: "Program Management",
|
|
19
|
+
PS: "Personnel Security",
|
|
20
|
+
RA: "Risk Assessment",
|
|
21
|
+
SA: "System & Services Acquisition",
|
|
22
|
+
SC: "System & Communications Protection",
|
|
23
|
+
SI: "System & Information Integrity",
|
|
24
|
+
};
|
|
25
|
+
// ── FedRAMP Controls Database ─────────────────────────────────────────
|
|
26
|
+
const FEDRAMP_CONTROLS = [
|
|
27
|
+
// ── ACCESS CONTROL ──────────────────────────────────────────────────
|
|
28
|
+
{
|
|
29
|
+
id: "AC-1",
|
|
30
|
+
family: "AC",
|
|
31
|
+
title: "Access Control Policy and Procedures",
|
|
32
|
+
description: "Develop, document, and disseminate an access control policy and procedures addressing purpose, scope, roles, responsibilities, management commitment, coordination, and compliance.",
|
|
33
|
+
baseline: "low",
|
|
34
|
+
priority: "P1",
|
|
35
|
+
implementation: "Develop access control policy addressing all NIST 800-53 AC family controls. Define roles and responsibilities. Establish review cycle. Disseminate to all personnel. Maintain revision history. Policy must address FedRAMP-specific requirements for cloud environments.",
|
|
36
|
+
evidence: ["Access control policy document", "Policy dissemination records", "Policy review/approval records", "Revision history", "Role and responsibility documentation"],
|
|
37
|
+
fedrampRequirements: ["Policy reviewed and updated at least every 3 years", "Procedures reviewed and updated at least annually", "Must address FedRAMP-specific cloud access requirements"],
|
|
38
|
+
commonFindings: ["Policy not updated within required frequency", "Policy doesn't address cloud-specific access controls", "No evidence of dissemination", "Roles and responsibilities not clearly defined", "Missing FedRAMP-specific requirements"],
|
|
39
|
+
policyTemplate: "[CSP] maintains an access control policy governing all aspects of logical and physical access to the [System Name] cloud service offering. The policy defines roles, responsibilities, and procedures for access management including provisioning, modification, review, and revocation. The policy is reviewed at least every 3 years and procedures annually. All personnel receive the policy during onboarding and when updates are made.",
|
|
40
|
+
relatedControls: ["AC-2", "AC-3", "AC-6"],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "AC-2",
|
|
44
|
+
family: "AC",
|
|
45
|
+
title: "Account Management",
|
|
46
|
+
description: "Identify and select authorized users, define access authorizations, require approvals, create/enable/modify/disable/remove accounts, and review accounts per a defined frequency.",
|
|
47
|
+
baseline: "low",
|
|
48
|
+
priority: "P1",
|
|
49
|
+
implementation: "Define account types (individual, shared, group, system, guest, temporary). Assign account managers. Establish conditions for group/role membership. Specify authorized users and access authorizations. Require manager approval for account creation. Notify account managers of account changes. Grant access based on valid authorization and intended use. Review accounts per FedRAMP frequency (monthly for privileged, quarterly for non-privileged). Disable inactive accounts after 90 days.",
|
|
50
|
+
evidence: ["Account management procedures", "Account inventory by type", "Account approval records", "Account review logs with dates", "Inactive account reports", "Account manager assignments", "Automated account management tool evidence"],
|
|
51
|
+
fedrampRequirements: ["Monthly review of privileged accounts", "Quarterly review of non-privileged accounts", "Disable inactive accounts after 90 days", "Remove temporary/emergency accounts within 24 hours", "Automated mechanisms for account management where feasible", "Annual review of account management policy"],
|
|
52
|
+
commonFindings: ["Account reviews not performed at FedRAMP frequency", "Inactive accounts not disabled within 90 days", "No automated account management", "Temporary accounts not removed within 24 hours", "Missing approval documentation for account creation", "Shared accounts without proper controls"],
|
|
53
|
+
policyTemplate: "[CSP] manages all accounts for [System Name] through formal procedures. Account creation requires documented approval from [role]. Privileged accounts are reviewed monthly; non-privileged quarterly. Accounts inactive for 90 days are automatically disabled. Temporary/emergency accounts are removed within 24 hours of purpose completion. Account management is automated through [tool]. Account managers are notified of all account lifecycle events.",
|
|
54
|
+
relatedControls: ["AC-1", "AC-3", "AC-6", "IA-4"],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: "AC-3",
|
|
58
|
+
family: "AC",
|
|
59
|
+
title: "Access Enforcement",
|
|
60
|
+
description: "Enforce approved authorizations for logical access to information and system resources in accordance with applicable access control policies.",
|
|
61
|
+
baseline: "low",
|
|
62
|
+
priority: "P1",
|
|
63
|
+
implementation: "Implement role-based access control (RBAC) or attribute-based access control (ABAC). Enforce access policies at application, database, network, and OS layers. Deny by default. Log access enforcement decisions. Implement multi-tenancy isolation for cloud environments.",
|
|
64
|
+
evidence: ["Access control mechanism configurations", "RBAC/ABAC policy definitions", "Multi-tenancy isolation evidence", "Access denial logs", "Testing results showing enforcement"],
|
|
65
|
+
fedrampRequirements: ["Multi-tenant isolation required for shared infrastructure", "Access enforcement at all system layers", "Deny-by-default access model"],
|
|
66
|
+
commonFindings: ["Inconsistent enforcement across system layers", "No multi-tenancy isolation", "Overly permissive access rules", "Access enforcement not logged", "Default-allow instead of default-deny"],
|
|
67
|
+
policyTemplate: "[CSP] enforces approved authorizations at all layers of [System Name] including network, OS, database, and application. Role-based access control governs user permissions aligned with least privilege. Multi-tenant isolation ensures customer data separation through [mechanism]. Default access posture is deny-all with explicit allow rules for authorized functions. Access enforcement decisions are logged and monitored.",
|
|
68
|
+
relatedControls: ["AC-2", "AC-6", "SC-4"],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "AC-6",
|
|
72
|
+
family: "AC",
|
|
73
|
+
title: "Least Privilege",
|
|
74
|
+
description: "Employ the principle of least privilege, allowing only authorized accesses for users (or processes acting on behalf of users) which are necessary to accomplish assigned tasks.",
|
|
75
|
+
baseline: "low",
|
|
76
|
+
priority: "P1",
|
|
77
|
+
implementation: "Grant minimum access necessary. Separate privileged and non-privileged accounts. Restrict privileged accounts to specific security functions. Audit privileged actions. Prohibit privileged access for non-security functions. Authorized users must use non-privileged accounts for standard work.",
|
|
78
|
+
evidence: ["Least privilege policy", "Privilege assignment justifications", "Privileged vs non-privileged account separation", "Privileged action audit logs", "Access review showing least privilege enforcement"],
|
|
79
|
+
fedrampRequirements: ["Separate accounts for privileged and non-privileged functions", "Privileged actions must be audited", "Annual review of privilege assignments", "Justification documented for all privileged access"],
|
|
80
|
+
commonFindings: ["No separation of privileged and non-privileged accounts", "Excessive privileges granted", "Privileged access not justified", "Privilege usage not audited", "Admin accounts used for routine work"],
|
|
81
|
+
policyTemplate: "[CSP] enforces least privilege across [System Name]. All users operate with non-privileged accounts for standard work. Privileged accounts are limited to security functions and require documented justification approved by [role]. Privileged actions are logged and audited [frequency]. Privilege assignments are reviewed annually to confirm continued necessity. Service accounts are granted minimum required permissions.",
|
|
82
|
+
relatedControls: ["AC-2", "AC-3", "AC-5"],
|
|
83
|
+
},
|
|
84
|
+
// ── AUDIT & ACCOUNTABILITY ──────────────────────────────────────────
|
|
85
|
+
{
|
|
86
|
+
id: "AU-1",
|
|
87
|
+
family: "AU",
|
|
88
|
+
title: "Audit and Accountability Policy and Procedures",
|
|
89
|
+
description: "Develop, document, and disseminate audit and accountability policies and procedures.",
|
|
90
|
+
baseline: "low",
|
|
91
|
+
priority: "P1",
|
|
92
|
+
implementation: "Document audit policy covering what events to log, how long to retain, who reviews, and how to protect audit data. Address FedRAMP-specific retention (minimum 1 year online, 3 years total). Define roles for audit management. Disseminate to all personnel.",
|
|
93
|
+
evidence: ["Audit policy document", "Policy dissemination records", "Policy review schedule", "Retention period documentation"],
|
|
94
|
+
fedrampRequirements: ["Policy reviewed every 3 years", "Procedures reviewed annually", "Must address FedRAMP audit retention requirements"],
|
|
95
|
+
commonFindings: ["Policy not addressing FedRAMP retention requirements", "No defined audit review process", "Policy not disseminated", "Missing cloud-specific audit procedures"],
|
|
96
|
+
policyTemplate: "[CSP] maintains audit and accountability policies for [System Name] defining auditable events, retention periods, review processes, and protection of audit data. Audit records are retained for minimum 1 year online and 3 years total per FedRAMP requirements. The policy is reviewed every 3 years with procedures updated annually.",
|
|
97
|
+
relatedControls: ["AU-2", "AU-3", "AU-6"],
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: "AU-2",
|
|
101
|
+
family: "AU",
|
|
102
|
+
title: "Audit Events",
|
|
103
|
+
description: "Identify events that the system is capable of auditing and define the subset of auditable events deemed to be adequate to support after-the-fact investigations of security incidents.",
|
|
104
|
+
baseline: "low",
|
|
105
|
+
priority: "P1",
|
|
106
|
+
implementation: "Define auditable events including: successful/failed logins, privilege escalation, access to sensitive data, administrative actions, policy changes, system events, API calls in cloud environment. Coordinate audit event selection across system components. Review and update event list annually.",
|
|
107
|
+
evidence: ["Audit event list", "Event selection rationale", "Audit configuration per component", "Annual review records", "FedRAMP-required event coverage evidence"],
|
|
108
|
+
fedrampRequirements: ["Must audit all FedRAMP-required event types", "Annual review and update of auditable events", "Must cover all system components including cloud infrastructure", "API access logging for cloud environments"],
|
|
109
|
+
commonFindings: ["Not all FedRAMP-required events audited", "API calls not logged", "Cloud management plane activities not audited", "Event list not reviewed annually", "Missing components from audit scope"],
|
|
110
|
+
policyTemplate: "[CSP] audits the following events on [System Name]: successful/failed authentication, privileged actions, object access, policy modifications, system errors, API calls, administrative changes, and all FedRAMP-required event types. The auditable event list is reviewed and updated annually by [role]. All system components including cloud infrastructure management plane are in scope.",
|
|
111
|
+
relatedControls: ["AU-1", "AU-3", "AU-6", "AU-12"],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: "AU-6",
|
|
115
|
+
family: "AU",
|
|
116
|
+
title: "Audit Review, Analysis, and Reporting",
|
|
117
|
+
description: "Review and analyze system audit records for indications of inappropriate or unusual activity and report findings to designated organizational officials.",
|
|
118
|
+
baseline: "low",
|
|
119
|
+
priority: "P1",
|
|
120
|
+
implementation: "Review audit logs at least weekly (FedRAMP Moderate/High). Use SIEM for automated analysis and correlation. Define indicators of compromise (IOCs) and anomaly detection rules. Report findings to ISSO/ISSM. Integrate with incident response. Provide audit reports to agency customers per FedRAMP requirements.",
|
|
121
|
+
evidence: ["Audit review schedule and records", "SIEM configuration and alert rules", "Audit finding reports", "Escalation records", "Agency audit report templates"],
|
|
122
|
+
fedrampRequirements: ["Weekly audit log review minimum for Moderate/High", "Automated audit analysis mechanisms", "Report suspicious activity to agency customers", "Integration with FedRAMP continuous monitoring"],
|
|
123
|
+
commonFindings: ["Audit reviews not performed at required frequency", "No automated analysis (manual review only)", "Findings not reported or escalated", "No correlation across system components", "Missing agency notification procedures"],
|
|
124
|
+
policyTemplate: "[CSP] reviews [System Name] audit records [weekly/daily] using [SIEM tool] for automated analysis and [role] for manual review. Anomaly detection rules cover [IOC categories]. Findings are reported to the ISSO within [N] hours and to agency customers per their authorization agreements. Audit review results are documented and retained. Suspicious activity triggers the incident response process.",
|
|
125
|
+
relatedControls: ["AU-2", "AU-3", "IR-5", "SI-4"],
|
|
126
|
+
},
|
|
127
|
+
// ── SECURITY ASSESSMENT & AUTHORIZATION ─────────────────────────────
|
|
128
|
+
{
|
|
129
|
+
id: "CA-1",
|
|
130
|
+
family: "CA",
|
|
131
|
+
title: "Security Assessment and Authorization Policy",
|
|
132
|
+
description: "Develop, document, and disseminate security assessment and authorization policy and procedures.",
|
|
133
|
+
baseline: "low",
|
|
134
|
+
priority: "P1",
|
|
135
|
+
implementation: "Document policy covering assessment methodology, authorization process, continuous monitoring, and POA&M management. Address FedRAMP assessment requirements including 3PAO engagement, JAB/agency authorization paths, and annual assessment requirements.",
|
|
136
|
+
evidence: ["Assessment and authorization policy", "Policy dissemination records", "3PAO engagement criteria", "Authorization process documentation"],
|
|
137
|
+
fedrampRequirements: ["Must address FedRAMP assessment methodology", "Annual assessment by 3PAO required", "Policy reviewed every 3 years, procedures annually"],
|
|
138
|
+
commonFindings: ["Policy doesn't address FedRAMP-specific requirements", "No 3PAO engagement criteria", "Missing continuous monitoring procedures", "Authorization process not documented"],
|
|
139
|
+
policyTemplate: "[CSP] maintains security assessment and authorization policies for [System Name] covering FedRAMP assessment requirements, 3PAO engagement, authorization paths (JAB/agency), continuous monitoring, and POA&M management. Assessments are conducted annually by an accredited 3PAO. The authorization package is maintained current per FedRAMP continuous monitoring requirements.",
|
|
140
|
+
relatedControls: ["CA-2", "CA-5", "CA-6"],
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
id: "CA-2",
|
|
144
|
+
family: "CA",
|
|
145
|
+
title: "Security Assessments",
|
|
146
|
+
description: "Assess the security controls in the system at defined frequency to determine control effectiveness.",
|
|
147
|
+
baseline: "low",
|
|
148
|
+
priority: "P2",
|
|
149
|
+
implementation: "Annual assessment by accredited 3PAO. Develop Security Assessment Plan (SAP). Conduct assessment per FedRAMP methodology. Document results in Security Assessment Report (SAR). Identify and track findings. Provide results to authorizing official. Continuous monitoring between annual assessments.",
|
|
150
|
+
evidence: ["Security Assessment Plan (SAP)", "Security Assessment Report (SAR)", "3PAO accreditation evidence", "Assessment finding tracking", "Continuous monitoring evidence"],
|
|
151
|
+
fedrampRequirements: ["Annual assessment by A2LA-accredited 3PAO", "Assessment follows FedRAMP test methodology", "SAP/SAR submitted to FedRAMP PMO", "Continuous monitoring between annual assessments"],
|
|
152
|
+
commonFindings: ["3PAO not accredited by A2LA", "Assessment methodology doesn't follow FedRAMP requirements", "SAR not submitted timely", "Findings not tracked via POA&M", "Continuous monitoring gaps between annual assessments"],
|
|
153
|
+
policyTemplate: "[CSP] conducts annual security assessments of [System Name] using an A2LA-accredited 3PAO. The assessment follows FedRAMP test methodology covering all implemented controls. The SAP is approved by [AO] before assessment begins. SAR findings are documented in the POA&M with remediation milestones. Between annual assessments, continuous monitoring activities include [monthly vulnerability scans, quarterly control testing, annual penetration testing].",
|
|
154
|
+
relatedControls: ["CA-1", "CA-5", "CA-7", "RA-5"],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
id: "CA-5",
|
|
158
|
+
family: "CA",
|
|
159
|
+
title: "Plan of Action and Milestones",
|
|
160
|
+
description: "Develop and update a plan of action and milestones (POA&M) documenting planned remedial actions to correct weaknesses or deficiencies.",
|
|
161
|
+
baseline: "low",
|
|
162
|
+
priority: "P3",
|
|
163
|
+
implementation: "Maintain POA&M for all known vulnerabilities and assessment findings. Include: weakness description, point of contact, resources required, scheduled completion, milestones, status. Update monthly. Submit to FedRAMP PMO. Track high-risk items separately. Escalate overdue items.",
|
|
164
|
+
evidence: ["Current POA&M document", "Monthly POA&M update records", "FedRAMP PMO submission evidence", "Overdue item escalation records", "Closed POA&M items with evidence"],
|
|
165
|
+
fedrampRequirements: ["POA&M updated and submitted monthly to FedRAMP PMO", "Must follow FedRAMP POA&M template format", "High-risk items require remediation within 30 days", "Moderate-risk items within 90 days", "Low-risk items within 180 days"],
|
|
166
|
+
commonFindings: ["POA&M not updated monthly", "Not following FedRAMP template", "Missing required fields", "Overdue items not escalated", "Remediation timelines not met", "POA&M not submitted to FedRAMP PMO"],
|
|
167
|
+
policyTemplate: "[CSP] maintains a POA&M for [System Name] documenting all known weaknesses with remediation plans. The POA&M follows FedRAMP template format and is updated monthly. High-risk findings are remediated within 30 days, moderate within 90, and low within 180. The POA&M is submitted to the FedRAMP PMO monthly. Overdue items are escalated to [management level]. Closed items include evidence of remediation.",
|
|
168
|
+
relatedControls: ["CA-2", "CA-7", "RA-5"],
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: "CA-7",
|
|
172
|
+
family: "CA",
|
|
173
|
+
title: "Continuous Monitoring",
|
|
174
|
+
description: "Develop a continuous monitoring strategy and implement a continuous monitoring program.",
|
|
175
|
+
baseline: "low",
|
|
176
|
+
priority: "P2",
|
|
177
|
+
implementation: "Implement FedRAMP continuous monitoring (ConMon) program. Monthly vulnerability scanning and POA&M updates. Quarterly security control testing (subset). Annual comprehensive assessment by 3PAO. Annual penetration testing. Significant change analysis. Monthly ConMon deliverables to FedRAMP PMO.",
|
|
178
|
+
evidence: ["ConMon strategy document", "Monthly vulnerability scan results", "Monthly POA&M updates", "Quarterly control test results", "Annual 3PAO assessment", "Annual pen test results", "Significant change requests", "Monthly ConMon deliverable submissions"],
|
|
179
|
+
fedrampRequirements: ["Monthly OS/infrastructure scans (all unique vulnerabilities)", "Monthly web application scans", "Monthly database scans", "Monthly POA&M updates", "Quarterly control subset testing", "Annual 3PAO assessment", "Annual penetration testing", "Significant change analysis per FedRAMP guidance", "Monthly ConMon deliverables to PMO"],
|
|
180
|
+
commonFindings: ["Monthly scans not comprehensive", "ConMon deliverables not submitted timely", "Quarterly control testing gaps", "No significant change process", "Pen test scope insufficient", "Scan results not reflected in POA&M"],
|
|
181
|
+
policyTemplate: "[CSP] implements a FedRAMP continuous monitoring program for [System Name]. Monthly activities: vulnerability scanning (OS, web app, database), POA&M updates, ConMon deliverable submission. Quarterly: security control subset testing. Annually: comprehensive 3PAO assessment and penetration testing. Significant changes are analyzed per FedRAMP guidance before implementation. All findings flow into the POA&M with appropriate risk ratings and remediation timelines.",
|
|
182
|
+
relatedControls: ["CA-2", "CA-5", "RA-5", "SI-2"],
|
|
183
|
+
},
|
|
184
|
+
// ── CONFIGURATION MANAGEMENT ────────────────────────────────────────
|
|
185
|
+
{
|
|
186
|
+
id: "CM-1",
|
|
187
|
+
family: "CM",
|
|
188
|
+
title: "Configuration Management Policy and Procedures",
|
|
189
|
+
description: "Develop, document, and disseminate configuration management policy and procedures.",
|
|
190
|
+
baseline: "low",
|
|
191
|
+
priority: "P1",
|
|
192
|
+
implementation: "Document configuration management policy covering baselines, change management, and configuration monitoring. Address cloud-specific CM including infrastructure-as-code, container configurations, and cloud service configurations. Define CM roles.",
|
|
193
|
+
evidence: ["CM policy document", "CM procedures", "Policy review records", "CM role assignments"],
|
|
194
|
+
fedrampRequirements: ["Policy reviewed every 3 years, procedures annually", "Must address cloud-specific configuration management"],
|
|
195
|
+
commonFindings: ["Policy doesn't cover cloud infrastructure", "No IaC configuration management", "Missing container/serverless CM procedures"],
|
|
196
|
+
policyTemplate: "[CSP] maintains configuration management policies for [System Name] covering infrastructure baselines, change management, and configuration monitoring across all cloud components. This includes [VMs, containers, serverless functions, network configurations, IaC templates]. CM roles are assigned to [team/positions]. The policy is reviewed every 3 years with procedures updated annually.",
|
|
197
|
+
relatedControls: ["CM-2", "CM-3", "CM-6"],
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
id: "CM-2",
|
|
201
|
+
family: "CM",
|
|
202
|
+
title: "Baseline Configuration",
|
|
203
|
+
description: "Develop, document, and maintain current baseline configurations for the information system and system components.",
|
|
204
|
+
baseline: "low",
|
|
205
|
+
priority: "P1",
|
|
206
|
+
implementation: "Document baseline configurations for all system components (OS, applications, network devices, cloud services). Use configuration management tools. Maintain in version control. Update baselines when approved changes are made. Review annually minimum. Include security-relevant settings per FedRAMP requirements.",
|
|
207
|
+
evidence: ["Baseline configuration documents", "Version-controlled configurations", "Configuration management tool outputs", "Baseline review/update records", "Deviation reports"],
|
|
208
|
+
fedrampRequirements: ["Baselines updated within 30 days of approved changes", "Annual review minimum", "Must cover all system components including cloud services", "Baselines maintained under configuration control"],
|
|
209
|
+
commonFindings: ["Baselines not maintained for cloud services", "No version control for configurations", "Baselines out of date", "Missing components from baseline scope", "No deviation detection or monitoring"],
|
|
210
|
+
policyTemplate: "[CSP] maintains current baseline configurations for all [System Name] components in [configuration management tool/version control]. Baselines cover [OS, applications, databases, network devices, cloud services, IaC templates]. Baselines are updated within 30 days of approved changes and reviewed annually. Configuration deviations are detected through [scanning/monitoring tool] and remediated within [N] days.",
|
|
211
|
+
relatedControls: ["CM-1", "CM-3", "CM-6"],
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
id: "CM-6",
|
|
215
|
+
family: "CM",
|
|
216
|
+
title: "Configuration Settings",
|
|
217
|
+
description: "Establish and document configuration settings for system components using security configuration checklists that reflect the most restrictive mode consistent with operational requirements.",
|
|
218
|
+
baseline: "low",
|
|
219
|
+
priority: "P1",
|
|
220
|
+
implementation: "Apply CIS Benchmarks, DISA STIGs, or vendor hardening guides. Document configuration settings per component. Enforce through automation (GPO, Ansible, Terraform, etc.). Monitor for compliance. Remediate deviations. Document exceptions with risk acceptance.",
|
|
221
|
+
evidence: ["Adopted security benchmarks per component", "Configuration enforcement automation", "Compliance scan results", "Exception documentation with risk acceptance", "Remediation records"],
|
|
222
|
+
fedrampRequirements: ["Must use recognized security benchmarks (CIS/DISA STIG)", "Configuration compliance scanning required", "Deviations require documented risk acceptance"],
|
|
223
|
+
commonFindings: ["No security benchmarks adopted", "Configurations not enforced automatically", "No compliance scanning", "Exceptions not documented", "Cloud service configurations not hardened"],
|
|
224
|
+
policyTemplate: "[CSP] configures [System Name] components using [CIS Benchmarks/DISA STIGs] as the baseline. Configurations are enforced through [automation tools]. Compliance scans run [frequency] with results reviewed by [role]. Deviations require documented risk acceptance from [authority]. Cloud service configurations (IAM policies, storage permissions, network ACLs) are hardened per [cloud provider security guide].",
|
|
225
|
+
relatedControls: ["CM-2", "CM-3", "RA-5"],
|
|
226
|
+
},
|
|
227
|
+
// ── CONTINGENCY PLANNING ────────────────────────────────────────────
|
|
228
|
+
{
|
|
229
|
+
id: "CP-1",
|
|
230
|
+
family: "CP",
|
|
231
|
+
title: "Contingency Planning Policy and Procedures",
|
|
232
|
+
description: "Develop, document, and disseminate contingency planning policy and procedures.",
|
|
233
|
+
baseline: "low",
|
|
234
|
+
priority: "P1",
|
|
235
|
+
implementation: "Document contingency planning policy covering backup, recovery, and continuity of operations for the cloud service. Address multi-region/multi-AZ architecture. Define RPO/RTO. Address customer notification procedures. Plan for provider dependency failures.",
|
|
236
|
+
evidence: ["Contingency planning policy", "Policy review records", "RPO/RTO documentation", "Customer notification procedures"],
|
|
237
|
+
fedrampRequirements: ["Policy reviewed every 3 years, procedures annually", "Must address cloud-specific contingency scenarios"],
|
|
238
|
+
commonFindings: ["Policy doesn't address cloud-specific scenarios", "No defined RPO/RTO", "Missing customer notification procedures", "Provider dependencies not addressed"],
|
|
239
|
+
policyTemplate: "[CSP] maintains contingency planning policies for [System Name] covering backup, recovery, and business continuity. RPO is [value] and RTO is [value]. The system leverages [multi-AZ/multi-region] architecture for resilience. Customer notification procedures are defined for service disruptions. Contingency plans address [cloud provider] dependency failures including region-level outages.",
|
|
240
|
+
relatedControls: ["CP-2", "CP-9", "CP-10"],
|
|
241
|
+
},
|
|
242
|
+
// ── IDENTIFICATION & AUTHENTICATION ─────────────────────────────────
|
|
243
|
+
{
|
|
244
|
+
id: "IA-1",
|
|
245
|
+
family: "IA",
|
|
246
|
+
title: "Identification and Authentication Policy and Procedures",
|
|
247
|
+
description: "Develop, document, and disseminate identification and authentication policy and procedures.",
|
|
248
|
+
baseline: "low",
|
|
249
|
+
priority: "P1",
|
|
250
|
+
implementation: "Document IA policy covering user identification, authentication mechanisms, MFA requirements, authenticator management, and identity verification. Address FedRAMP-specific MFA requirements and FIPS 140-2 validated cryptographic modules.",
|
|
251
|
+
evidence: ["IA policy document", "Policy review records", "MFA requirement documentation", "FIPS 140-2 validation evidence"],
|
|
252
|
+
fedrampRequirements: ["Policy reviewed every 3 years, procedures annually", "Must address MFA for all privileged and remote access", "FIPS 140-2 validated cryptographic modules required"],
|
|
253
|
+
commonFindings: ["MFA requirements not comprehensive", "FIPS 140-2 not validated", "Policy doesn't address all identity types", "No authenticator management procedures"],
|
|
254
|
+
policyTemplate: "[CSP] maintains identification and authentication policies for [System Name] covering user identification, multi-factor authentication, authenticator management, and identity verification. MFA is required for all privileged access and all remote access. Cryptographic modules are FIPS 140-2 validated. The policy is reviewed every 3 years with procedures updated annually.",
|
|
255
|
+
relatedControls: ["IA-2", "IA-4", "IA-5"],
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
id: "IA-2",
|
|
259
|
+
family: "IA",
|
|
260
|
+
title: "Identification and Authentication (Organizational Users)",
|
|
261
|
+
description: "Uniquely identify and authenticate organizational users (or processes acting on behalf of users).",
|
|
262
|
+
baseline: "low",
|
|
263
|
+
priority: "P1",
|
|
264
|
+
implementation: "Unique user identification for all personnel. Multi-factor authentication for network access and privileged access. MFA for local access to privileged accounts. Phishing-resistant MFA preferred (FIDO2, PIV). Replay-resistant authentication. Group authenticator management. Use of PIV credentials per HSPD-12 where applicable.",
|
|
265
|
+
evidence: ["User identification procedures", "MFA deployment evidence", "MFA coverage reports", "PIV credential usage (if applicable)", "Authentication configuration per system"],
|
|
266
|
+
fedrampRequirements: ["MFA for ALL network access (not just privileged)", "MFA for local privileged access", "Phishing-resistant MFA preferred", "PIV/CAC support for federal user access", "Replay-resistant authentication mechanisms"],
|
|
267
|
+
commonFindings: ["MFA not enabled for all network access", "Local admin access without MFA", "SMS-based MFA (not phishing-resistant)", "No PIV/CAC support for federal users", "Authentication not replay-resistant"],
|
|
268
|
+
policyTemplate: "[CSP] uniquely identifies and authenticates all organizational users of [System Name]. Multi-factor authentication is required for all network access (privileged and non-privileged) and local privileged access. [System Name] supports [FIDO2/PIV/CAC] for phishing-resistant MFA. Federal agency users can authenticate using PIV/CAC credentials per HSPD-12. Authentication mechanisms are replay-resistant.",
|
|
269
|
+
relatedControls: ["IA-1", "IA-4", "IA-5", "AC-2"],
|
|
270
|
+
},
|
|
271
|
+
// ── INCIDENT RESPONSE ───────────────────────────────────────────────
|
|
272
|
+
{
|
|
273
|
+
id: "IR-1",
|
|
274
|
+
family: "IR",
|
|
275
|
+
title: "Incident Response Policy and Procedures",
|
|
276
|
+
description: "Develop, document, and disseminate incident response policy and procedures.",
|
|
277
|
+
baseline: "low",
|
|
278
|
+
priority: "P1",
|
|
279
|
+
implementation: "Document IR policy covering preparation, detection, analysis, containment, eradication, recovery, and post-incident. Address FedRAMP-specific reporting to US-CERT and agency customers. Define incident categories and severity levels. Establish IR team.",
|
|
280
|
+
evidence: ["IR policy document", "IR team roster and contacts", "Incident severity/category matrix", "US-CERT reporting procedures", "Agency notification procedures"],
|
|
281
|
+
fedrampRequirements: ["US-CERT reporting within 1 hour for incidents", "Agency customer notification procedures", "Policy reviewed every 3 years, procedures annually"],
|
|
282
|
+
commonFindings: ["No US-CERT reporting procedures", "Missing agency notification process", "IR team not defined", "Severity levels not aligned with FedRAMP", "No post-incident review process"],
|
|
283
|
+
policyTemplate: "[CSP] maintains incident response policies for [System Name] covering all phases of incident handling. The IR team includes [roles] with [24/7 availability]. Incidents are classified per [severity matrix]. US-CERT is notified within 1 hour of confirmed incidents. Affected agency customers are notified within [N] hours. Post-incident reviews are conducted within [N] days.",
|
|
284
|
+
relatedControls: ["IR-4", "IR-5", "IR-6", "AU-6"],
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
id: "IR-6",
|
|
288
|
+
family: "IR",
|
|
289
|
+
title: "Incident Reporting",
|
|
290
|
+
description: "Require personnel to report suspected security incidents to the organizational incident response capability and report security incidents to appropriate authorities.",
|
|
291
|
+
baseline: "low",
|
|
292
|
+
priority: "P1",
|
|
293
|
+
implementation: "US-CERT reporting within 1 hour for FedRAMP incidents. Report to agency customers per their requirements. Report to FedRAMP PMO for significant incidents. Internal reporting chain established. Document all reports and acknowledgments.",
|
|
294
|
+
evidence: ["US-CERT reporting procedures", "Incident report records", "Agency notification records", "FedRAMP PMO notification records", "Internal reporting chain documentation"],
|
|
295
|
+
fedrampRequirements: ["Report to US-CERT within 1 hour", "Report to FedRAMP PMO for significant incidents", "Report to all affected agency customers", "Report must include specific FedRAMP-required data elements"],
|
|
296
|
+
commonFindings: ["US-CERT reporting not within 1 hour", "FedRAMP PMO not notified", "Agency customers not notified", "Missing data elements in reports", "No evidence of report submissions"],
|
|
297
|
+
policyTemplate: "[CSP] reports security incidents affecting [System Name] to US-CERT within 1 hour of confirmation. The FedRAMP PMO is notified for significant incidents. All affected agency customers are notified within [N] hours including incident description, impact assessment, and remediation status. Reports include all FedRAMP-required data elements. All incident reports and acknowledgments are documented.",
|
|
298
|
+
relatedControls: ["IR-1", "IR-4", "IR-5"],
|
|
299
|
+
},
|
|
300
|
+
// ── RISK ASSESSMENT ─────────────────────────────────────────────────
|
|
301
|
+
{
|
|
302
|
+
id: "RA-5",
|
|
303
|
+
family: "RA",
|
|
304
|
+
title: "Vulnerability Scanning",
|
|
305
|
+
description: "Scan for vulnerabilities in the system and hosted applications per FedRAMP continuous monitoring requirements and remediate legitimate vulnerabilities.",
|
|
306
|
+
baseline: "low",
|
|
307
|
+
priority: "P1",
|
|
308
|
+
implementation: "Monthly OS/infrastructure vulnerability scans. Monthly web application scans. Monthly database scans. Quarterly authenticated scans. Scan after significant changes. Remediate per FedRAMP timelines: high/critical within 30 days, moderate within 90 days, low within 180 days. Share scan results with authorizing officials.",
|
|
309
|
+
evidence: ["Monthly scan results (OS, web app, database)", "Remediation tracking records", "Scan configuration showing scope", "Authenticated scan evidence", "False positive documentation", "Scan result sharing with AO"],
|
|
310
|
+
fedrampRequirements: ["Monthly OS/infrastructure scans", "Monthly web application scans", "Monthly database scans", "Critical/high remediation within 30 days", "Moderate within 90 days", "Low within 180 days", "Share results with AO monthly", "Scan all unique vulnerabilities"],
|
|
311
|
+
commonFindings: ["Scans not monthly", "Web application scans missing", "Database scans missing", "Remediation timelines not met", "Scan scope incomplete", "Results not shared with AO", "False positives not properly documented"],
|
|
312
|
+
policyTemplate: "[CSP] conducts monthly vulnerability scans of [System Name] covering operating systems, web applications, and databases. Scans are performed using [tools] with authenticated scanning for [OS/database]. Remediation follows FedRAMP timelines: critical/high within 30 days, moderate within 90 days, low within 180 days. Scan results and remediation status are shared with the authorizing official monthly. False positives are documented with supporting evidence.",
|
|
313
|
+
relatedControls: ["CA-5", "CA-7", "SI-2"],
|
|
314
|
+
},
|
|
315
|
+
// ── SYSTEM & COMMUNICATIONS PROTECTION ──────────────────────────────
|
|
316
|
+
{
|
|
317
|
+
id: "SC-1",
|
|
318
|
+
family: "SC",
|
|
319
|
+
title: "System and Communications Protection Policy and Procedures",
|
|
320
|
+
description: "Develop, document, and disseminate system and communications protection policy and procedures.",
|
|
321
|
+
baseline: "low",
|
|
322
|
+
priority: "P1",
|
|
323
|
+
implementation: "Document SC policy covering boundary protection, encryption, network segmentation, denial of service protection, and session management. Address cloud-specific networking, CDN, WAF, and API gateway security.",
|
|
324
|
+
evidence: ["SC policy document", "Policy review records", "Cloud networking architecture documentation"],
|
|
325
|
+
fedrampRequirements: ["Policy reviewed every 3 years, procedures annually", "Must address cloud-specific SC controls"],
|
|
326
|
+
commonFindings: ["Policy doesn't address cloud networking", "Missing API gateway security procedures", "No CDN/WAF procedures"],
|
|
327
|
+
policyTemplate: "[CSP] maintains system and communications protection policies for [System Name] covering boundary protection, FIPS-validated encryption, network segmentation, denial-of-service protection, and session management. Cloud-specific protections include [WAF, CDN, API gateway, VPC configuration, security groups]. The policy is reviewed every 3 years with procedures updated annually.",
|
|
328
|
+
relatedControls: ["SC-7", "SC-8", "SC-13"],
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
id: "SC-7",
|
|
332
|
+
family: "SC",
|
|
333
|
+
title: "Boundary Protection",
|
|
334
|
+
description: "Monitor and control communications at external system boundaries and key internal boundaries.",
|
|
335
|
+
baseline: "low",
|
|
336
|
+
priority: "P1",
|
|
337
|
+
implementation: "Deploy managed boundary protection (firewalls, security groups, NACLs, WAF). Implement DMZ for public services. Restrict outbound traffic. Monitor boundary traffic. Separate management network. Implement API gateway for service boundaries. Deny by default.",
|
|
338
|
+
evidence: ["Network architecture diagram with boundaries", "Firewall/security group rules", "WAF configuration", "DMZ architecture", "Outbound traffic restrictions", "API gateway configuration", "Boundary monitoring evidence"],
|
|
339
|
+
fedrampRequirements: ["Managed interfaces at all external boundaries", "DMZ for public-facing components", "Deny-by-default with allow-by-exception", "Monitor traffic at all boundaries", "Separate management network"],
|
|
340
|
+
commonFindings: ["No DMZ architecture", "Overly permissive security groups", "No outbound traffic restrictions", "Management network not separated", "No WAF for web applications", "API endpoints unprotected"],
|
|
341
|
+
policyTemplate: "[CSP] implements boundary protection at all external and key internal boundaries of [System Name]. Public-facing services are deployed in a DMZ. Security groups and NACLs enforce deny-by-default access. A WAF protects web applications. Outbound traffic is restricted to approved destinations. The management network is separated from data plane traffic. Boundary traffic is monitored by [tool/team].",
|
|
342
|
+
relatedControls: ["SC-1", "AC-3", "AU-6"],
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
id: "SC-13",
|
|
346
|
+
family: "SC",
|
|
347
|
+
title: "Cryptographic Protection",
|
|
348
|
+
description: "Implement FIPS-validated cryptography in accordance with applicable federal laws, Executive Orders, directives, policies, regulations, and standards.",
|
|
349
|
+
baseline: "low",
|
|
350
|
+
priority: "P1",
|
|
351
|
+
implementation: "FIPS 140-2 (or 140-3) validated cryptographic modules for all encryption. TLS 1.2+ for data in transit. AES-256 for data at rest. Key management procedures. Certificate management. Crypto inventory documenting all cryptographic implementations.",
|
|
352
|
+
evidence: ["FIPS 140-2/3 validation certificates", "TLS configuration evidence", "Encryption at rest configuration", "Key management procedures", "Certificate management procedures", "Cryptographic module inventory"],
|
|
353
|
+
fedrampRequirements: ["All cryptographic modules must be FIPS 140-2/3 validated", "TLS 1.2 minimum for data in transit", "FIPS-validated encryption for data at rest", "Key management with separation of duties"],
|
|
354
|
+
commonFindings: ["Non-FIPS validated modules used", "TLS 1.0/1.1 still enabled", "Data at rest not encrypted", "No key management procedures", "No cryptographic module inventory", "Self-signed certificates in production"],
|
|
355
|
+
policyTemplate: "[CSP] implements FIPS 140-2 validated cryptography for all encryption on [System Name]. Data in transit uses TLS 1.2+ with FIPS-validated modules. Data at rest uses AES-256 encryption with FIPS-validated modules. Encryption keys are managed per [key management procedures] with separation of duties. A cryptographic module inventory documents all implementations with validation status.",
|
|
356
|
+
relatedControls: ["SC-1", "SC-7", "SC-8"],
|
|
357
|
+
},
|
|
358
|
+
// ── SYSTEM & INFORMATION INTEGRITY ──────────────────────────────────
|
|
359
|
+
{
|
|
360
|
+
id: "SI-2",
|
|
361
|
+
family: "SI",
|
|
362
|
+
title: "Flaw Remediation",
|
|
363
|
+
description: "Identify, report, and correct system flaws; test software/firmware updates related to flaw remediation for effectiveness and potential side effects before installation.",
|
|
364
|
+
baseline: "low",
|
|
365
|
+
priority: "P1",
|
|
366
|
+
implementation: "Patch management covering all components. Test patches before production. Deploy per FedRAMP remediation timelines. Track patch compliance. Include third-party and open-source components. Address container image patching. Automated patching where feasible.",
|
|
367
|
+
evidence: ["Patch management policy", "Patch testing procedures", "Patch deployment records with timelines", "Patch compliance reports", "Third-party component patching evidence", "Container image scanning/patching"],
|
|
368
|
+
fedrampRequirements: ["Critical/high within 30 days", "Moderate within 90 days", "Low within 180 days", "Emergency patches within 48 hours", "Must cover all system components including containers"],
|
|
369
|
+
commonFindings: ["Patches not deployed within FedRAMP timelines", "No testing before production", "Third-party components unpatched", "Container images with known vulnerabilities", "No patch compliance monitoring", "Emergency patch process not defined"],
|
|
370
|
+
policyTemplate: "[CSP] manages flaw remediation for [System Name] per FedRAMP timelines: critical/high within 30 days, moderate within 90 days, low within 180 days, emergency within 48 hours. Patches are tested in [environment] before production deployment. All components are in scope including OS, applications, databases, network devices, container images, and third-party libraries. Patch compliance is monitored via [tool] with [frequency] reporting.",
|
|
371
|
+
relatedControls: ["RA-5", "CA-5", "CM-3"],
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
id: "SI-4",
|
|
375
|
+
family: "SI",
|
|
376
|
+
title: "System Monitoring",
|
|
377
|
+
description: "Monitor the system to detect attacks and indicators of potential attacks, unauthorized connections, and unauthorized use.",
|
|
378
|
+
baseline: "low",
|
|
379
|
+
priority: "P1",
|
|
380
|
+
implementation: "Deploy IDS/IPS at network boundaries. Implement SIEM for log aggregation and correlation. Endpoint detection and response (EDR). Cloud-native monitoring (CloudTrail, GuardDuty, etc.). Define monitoring strategy covering internal, external, and cloud management plane. Alert and escalation procedures.",
|
|
381
|
+
evidence: ["Monitoring strategy document", "IDS/IPS deployment and configuration", "SIEM configuration and alert rules", "EDR deployment", "Cloud-native monitoring configuration", "Alert and escalation procedures", "Monitoring effectiveness reports"],
|
|
382
|
+
fedrampRequirements: ["Real-time monitoring of all system boundaries", "SIEM with correlation capabilities", "Cloud management plane monitoring", "Heightened monitoring during threat advisories", "Integration with US-CERT reporting"],
|
|
383
|
+
commonFindings: ["No IDS/IPS deployed", "SIEM not covering all components", "Cloud management plane not monitored", "Alert fatigue (too many false positives)", "No escalation procedures", "EDR not deployed on all endpoints"],
|
|
384
|
+
policyTemplate: "[CSP] monitors [System Name] using a defense-in-depth approach. IDS/IPS monitors network boundaries. [SIEM tool] aggregates and correlates logs across all components. EDR is deployed on all endpoints. Cloud-native monitoring ([service names]) covers the management plane. Alerts are escalated per [procedures] with [response SLA]. Monitoring is heightened during elevated threat periods per US-CERT advisories.",
|
|
385
|
+
relatedControls: ["AU-6", "IR-4", "SC-7"],
|
|
386
|
+
},
|
|
387
|
+
// ── PLANNING ────────────────────────────────────────────────────────
|
|
388
|
+
{
|
|
389
|
+
id: "PL-2",
|
|
390
|
+
family: "PL",
|
|
391
|
+
title: "System Security Plan",
|
|
392
|
+
description: "Develop and maintain a security plan that describes security controls in place or planned, rules of behavior, and access.",
|
|
393
|
+
baseline: "low",
|
|
394
|
+
priority: "P1",
|
|
395
|
+
implementation: "Develop SSP per FedRAMP SSP template. Cover all applicable control families. Describe system boundary, architecture, data flows. Document all control implementations. Include customer responsibility matrix. Maintain current with all changes. Annual review and update.",
|
|
396
|
+
evidence: ["System Security Plan (FedRAMP template)", "SSP revision history", "Annual review records", "Customer Responsibility Matrix", "System architecture diagrams", "Data flow diagrams"],
|
|
397
|
+
fedrampRequirements: ["Must follow FedRAMP SSP template", "Updated for all significant changes", "Annual review minimum", "Must include Customer Responsibility Matrix", "Must include system architecture and data flow diagrams"],
|
|
398
|
+
commonFindings: ["SSP doesn't follow FedRAMP template", "SSP out of date", "Missing Customer Responsibility Matrix", "Architecture diagrams outdated", "Control descriptions copied from templates not customized", "Missing data flow diagrams"],
|
|
399
|
+
policyTemplate: "[CSP] maintains the System Security Plan for [System Name] per the FedRAMP SSP template. The SSP describes the system boundary, architecture, data flows, and implementation of all applicable security controls. The Customer Responsibility Matrix defines shared responsibility between [CSP] and agency customers. The SSP is reviewed annually and updated within [N] days of significant changes. All revisions are tracked.",
|
|
400
|
+
relatedControls: ["CA-2", "CA-5", "CA-7"],
|
|
401
|
+
},
|
|
402
|
+
];
|
|
403
|
+
// ── Readiness Assessment ──────────────────────────────────────────────
|
|
404
|
+
function assessReadiness(implementedControls, targetBaseline) {
|
|
405
|
+
const baselineOrder = { low: 1, moderate: 2, high: 3 };
|
|
406
|
+
const targetOrder = baselineOrder[targetBaseline];
|
|
407
|
+
const inScope = FEDRAMP_CONTROLS.filter((c) => baselineOrder[c.baseline] <= targetOrder);
|
|
408
|
+
const implemented = new Set(implementedControls.map((c) => c.toUpperCase()));
|
|
409
|
+
let totalImplemented = 0;
|
|
410
|
+
const byFamily = {};
|
|
411
|
+
for (const control of inScope) {
|
|
412
|
+
const fam = control.family;
|
|
413
|
+
if (!byFamily[fam])
|
|
414
|
+
byFamily[fam] = { implemented: 0, total: 0, score: 0 };
|
|
415
|
+
byFamily[fam].total++;
|
|
416
|
+
if (implemented.has(control.id)) {
|
|
417
|
+
totalImplemented++;
|
|
418
|
+
byFamily[fam].implemented++;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
for (const f of Object.keys(byFamily)) {
|
|
422
|
+
byFamily[f].score = Math.round((byFamily[f].implemented / byFamily[f].total) * 100);
|
|
423
|
+
}
|
|
424
|
+
const score = inScope.length > 0 ? Math.round((totalImplemented / inScope.length) * 100) : 0;
|
|
425
|
+
const gaps = inScope.filter((c) => !implemented.has(c.id));
|
|
426
|
+
const p1Gaps = gaps.filter((c) => c.priority === "P1");
|
|
427
|
+
const recommendations = [];
|
|
428
|
+
if (!implemented.has("PL-2"))
|
|
429
|
+
recommendations.push("CRITICAL: Develop System Security Plan (SSP) per FedRAMP template — this is the foundation of your authorization package");
|
|
430
|
+
if (!implemented.has("CA-7"))
|
|
431
|
+
recommendations.push("CRITICAL: Implement Continuous Monitoring program — FedRAMP requires monthly vulnerability scans, POA&M updates, and deliverables");
|
|
432
|
+
if (!implemented.has("RA-5"))
|
|
433
|
+
recommendations.push("HIGH: Implement vulnerability scanning — monthly scans with FedRAMP-compliant remediation timelines");
|
|
434
|
+
if (!implemented.has("CA-2"))
|
|
435
|
+
recommendations.push("HIGH: Engage accredited 3PAO for security assessment — required for authorization");
|
|
436
|
+
if (!implemented.has("IR-6"))
|
|
437
|
+
recommendations.push("HIGH: Establish US-CERT reporting capability — 1-hour reporting requirement");
|
|
438
|
+
if (!implemented.has("SC-13"))
|
|
439
|
+
recommendations.push("HIGH: Implement FIPS 140-2 validated cryptography — non-negotiable for FedRAMP");
|
|
440
|
+
if (p1Gaps.length > 5)
|
|
441
|
+
recommendations.push(`URGENT: ${p1Gaps.length} P1 controls missing — these are the highest priority for authorization`);
|
|
442
|
+
if (recommendations.length === 0)
|
|
443
|
+
recommendations.push("Strong posture — prepare authorization package and engage 3PAO");
|
|
444
|
+
return { score, total: inScope.length, implemented: totalImplemented, byFamily, gaps, p1Gaps, recommendations };
|
|
445
|
+
}
|
|
446
|
+
// ── MCP Server ────────────────────────────────────────────────────────
|
|
447
|
+
const server = new McpServer({
|
|
448
|
+
name: "fedramp-compliance-mcp",
|
|
449
|
+
version: "0.1.0",
|
|
450
|
+
});
|
|
451
|
+
// Tool 1: Browse Controls
|
|
452
|
+
server.tool("browse_controls", "Browse FedRAMP security controls by baseline (low/moderate/high), family (AC/AU/CA/CM/etc.), priority (P1/P2/P3), or search terms.", {
|
|
453
|
+
baseline: z.enum(["low", "moderate", "high"]).optional().describe("Filter by FedRAMP baseline"),
|
|
454
|
+
family: z.enum(["AC", "AU", "AT", "CA", "CM", "CP", "IA", "IR", "MA", "MP", "PE", "PL", "PM", "PS", "RA", "SA", "SC", "SI"]).optional().describe("Filter by control family"),
|
|
455
|
+
priority: z.enum(["P1", "P2", "P3"]).optional().describe("Filter by control priority"),
|
|
456
|
+
search: z.string().optional().describe("Search control titles and descriptions"),
|
|
457
|
+
}, async ({ baseline, family, priority, search }) => {
|
|
458
|
+
let results = [...FEDRAMP_CONTROLS];
|
|
459
|
+
if (baseline) {
|
|
460
|
+
const order = { low: 1, moderate: 2, high: 3 };
|
|
461
|
+
const targetOrder = order[baseline];
|
|
462
|
+
results = results.filter((c) => order[c.baseline] <= targetOrder);
|
|
463
|
+
}
|
|
464
|
+
if (family)
|
|
465
|
+
results = results.filter((c) => c.family === family);
|
|
466
|
+
if (priority)
|
|
467
|
+
results = results.filter((c) => c.priority === priority);
|
|
468
|
+
if (search) {
|
|
469
|
+
const q = search.toLowerCase();
|
|
470
|
+
results = results.filter((c) => c.title.toLowerCase().includes(q) || c.description.toLowerCase().includes(q) || c.id.toLowerCase().includes(q));
|
|
471
|
+
}
|
|
472
|
+
if (results.length === 0) {
|
|
473
|
+
return { content: [{ type: "text", text: "No controls match your criteria." }] };
|
|
474
|
+
}
|
|
475
|
+
const output = [
|
|
476
|
+
`# FedRAMP Controls (${results.length} results)`,
|
|
477
|
+
``,
|
|
478
|
+
...results.map((c) => [
|
|
479
|
+
`## ${c.id}: ${c.title}`,
|
|
480
|
+
`**Family:** ${c.family} (${FAMILY_NAMES[c.family]}) | **Baseline:** ${c.baseline} | **Priority:** ${c.priority}`,
|
|
481
|
+
``,
|
|
482
|
+
c.description,
|
|
483
|
+
``,
|
|
484
|
+
`**Implementation:** ${c.implementation}`,
|
|
485
|
+
``,
|
|
486
|
+
`**FedRAMP-Specific Requirements:**`,
|
|
487
|
+
...c.fedrampRequirements.map((r) => `- ${r}`),
|
|
488
|
+
``,
|
|
489
|
+
`**Common 3PAO Findings:**`,
|
|
490
|
+
...c.commonFindings.map((f) => `- ${f}`),
|
|
491
|
+
``,
|
|
492
|
+
].join("\n")),
|
|
493
|
+
`---`,
|
|
494
|
+
`Automate your FedRAMP compliance: https://complianceiq.site`,
|
|
495
|
+
].join("\n");
|
|
496
|
+
return { content: [{ type: "text", text: output }] };
|
|
497
|
+
});
|
|
498
|
+
// Tool 2: Assess Readiness
|
|
499
|
+
server.tool("assess_readiness", "Score your FedRAMP authorization readiness based on which controls you've implemented. Includes baseline-specific assessment.", {
|
|
500
|
+
implementedControls: z.array(z.string()).describe("Array of control IDs you have implemented (e.g., ['AC-1', 'AC-2', 'AU-2'])"),
|
|
501
|
+
targetBaseline: z.enum(["low", "moderate", "high"]).default("moderate").describe("Target FedRAMP baseline (most agencies require Moderate)"),
|
|
502
|
+
authorizationPath: z.enum(["jab", "agency", "li_saas"]).default("agency").describe("Authorization path: JAB P-ATO, Agency ATO, or FedRAMP Li-SaaS"),
|
|
503
|
+
}, async ({ implementedControls, targetBaseline, authorizationPath }) => {
|
|
504
|
+
const result = assessReadiness(implementedControls, targetBaseline);
|
|
505
|
+
const pathNote = authorizationPath === "jab"
|
|
506
|
+
? "\n**JAB P-ATO Path:** Requires FedRAMP PMO sponsorship and JAB review. Highest rigor but broadest reuse across agencies."
|
|
507
|
+
: authorizationPath === "li_saas"
|
|
508
|
+
? "\n**Li-SaaS Path:** Streamlined for low-impact SaaS. Reduced control set. Good for initial authorization."
|
|
509
|
+
: "\n**Agency ATO Path:** Direct engagement with a sponsoring agency. Most common path.";
|
|
510
|
+
const output = [
|
|
511
|
+
`# FedRAMP Authorization Readiness Assessment`,
|
|
512
|
+
``,
|
|
513
|
+
`## Overall Score: ${result.score}%`,
|
|
514
|
+
`- **Controls Implemented:** ${result.implemented}/${result.total}`,
|
|
515
|
+
`- **Target Baseline:** ${targetBaseline}`,
|
|
516
|
+
`- **Authorization Path:** ${authorizationPath.replace(/_/g, " ").toUpperCase()}${pathNote}`,
|
|
517
|
+
``,
|
|
518
|
+
`## Readiness by Control Family`,
|
|
519
|
+
...Object.entries(result.byFamily)
|
|
520
|
+
.sort(([, a], [, b]) => a.score - b.score)
|
|
521
|
+
.map(([fam, v]) => `- **${fam} (${FAMILY_NAMES[fam]}):** ${v.implemented}/${v.total} (${v.score}%) ${v.score < 50 ? "-- CRITICAL GAP" : v.score < 80 ? "-- needs attention" : "-- good"}`),
|
|
522
|
+
``,
|
|
523
|
+
`## P1 Controls Missing (${result.p1Gaps.length})`,
|
|
524
|
+
...result.p1Gaps.map((g) => `- **${g.id}:** ${g.title}`),
|
|
525
|
+
``,
|
|
526
|
+
`## Priority Recommendations`,
|
|
527
|
+
...result.recommendations.map((r, i) => `${i + 1}. ${r}`),
|
|
528
|
+
``,
|
|
529
|
+
`## Authorization Readiness`,
|
|
530
|
+
result.score >= 85 ? "**READY** — Strong control implementation. Prepare authorization package and engage 3PAO for assessment." :
|
|
531
|
+
result.score >= 60 ? "**NEARLY READY** — Address P1 gaps before engaging 3PAO. Focus on SSP, ConMon, and vulnerability management." :
|
|
532
|
+
"**NOT READY** — Significant gaps exist. Build foundational controls (access management, monitoring, encryption, incident response) before pursuing authorization.",
|
|
533
|
+
``,
|
|
534
|
+
`## Authorization Package Checklist`,
|
|
535
|
+
`- [ ] System Security Plan (SSP) per FedRAMP template`,
|
|
536
|
+
`- [ ] Security Assessment Plan (SAP)`,
|
|
537
|
+
`- [ ] Security Assessment Report (SAR) from 3PAO`,
|
|
538
|
+
`- [ ] Plan of Action & Milestones (POA&M)`,
|
|
539
|
+
`- [ ] Continuous Monitoring deliverables`,
|
|
540
|
+
`- [ ] Customer Responsibility Matrix`,
|
|
541
|
+
`- [ ] System architecture and data flow diagrams`,
|
|
542
|
+
`- [ ] Privacy Impact Assessment (PIA) if applicable`,
|
|
543
|
+
`- [ ] Rules of Behavior`,
|
|
544
|
+
``,
|
|
545
|
+
`---`,
|
|
546
|
+
`Track your FedRAMP authorization: https://complianceiq.site`,
|
|
547
|
+
].join("\n");
|
|
548
|
+
return { content: [{ type: "text", text: output }] };
|
|
549
|
+
});
|
|
550
|
+
// Tool 3: Generate SSP Section
|
|
551
|
+
server.tool("generate_ssp", "Generate a FedRAMP System Security Plan section for a specific control or control family, formatted per FedRAMP SSP template requirements.", {
|
|
552
|
+
controlId: z.string().optional().describe("Specific control ID (e.g., 'AC-2')"),
|
|
553
|
+
family: z.enum(["AC", "AU", "AT", "CA", "CM", "CP", "IA", "IR", "MA", "MP", "PE", "PL", "PM", "PS", "RA", "SA", "SC", "SI"]).optional().describe("Control family to generate SSP section for"),
|
|
554
|
+
cspName: z.string().default("[CSP]").describe("Cloud Service Provider name"),
|
|
555
|
+
systemName: z.string().default("[System Name]").describe("System/CSO name"),
|
|
556
|
+
}, async ({ controlId, family, cspName, systemName }) => {
|
|
557
|
+
let controls;
|
|
558
|
+
let title;
|
|
559
|
+
if (controlId) {
|
|
560
|
+
const control = FEDRAMP_CONTROLS.find((c) => c.id === controlId.toUpperCase());
|
|
561
|
+
if (!control) {
|
|
562
|
+
return { content: [{ type: "text", text: `Control ${controlId} not found. Use browse_controls to see available IDs.` }] };
|
|
563
|
+
}
|
|
564
|
+
controls = [control];
|
|
565
|
+
title = `${control.id}: ${control.title}`;
|
|
566
|
+
}
|
|
567
|
+
else if (family) {
|
|
568
|
+
controls = FEDRAMP_CONTROLS.filter((c) => c.family === family);
|
|
569
|
+
title = `${family} — ${FAMILY_NAMES[family]}`;
|
|
570
|
+
}
|
|
571
|
+
else {
|
|
572
|
+
return { content: [{ type: "text", text: "Provide either controlId or family." }] };
|
|
573
|
+
}
|
|
574
|
+
const output = [
|
|
575
|
+
`# FedRAMP SSP — ${title}`,
|
|
576
|
+
`**Cloud Service Provider:** ${cspName}`,
|
|
577
|
+
`**Cloud Service Offering:** ${systemName}`,
|
|
578
|
+
`**Date:** ${new Date().toISOString().split("T")[0]}`,
|
|
579
|
+
``,
|
|
580
|
+
...controls.map((c) => [
|
|
581
|
+
`## ${c.id}: ${c.title}`,
|
|
582
|
+
`**Family:** ${c.family} (${FAMILY_NAMES[c.family]}) | **Baseline:** ${c.baseline} | **Priority:** ${c.priority}`,
|
|
583
|
+
``,
|
|
584
|
+
`### Control Description`,
|
|
585
|
+
c.description,
|
|
586
|
+
``,
|
|
587
|
+
`### Implementation`,
|
|
588
|
+
`**Responsible Role:** [CSP/Agency/Shared]`,
|
|
589
|
+
``,
|
|
590
|
+
c.policyTemplate.replace(/\[CSP\]/g, cspName).replace(/\[System Name\]/g, systemName),
|
|
591
|
+
``,
|
|
592
|
+
`### Implementation Details`,
|
|
593
|
+
c.implementation,
|
|
594
|
+
``,
|
|
595
|
+
`### FedRAMP Additional Requirements`,
|
|
596
|
+
...c.fedrampRequirements.map((r) => `- ${r}`),
|
|
597
|
+
``,
|
|
598
|
+
`### Evidence Artifacts`,
|
|
599
|
+
...c.evidence.map((e) => `- ${e}`),
|
|
600
|
+
``,
|
|
601
|
+
`### Customer Responsibility`,
|
|
602
|
+
`[Describe any customer responsibilities for this control]`,
|
|
603
|
+
``,
|
|
604
|
+
`### Implementation Status`,
|
|
605
|
+
`- [ ] Implemented`,
|
|
606
|
+
`- [ ] Partially Implemented`,
|
|
607
|
+
`- [ ] Planned`,
|
|
608
|
+
`- [ ] Alternative Implementation`,
|
|
609
|
+
`- [ ] Not Applicable`,
|
|
610
|
+
``,
|
|
611
|
+
].join("\n")),
|
|
612
|
+
`---`,
|
|
613
|
+
`Generate your complete FedRAMP SSP: https://complianceiq.site`,
|
|
614
|
+
].join("\n");
|
|
615
|
+
return { content: [{ type: "text", text: output }] };
|
|
616
|
+
});
|
|
617
|
+
// Tool 4: Evidence Checklist
|
|
618
|
+
server.tool("evidence_checklist", "Generate evidence collection checklist for FedRAMP 3PAO assessment preparation.", {
|
|
619
|
+
controlId: z.string().optional().describe("Specific control ID"),
|
|
620
|
+
family: z.enum(["AC", "AU", "AT", "CA", "CM", "CP", "IA", "IR", "MA", "MP", "PE", "PL", "PM", "PS", "RA", "SA", "SC", "SI"]).optional().describe("Control family"),
|
|
621
|
+
baseline: z.enum(["low", "moderate", "high"]).optional().describe("Filter by baseline"),
|
|
622
|
+
}, async ({ controlId, family, baseline }) => {
|
|
623
|
+
let controls;
|
|
624
|
+
if (controlId) {
|
|
625
|
+
const control = FEDRAMP_CONTROLS.find((c) => c.id === controlId.toUpperCase());
|
|
626
|
+
if (!control) {
|
|
627
|
+
return { content: [{ type: "text", text: `Control ${controlId} not found.` }] };
|
|
628
|
+
}
|
|
629
|
+
controls = [control];
|
|
630
|
+
}
|
|
631
|
+
else {
|
|
632
|
+
controls = [...FEDRAMP_CONTROLS];
|
|
633
|
+
if (family)
|
|
634
|
+
controls = controls.filter((c) => c.family === family);
|
|
635
|
+
if (baseline) {
|
|
636
|
+
const order = { low: 1, moderate: 2, high: 3 };
|
|
637
|
+
controls = controls.filter((c) => order[c.baseline] <= order[baseline]);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
const output = [
|
|
641
|
+
`# FedRAMP Evidence Collection Checklist`,
|
|
642
|
+
`**Scope:** ${controlId || (family ? `${family} (${FAMILY_NAMES[family]})` : "All Families")}${baseline ? ` | Baseline: ${baseline}` : ""}`,
|
|
643
|
+
``,
|
|
644
|
+
`## 3PAO Assessment Preparation Tips`,
|
|
645
|
+
`- Organize evidence by control family in shared folders`,
|
|
646
|
+
`- Ensure screenshots include timestamps`,
|
|
647
|
+
`- Provide both policy/procedure documents AND implementation evidence`,
|
|
648
|
+
`- Have system administrators available for live demonstrations`,
|
|
649
|
+
`- Prepare a test environment for penetration testing`,
|
|
650
|
+
``,
|
|
651
|
+
...controls.map((c) => [
|
|
652
|
+
`## ${c.id}: ${c.title}`,
|
|
653
|
+
`**Family:** ${FAMILY_NAMES[c.family]} | **Baseline:** ${c.baseline} | **Priority:** ${c.priority}`,
|
|
654
|
+
``,
|
|
655
|
+
`### Evidence Required`,
|
|
656
|
+
...c.evidence.map((e) => `- [ ] ${e}`),
|
|
657
|
+
``,
|
|
658
|
+
`### FedRAMP-Specific Evidence`,
|
|
659
|
+
...c.fedrampRequirements.map((r) => `- [ ] Evidence for: ${r}`),
|
|
660
|
+
``,
|
|
661
|
+
`**Owner:** ___________`,
|
|
662
|
+
`**Status:** Not Started / In Progress / Complete`,
|
|
663
|
+
``,
|
|
664
|
+
].join("\n")),
|
|
665
|
+
`---`,
|
|
666
|
+
`Track FedRAMP evidence collection: https://complianceiq.site`,
|
|
667
|
+
].join("\n");
|
|
668
|
+
return { content: [{ type: "text", text: output }] };
|
|
669
|
+
});
|
|
670
|
+
// Tool 5: Gap Analysis
|
|
671
|
+
server.tool("gap_analysis", "Compare implemented controls against FedRAMP baseline requirements and generate prioritized remediation plan.", {
|
|
672
|
+
implementedControls: z.array(z.string()).describe("Array of control IDs you have implemented"),
|
|
673
|
+
targetBaseline: z.enum(["low", "moderate", "high"]).default("moderate").describe("Target FedRAMP baseline"),
|
|
674
|
+
assessmentTimeline: z.enum(["under_3_months", "3_to_6_months", "6_to_12_months", "over_12_months"]).default("6_to_12_months").describe("Time until 3PAO assessment"),
|
|
675
|
+
}, async ({ implementedControls, targetBaseline, assessmentTimeline }) => {
|
|
676
|
+
const result = assessReadiness(implementedControls, targetBaseline);
|
|
677
|
+
const gaps = result.gaps;
|
|
678
|
+
const groupedGaps = {};
|
|
679
|
+
for (const gap of gaps) {
|
|
680
|
+
const fam = gap.family;
|
|
681
|
+
if (!groupedGaps[fam])
|
|
682
|
+
groupedGaps[fam] = [];
|
|
683
|
+
groupedGaps[fam].push(gap);
|
|
684
|
+
}
|
|
685
|
+
const output = [
|
|
686
|
+
`# FedRAMP Gap Analysis`,
|
|
687
|
+
`**Target Baseline:** ${targetBaseline}`,
|
|
688
|
+
`**Controls Required:** ${result.total}`,
|
|
689
|
+
`**Controls Implemented:** ${result.implemented}`,
|
|
690
|
+
`**Gaps:** ${gaps.length}`,
|
|
691
|
+
`**P1 Gaps:** ${result.p1Gaps.length}`,
|
|
692
|
+
`**Assessment Timeline:** ${assessmentTimeline.replace(/_/g, " ")}`,
|
|
693
|
+
``,
|
|
694
|
+
`## POA&M Template`,
|
|
695
|
+
``,
|
|
696
|
+
`| # | Control | Title | Family | Priority | Milestone | Target Date | Owner | Status |`,
|
|
697
|
+
`|---|---------|-------|--------|----------|-----------|------------|-------|--------|`,
|
|
698
|
+
...gaps.map((g, i) => `| ${i + 1} | ${g.id} | ${g.title} | ${FAMILY_NAMES[g.family]} | ${g.priority} | | | | Not Started |`),
|
|
699
|
+
``,
|
|
700
|
+
`## Gaps by Control Family`,
|
|
701
|
+
``,
|
|
702
|
+
...Object.entries(groupedGaps).sort(([, a], [, b]) => b.length - a.length).map(([fam, controls]) => [
|
|
703
|
+
`### ${fam} — ${FAMILY_NAMES[fam]} (${controls.length} gaps)`,
|
|
704
|
+
``,
|
|
705
|
+
...controls.map((c) => [
|
|
706
|
+
`#### ${c.id}: ${c.title} (${c.priority})`,
|
|
707
|
+
c.description,
|
|
708
|
+
``,
|
|
709
|
+
`**FedRAMP Requirements:**`,
|
|
710
|
+
...c.fedrampRequirements.map((r) => `- ${r}`),
|
|
711
|
+
``,
|
|
712
|
+
`**Common 3PAO Findings:**`,
|
|
713
|
+
...c.commonFindings.slice(0, 3).map((f) => `- ${f}`),
|
|
714
|
+
``,
|
|
715
|
+
].join("\n")),
|
|
716
|
+
].join("\n")),
|
|
717
|
+
`## Priority Recommendations`,
|
|
718
|
+
...result.recommendations.map((r, i) => `${i + 1}. ${r}`),
|
|
719
|
+
``,
|
|
720
|
+
`---`,
|
|
721
|
+
`Automate your FedRAMP gap analysis: https://complianceiq.site`,
|
|
722
|
+
].join("\n");
|
|
723
|
+
return { content: [{ type: "text", text: output }] };
|
|
724
|
+
});
|
|
725
|
+
// Tool 6: ConMon Deliverables Generator
|
|
726
|
+
server.tool("conmon_deliverables", "Generate FedRAMP Continuous Monitoring (ConMon) deliverable templates and checklists for monthly, quarterly, and annual requirements.", {
|
|
727
|
+
period: z.enum(["monthly", "quarterly", "annual"]).describe("ConMon period to generate deliverables for"),
|
|
728
|
+
month: z.string().optional().describe("Specific month (e.g., 'January 2026') for the deliverable header"),
|
|
729
|
+
cspName: z.string().default("[CSP]").describe("Cloud Service Provider name"),
|
|
730
|
+
systemName: z.string().default("[System Name]").describe("System name"),
|
|
731
|
+
}, async ({ period, month, cspName, systemName }) => {
|
|
732
|
+
const periodLabel = month || `[Month/Year]`;
|
|
733
|
+
let output;
|
|
734
|
+
if (period === "monthly") {
|
|
735
|
+
output = [
|
|
736
|
+
`# FedRAMP Monthly ConMon Deliverables`,
|
|
737
|
+
`**CSP:** ${cspName} | **System:** ${systemName} | **Period:** ${periodLabel}`,
|
|
738
|
+
``,
|
|
739
|
+
`## Required Monthly Deliverables`,
|
|
740
|
+
``,
|
|
741
|
+
`### 1. Vulnerability Scan Results`,
|
|
742
|
+
`- [ ] OS/infrastructure scan results (all unique vulnerabilities)`,
|
|
743
|
+
`- [ ] Web application scan results`,
|
|
744
|
+
`- [ ] Database scan results`,
|
|
745
|
+
`- [ ] Container image scan results (if applicable)`,
|
|
746
|
+
`- [ ] Scan coverage report (% of assets scanned)`,
|
|
747
|
+
``,
|
|
748
|
+
`### 2. Updated POA&M`,
|
|
749
|
+
`- [ ] New findings added from this month's scans`,
|
|
750
|
+
`- [ ] Status updates on existing items`,
|
|
751
|
+
`- [ ] Closed items with evidence of remediation`,
|
|
752
|
+
`- [ ] Overdue items with revised milestones`,
|
|
753
|
+
`- [ ] Risk-adjusted completion dates`,
|
|
754
|
+
``,
|
|
755
|
+
`### 3. Inventory Updates`,
|
|
756
|
+
`- [ ] Hardware inventory changes`,
|
|
757
|
+
`- [ ] Software inventory changes`,
|
|
758
|
+
`- [ ] Data flow diagram updates (if changed)`,
|
|
759
|
+
``,
|
|
760
|
+
`### 4. Significant Changes`,
|
|
761
|
+
`- [ ] Significant change requests submitted (if any)`,
|
|
762
|
+
`- [ ] Impact analysis for approved changes`,
|
|
763
|
+
``,
|
|
764
|
+
`### 5. Incident Reports`,
|
|
765
|
+
`- [ ] Security incidents reported to US-CERT`,
|
|
766
|
+
`- [ ] Agency customer notifications`,
|
|
767
|
+
`- [ ] Incident status updates`,
|
|
768
|
+
``,
|
|
769
|
+
`## Remediation Status Summary`,
|
|
770
|
+
`| Category | Total Open | New This Month | Closed This Month | Overdue |`,
|
|
771
|
+
`|----------|-----------|---------------|-------------------|---------|`,
|
|
772
|
+
`| Critical/High | | | | |`,
|
|
773
|
+
`| Moderate | | | | |`,
|
|
774
|
+
`| Low | | | | |`,
|
|
775
|
+
``,
|
|
776
|
+
`## Submission`,
|
|
777
|
+
`- Submit to FedRAMP PMO by the [N]th of each month`,
|
|
778
|
+
`- Share with all leveraging agencies`,
|
|
779
|
+
``,
|
|
780
|
+
].join("\n");
|
|
781
|
+
}
|
|
782
|
+
else if (period === "quarterly") {
|
|
783
|
+
output = [
|
|
784
|
+
`# FedRAMP Quarterly ConMon Deliverables`,
|
|
785
|
+
`**CSP:** ${cspName} | **System:** ${systemName} | **Period:** ${periodLabel}`,
|
|
786
|
+
``,
|
|
787
|
+
`## Required Quarterly Deliverables`,
|
|
788
|
+
``,
|
|
789
|
+
`### 1. Security Control Testing (Subset)`,
|
|
790
|
+
`- [ ] Control subset selection (1/3 of controls tested per quarter)`,
|
|
791
|
+
`- [ ] Testing methodology documentation`,
|
|
792
|
+
`- [ ] Testing results and findings`,
|
|
793
|
+
`- [ ] New POA&M items from control testing`,
|
|
794
|
+
``,
|
|
795
|
+
`### 2. Quarterly Scan Summary`,
|
|
796
|
+
`- [ ] Trend analysis across 3 months`,
|
|
797
|
+
`- [ ] Persistent vulnerability identification`,
|
|
798
|
+
`- [ ] Remediation effectiveness metrics`,
|
|
799
|
+
``,
|
|
800
|
+
`### 3. Updated SSP Sections (if changes occurred)`,
|
|
801
|
+
`- [ ] Architecture changes documented`,
|
|
802
|
+
`- [ ] Control implementation updates`,
|
|
803
|
+
`- [ ] New interconnections documented`,
|
|
804
|
+
``,
|
|
805
|
+
`### Controls Tested This Quarter`,
|
|
806
|
+
`| Control | Test Method | Result | Finding |`,
|
|
807
|
+
`|---------|------------|--------|---------|`,
|
|
808
|
+
`| | | | |`,
|
|
809
|
+
``,
|
|
810
|
+
].join("\n");
|
|
811
|
+
}
|
|
812
|
+
else {
|
|
813
|
+
output = [
|
|
814
|
+
`# FedRAMP Annual ConMon Deliverables`,
|
|
815
|
+
`**CSP:** ${cspName} | **System:** ${systemName} | **Period:** ${periodLabel}`,
|
|
816
|
+
``,
|
|
817
|
+
`## Required Annual Deliverables`,
|
|
818
|
+
``,
|
|
819
|
+
`### 1. Annual 3PAO Assessment`,
|
|
820
|
+
`- [ ] 3PAO engagement (A2LA accredited)`,
|
|
821
|
+
`- [ ] Security Assessment Plan (SAP)`,
|
|
822
|
+
`- [ ] Security Assessment Report (SAR)`,
|
|
823
|
+
`- [ ] Findings remediation plan`,
|
|
824
|
+
``,
|
|
825
|
+
`### 2. Annual Penetration Testing`,
|
|
826
|
+
`- [ ] Pen test scope (external, internal, social engineering as applicable)`,
|
|
827
|
+
`- [ ] Pen test results and findings`,
|
|
828
|
+
`- [ ] Remediation for pen test findings`,
|
|
829
|
+
``,
|
|
830
|
+
`### 3. SSP Annual Update`,
|
|
831
|
+
`- [ ] Complete SSP review and update`,
|
|
832
|
+
`- [ ] Architecture diagrams current`,
|
|
833
|
+
`- [ ] Data flow diagrams current`,
|
|
834
|
+
`- [ ] Customer Responsibility Matrix updated`,
|
|
835
|
+
`- [ ] All control implementations verified current`,
|
|
836
|
+
``,
|
|
837
|
+
`### 4. Contingency Plan Testing`,
|
|
838
|
+
`- [ ] Contingency plan test executed`,
|
|
839
|
+
`- [ ] Test results documented`,
|
|
840
|
+
`- [ ] Lessons learned incorporated`,
|
|
841
|
+
`- [ ] Plan updated based on test results`,
|
|
842
|
+
``,
|
|
843
|
+
`### 5. Annual Security Training`,
|
|
844
|
+
`- [ ] Security awareness training completed (all users)`,
|
|
845
|
+
`- [ ] Role-based training for security personnel`,
|
|
846
|
+
`- [ ] Training completion records`,
|
|
847
|
+
``,
|
|
848
|
+
`### 6. Access Review`,
|
|
849
|
+
`- [ ] Comprehensive access review all users`,
|
|
850
|
+
`- [ ] Privileged access justification review`,
|
|
851
|
+
`- [ ] Separation of duties conflict review`,
|
|
852
|
+
``,
|
|
853
|
+
].join("\n");
|
|
854
|
+
}
|
|
855
|
+
output += `\n---\nAutomate your FedRAMP ConMon: https://complianceiq.site`;
|
|
856
|
+
return { content: [{ type: "text", text: output }] };
|
|
857
|
+
});
|
|
858
|
+
// ── Start Server ──────────────────────────────────────────────────────
|
|
859
|
+
async function main() {
|
|
860
|
+
const transport = new StdioServerTransport();
|
|
861
|
+
await server.connect(transport);
|
|
862
|
+
}
|
|
863
|
+
main().catch((error) => {
|
|
864
|
+
console.error("Server error:", error);
|
|
865
|
+
process.exit(1);
|
|
866
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fedramp-compliance-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP server for FedRAMP compliance — browse security controls by baseline (Low/Moderate/High), assess authorization readiness, generate SSP/POA&M templates, evidence checklists, and gap analysis for cloud service providers seeking federal authorization",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"fedramp-compliance-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"start": "node dist/index.js",
|
|
17
|
+
"prepublishOnly": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"mcp",
|
|
21
|
+
"model-context-protocol",
|
|
22
|
+
"fedramp",
|
|
23
|
+
"federal-risk-authorization",
|
|
24
|
+
"nist-800-53",
|
|
25
|
+
"cloud-security",
|
|
26
|
+
"csp",
|
|
27
|
+
"cloud-service-provider",
|
|
28
|
+
"ato",
|
|
29
|
+
"authorization-to-operate",
|
|
30
|
+
"jab",
|
|
31
|
+
"p-ato",
|
|
32
|
+
"agency-authorization",
|
|
33
|
+
"fisma",
|
|
34
|
+
"continuous-monitoring",
|
|
35
|
+
"conmon",
|
|
36
|
+
"system-security-plan",
|
|
37
|
+
"poam",
|
|
38
|
+
"vulnerability-management",
|
|
39
|
+
"3pao",
|
|
40
|
+
"regtech",
|
|
41
|
+
"complianceiq"
|
|
42
|
+
],
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
45
|
+
"zod": "^3.24.4"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@types/node": "^25.8.0",
|
|
49
|
+
"typescript": "^5.8.3"
|
|
50
|
+
}
|
|
51
|
+
}
|