关于 FedRAMP 20x Requirements
FedRAMP 20x Requirements 是面向 FedRAMP 20x 实施团队的 MCP 服务,支持查询要求和基于代码的合规分析,并优先提供 Azure 实施指导。
主要功能
- 01按控制项、系列和关键词查询
- 02查阅官方定义与文档
- 03使用 AST 和 YAML 模式分析代码
- 04生成自动化证据收集指导
- 05按应用配置筛选发现项
适用场景
- 01查找控制项或系列的要求
- 02检查代码是否符合 FedRAMP 20x
- 03规划有效 KSI 的证据收集
MCP 相关
向 MCP 客户端提供 FedRAMP 20x 要求、文档、搜索和分析工具。README 提到提供 48 个工具和 15 个提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
FedRAMP 20x MCP 服务
一个 MCP(Model Context Protocol)服务,提供 FedRAMP 20x 安全要求和控制的访问,并提供以 Azure 为先的指导。
概述
此服务从官方 FedRAMP 文档仓库加载 FedRAMP 20x 数据,并提供按控制项、系列或关键词查询要求的工具。
数据来源:
- 要求数据: 来自 github.com/FedRAMP/docs(根目录)的 JSON 文件
- 文档: 来自 github.com/FedRAMP/docs/tree/main/docs 的 Markdown 文件
Azure 侧重: 所有实施示例、架构模式和供应商建议均优先采用 Microsoft Azure 服务(Azure Government、Microsoft Entra ID、Azure Key Vault、AKS、Azure Functions、Bicep 等),并在适当情况下保持云平台无关。
数据覆盖范围
此服务提供对 FedRAMP 20x 文档中 321 项要求(199 项 FRR + 72 项 KSI + 50 项 FRD)的访问:
FedRAMP 要求(FRR)——10 个系列共 199 项要求:
- ADS - 授权数据共享(20 项要求)
- CCM - 协作式持续监控(25 项要求)
- FSI - FedRAMP 安全收件箱(16 项要求)
- ICP - 事件通信流程(9 项要求)
- MAS - 最低评估范围(12 项要求)
- PVA - 持续验证与评估(22 项要求)
- RSC - 建议的安全配置(10 项要求)
- SCN - 重大变更通知(22 项要求)
- UCM - 使用加密模块(4 项要求)
- VDR - 漏洞检测与响应(57 项要求)
- KSI - 关键安全指标(2 项要求)
关键安全指标(KSI)——11 个系列共 72 项指标:
- AFR - 架构、功能与资源(11 项指标)
- CED - 持续证据交付(4 项指标)
- CMT - 持续监控与测试(5 项指标)
- CNA - 云原生架构(8 项指标)
- IAM - 身份与访问管理(7 项指标)
- INR - 事件与未遂事件报告(3 项指标)
- MLA - 监控、日志记录与告警(8 项指标)
- PIY - 隐私与透明度(8 项指标)
- RPL - 弹性与恢复规划(4 项指标)
- SVC - 安全编码与漏洞管理(10 项指标)
- TPR - 第三方风险管理(4 项指标)
FedRAMP 定义(FRD)——50 个官方术语定义
功能
- 🎯 自动化证据收集(新增):针对 65 个有效 KSI 提供自动化指导,使用 Azure 原生服务,并提供可直接使用的查询和工件规范
- 按控制项查询:获取特定 FedRAMP 要求的详细信息
- 按系列查询:列出某个系列中的所有要求
- 关键词搜索:使用关键词搜索所有要求
- FedRAMP 定义:查询 FedRAMP 官方术语定义
- 关键安全指标:访问和查询 FedRAMP 关键安全指标(KSI)及其实施状态
- 文档搜索:搜索并获取 FedRAMP 官方文档 Markdown 文件
- 动态内容:自动发现并加载所有 Markdown 文档文件
- 实施规划:生成策略性访谈问题,帮助产品经理和工程师深入思考 FedRAMP 20x 实施的注意事项
- AST 驱动的代码分析:使用 tree-sitter 进行高级抽象语法树解析,对 Python、C#、Java、TypeScript/JavaScript、Bicep 和 Terraform 进行准确且考虑上下文的安全分析
- 语义分析:深入理解代码,具备符号解析、控制流分析和过程间分析能力
- 🚀 基于模式的架构:统一分析引擎,包含覆盖 23 个要求系列的 381 个 YAML 模式,支持对 KSI 和 FRR 进行合规性分析
- 模式引擎:由声明式 YAML 驱动,支持 14 种语言的检测,采用 AST 优先分析并智能归类发现项
- 🎯 感知上下文的筛选(新增):通过分析工具的
application_profile参数指定应用类型(cli-tool、mcp-server、web-app、api-service、iac-only、library、batch-job、full),减少误报
基于模式的分析架构
此服务采用统一的基于模式的架构,执行所有 FedRAMP 20x 合规性分析:
架构概览:
- 覆盖 23 个要求系列的 381 个 YAML 模式
- 单一分析引擎(
GenericPatternAnalyzer)取代 271 个传统分析器 - 支持 14 种语言:Python、C#、Java、TypeScript、JavaScript、Bicep、Terraform、GitHub Actions、Azure Pipelines、GitLab CI、YAML、JSON、Dockerfile、GitHub
- 采用 tree-sitter 进行 AST 优先检测,确保准确性;必要时回退到正则表达式
- 声明式模式易于维护和扩展
各系列的模式覆盖范围:
- 应用系列:ADS、AFR、CCM、CED、CMT、CNA、IAM、INR、MLA、PIY、RPL、RSC、SCN、SVC、TPR、UCM、VDR(17 个系列)
- 基础设施系列:COMMON、FSI、ICP、KSI、MAS、PVA(6 个系列)
- KSI 与 FRR 映射:通过模式定义支持 72 个 KSI 和 199 个 FRR
工作原理:
- 加载模式:从
data/patterns/目录加载 YAML 模式 - 执行分析:使用 tree-sitter AST 解析和模式匹配来分析代码
- 生成发现项:模式会生成包含严重性、描述和修复建议的发现项
- 汇总结果:按要求系列对发现项分组并去重
优势:
- ✅ 一致性:所有语言使用相同的检测逻辑
- ✅ 易维护:在 YAML 中更新模式,无需修改 Python 代码
- ✅ 高性能:模式编译和缓存可提升分析速度
- ✅ 可扩展:无需修改代码即可添加新模式
- ✅ 准确性:基于 AST 的检测可减少误报
重要说明:OSCAL 格式 FedRAMP 20x 要求在授权数据共享中使用机器可读格式(JSON、XML 或结构化数据)。FedRAMP 20x 要求中未提及 OSCAL——它是 NIST 标准,可作为一种潜在的实现方式。实际要求仅为“机器可读”;你可以根据实现需求使用自定义 JSON/XML 或 OSCAL。
安装
前置条件
- Python 3.10 或更高版本
- pip(随 Python 一起安装)
- Python 必须位于系统 PATH 中
设置
# Clone the repository
git clone https://github.com/KevinRabun/FedRAMP20xMCP.git
cd FedRAMP20xMCP
# Create virtual environment and install
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .
# If using uv (alternative package manager):
uv pip install -e .
依赖项:
mcp>=1.2.0- Model Context Protocol SDKhttpx>=0.27.0- 用于获取 FedRAMP 数据的 HTTP 客户端openpyxl>=3.1.0- 用于导出功能的 Excel 文件生成python-docx>=1.1.0- 用于生成 KSI 规范的 Word 文档tree-sitter>=0.21.0- 代码分析用 AST 解析库tree-sitter-python>=0.21.0- tree-sitter 的 Python 语言绑定tree-sitter-c-sharp>=0.21.0- tree-sitter 的 C# 语言绑定tree-sitter-java>=0.21.0- tree-sitter 的 Java 语言绑定tree-sitter-javascript>=0.21.0- JavaScript/TypeScript 语言绑定
故障排查:
如果遇到问题,请参阅高级设置指南,了解详细的故障排查步骤。
安全
漏洞披露: 如果您发现安全漏洞,请参阅我们的安全政策,了解负责任的漏洞披露流程(KSI-PIY-03)。
审计日志: 所有 MCP 服务操作都会记录到 stderr,以供审计(KSI-MLA-05)。
安全功能:
- ✅ 无需身份验证(本地开发工具)
- ✅ 不处理 Federal Customer Data
- ✅ 仅通过 HTTPS 连接到 GitHub
- ✅ 1 小时缓存 TTL 可减少外部请求
- ✅ 所有依赖项均使用最低安全版本
完整的安全文档请参阅 SECURITY.md。
使用方法
搭配 VS Code 和 GitHub Copilot 使用
-
安装 VS Code MCP 扩展(如果尚未安装)
-
配置 MCP 服务 - 选择以下作用范围之一:
选项 A:工作区级别(建议用于共享)
将以下内容添加到项目中的
.vscode/mcp.json:{ "servers": { "fedramp-20x-mcp": { "type": "stdio", "command": "python", "args": ["-m", "fedramp_20x_mcp"] } } }如果 Python 不在 PATH 中,请将命令更新为使用虚拟环境中的 Python:
{ "servers": { "fedramp-20x-mcp": { "type": "stdio", "command": "${workspaceFolder}/.venv/Scripts/python.exe", // Windows // "command": "${workspaceFolder}/.venv/bin/python", // macOS/Linux "args": ["-m", "fedramp_20x_mcp"] } } }选项 B:用户级别(适用于所有项目的全局配置)
添加到 VS Code 用户设置(
settings.json):{ "github.copilot.chat.mcp.servers": { "fedramp-20x-mcp": { "type": "stdio", "command": "python", "args": ["-m", "fedramp_20x_mcp"] } } }安全提示: 不要在配置中使用
"alwaysAllow"。VS Code 会在首次使用时提示您授予权限,这是安全最佳实践。 -
可选:配置 VS Code 设置,将
.vscode/settings.json.example复制为.vscode/settings.json -
重新加载 VS Code 以启用 MCP 服务
-
按照 VS Code 提示授予权限(仅首次使用时)
-
与 GitHub Copilot Chat 搭配使用:
- 打开 Copilot Chat
- 询问有关 FedRAMP 20x 要求的问题
- 使用
@workspace查询特定控件或系列 - 使用全部 48 个工具和 15 个综合提示词
搭配 Claude Desktop 使用
将此服务添加到 Claude Desktop 配置中(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"fedramp-20x": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/FedRAMP20xMCP",
"run",
"fedramp-20x-mcp"
]
}
}
}
注意: 将 /absolute/path/to/FedRAMP20xMCP 替换为实际安装路径。
搭配 MCP Inspector 使用
使用 MCP Inspector 测试服务:
npx @modelcontextprotocol/inspector python -m fedramp_20x_mcp
⚠️ Copilot 执行策略
本仓库对所有 AI 辅助编码均采用严格指令。
参阅:Copilot 指令
高级配置
有关 CI/CD 集成、与 Azure 和 GitHub 的多服务配置或详细故障排查,请参阅:
- CI/CD 集成指南 - 在 GitHub Actions、Azure DevOps 和其他流水线中使用分析器
- 高级设置指南 - 多服务配置、Azure 集成、故障排查
可用工具
服务器提供 48 个工具,分为以下类别:
核心工具(8 个): 查询要求(get_control、list_family_controls、search_requirements)、查询定义(get_definition、list_definitions、search_definitions)和 KSI(get_ksi、list_ksi) KSI 工具(9 个): KSI 实施状态、证据自动化、证据查询、证据制品、实施矩阵、实施摘要、覆盖范围摘要、覆盖范围状态、系列状态 FRR 分析工具(7 个): 针对特定 FRR、所有 FRR 或 FRR 系列分析代码;列出 FRR;获取 FRR 元数据、证据自动化和实施状态 文档工具(3 个): 搜索和检索 FedRAMP 文档 增强工具(6 个): 实施示例、依赖项、工作量估算、云原生指南、架构验证、Rev 4 对比 导出工具(2 个): Excel/CSV 导出 规划工具(2 个): 生成实施问题和分步检查清单 证据收集工具(4 个): 基础设施代码模板、收集代码、架构指南、KSI 规范 代码分析工具(4 个): 基于 AST 的基础设施代码、应用代码、CI/CD 流水线分析,以及 FedRAMP 配置验证 安全工具(2 个): 检查软件包和依赖项文件中的 CVE 漏洞 代码增强工具(1 个): 为代码添加 FedRAMP 要求注释
get_control
获取特定 FedRAMP 要求或控制的详细信息。
参数:
control_id(字符串):要求标识符(例如,“FRD-ALL-01”、“KSI-AFR-01”)
list_family_controls
列出特定系列中的所有要求。
参数:
family(字符串):系列标识符(例如,“FRD”、“KSI”、“MAS”)
search_requirements
搜索包含特定关键词的要求。
参数:
keywords(字符串):要在要求文本中搜索的关键词
get_definition
获取特定术语的 FedRAMP 定义。
参数:
term(字符串):要查询的术语(例如,“vulnerability”、“cloud service offering”)
list_definitions
列出所有 FedRAMP 定义及其术语。
返回: 所有 FedRAMP 定义术语的完整列表
search_definitions
根据关键词搜索 FedRAMP 定义。
参数:
keywords(字符串):要在定义中搜索的关键词
get_ksi
获取特定关键安全指标的详细信息。
参数:
ksi_id(字符串):KSI 标识符(例如,“KSI-AFR-01”)
list_ksi
列出所有关键安全指标。
返回: 所有关键安全指标及其名称的完整列表
get_ksi_evidence_automation
获取特定 KSI 的证据自动化建议。65 个有效 KSI 包含自动化证据收集指南。
参数:
ksi_id(字符串):KSI 标识符(例如,“KSI-IAM-01”、“KSI-CNA-01”)
**返回:**证据收集自动化指南,包括:
- Azure 服务:每个 KSI 对应 5 项 Azure 服务(Log Analytics、Resource Graph、Azure Policy、Azure Monitor 等),并提供具体配置指南
- 注:建议使用 Microsoft Defender for Cloud(非强制),约 8–10 个 KSI 可借此简化漏洞扫描、安全态势管理和合规监控。也可使用其他工具(Qualys、Tenable、Trivy)。
- 收集方式:4–5 种自动化收集方法(持续监控、定期评估、事件驱动触发、日志聚合)
- 存储要求:保留策略(运营数据 30–90 天,合规数据 1–7 年)、加密标准、访问控制
- FRR-ADS 集成:用于 Authorization Data Sharing 合规的机器可读 API 端点
- 实施详情:工作量估算、先决条件、成本考量、责任方(Security、DevOps、Compliance、Engineering)
- 代码示例:基础设施即代码模板(Bicep、Terraform)和自动化脚本
**覆盖范围:**涵盖 11 个系列中的全部 65 个有效 KSI:
- IAM(7):MFA、权限管理、会话控制、凭据生命周期、用户终止、JIT 访问、共享账户
- CNA(8):网络分段、TLS 配置、连接日志记录、Azure Monitor、Key Vault、机密检测、容器注册表、GitHub Security
- MLA(5):日志聚合、保留、篡改检测、搜索功能、警报
- INR(3):事件响应计划、事件日志记录、事后报告
- AFR(11):资产发现、SBOM、渗透测试、开发/生产环境隔离、GitHub Actions 安全、容器扫描等
- SVC(9):FIPS 140-3 加密、API 身份验证、速率限制、输入验证、错误处理、机密管理、DoS 防护、机密轮换、依赖项管理
- CMT(4):持续监控、运行状况检查、配置基线、漂移检测
- CED(4):授权文档、系统边界、SSP 更新、持续交付
- TPR(2):供应链风险评估、供应链风险监控
- RPL(4):恢复目标、恢复计划、系统备份、恢复测试
- PIY(8):自动化清单、数据最小化、漏洞披露、安全设计、安全评估、投资有效性、供应链风险、高管支持
示例:get_ksi_evidence_automation("KSI-IAM-01") 会返回有关抗网络钓鱼 MFA 的自动化证据收集指南,包括 Entra ID 条件访问策略、通过 Log Analytics 获取登录日志、MFA 方法注册查询以及合规报告仪表板。
get_ksi_evidence_queries
获取特定 KSI 可直接使用的证据收集查询。
参数:
ksi_id(字符串):KSI 标识符(例如,“KSI-IAM-01”、“KSI-CNA-01”)
**返回:**用于从 Azure 收集证据的生产就绪查询(每个 KSI 5 个查询):
- KQL 查询:用于日志分析和指标的 Log Analytics/Azure Monitor Kusto 查询
- Azure Resource Graph:基础设施和配置状态查询
- REST API:用于以编程方式检索数据的 Azure Resource Manager API 调用
- Azure CLI:用于提取证据的命令行脚本
- PowerShell:用于自动收集的 Azure PowerShell cmdlet
示例:get_ksi_evidence_queries("KSI-CNA-01") 会返回用于 NSG 规则、Azure Firewall 策略、虚拟网络配置、子网分段分析和网络拓扑验证的 Resource Graph 查询。
get_ksi_evidence_artifacts
获取特定 KSI 需要收集的证据材料规范。
参数:
ksi_id(string):KSI 标识符(例如,“KSI-IAM-01”、“KSI-CNA-01”)
**返回:**详细的材料规范(每个 KSI 包含 5 份材料):
- 材料名称:所需的具体证据文件/报告(例如,“MFA_Sign_In_Logs.csv”、“NSG_Rule_Export.json”)
- 收集方法:如何获取每份材料(自动导出、API 检索、仪表板截图、合规报告)
- 文件格式:CSV、JSON、PDF、PNG(仪表板截图)、XLSX(合规矩阵)
- 更新频率:根据要求的关键程度,按日、周、月或季度收集
- 保留要求:运营数据保留 30-90 天,合规证据保留 1-7 年
- 存储建议:使用启用加密、访问日志和不可变策略的 Azure Blob Storage
示例:get_ksi_evidence_artifacts("KSI-IAM-01") 返回登录日志(CSV,每日收集,保留 90 天)、条件访问策略导出文件(JSON,每周收集,保留 1 年)、MFA 方法注册报告(XLSX,每月收集,保留 3 年)、身份验证仪表板截图(PNG,每季度收集,保留 1 年)以及 MFA 合规矩阵(PDF,每月收集,保留 7 年)。
analyze_frr_code
根据特定的 FedRAMP 要求(FRR)分析代码,检查合规问题。
参数:
frr_id(string):FRR 标识符(例如,“FRR-VDR-01”、“FRR-RSC-01”、“FRR-ADS-01”)code(string):要分析的代码language(string):语言/平台 -"python"、"csharp"、"java"、"typescript"、"bicep"、"terraform"、"github-actions"、"azure-pipelines"、"gitlab-ci"file_path(string,可选):用于提供上下文的文件路径
**返回:**包含发现项、严重程度和修复建议的分析结果
支持的 FRR 系列:
- VDR - 漏洞检测与响应(59 项要求):漏洞扫描、补丁管理、修复时限、偏差跟踪、KEV 漏洞处理
- RSC - 建议的安全配置(10 项要求):安全基线、配置管理、加固标准
- UCM - 使用加密模块(4 项要求):FIPS 140-3 合规性、密钥管理、加密标准
- SCN - 重大变更通知(26 项要求):变更管理、通知流程、影响评估
- ADS - 授权数据共享(22 项要求):机器可读的证据 API、数据格式、身份验证
- CCM - 协作式持续监控(25 项要求):监控流程、季度审查、评估协调
- MAS - 最低评估范围(12 项要求):授权边界、系统清单、评估要求
- ICP - 事件通信流程(9 项要求):事件通知、通信协议、升级流程
- FSI - FedRAMP 安全收件箱(16 项要求):安全收件箱管理、漏洞披露、响应流程
- PVA - 持续验证与评估(22 项要求):持续验证、评估流程、测试要求
检查内容: 使用基于 AST 的语义分析,检查代码是否存在特定于 FRR 的合规问题:
- 应用程序代码:安全控制、API 实现、加密使用、日志记录、错误处理
- 基础设施即代码:资源配置、安全设置、合规控制、网络策略
- CI/CD 流水线:安全关卡、测试要求、部署流程、证据收集
用法示例:
# Check Python code for FRR-VDR-01 compliance (vulnerability scanning)
result = analyze_frr_code(
frr_id="FRR-VDR-01",
code="""import subprocess
subprocess.run(['trivy', 'image', 'myapp:latest'])
""",
language="python"
)
# ✅ Detects Trivy vulnerability scanning implementation
# Check Bicep for FRR-ADS-01 compliance (machine-readable evidence)
result = analyze_frr_code(
frr_id="FRR-ADS-01",
code="""resource apiManagement 'Microsoft.ApiManagement/service@2023-05-01-preview' = {
name: 'evidence-api'
properties: {
publisherEmail: '[email protected]'
publisherName: 'Contoso'
}
}""",
language="bicep"
)
# ✅ Validates API Management for authorization data sharing
analyze_all_frrs
针对全部 199 项 FedRAMP 要求分析代码,进行合规性分析。
参数:
code(string):要分析的代码language(string):语言/平台(python、csharp、java、typescript、bicep、terraform、github-actions、azure-pipelines、gitlab-ci)file_path(string,可选):用于提供上下文的文件路径
**返回:**按 FRR 系列分组的分析结果及汇总统计信息
使用场景:
- 部署前验证:在生产部署前检查所有代码
- 合规审计:通过分析扫描为认证准备工作提供支持
- 安全审查:识别所有 FedRAMP 合规性差距
- CI/CD 集成:在管道中自动检查合规性
输出结构:
- 按系列整理调查结果(VDR、RSC、UCM、SCN、ADS、CCM 等)
- 汇总统计信息:调查结果总数,以及严重、高、中、低级别的数量
- 列出符合要求的项目
- 提供可执行的修复指导
使用示例:
# Comprehensive FRR analysis of Bicep infrastructure code
result = analyze_all_frrs(
code=bicep_template,
language="bicep",
file_path="main.bicep"
)
# Returns findings across all 10 FRR families
**性能:**通过并行处理和 AST 缓存,可在 2-5 秒内分析全部 199 项 FRR。
analyze_frr_family
针对特定 FRR 系列的所有要求分析代码。
参数:
family(string):系列代码——"VDR"、"RSC"、"UCM"、"SCN"、"ADS"、"CCM"、"MAS"、"ICP"、"FSI"、"PVA"code(string):要分析的代码language(string):语言/平台file_path(string,可选):用于提供上下文的文件路径
**返回:**指定系列所有要求的分析结果
常见使用场景:
VDR 系列(59 项要求):
# Check CI/CD pipeline for vulnerability management compliance
result = analyze_frr_family(
family="VDR",
code=github_actions_yaml,
language="github-actions"
)
# Checks: Vulnerability scanning, patch procedures, remediation timeframes,
# deviation management, KEV tracking, monthly reporting
ADS 系列(22 项要求):
# Validate authorization data sharing API implementation
result = analyze_frr_family(
family="ADS",
code=python_api_code,
language="python"
)
# Checks: Machine-readable formats, API authentication, data accuracy,
# real-time updates, audit logging, access controls
RSC 系列(10 项要求):
# Check infrastructure for secure configuration compliance
result = analyze_frr_family(
family="RSC",
code=terraform_code,
language="terraform"
)
# Checks: Security baselines, configuration standards, hardening,
# drift detection, compliance validation
list_frrs_by_family
列出特定系列中的所有 FRR 要求及其实现状态。
参数:
family(string):系列代码(VDR、RSC、UCM、SCN、ADS、CCM、MAS、ICP、FSI、PVA)
**返回:**该系列中所有 FRR 的列表,包含:
- FRR ID 和名称
- 实现状态(已实现/未实现)
- 代码可检测性(代码可检测/基于流程)
- NIST 800-53 控制映射
- 影响级别(低/中/高)
使用示例:
# List all vulnerability detection requirements
result = list_frrs_by_family("VDR")
# Returns 59 VDR requirements with status indicators
# List all authorization data sharing requirements
result = list_frrs_by_family("ADS")
# Returns 22 ADS requirements
使用场景:
- 查找系列中可用的 FRR 要求
- 检查实现覆盖情况
- 规划 FRR 实现优先级
- 了解代码要求与流程要求的区别
get_frr_metadata
获取特定 FRR 的详细元数据,包括 NIST 控制、相关 KSI 和检测策略。
参数:
frr_id(string):FRR 标识符(例如,"FRR-VDR-01")
**返回:**FRR 元数据,包含:
- FRR 详情:ID、名称、系列、要求说明
- NIST 800-53 控制:相关安全控制
- 相关 KSI:与此 FRR 对应的关键安全指标
- 影响级别:适用的授权级别(低/中/高)
- 检测策略:验证要求的方式(代码分析、配置检查、流程审查)
- 实现指导:Azure 专属建议和最佳实践
使用示例:
# Get metadata for FRR-VDR-01 (vulnerability scanning)
result = get_frr_metadata("FRR-VDR-01")
# Returns: NIST controls (RA-5, SI-2), related KSIs (KSI-AFR-04),
# detection strategy (CI/CD pipeline analysis, tool configuration checks)
# Get metadata for FRR-ADS-01 (machine-readable evidence)
result = get_frr_metadata("FRR-ADS-01")
# Returns: NIST controls (CA-2, CA-5, CA-7), related KSIs (KSI-CED-01),
# detection strategy (API endpoint analysis, data format validation)
使用场景:
- 在实现前了解 FRR 要求
- 将 FRR 映射到 NIST 控制,以编制合规文档
- 确定相关 KSI,以采用集成式合规方法
- 获取 Azure 专属实现指导
get_frr_evidence_automation
获取特定 FRR 的证据自动化建议。
参数:
frr_id(string):FRR 标识符(例如,"FRR-VDR-01"、"FRR-ADS-01")
**返回:**证据自动化指导,包括:
- 证据类型:基于配置、基于日志或基于 API 的证据
- 自动化可行性:自动化潜力高/中/低
- Azure 服务:推荐用于证据收集的 3-5 项服务
- 收集方法:自动化方法(Azure Monitor、Resource Graph、Policy、API)
- 存储要求:保留策略、加密、访问控制
- 证据制品:要收集的特定文件/报告
- 实施步骤:自动化设置的分步指南
- 代码示例:基础设施模板和脚本
- 更新频率:每日/每周/每月/每季度的收集计划
- 责任方:团队归属(安全、DevOps、合规)
使用示例:
# Get evidence automation for FRR-VDR-01 (vulnerability scanning)
result = get_frr_evidence_automation("FRR-VDR-01")
# Returns: Azure Defender for Cloud configuration, KQL queries for
# vulnerability data, scan result export automation, compliance dashboards
# Get evidence automation for FRR-ADS-01 (data sharing API)
result = get_frr_evidence_automation("FRR-ADS-01")
# Returns: API Management setup, authentication configuration,
# audit logging, API call metrics, response format validation
支持的 FRR 系列:
- VDR:漏洞扫描结果、修补状态、修复跟踪、偏差审批
- ADS:API 调用日志、数据格式合规性、身份验证记录、访问审计
- CCM:监控指标、季度审查制品、评估协调日志
- RSC:配置基线、偏差检测报告、合规扫描结果
- 所有其他系列:针对特定系列的证据建议
get_frr_implementation_status
获取所有 FRR 分析器的实施状态摘要。
**参数:**无
**返回:**实施状态摘要,包括:
- FRR 总数:10 个系列中的 199 项要求
- 各系列实施情况:VDR(59)、RSC(10)、UCM(4)、SCN(26)、ADS(22)、CCM(25)、MAS(12)、ICP(9)、FSI(16)、PVA(22)
- 状态细分:已实施与未实施的数量
- 可通过代码检测:可通过代码分析进行验证的要求
- 基于流程:需要人工审查或文档的要求
- 覆盖率统计:各系列的实施完成百分比
使用示例:
# Get overall FRR implementation status
result = get_frr_implementation_status()
# Returns: Family-by-family breakdown with implementation rates
使用场景:
- 跟踪 FRR 分析器的开发进度
- 找出 FRR 覆盖范围中的缺口
- 规划 FRR 实施优先级
- 汇报合规自动化能力
输出示例:
FRR Implementation Status:
- VDR Family: 59/59 patterns available
- RSC Family: 10/10 patterns available
- ADS Family: 22/22 patterns available
- Total: 199/199 patterns available
Code-Detectable: 145 FRRs (73%)
Process-Based: 54 FRRs (27%)
compare_with_rev4
比较 FedRAMP 20x 与 Rev 4/Rev 5 在特定领域的要求。
参数:
requirement_area(string):要比较的领域(例如,“持续监控”、“漏洞管理”、“授权边界”、“证据收集”、“变更管理”、“事件响应”)
get_implementation_examples
获取特定要求的实际实施示例。
参数:
requirement_id(string):要求标识符(例如,“KSI-IAM-01”、“FRR-VDR-01”)
check_requirement_dependencies
检查 FedRAMP 20x 要求之间的依赖关系。
参数:
requirement_id(string):要检查依赖关系的要求标识符
estimate_implementation_effort
估算特定要求的实施工作量。
参数:
requirement_id(string):要估算工作量的要求标识符
get_cloud_native_guidance
获取特定 Azure 和多云技术的云原生实施指导。
参数:
technology(string):要获取指导的技术(例如,“kubernetes”、“containers”、“serverless”、“terraform”)
**注意:**所有云示例和最佳实践均优先采用 Azure 服务(AKS、Azure Functions、Key Vault、Bicep 等)
validate_architecture
根据 FedRAMP 20x 要求验证系统架构。
参数:
architecture_description(string):要验证的架构描述
search_documentation
搜索 FedRAMP 官方文档 Markdown 文件中的特定关键词。
参数:
keywords(string):要在文档中搜索的关键词
**返回:**包含匹配内容及上下文的文档片段,来自所有可用的 Markdown 文件
**注意:**自动加载 docs 目录中的 Markdown 文件,以供搜索。
get_documentation_file
获取指定 FedRAMP 文档文件的完整内容。
参数:
filename(string):Markdown 文件名(例如,“overview.md”“key-security-indicators.md”)
**返回:**文档文件的完整 Markdown 内容
list_documentation_files
列出所有可用的 FedRAMP 文档文件。
**返回:**从仓库动态发现的所有 Markdown 文档文件的完整列表
export_to_excel
将 FedRAMP 20x 数据导出为 Excel 文件,以便离线分析和报告。
参数:
export_type(string):要导出的数据类型:"ksi"- 全部 72 项关键安全指标"all_requirements"- 所有控制族中的全部 329 项要求"definitions"- 所有 FedRAMP 术语定义
output_path(string,可选):自定义输出路径。如果未提供,则保存到 Downloads 文件夹
**返回:**生成的 Excel 文件路径,文件采用专业格式(样式化表头、边框、冻结窗格)
KSI 导出列:
- KSI ID - 唯一标识符(例如,KSI-AFR-01)
- 名称 - KSI 名称
- 类别 - 控制族类别
- 状态 - 有效或已退役
- 声明 - 完整的要求声明
- 备注 - 补充信息(例如,已退役 KSI 的替代说明)
- NIST 800-53 控制项 - 相关安全控制项及其标题
- 参考资料 - 参考文档名称(如适用)
- 参考资料 URL - FedRAMP 文档链接(如适用)
- 影响级别 - 适用级别(低、中、高)
所有要求导出列:
- 要求 ID - 唯一标识符
- 控制族 - 控制族
- 术语/名称 - 要求名称
- 描述 - 完整描述
- 文档 - 来源文档
定义导出列:
- 术语 - FedRAMP 术语
- 定义 - 术语定义
- 备注 - 补充背景信息
- 参考资料 - 相关文档
用法示例:
- 导出所有 KSI:
export_to_excel("ksi") - 导出所有要求:
export_to_excel("all_requirements") - 导出定义:
export_to_excel("definitions")
export_to_csv
将 FedRAMP 20x 数据导出为 CSV 文件,以便进行数据分析和导入电子表格。
参数:
export_type(string):要导出的数据类型:"ksi"- 全部 72 项关键安全指标"all_requirements"- 所有控制族中的全部 329 项要求"definitions"- 所有 FedRAMP 术语定义
output_path(string,可选):自定义输出路径。如果未提供,则保存到 Downloads 文件夹
**返回:**生成的 CSV 文件路径
**列:**与 Excel 导出的结构相同(详细列说明见上文)
用法示例:
- 导出所有 KSI:
export_to_csv("ksi") - 导出所有要求:
export_to_csv("all_requirements") - 导出定义:
export_to_csv("definitions")
generate_ksi_specification
生成 KSI 产品规格说明书 Word 文档,为工程实施和规划提供指导。
参数:
ksi_id(字符串):KSI 标识符(例如,“KSI-AFR-01”)evidence_collection_strategy(字符串):用户提供的高层级证据收集策略说明output_path(字符串,可选):自定义输出路径。若未提供,则保存到“下载”文件夹
**返回:**生成的 Word(.docx)文档路径
文档内容:
- 元数据:KSI ID、类别、影响级别、状态、日期
- 概述:符合 FedRAMP 20x 要求的目的和范围
- 要求声明:完整的 KSI 要求文本
- NIST 800-53 控制措施:相关安全控制措施及其标题
- Azure 优先实施方案:推荐的 Azure 服务、IaC 指导和自动化策略
- 证据收集:用户定义的策略 + 推荐的证据类型和灵活的收集计划
- 5 阶段实施计划:需求分析 → 设计 → 实施 → 测试 → 文档编制(由工程团队确定时间安排)
- 团队角色:云架构师、DevOps、安全工程师、合规专员等
- 成功标准:用于验证实施情况的可衡量结果
- 风险与缓解措施:常见风险及针对 Azure 的缓解策略
- 资源:FedRAMP、NIST、Azure 文档链接
推荐的 Azure 服务(根据 KSI 类别提供情境相关的服务):
- Microsoft Entra ID、Azure Policy、Azure Monitor(适用于所有 KSI)
- Microsoft Defender for Cloud、Azure Key Vault、Azure Firewall(特定类别)
- Microsoft Sentinel、Azure Automation、Log Analytics(特定控制措施)
用法示例:
Generate specification for KSI-AFR-01:
> generate_ksi_specification with ksi_id="KSI-AFR-01"
and evidence_collection_strategy="Collect Azure Policy compliance reports quarterly using Azure Automation runbooks. Store evidence in Azure Blob Storage with immutable storage policy."
generate_implementation_questions
生成面向产品经理和工程师的战略访谈问题,促进深入的规划讨论。
参数:
requirement_id(字符串):要求或 KSI 标识符(例如,“FRR-CCM-01”、“KSI-IAM-01”)
**返回:**按利益相关者角色整理的战略问题
问题类别:
-
面向产品经理的战略问题(10 个问题):
- 业务影响与 ROI
- 客户价值与竞争地位
- 资源分配与优先级排序
- 依赖关系与阶段划分
-
面向工程师的技术问题(15 个问题):
- 架构与设计决策
- Azure 服务选择
- 自动化机会
- 监控与证据收集
- 运维与维护
-
跨职能问题(10 个问题):
- 安全与合规集成
- 用户体验影响
- 培训与支持需求
- 事件响应协调
-
Azure 特定注意事项(动态生成,最多 20 个问题):
- Microsoft Entra ID 配置
- Azure RBAC 与条件访问
- Log Analytics 与 Sentinel 集成
- Azure Policy 与治理
- Defender for Cloud 设置
- Key Vault 与加密策略
补充指导:
- 决策框架(实施前必须回答的 5 个问题)
- 成功标准(5 项可衡量结果)
- 风险信号(需要留意的 5 个警示信号)
- 后续步骤(9 阶段实施方法)
- 推荐资源(Microsoft 文档、FedRAMP 资源、社区)
analyze_infrastructure_code
分析基础设施即代码(IaC)文件,检查是否存在 FedRAMP 20x 合规问题,并提供可执行的建议。
参数:
code(字符串):要分析的 IaC 代码内容file_type(字符串):IaC 文件类型——"bicep"或"terraform"file_path(字符串):待分析文件的路径(用于报告)context(字符串,可选):有关代码的其他背景信息(例如 PR 描述)application_profile(字符串,可选):用于根据应用类型筛选内容、减少误报的应用类型。支持的配置文件:"cli-tool"、"mcp-server"、"web-app"、"api-service"、"iac-only"、"library"、"batch-job"、"full"(默认:不进行筛选)
返回值:
- findings:合规问题数组,包含要求 ID、严重程度、描述和建议
- summary:高/中/低优先级问题及良好实践的数量
- pr_comment:适用于 GitHub/ADO PR 评论的格式化 Markdown
- application_context:(设置配置文件时)有关当前配置文件和功能的元数据
- context_filtered_count:(设置配置文件时)通过上下文筛选而隐藏的问题数量
支持的语言:
- Bicep:Azure Resource Manager 模板
- Terraform:Azure RM 提供程序资源
检查内容: 根据 40 多项 FedRAMP KSI 分析基础设施代码,包括:
- 身份与访问管理(MFA、RBAC、特权访问)
- 服务配置(加密、机密管理、备份)
- 网络架构(安全组、DDoS 防护、网络分段)
- 监控与日志记录(诊断设置、审计日志、警报)
- DevSecOps(变更管理、漏洞扫描、测试)
- 隐私与数据保护(数据分类、保留策略)
- 事件响应(检测、日志记录、自动化)
- 供应链安全(容器扫描、可信注册表)
使用示例:
// This Bicep code will be flagged for missing diagnostic settings
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: 'mystorageaccount'
location: location
properties: {
// Missing: diagnostic settings for KSI-MLA-05
}
}
analyze_application_code
分析应用程序代码中的 FedRAMP 20x 安全合规问题。
参数:
code(字符串):要分析的应用程序代码内容language(字符串):编程语言——"python"、"csharp"、"java"、"typescript"或"javascript"file_path(字符串):要分析的文件路径(用于报告)dependencies(数组,可选):项目依赖项列表(例如,["flask==2.3.0", "requests==2.31.0"])application_profile(字符串,可选):用于上下文感知筛选的应用程序类型。与analyze_infrastructure_code的配置文件相同。
返回:
- findings:安全发现数组(结构与基础设施分析相同)
- summary:高/中/低优先级问题和良好实践的数量
- pr_comment:用于 PR 审查的格式化 Markdown
- dependencies_checked:已分析的依赖项数量
支持的语言和框架:
- Python:Flask、Django、FastAPI 应用程序
- C#:ASP.NET Core、Entity Framework、Azure SDK for .NET
- Java:Spring Boot、Spring Security、Jakarta EE、Azure SDK for Java
- TypeScript/JavaScript:Express、NestJS、Next.js、React、Angular、Vue、Azure SDK for JS
检查的 FedRAMP 要求(阶段 1 + 阶段 2):
阶段 1 — 基础:
- KSI-IAM-01:API 身份验证和授权
- KSI-SVC-06:密钥管理(硬编码密码、API 密钥、证书)
- KSI-SVC-05:资源完整性(易受攻击的库、不安全函数)
- KSI-PIY-02:安全目标和要求文档
- KSI-MLA-05:诊断日志配置
阶段 2 — 应用程序安全:
- KSI-IAM-05:服务帐户管理(托管标识与硬编码凭据)
- KSI-CNA-03:微服务安全(服务间身份验证、mTLS、速率限制)
阶段 3 — 安全编码实践:
- KSI-SVC-01:持续改进(安全评估和改进)
- KSI-SVC-02:网络加密(TLS、安全传输)
- KSI-SVC-07:修补(安全更新、漏洞修复)
- KSI-PIY-01:自动化清单(实时资产跟踪)
- KSI-PIY-03:文档要求
- KSI-CNA-07:服务网格安全(Istio/Linkerd)
- KSI-IAM-04:最小权限访问
- KSI-IAM-07:会话管理和令牌安全
analyze_cicd_pipeline
分析 CI/CD 流水线配置是否符合 FedRAMP 20x DevSecOps 要求。
参数:
code(string):流水线配置内容(YAML/JSON)pipeline_type(string):流水线类型——"github-actions"、"azure-pipelines"、"gitlab-ci"或"generic"file_path(string):流水线文件路径(用于报告)application_profile(string,可选):用于按上下文筛选的应用类型。与analyze_infrastructure_code使用的配置文件相同。
返回:
- findings:DevSecOps 发现项数组(结构与代码分析相同)
- summary:高/中/低优先级问题及良好实践的数量
- pr_comment:用于 PR 审查的格式化 Markdown
- pipeline_type:检测到的流水线平台
支持的平台:
- GitHub Actions(
.github/workflows/*.yml) - Azure DevOps Pipelines(
azure-pipelines.yml) - GitLab CI/CD(
.gitlab-ci.yml)
检查的 FedRAMP 要求(第 4 阶段):
- KSI-CMT-01:变更管理自动化(PR 触发、必需审查、分支保护)
- KSI-CMT-02:部署流程(审批关卡、环境保护、回滚能力)
- KSI-CMT-03:CI/CD 中的自动化测试(单元测试、流水线中的安全扫描)
- KSI-AFR-01:自动化漏洞扫描(容器、IaC、SAST/DAST 工具)
- KSI-AFR-02:安全发现项修复(遇到漏洞时阻止流程、自动创建问题)
- KSI-CED-01:持续收集证据(工件上传、测试结果、保留策略)
使用示例:
# GitHub Actions workflow that will be flagged for missing security scans
name: Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: docker build -t myapp .
- run: docker push myapp:latest
# ❌ No vulnerability scanning
# ❌ No test execution
# ❌ No evidence collection
**💡 结果:**分析器建议添加 Trivy 容器扫描、单元测试执行、安全关卡和工件上传,以收集合规证据。
使用示例:
# This Python code will be flagged for multiple issues
from flask import Flask
app = Flask(__name__)
API_KEY = "sk-1234567890abcdef" # KSI-SVC-06: Hardcoded secret
@app.route('/api/users') # KSI-IAM-01: Missing authentication
def get_users():
users = [
{'name': 'Alice', 'ssn': '123-45-6789'}, # PII in logs - see NIST SI-12
]
return {'users': users}
自动化 PR 审查工作流:
- 通过 PR 提交代码(GitHub/Azure DevOps)
- 分析器工具检查 IaC 和应用程序代码
- 生成附有 FedRAMP 要求引用的发现项
- 发布包含合规审查内容的 PR 评论
- 开发者在合并前解决问题
**目的:**帮助团队深入思考实施注意事项、权衡取舍和成功标准,然后再投入资源。这些问题旨在促进规划会议、设计审查和利益相关方协调。
get_infrastructure_code_for_ksi
生成用于自动化证据收集基础设施的基础设施即代码模板(Bicep 或 Terraform)。
参数:
ksi_id(string):关键安全指标标识符(例如,“KSI-IAM-01”、“KSI-MLA-01”)infrastructure_type(string):"bicep"或"terraform"
**返回:**用于部署证据收集基础设施的 IaC 模板
支持的 KSI 系列:
- IAM(身份和访问管理):Microsoft Entra ID、Log Analytics 工作区、诊断设置、自动化帐户
- MLA(监控、日志记录和审计):Log Analytics 工作区、Azure Sentinel、诊断设置、警报规则
- AFR(审计和财务报告):具有不可变性的存储帐户、事件订阅、审计日志
- CNA(变更通知和审批):Event Grid 主题、Logic Apps、DevOps 流水线、变更跟踪
- RPL(发布流水线):Azure DevOps 流水线、部署槽位、回滚能力、审批关卡
- SVC(服务和漏洞管理):Defender for Cloud、安全评估、合规仪表板
使用示例:
> get_infrastructure_code_for_ksi with ksi_id="KSI-IAM-01" and infrastructure_type="bicep"
输出包括:
- Azure 资源定义(Log Analytics、Storage、Event Grid 等)
- 用于收集证据的诊断设置
- 保留策略和不可变性
- 与 Azure Monitor 和 Sentinel 集成
- 用于收集证据的自动化功能
- RBAC 角色和权限
get_evidence_collection_code
生成用于以编程方式收集和存储 KSI 证据的业务逻辑代码(Python、C#、PowerShell、Java 或 TypeScript)。
参数:
ksi_id(string):关键安全指标标识符(例如,“KSI-IAM-01”)language(string):可选值为 "python"、"csharp"、"powershell"、"java" 或 "typescript"(也接受 "javascript")
**返回:**包含身份验证、证据收集和存储的代码示例
代码功能:
- 身份验证:适用于托管身份或本地开发的 Azure DefaultAzureCredential 模式
- 证据收集:Microsoft Graph API、Azure Resource Manager、Azure Monitor 的 SDK
- 证据存储:保存到 Azure Blob Storage,并添加不可变性和元数据标记
- 错误处理:Try-catch 模式和日志记录
- 文档:解释每个步骤的内联注释
支持的语言:
- Python:使用 azure-identity、azure-storage-blob、azure-monitor-query、msgraph-sdk
- C#:使用 Azure.Identity、Azure.Storage.Blobs、Azure.Monitor.Query、Microsoft.Graph
- PowerShell:使用 Az.Accounts、Az.Storage、Az.Monitor、Microsoft.Graph 模块
- Java:使用 Azure Identity、Azure Storage Blobs、Azure Resource Manager、Microsoft Graph SDK
- TypeScript/JavaScript:使用 @azure/identity、@azure/storage-blob、@azure/arm-resources、@microsoft/microsoft-graph-client
使用示例:
> get_evidence_collection_code with ksi_id="KSI-MLA-01" and language="python"
输出包括:
- SDK 导入和身份验证设置
- 针对 KSI 的证据收集逻辑
- JSON 格式化和元数据标记
- 带不可变性的 Blob 存储上传
- 错误处理和重试逻辑
get_evidence_automation_architecture
获取自动化证据收集系统的架构指导。
参数:
scope(string):架构范围——"minimal"、"single-ksi"、"category" 或 "all"
**返回:**包含组件、数据流和实施指导的架构模式
架构范围:
-
minimal:适用于试点项目的快速入门架构
- 单个 Log Analytics 工作区
- 用于定时收集证据的 Azure Function
- 配置基本保留策略的 Blob 存储
- 用于通知的 Event Grid
-
single-ksi:针对一个 KSI 的生产架构
- 专用证据收集基础设施
- 配有监控的 Azure Functions
- 用于安全保障的托管身份
- Sentinel 集成
-
category:针对一个 KSI 类别(IAM、MLA 等)的企业级架构
- 特定类别的证据收集器
- 集中式证据存储
- 自动化报告仪表板
- 与 Azure Policy 集成
-
all:针对 72 个 KSI 的企业级架构
- 多区域证据收集
- 高可用性设计
- 自动化合规报告
- 与 GRC 工具集成
使用示例:**
> get_evidence_automation_architecture with scope="all"
输出包括:
- 组件图及说明
- 数据流架构
- 安全和身份模式
- 监控与告警策略
- 证据存储和保留
- 灾难恢复注意事项
- 与 Azure 服务的集成模式
- 扩展建议
- 实施步骤
可用提示词
该服务为 FedRAMP 合规工作流提供 18 个提示词:
规划与评估提示词
initial_assessment_roadmap - FedRAMP 20x 授权的六阶段路线图,包含检查清单、交付成果和关键成功因素(工程团队确定时间安排)
gap_analysis - 详细的差距分析框架,对比当前状态与 FedRAMP 20x 要求,并提供优先级排序和整改规划
vendor_evaluation - 供应商评估框架,包含分类问题、评分卡模板和评估标准
migration_from_rev5 - 从 FedRAMP Rev 5 迁移到 20x 的详细计划,包含七阶段方法、差距分析和要求映射(团队确定时间安排和预算)
significant_change_assessment - 根据 FRR-CCM-SC 评估重大变更的框架,包含影响分析、测试要求和授权更新触发条件
实施与自动化提示词
ksi_implementation_priorities - 按优先级排序的指南,介绍如何在八个优先阶段实施全部 72 项关键安全指标,并映射依赖关系(工程团队确定部署时间安排)
azure_ksi_automation - 使用 Microsoft、Azure 和 M365 功能实施 72 项 KSI 的指南,包含 PowerShell 脚本、Azure CLI 命令、Microsoft Graph API 集成、KQL 查询、Azure Functions/Logic Apps、证据收集框架,以及与 Defender 套件、Entra ID、Key Vault 和 Sentinel 的集成
api_design_guide - 授权数据共享 API(FRR-ADS)指南,包含端点、身份验证、OSCAL 格式和示例
authorization_boundary_review - 根据 FedRAMP 20x 要求定义和记录授权边界、系统互连和数据流的指南
监控与合规提示词
continuous_monitoring_setup - 建立符合 FedRAMP 20x 要求的持续监控计划指南,包含自动化、指标和报告
quarterly_review_checklist - FedRAMP 20x 季度审查(FRR-CCM-QR)检查清单,涵盖 72 项 KSI、漏洞审查和变更审查
vulnerability_remediation_timeline - 符合 FedRAMP 20x VDR 要求的漏洞修复时间线和优先级框架
审计与文档提示词
audit_preparation - FedRAMP 20x 评估准备指南,包含证据收集、常见发现和访谈准备(团队确定准备时间安排)
ato_package_checklist - 运行授权(ATO)材料包准备检查清单,包含所需材料、模板和提交要求
documentation_generator - OSCAL SSP 模板、流程模板(VDR、ICP、SCN)和 KSI 实施文档模板
FRR 合规与代码审查提示词
frr_code_review - 使用 AST 驱动的语义分析,在全部 10 个 FRR 系列(VDR、ADS、RSC、UCM、CCM、SCN、MAS、ICP、FSI、PVA)中审查代码是否符合 FedRAMP 要求(FRR)的指南,并集成 PR 工作流
frr_family_assessment - 针对 10 个 FRR 系列中 199 项 FRR 要求的系列专属评估指南,包含详细检查清单、评估问题和证据规划
frr_implementation_roadmap - 实施全部 199 项 FRR 要求的战略性 16 周、四阶段路线图,包含优先级框架、Azure 服务建议和 KSI 集成策略
KSI + FRR 综合分析示例
MCP 服务提供集成分析功能,将关键安全指标(KSI)与 FedRAMP 修订要求(FRR)结合起来进行合规分析。这些示例展示了如何同时使用 KSI 代码分析器和 FRR 分析工具,进行全面的安全评估。
示例 1:网络分段(KSI-CNA-01 + FRR-RSC 系列)
场景: 验证网络安全控制,同时满足 KSI 跟踪和 FRR 合规性
# Step 1: Analyze infrastructure code with KSI analyzer
from analyzers.ksi.factory import get_factory
bicep_code = """
resource nsg 'Microsoft.Network/networkSecurityGroups@2023-11-01' = {
name: 'prod-nsg'
location: location
properties: {
securityRules: [
{
name: 'allow-https'
properties: {
priority: 100
direction: 'Inbound'
access: 'Allow'
protocol: 'Tcp'
sourceAddressPrefix: '*'
destinationAddressPrefix: '*'
destinationPortRange: '443'
}
}
]
}
}
"""
# Analyze against KSI-CNA-01 (Network Segmentation)
factory = get_factory()
ksi_result = factory.analyze("KSI-CNA-01", bicep_code, "bicep", "nsg.bicep")
print(f"KSI-CNA-01 Analysis:")
print(f" Compliant: {ksi_result.is_compliant}")
print(f" Findings: {len(ksi_result.findings)}")
for finding in ksi_result.findings:
print(f" - {finding.severity.value}: {finding.message}")
# Step 2: Analyze against FRR-RSC (Secure Configuration) requirements
frr_analysis = analyze_frr_family(
family="RSC",
code=bicep_code,
language="bicep",
file_path="nsg.bicep"
)
print(f"\nFRR-RSC Family Analysis:")
print(f" Total FRRs: {frr_analysis['total_frrs']}")
print(f" Compliant: {frr_analysis['compliant_count']}")
print(f" Non-compliant: {frr_analysis['non_compliant_count']}")
# Step 3: Get integrated remediation guidance
for frr_id, result in frr_analysis['results'].items():
if not result['compliant']:
print(f"\n{frr_id}: {result['frr_name']}")
print(f" Related KSI: {get_frr_metadata(frr_id)['related_ksis']}")
print(f" Remediation: {result['recommendation']}")
# Output:
# KSI-CNA-01 Analysis:
# Compliant: False
# Findings: 2
# - HIGH: NSG allows traffic from any source (sourceAddressPrefix: *)
# - MEDIUM: NSG rule priority too permissive (100 vs recommended >1000)
#
# FRR-RSC Family Analysis:
# Total FRRs: 10
# Compliant: 7
# Non-compliant: 3
#
# FRR-RSC-01: Network Security Groups Configuration
# Related KSI: ['KSI-CNA-01', 'KSI-CNA-03']
# Remediation: Use specific source IP ranges, implement deny-by-default rules
集成优势:
- KSI 分析提供战术层面的代码问题发现
- FRR 分析提供战略层面的合规覆盖
- 综合视图同时展示安全缺陷和政策合规性
- 修复指导将代码修复与合规要求关联起来
示例 2:漏洞管理(KSI-AFR-04 + FRR-VDR 系列)
场景: 验证漏洞扫描配置和修复流程
# Step 1: Analyze vulnerability scanning implementation with KSI
cicd_pipeline = """
name: Security Scanning
on:
push:
branches: [main]
pull_request:
schedule:
- cron: '0 0 * * *' # Daily scans
jobs:
vulnerability-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
scan-ref: '.'
format: 'json'
output: 'trivy-results.json'
severity: 'CRITICAL,HIGH,MEDIUM'
- name: Upload scan results
uses: actions/upload-artifact@v3
with:
name: trivy-results
path: trivy-results.json
retention-days: 90
"""
# Analyze against KSI-AFR-04 (Vulnerability Detection)
ksi_result = factory.analyze("KSI-AFR-04", cicd_pipeline, "yaml", ".github/workflows/security.yml")
print(f"KSI-AFR-04 Analysis:")
print(f" Compliant: {ksi_result.is_compliant}")
print(f" Evidence: {ksi_result.evidence}")
# Step 2: Analyze against all FRR-VDR requirements (59 total)
vdr_analysis = analyze_frr_family(
family="VDR",
code=cicd_pipeline,
language="yaml",
file_path=".github/workflows/security.yml"
)
print(f"\nFRR-VDR Family Analysis (59 requirements):")
print(f" Scan configuration: {vdr_analysis['results']['FRR-VDR-01']['compliant']}")
print(f" Remediation timeframes: {vdr_analysis['results']['FRR-VDR-TF-01']['compliant']}")
print(f" KEV tracking: {vdr_analysis['results']['FRR-VDR-TF-02']['compliant']}")
print(f" Authenticated scanning: {vdr_analysis['results']['FRR-VDR-AC-01']['compliant']}")
# Step 3: Get evidence automation recommendations
evidence_guidance = get_frr_evidence_automation("FRR-VDR-01")
ksi_evidence = get_ksi_evidence_automation("KSI-AFR-04")
print(f"\nIntegrated Evidence Collection:")
print(f" FRR-VDR-01 Artifacts: {evidence_guidance['evidence_artifacts']}")
print(f" KSI-AFR-04 Queries: {ksi_evidence['collection_methods']}")
print(f" Storage: Azure Blob (retention: 730 days per FRR-VDR, KSI-MLA-02)")
# Output:
# KSI-AFR-04 Analysis:
# Compliant: True
# Evidence: Daily vulnerability scans, artifact retention 90 days
#
# FRR-VDR Family Analysis (59 requirements):
# Scan configuration: True
# Remediation timeframes: False (missing deadline tracking)
# KEV tracking: False (no CISA KEV integration)
# Authenticated scanning: False (filesystem scan only)
#
# Integrated Evidence Collection:
# FRR-VDR-01 Artifacts: ['scan-results.json', 'remediation-status.csv', 'kev-report.pdf']
# KSI-AFR-04 Queries: ['Log Analytics vulnerability metrics', 'Defender scan results']
# Storage: Azure Blob (retention: 730 days per FRR-VDR, KSI-MLA-02)
集成优势:
- KSI-AFR-04 验证扫描工具配置
- FRR-VDR 系列检查是否符合全部 59 项漏洞要求
- 综合分析可识别差距(KEV 跟踪、经过身份验证的扫描)
- 证据自动化建议同时涵盖 KSI 和 FRR 的需求
示例 3:授权数据共享(KSI-CED-01 + FRR-ADS 系列)
场景: 验证用于提供机器可读合规数据的 API 实现
# Step 1: Analyze API implementation with KSI
api_code = """
@app.route('/api/authorization/technical-controls', methods=['GET'])
@require_auth
def get_technical_controls():
\"\"\"FRR-ADS-TC-02: Technical controls data endpoint\"\"\"
# Query compliance data from storage
controls_data = storage_client.get_blob(
container='security-controls',
blob='latest-technical-controls.json'
)
response = {
'metadata': {
'timestamp': datetime.utcnow().isoformat(),
'version': '1.0',
'frr_requirement': 'FRR-ADS-TC-02',
'classification': 'CUI'
},
'data': json.loads(controls_data)
}
return jsonify(response), 200
"""
# Analyze against KSI-CED-01 (Continuous Evidence Delivery)
ksi_result = factory.analyze("KSI-CED-01", api_code, "python", "api/authorization.py")
print(f"KSI-CED-01 Analysis:")
print(f" API endpoint defined: {ksi_result.is_compliant}")
print(f" Authentication required: {'@require_auth' in api_code}")
# Step 2: Analyze against FRR-ADS family (22 requirements)
ads_analysis = analyze_frr_family(
family="ADS",
code=api_code,
language="python",
file_path="api/authorization.py"
)
print(f"\nFRR-ADS Family Analysis (22 requirements):")
for frr_id in ['FRR-ADS-01', 'FRR-ADS-02', 'FRR-ADS-AC-01', 'FRR-ADS-TC-02']:
result = ads_analysis['results'][frr_id]
print(f" {frr_id}: {result['compliant']} - {result['frr_name']}")
# Step 3: List all required FRR-ADS-TC endpoints
tc_endpoints = list_frrs_by_family("ADS")
tc_frrs = [frr for frr in tc_endpoints if 'TC-' in frr['frr_id']]
print(f"\nRequired FRR-ADS-TC Endpoints ({len(tc_frrs)} total):")
for frr in tc_frrs:
print(f" {frr['frr_id']}: {frr['name']}")
metadata = get_frr_metadata(frr['frr_id'])
print(f" Related KSI: {metadata['related_ksis']}")
# Output:
# KSI-CED-01 Analysis:
# API endpoint defined: True
# Authentication required: True
#
# FRR-ADS Family Analysis (22 requirements):
# FRR-ADS-01: True - Machine-readable authorization data
# FRR-ADS-02: True - Real-time compliance data API
# FRR-ADS-AC-01: True - API authentication and access control
# FRR-ADS-TC-02: True - Technical controls data endpoint
#
# Required FRR-ADS-TC Endpoints (7 total):
# FRR-ADS-TC-01: Continuous monitoring data
# Related KSI: ['KSI-CED-01', 'KSI-MLA-01']
# FRR-ADS-TC-02: Technical controls data
# Related KSI: ['KSI-CED-01']
# FRR-ADS-TC-03: Vulnerability data
# Related KSI: ['KSI-CED-01', 'KSI-AFR-04']
# [... 4 more endpoints ...]
集成优势:
- KSI-CED-01 验证证据交付机制
- FRR-ADS 系列支持 22 项授权数据共享要求
- 综合分析可识别各项 KSI 对应哪些 FRR 端点
- 支持机器可读合规数据要求
示例 4:部署前扫描
场景: 在部署到生产环境前,结合 KSI 和 FRR 进行合规性分析
# Complete infrastructure/application scan
terraform_infra = open('main.tf', 'r').read()
app_code = open('app.py', 'r').read()
cicd_pipeline = open('.github/workflows/deploy.yml', 'r').read()
# Step 1: Analyze against all 72 KSIs
print("KSI Analysis (72 indicators):")
all_ksi_results = factory.analyze_all_ksis(terraform_infra, "terraform", "main.tf")
ksi_summary = {
'compliant': sum(1 for r in all_ksi_results if r.is_compliant),
'non_compliant': sum(1 for r in all_ksi_results if not r.is_compliant),
'high_severity': sum(1 for r in all_ksi_results for f in r.findings if f.severity.value == 'HIGH')
}
print(f" Total KSIs analyzed: {len(all_ksi_results)}")
print(f" Compliant: {ksi_summary['compliant']}")
print(f" Non-compliant: {ksi_summary['non_compliant']}")
print(f" High-severity findings: {ksi_summary['high_severity']}")
# Step 2: Analyze against all 199 FRRs
print("\nFRR Analysis (199 requirements):")
all_frr_results = analyze_all_frrs(
code=terraform_infra,
language="terraform",
file_path="main.tf"
)
frr_summary = {
'compliant': all_frr_results['compliant_count'],
'non_compliant': all_frr_results['non_compliant_count'],
'not_applicable': all_frr_results['not_applicable_count']
}
print(f" Total FRRs analyzed: {all_frr_results['total_frrs']}")
print(f" Compliant: {frr_summary['compliant']}")
print(f" Non-compliant: {frr_summary['non_compliant']}")
print(f" Not applicable: {frr_summary['not_applicable']}")
# Step 3: Family-specific deep dive on critical families
critical_families = ['VDR', 'ADS', 'CCM', 'RSC', 'UCM']
print("\nCritical Family Analysis:")
for family in critical_families:
family_result = analyze_frr_family(family, terraform_infra, "terraform", "main.tf")
print(f" FRR-{family}: {family_result['compliant_count']}/{family_result['total_frrs']} compliant")
# Step 4: Generate deployment checklist
print("\nPre-Deployment Checklist:")
print(" [" + ("✓" if ksi_summary['high_severity'] == 0 else "✗") + "] No high-severity KSI findings")
print(" [" + ("✓" if frr_summary['non_compliant'] == 0 else "✗") + "] All applicable FRRs compliant")
print(" [" + ("✓" if frr_summary['non_compliant'] < 10 else "✗") + "] Less than 10 FRR findings")
print(" [" + ("✓" if ksi_summary['compliant'] >= 65 else "✗") + "] At least 65/72 KSIs compliant")
# Step 5: Get implementation status for tracking
ksi_status = get_ksi_implementation_status()
frr_status = get_frr_implementation_status()
print("\nCompliance Tracking:")
print(f" KSI Implementation: {ksi_status['implementation_percentage']}%")
print(f" FRR Implementation: {frr_status['overall_compliance_percentage']}%")
print(f" Combined Score: {(ksi_status['implementation_percentage'] + frr_status['overall_compliance_percentage']) / 2}%")
# Output:
# KSI Analysis (72 indicators):
# Total KSIs analyzed: 72
# Compliant: 58
# Non-compliant: 14
# High-severity findings: 5
#
# FRR Analysis (199 requirements):
# Total FRRs analyzed: 199
# Compliant: 167
# Non-compliant: 18
# Not applicable: 14
#
# Critical Family Analysis:
# FRR-VDR: 45/59 compliant
# FRR-ADS: 22/22 compliant
# FRR-CCM: 18/25 compliant
# FRR-RSC: 8/10 compliant
# FRR-UCM: 4/4 compliant
#
# Pre-Deployment Checklist:
# [✗] No high-severity KSI findings
# [✗] All applicable FRRs compliant
# [✓] Less than 10 FRR findings
# [✓] At least 65/72 KSIs compliant
#
# Compliance Tracking:
# KSI Implementation: 80.6%
# FRR Implementation: 90.3%
# Combined Score: 85.4%
集成优势:
- 覆盖 72 项 KSI 和 199 项 FRR 的分析
- 单条命令即可提供合规分析结果
- 按系列进行的分析可突出优先处理领域
- 提供用于部署审批的自动化检查清单
- 提供用于持续改进的跟踪指标
推荐工作流
-
开发阶段:使用 KSI 分析器进行战术性代码审查
- 使用
factory.analyze(ksi_id, code, language, file_path)进行特定安全检查 - 使用
analyze_frr_code(frr_id, code, language, file_path)验证要求
- 使用
-
提交前阶段:针对关键 FRR 系列进行分析
- 使用
analyze_frr_family("VDR", code, language, file_path)进行漏洞管理分析 - 使用
analyze_frr_family("RSC", code, language, file_path)进行安全配置分析
- 使用
-
CI/CD 流水线:部署前进行合规性分析
- 使用
factory.analyze_all_ksis(code, language, file_path)分析所有 KSI - 使用
analyze_all_frrs(code, language, file_path)分析所有 FRR
- 使用
-
季度审查:跟踪并报告合规情况
- 使用
get_ksi_implementation_status()查看 KSI 进度 - 使用
get_frr_implementation_status()查看 FRR 合规情况 - 为相关方生成综合合规报告
- 使用
数据源
数据来自 FedRAMP 官方仓库: https://github.com/FedRAMP/docs/tree/main/data
贡献
欢迎贡献!请参阅 CONTRIBUTING.md,了解:
- 开发环境设置和测试
- 安全扫描要求
- 依赖管理指南
- 拉取请求流程
- 项目结构和架构
- 完整的测试文档
安全
有关安全漏洞报告和安全最佳实践,请参阅 SECURITY.md。
贡献
欢迎贡献!请参阅 CONTRIBUTING.md,了解:
- 开发环境设置和测试
- 安全扫描要求
- 依赖管理指南
- 拉取请求流程
许可证
MIT 许可证 — 详情请参阅 LICENSE 文件。
本项目为开源项目,欢迎贡献!请参阅 CONTRIBUTING.md 了解相关指南。
FedRAMP 数据由美国总务管理局提供,属于公共领域内容。
参考资料
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。