FedRAMP 20x MCP服务器
 ](https://pypi.org/project/fedramp-20x-mcp/) ](https://pypi.org/project/fedramp-20x-mcp/)
MCP(模型上下文协议)服务器,提供对FedRAMP 20x安全要求和控制的访问 Azure优先指导.
概述
此服务器从官方加载FedRAMP 20x数据 FedRAMP文档库 并提供按控件、族或关键字查询需求的工具。
数据来源:
- 需求数据: JSON文件来自 (根目录)
- 文档: Markdown文件来自
Azure焦点: 所有实施示例、架构模式和供应商建议都优先考虑Microsoft Azure服务(Azure政府、Microsoft Entra ID、Azure密钥库、AKS、Azure功能、二头肌等),同时在适当的情况下保持与云无关。
数据覆盖
服务器提供访问 321要求 FedRAMP 20x文档中的(199个FRR+72个KSI+50个FRD):
FedRAMP要求(FRR)-10个系列的199项要求:
- 自动依赖监视系统 -授权数据共享(20项要求)
- CCM -协作持续监控(25项要求)
- FSI公司 -FedRAMP安全收件箱(16项要求)
- 互联网内容提供商 -事故沟通程序(9项要求)
- MAS -最低评估范围(12项要求)
- 聚乙烯醇 -持续验证和评估(22项要求)
- 皇家莎士比亚剧团 -推荐的安全配置(10项要求)
- 系统变更号 -重大变更通知(22项要求)
- 加州大学美熹德分校 -使用加密模块(4项要求)
- 维生素D受体 -漏洞检测和响应(57项要求)
- KSI -关键安全指标(2项要求)
关键安全指标(KSI)-11个系列的72个指标:
- 非洲 -架构、功能和资源(11个指标)
- CED -持续证据交付(4个指标)
- 主磁带电路 -持续监测和测试(5个指标)
- 中央通讯社 -云原生架构(8个指标)
- 身份和访问管理 -身份和访问管理(7个指标)
- 印度卢比 -事故和险情报告(3个指标)
- 现代语言协会 -监控、记录和警报(8个指标)
- 拼呀 -隐私和透明度(8个指标)
- RPL -复原力和恢复规划(4个指标)
- 支持向量分类 -安全编码和漏洞管理(10个指标)
- 总外周阻力 -第三方风险管理(4个指标)
FedRAMP定义(FRD)-50个官方术语定义
特性
- 🎯 自动证据收集(新):针对65个具有Azure本机服务、即用型查询和工件规范的活动KSI的自动化指南
- 按控件查询:获取有关特定FedRAMP要求的详细信息
- 按家庭查询:列出一个家庭中的所有要求
- 关键词搜索:使用关键字搜索所有要求
- FedRAMP定义:查找FedRAMP官方术语定义
- 关键安全指标:访问和查询FedRAMP关键安全指标(KSI)及其实施状态
- 文档搜索:搜索和检索官方FedRAMP文档标记文件
- 动态内容:自动发现并加载所有markdown文档文件
- 实施计划:生成战略性面试问题,帮助产品经理和工程师思考FedRAMP 20x实施考虑因素
- AST驱动的代码分析:使用树保姆进行高级抽象语法树解析,以实现跨Python、C#、Java、TypeScript/JavaScript、Dimist和Terraform的准确、上下文感知的安全分析
- 语义分析:具有符号解析、控制流分析和过程间分析功能的深度代码理解
- 🚀 基于模式的体系结构:跨23个需求族的381个YAML模式的统一分析引擎,支持KSI和FRR的合规性分析
- 模式引擎:跨14种语言的声明性YAML驱动检测,采用AST优先分析和智能查找分类
- 🎯 上下文感知过滤(新):通过指定应用程序类型减少误报(
cli-tool,mcp-server,web-app,api-service,iac-only,library,batch-job,full)通过application_profile分析工具参数
基于模式的分析架构
服务器使用 基于统一模式的体系结构 对于所有FedRAMP 20x合规性分析:
架构概述:
- 381个YAML模式 穿过 23个需求家庭
- 单一分析引擎 (
GenericPatternAnalyzer)取代271台传统分析仪 - 支持14种语言:Python、C#、Java、TypeScript、JavaScript、二头肌、地形、GitHub操作、Azure管道、GitLab CI、YAML、JSON、Dockerfile、GitHub
- 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
工作原理:
- 图案加载:从加载的YAML模式
data/patterns/目录 - 分析执行:使用树型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-模型上下文协议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-树保姆的Python语言绑定tree-sitter-c-sharp>=0.21.0-树形图的C#语言绑定tree-sitter-java>=0.21.0-树形图的Java语言绑定tree-sitter-javascript>=0.21.0-JavaScript/TypeScript语言绑定
故障排除:
如果遇到问题,请参阅 高级设置指南 了解详细的故障排除步骤。
安全
漏洞披露: 如果您发现安全漏洞,请参阅我们的 安全策略 负责披露程序(KSI-PIY-03)。
审核日志记录: 出于审计目的,所有MCP服务器操作都记录到stderr中(KSI-MLA-05)。
安全功能:
- ✅ 无需身份验证(本地开发工具)
- ✅ 无联邦客户数据处理
- ✅ 仅HTTPS连接到GitHub
- ✅ 1小时缓存TTL减少外部请求
- ✅ 所有依赖项都使用最低安全版本
有关完整的安全文档,请参阅 安全.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代码用户设置(settings.json):
{
"github.copilot.chat.mcp.servers": {
"fedramp-20x-mcp": {
"type": "stdio",
"command": "python",
"args": ["-m", "fedramp_20x_mcp"]
}
}
}安全说明: 请勿使用 "alwaysAllow" 在配置中。VS Code将在首次使用时提示您授予权限,这是一种安全最佳实践。
- 可选:配置VS代码设置 通过复制
.vscode/settings.json.example到.vscode/settings.json
- 重新加载VS代码 激活MCP服务器
- 授予权限 当VS代码提示时(仅限首次使用)
- 与GitHub Copilot聊天一起使用:
- 打开Copilot聊天 - 询问有关FedRAMP 20x要求的问题 - 使用 @workspace 查询特定控件或族 - 访问所有48个工具和15个综合提示
使用克劳德桌面
将此服务器添加到您的Claude Desktop配置中(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):
{
"mcpServers": {
"fedramp-20x": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/FedRAMP20xMCP",
"run",
"fedramp-20x-mcp"
]
}
}
}注: 替换 /absolute/path/to/FedRAMP20xMCP 使用您的实际安装路径。
与MCP检查员一起
使用MCP检查器测试服务器:
npx @modelcontextprotocol/inspector python -m fedramp_20x_mcp⚠️ 副驾驶执行政策
该存储库对所有AI辅助编码都使用严格的说明。
请参阅: 副驾驶说明
高级配置
有关CI/CD集成、Azure和GitHub的多服务器设置或详细的故障排除,请参阅:
可用工具
服务器提供 48工具 分为以下几类:
核心工具(8): 查询要求(get_control、list_family_controls、search_requirements)、定义(get_definition、list_definition、search_definition)和ksi(get_ksi、list_ksi) KSI工具(9): KSI实施状态、证据自动化、证据查询、证据工件、实施矩阵、实施摘要、覆盖摘要、覆盖状态、家族状态 FRR分析工具(7): 根据特定FRR、所有FRR或FRR系列分析代码;列出FRR;获取FRR元数据、证据自动化和实施状态 文档工具(3): 搜索和检索FedRAMP文档 增强工具(6): 实施示例、依赖关系、工作量估算、云原生指导、架构验证、版本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(string):家族标识符(例如,“FRD”、“KSI”、“MAS”)
搜索要求
搜索包含特定关键字的要求。
参数:
keywords(string):在需求文本中搜索的关键字
get_definition
获取特定术语的FedRAMP定义。
参数:
term(string):要查找的术语(例如,“漏洞”、“云服务产品”)
list_definition
列出所有FedRAMP定义及其术语。
退货: 所有FedRAMP定义术语的完整列表
搜索定义
按关键字搜索FedRAMP定义。
参数:
keywords(string):要在定义中搜索的关键字
get_ksi
获取特定密钥安全指标的详细信息。
参数:
ksi_id(string):KSI标识符(例如“KSI-AFR-01”)
list_ksi
列出所有关键安全指标。
退货: 所有关键安全指标及其名称的完整列表
get_ksi证据_自动化
获取特定KSI的证据自动化建议。 65个活跃的KSI 包括自动证据收集指导。
参数:
ksi_id(字符串):KSI标识符(例如,“KSI-IAM-01”、“KSI-CNA-01”)
退货: 自动化证据收集指南包括:
- Azure服务:每个KSI 5个Azure服务(日志分析、资源图、Azure策略、Azure监视器等),并提供特定的配置指导
- *注意:建议将Microsoft Defender for Cloud(非强制性)用于~8-10个KSI,以简化漏洞扫描、安全态势管理和合规性监控。可以使用替代工具(Qualys、Tenable、Trivy)。*
- 收集方法4-5种自动化收集方法(持续监测、定期评估、事件驱动触发、日志聚合)
- 存储需求:保留政策(30-90天运行,1-7年合规)、加密标准、访问控制
- FRR-ADS集成:符合授权数据共享要求的可机读API端点
- 实现细节:工作量估算、先决条件、成本考虑、责任方(安全、DevOps、合规、工程)
- 代码示例:基础设施作为代码模板(二头肌、地形)和自动化脚本
新闻报道: 11个家庭的65个活跃KSI:
- IAM(7):MFA、权限管理、会话控制、凭据生命周期、用户终止、JIT访问、共享帐户
- CNA(8):网络分段、TLS配置、连接日志记录、Azure监视器、密钥库、秘密检测、容器注册表、GitHub安全
- MLA(5):日志聚合、保留、篡改检测、搜索功能、警报
- INR(3):事故响应计划、事故记录、事后报告
- AFR(11):资产发现、SBOM、渗透测试、开发/产品分离、GitHub操作安全、容器扫描等
- 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条件访问策略、通过日志分析的登录日志、MFA方法注册查询和合规性报告仪表板。
get_ksi-evidence_查询
准备好使用特定KSI的证据收集查询。
参数:
ksi_id(字符串):KSI标识符(例如,“KSI-IAM-01”、“KSI-CNA-01”)
退货: 用于从Azure收集证据的生产就绪查询(每个KSI 5个查询):
- KQL查询:日志分析/AAzure Monitor Kusto查询日志分析和指标
- Azure资源图:基础设施和配置状态查询
- REST API:Azure Resource Manager API调用程序化数据检索
- Azure命令行界面:用于证据提取的命令行脚本
- PowerShell:用于自动收集的Azure PowerShell cmdlet
例子: get_ksi_evidence_queries("KSI-CNA-01") 返回NSG规则、Azure防火墙策略、虚拟网络配置、子网分段分析和网络拓扑验证的资源图查询。
get_ks_证据_事实
获取特定KSI要收集的证据工件的规格。
参数:
ksi_id(字符串):KSI标识符(例如,“KSI-IAM-01”、“KSI-CNA-01”)
退货: 详细的工件规格(每个KSI 5个工件):
- 工件名称:所需的具体证据文件/报告(例如“MFA_Sign_In_Logs.cv”、“NSG_Rule_Export.json”)
- 收集方法:如何收集每个工件(自动导出、API检索、仪表板截图、合规报告)
- 文件格式:CSV、JSON、PDF、PNG(仪表板截图)、XLSX(合规性矩阵)
- 更新频率:基于需求关键性的每日、每周、每月或每季度收集计划
- 保留要求:运营数据30-90天,合规证据1-7年
- 存储建议:具有加密、访问日志记录和不变性策略的Azure Blob存储
例子: get_ksi_evidence_artifacts("KSI-IAM-01") 返回登录日志(CSV,每日,90天)、条件接收策略导出(JSON,每周,1年)、MFA方法注册报告(XLSX,每月,3年)、身份验证仪表板屏幕截图(PNG,每季度,1年一次)和MFA合规性矩阵(PDF,每月,7年)。
analyze_fr_code
根据特定的FedRAMP要求(FRR)分析代码是否存在合规问题。
参数:
frr_id(字符串):FRR标识符(例如,“FRR-VDR-01”、“FRR-RSC-01”、“FR-ADS-01”)code(string):要分析的代码language(string):语言/平台-"python","csharp","java","typescript","bicep","terraform","github-actions","azure-pipelines","gitlab-ci"file_path(字符串,可选):上下文的文件路径
退货: 分析结果,包括发现、严重程度和补救建议
支持的FRR系列:
- 维生素D受体 -漏洞检测和响应(59项要求):漏洞扫描、补丁管理、补救时间框架、偏差跟踪、KEV漏洞处理
- 皇家莎士比亚剧团 -推荐的安全配置(10项要求):安全基线、配置管理、强化标准
- 加州大学美熹德分校 -使用加密模块(4个要求):FIPS 140-3合规性、密钥管理、加密标准
- 系统变更号 -重大变更通知(26项要求):变更管理、通知程序、影响评估
- 自动依赖监视系统 -授权数据共享(22项要求):机器可读证据API、数据格式、身份验证
- CCM -协作持续监测(25项要求):监测程序、季度审查、评估协调
- MAS -最低评估范围(12项要求):授权边界、系统清单、评估要求
- 互联网内容提供商 -事故沟通程序(9项要求):事故通知、沟通协议、升级程序
- FSI公司 -FedRAMP安全收件箱(16项要求):安全收件箱管理、漏洞披露、响应程序
- 聚乙烯醇 -持续验证和评估(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: 'admin@contoso.com'
publisherName: 'Contoso'
}
}""",
language="bicep"
)
# ✅ Validates API Management for authorization data sharinganalyze_all_frs
根据所有199个FedRAMP要求分析代码以进行合规性分析。
参数:
code(string):要分析的代码language(string):语言/平台(python、csharp、java、typescript、二头肌、terraform、github操作、azure管道、gitlab-ci)file_path(字符串,可选):上下文的文件路径
退货: 按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_fr_family
根据特定FRR系列中的所有要求分析代码。
参数:
family(string):家庭代码-"VDR","RSC","UCM","SCN","ADS","CCM","MAS","ICP","FSI","PVA"code(string):要分析的代码language(string):语言/平台file_path(字符串,可选):上下文的文件路径
退货: 指定系列中所有要求的分析结果
常见用例:
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 reportingADS系列(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 controlsRSC系列(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 validationlist_frs_by_family
列出特定系列中的所有FRR要求及其实施状态。
参数:
family(字符串):家族代码(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_fr_元数据
获取特定FRR的详细元数据,包括NIST控制、相关KSI和检测策略。
参数:
frr_id(字符串):FRR标识符(例如“FRR-VDR-01”)
退货: FRR元数据包括:
- FRR详细信息:身份证、姓名、家庭、需求声明
- 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特定的实施指南
获取_证据_自动化
获取特定FRR的证据自动化建议。
参数:
frr_id(字符串):FRR标识符(例如,“FRR-VDR-01”、“FRR-ADS-01”)
退货: 证据自动化指导包括:
- 证据类型:基于配置、基于日志或基于API的证据
- 自动化可行性:高/中/低自动化潜力
- Azure服务:3-5项证据收集推荐服务
- 收集方法:自动化方法(Azure监视器、资源图、策略、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系列:
- 维生素D受体:漏洞扫描结果、补丁状态、补救跟踪、偏差批准
- 自动依赖监视系统:API调用日志、数据格式符合性、身份验证记录、访问审核
- CCM:监测指标、季度审查工件、评估协调日志
- 皇家莎士比亚剧团:配置基线、漂移检测报告、合规性扫描结果
- 所有其他:针对家庭的证据建议
get_fr_实现_状态
获取所有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%)与rev4进行比较
将FedRAMP 20x与Rev.4/Rev.5对特定区域的要求进行比较。
参数:
requirement_area(字符串):要比较的领域(例如,“持续监控”、“漏洞管理”、“授权边界”、“证据收集”、“变更管理”、”事件响应”)
get_implementation_示例
获取具体要求的实际实施示例。
参数:
requirement_id(字符串):需求标识符(例如“KSI-IAM-01”、“FRR-VDR-01”)
check_requirement_dependency
检查FedRAMP 20x要求之间的依赖关系。
参数:
requirement_id(string):用于检查依赖关系的需求标识符
估算_实施_努力
估算具体要求的实施工作。
参数:
requirement_id(string):用于估算工作量的需求标识符
get_cloud_native_guidance
获取特定Azure和多云技术的云原生实施指南。
参数:
technology(string):获得指导的技术(例如,“kubernetes”、“容器”、“无服务器”、“地形”)
注: 所有云示例和最佳实践都优先考虑Azure服务(AKS、Azure Functions、密钥库、二头肌等)
validate_architecture
根据FedRAMP 20x要求验证系统架构。
参数:
architecture_description(string):要验证的架构描述
搜索文档
在FedRAMP官方文档标记文件中搜索特定关键字。
参数:
keywords(string):文档中要搜索的关键字
退货: 将文档部分与所有可用markdown文件的上下文相匹配
注: 自动从docs目录加载markdown文件以实现可搜索性。
get_documentation_file
获取特定FedRAMP文档文件的完整内容。
参数:
filename(string):标记文件名(例如,“overview.md”、“key security indicators.md”)
退货: 文档文件的完整标记内容
list_documentation_files
列出所有可用的FedRAMP文档文件。
退货: 从存储库中动态发现的所有markdown文档文件的完整列表
export_to_excel
将FedRAMP 20x数据导出到Excel文件进行离线分析和报告。
参数:
export_type(string):要导出的数据类型:
- "ksi" -全部72个关键安全指标 - "all_requirements" -所有家庭的所有329项要求 - "definitions" -所有FedRAMP术语定义
output_path(字符串,可选):自定义输出路径。如果未提供,则保存到下载文件夹
退货: 生成的具有专业格式(样式化标题、边框、冻结窗格)的Excel文件的路径
KSI导出列:
- KSI ID -唯一标识符(例如KSI-AFR-01)
- 名字 -KSI名称
- 类别 -控制族类别
- 状态 -在职或退休
- 声明 -完整的需求声明
- 备注 -附加信息(例如,退休KSI的接替说明)
- NIST 800-53控制 -与标题相关的安全控制
- 参考 -参考文件名称(如适用)
- 参考网址 -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(字符串,可选):自定义输出路径。如果未提供,则保存到下载文件夹
退货: 生成的CSV文件的路径
柱: 结构与Excel导出相同(详细列说明见上文)
示例用法:
- 导出所有KSI:
export_to_csv("ksi") - 导出所有要求:
export_to_csv("all_requirements") - 导出定义:
export_to_csv("definitions")
generate_ksi规范
为KSI生成产品规范Word文档,以指导工程实施和规划。
参数:
ksi_id(string):KSI标识符(例如“KSI-AFR-01”)evidence_collection_strategy(string):用户提供的高级证据收集策略描述output_path(字符串,可选):自定义输出路径。如果未提供,则保存到下载文件夹
退货: 生成的Word(.docx)文档的路径
文件内容:
- 元数据:KSI ID、类别、影响级别、状态、日期
- 概述:目的和范围与FedRAMP 20x一致
- 需求陈述:完整的KSI要求文本
- NIST 800-53控制:带有标题的相关安全控制
- Azure首次实施:推荐的Azure服务、IaC指导、自动化策略
- 证据收集:用户定义的策略+推荐的证据类型和灵活的收集时间表
- 五阶段实施计划:需求分析→ 设计→ 实施→ 测试→ 文件(工程团队确定时间表)
- 团队角色:云架构师、DevOps、安全工程师、合规专家等。
- 成功标准:实施验证的可衡量结果
- 风险和缓解措施:Azure特定缓解策略的常见风险
- 资源:链接到FedRAMP、NIST、Azure文档
Azure服务推荐 (基于KSI类别的上下文感知):
- Microsoft Entra ID、Azure策略、Azure监视器(所有KSI)
- Microsoft云卫士、Azure密钥库、Azure防火墙(特定类别)
- Microsoft Sentinel、Azure自动化、日志分析(特定于控件)
示例用法:
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."生成实施问题
为产品经理和工程师生成战略性面试问题,以促进深思熟虑的计划讨论。
参数:
requirement_id(字符串):要求或KSI标识符(例如“FRR-CCM-01”、“KSI-IAM-01”)
退货: 按利益相关者角色组织的战略问题
问题类别:
- 产品经理的战略问题 (10个问题):
- 业务影响和投资回报率 - 客户价值和竞争地位 - 资源分配和优先级 - 依赖关系和阶段化
- 工程师技术问题 (15个问题):
- 建筑与设计决策 - Azure服务选择 - 自动化机会 - 监测和证据收集 - 运营与维护
- 跨职能问题 (10个问题):
- 安全与合规集成 - 用户体验影响 - 培训和支持需求 - 事件响应协调
- Azure特定注意事项 (动态,最多20个问题):
- Microsoft Entra ID配置 - Azure RBAC和条件访问 - 日志分析和Sentinel集成 - Azure策略和治理 - 云设置卫士 - 密钥库和加密策略
附加指南:
- 决策框架(实施前必须回答5个问题)
- 成功标准(5个可衡量的结果)
- 红旗(需注意的5个警告标志)
- 下一步(9阶段实施方法)
- 推荐资源(Microsoft文档、FedRAMP资源、社区)
分析基础结构代码
分析基础设施即代码(IaC)文件中的FedRAMP 20x合规性问题,并提供可操作的建议。
参数:
code(string):要分析的IaC代码内容file_type(string):IaC文件的类型-"bicep"或"terraform"file_path(string):正在分析的文件的路径(用于报告)context(字符串,可选):关于代码的其他上下文(例如PR描述)application_profile(字符串,可选):用于上下文感知过滤的应用程序类型,以减少误报。支持的配置文件:"cli-tool","mcp-server","web-app","api-service","iac-only","library","batch-job","full"(默认:无筛选)
退货:
- 发现:一系列合规性发现,包括需求ID、严重性、描述和建议
- 总结\*高/中/低优先问题和良好做法的数量
- 评论:适用于GitHub/ADO PR评论的格式化标记
- 应用程序文本:(设置配置文件时)有关活动配置文件和功能的元数据
- context_filtered_count:(设置配置文件时)上下文过滤抑制的发现数
支持的语言:
- Bicep:Azure资源管理器模板
- 地形: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
}
}分析_应用程序_代码
分析FedRAMP 20x安全合规性问题的应用程序代码。
参数:
code(string):要分析的应用程序代码内容language(string):程序设计语言-"python","csharp","java","typescript",或"javascript"file_path(string):正在分析的文件的路径(用于报告)dependencies(array,可选):项目依赖关系列表(例如。,["flask==2.3.0", "requests==2.31.0"])application_profile(字符串,可选):用于上下文感知过滤的应用程序类型。配置文件与analyze_infrastructure_code.
退货:
- 发现:一系列安全调查结果(结构与基础设施分析相同)
- 总结\*高/中/低优先问题和良好做法的数量
- 评论:用于PR审查的格式化标记
- 依赖关系已检查:分析的依赖关系数量
支持的语言和框架:
- python:Flask、Django、FastAPI应用程序
- C:ASP。NET核心、实体框架、Azure SDK。网
- Java:Spring Boot、Spring Security、Jakarta EE、适用于Java的Azure SDK
- Types/JavaScript:Express、NestJS、Next.js、React、Angular、Vue、Azure SDK for js
检查FedRAMP要求(第1阶段+第2阶段):
第一阶段-基础:
- 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:会话管理和令牌安全
管道分析
分析CI/CD管道配置是否符合FedRAMP 20x DevSecOps标准。
参数:
code(string):流水线配置内容(YAML/JSON)pipeline_type(string):管道类型-"github-actions","azure-pipelines","gitlab-ci",或"generic"file_path(string):管道文件的路径(用于报告)application_profile(字符串,可选):用于上下文感知过滤的应用程序类型。配置文件与analyze_infrastructure_code.
退货:
- 发现:DevSecOps发现数组(结构与代码分析相同)
- 总结\*高/中/低优先问题和良好做法的数量
- 评论:用于PR审查的格式化标记
- 流水线类型:检测到的管道平台
支持的平台:
- GitHub操作 (
.github/workflows/*.yml) - Azure DevOps管道 (
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💡 结果: Analyzer建议添加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
将基础设施生成为代码模板(二头肌或地形),用于自动化证据收集基础设施。
参数:
ksi_id(字符串):密钥安全指示器标识符(例如“KSI-IAM-01”、“KSI-MLA-01”)infrastructure_type(字符串):要么是“二头肌”要么是“地形”
退货: 用于部署证据收集基础设施的IaC模板
支持的KSI系列:
- IAM(身份和访问管理):Microsoft Entra ID、日志分析工作区、诊断设置、自动化帐户
- MLA(监控、记录和审计):日志分析工作区、Azure Sentinel、诊断设置、警报规则
- 审计和财务报告:具有不变性的存储帐户、事件订阅、审计日志
- CNA(变更通知和批准):事件网格主题、逻辑应用程序、DevOps管道、变更跟踪
- RPL(释放管道):Azure DevOps管道、部署槽、回滚功能、审批门
- SVC(服务和漏洞管理):云卫士、安全评估、合规仪表板
示例用法:
> get_infrastructure_code_for_ksi with ksi_id="KSI-IAM-01" and infrastructure_type="bicep"输出包括:
- Azure资源定义(日志分析、存储、事件网格等)
- 证据收集的诊断设置
- 保留策略和不变性
- 与Azure Monitor和Sentinel集成
- 证据收集自动化
- RBAC角色和权限
get_video_collection_code
生成业务逻辑代码(Python、C#、PowerShell、Java或TypeScript),用于以编程方式收集和存储KSI证据。
参数:
ksi_id(字符串):密钥安全指示器标识符(例如“KSI-IAM-01”)language(string):“python”、“csharp”、“powershell”、“java”或“typescript”(也接受“javascript”)
退货: 具有身份验证、证据收集和存储的代码示例
代码特征:
- 认证:用于托管身份或本地开发的Azure DefaultAzureCredential模式
- 证据收集:Microsoft Graph API、Azure资源管理器、Azure监视器的SDK
- 证据存储:保存到具有不变性和元数据标记的Azure Blob存储
- 错误处理:尝试捕获模式和日志记录
- 文档:解释每个步骤的内联注释
支持的语言:
- python:使用azure标识、azure存储blob、azure监视器查询、msgraph-sdk
- C:使用Azure。身份,Azure。储存。金发碧眼。监视器。微软查询。图
- PowerShell:使用Az.帐户、Az.存储、Az.监视器、Microsoft。图形模块
- Java:使用Azure身份、Azure存储块、Azure资源管理器、Microsoft Graph SDK
- Types/JavaScript:使用@azure/标识、@azure/存储blob、@azure/arm资源、@microsoft图形客户端
示例用法:
> get_evidence_collection_code with ksi_id="KSI-MLA-01" and language="python"输出包括:
- SDK导入和身份验证设置
- KSI特有的证据收集逻辑
- JSON格式和元数据标记
- 具有不变性的Blob存储上传
- 错误处理和重试逻辑
get_视频_自动化_体系结构
获取自动化证据收集系统的架构指南。
参数:
scope(string):架构范围-“最小”、“单个ksi”、“类别”或“全部”
退货: 包含组件、数据流和实施指南的架构模式
架构范围:
- 最小:试点项目的快速启动架构
- 单日志分析工作区 - 用于定时证据收集的Azure函数 - 具有基本保留功能的Blob存储 - 用于通知的事件网格
- 单一ksi:一个KSI的生产架构
- 专门的证据收集基础设施 - 具有监控功能的Azure函数 - 管理身份以确保安全 - Sentinel集成
- 类别:一个KSI类别(IAM、MLA等)的企业架构
- 特定类别的证据收集者 - 集中证据存储 - 自动报告仪表板 - 与Azure策略集成
- 全部:72个KSI的企业架构
- 多区域证据收集 - 高可用性设计 - 自动化合规报告 - 与GRC工具集成
示例用法:\*\*
> get_evidence_automation_architecture with scope="all"输出包括:
- 部件图和说明
- 数据流架构
- 安全和身份模式
- 监控和警报策略
- 证据的储存和保留
- 灾难恢复注意事项
- 与Azure服务的集成模式
- 缩放建议
- 实施步骤
可用提示
服务器提供 18个提示 对于FedRAMP合规工作流程:
规划与评估提示
初始评估加载图 -FedRAMP 20x授权的6阶段路线图,包括清单、可交付成果和关键成功因素(工程团队确定时间表)
间隙分析 -详细的差距分析框架,将当前状态与FedRAMP 20x要求进行比较,并制定优先级和补救计划
卖方估价 -供应商评估框架,包括特定类别的问题、记分卡模板和评估标准
migration_from_rev5 -从FedRAMP Rev 5到20x的详细迁移计划,采用7阶段方法、差距分析和需求映射(团队确定时间表和预算)
重大变化评估 -根据FRR-CCM-SC评估重大变更的框架,包括影响分析、测试要求和授权更新触发器
实施和自动化提示
ksi_实现_优先级 -通过依赖关系映射(工程团队确定推出时间表)在8个优先阶段实施所有72个关键安全指标的优先指南
azure_ksi自动化 - 使用Microsoft、Azure和M365功能实施72个KSI的指南 包括PowerShell脚本、Azure CLI命令、Microsoft Graph API集成、KQL查询、Azure函数/逻辑应用程序、证据收集框架,以及与Defender套件、Entra ID、密钥库和Sentinel的集成
api_design_guide -具有端点、身份验证、OSCAL格式和示例的授权数据共享API(FRR-ADS)指南
授权_边界_审查 -根据FedRAMP 20x要求定义和记录授权边界、系统互连和数据流的指南
监控与合规提示
连续监测设置 -建立符合FedRAMP 20x要求的持续监控计划的指南,包括自动化、指标和报告
季度审查清单 -FedRAMP 20x季度审查清单(FRR-CCM-QR),涵盖72个KSI、漏洞审查和变更审查
脆弱性_调解_时间线 -符合FedRAMP 20x VDR要求的漏洞修复时间表和优先级框架
审计和文件提示
审核准备 -FedRAMP 20x评估准备指南,包括证据收集、常见发现和面试准备(团队确定准备时间表)
ato_package_checklist -操作授权(ATO)包准备检查表,包括所需的工件、模板和提交要求
文档生成器 -OSCAL SSP模板、程序模板(VDR、ICP、SCN)和KSI实施文档模板
FRR合规性和代码审查提示
frr_code_review -使用AST支持的语义分析,在所有10个FRR系列(VDR、ADS、RSC、UCM、CCM、SCN、MAS、ICP、FSI、PVA)中使用PR工作流集成,根据FedRAMP要求(FRR)审查代码的指南
家庭评估 -针对199个FRR要求的家庭特定评估指南,包括10个FRR家庭的详细清单、评估问题和证据规划
frr_implementation_roadmap -实施所有199个FRR要求的16周4阶段战略路线图,包括优先级框架、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'] = 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
贡献
欢迎投稿!请参阅 贡献.md 用于:
- 开发设置和测试
- 安全扫描要求
- 依赖性管理指南
- 拉取请求流程
- 项目结构和架构
- 完整的测试文档
安全
有关安全漏洞报告和安全最佳实践,请参阅 安全.md.
贡献
欢迎投稿!请参阅 贡献.md 用于:
- 开发设置和测试
- 安全扫描要求
- 依赖性管理指南
- 拉取请求流程
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
这个项目是开源的,欢迎投稿!看 贡献.md 作为指导方针。
FedRAMP数据由美国总务管理局作为公共领域内容提供。
