跳到正文
Hacker News· ynotbh·· 5 天前AI 评分36

Rego Policy Libraries:面向 OPA 的合规与加固策略库

Rego Policy Libraries: Compliance and Hardening Policies for OPA

AI 导读

Rego Policy Libraries 发布 740 条生产级 Rego 策略(含测试共 996 条,7,867 项控制级检查),覆盖 54 项标准,采用 Rego v1 语法,可直接加载进 OPA 与 Enterprise OPA。

正文 · AI 翻译

Rego 策略库

740 条生产就绪的 Rego 策略(含测试共 996 条;按 make count 统计有 7,867 项控制级检查;统计于 main 分支 2026-10-12),适用于 OPA 和 Enterprise OPA(EOPA),覆盖 CIS Benchmarks(含 Level 2 加固配置文件)、CIS Controls v8.1、DISA STIG、CISA SCuBA M365、NSA/CISA Kubernetes 加固、NIST、零信任(CISA ZTMM v2.0)、SOC 2、PCI-DSS、ISO 27001、NERC-CIP(含完整数据源引用)、IEC 62443、HIPAA、FedRAMP、FBI CJIS、IRS Pub 1075、ACSC Essential Eight、APRA CPS 234、HKMA TM-G-1/TM-C-1(香港)、MAS TRM(新加坡)、BNM RMiT(马来西亚)、CERT-In 指令与 DPDP 法案(印度)、METI 网络安全经营指南(日本)、UK Cyber Essentials、BSI C5、CSA CCM、CCPA/CPRA、EU AI Act、GEISA 等——全部采用 Rego v1 语法,可直接加载到任何 OPA 或 EOPA 实例中。

独立且无依赖:无需编排器、无需代理、无需厂商运行时。克隆、加载、查询即可。

任何人都可以验证的最大可执行合规策略开源库——跨 54 项受跟踪标准共 7,867 项控制级检查——并且是任何机器可读策略库(无论开源还是闭源)中监管覆盖范围最广的。前半部分是一个数字,CI 在每次合并时都会重新计算(make count),如果这一行发生偏移就会失败;后半部分是下面的框架列表,没有其他库能与之匹敌。我们如何针对我们能找到的每一个公共库来衡量这两者:docs/COMPARISON.md。 对比对象:Kubescape regolibrary(304 条 Rego 规则,仅 Kubernetes)、Kyverno policies(180)、Gatekeeper library(49)、trivy-checks(563)、Checkov(约 1,000,IaC)、KICS(1,813,IaC)、Prowler(1,625 项云检查)、Steampipe AWS mod(1,361)、ComplianceAsCode(2,574 条 OS 规则)、Azure Policy 内置策略(5,130,Azure)、Secure Controls Framework(1,534 项目录控制,不可执行)。无需修改即可运行于:OPA、Enterprise OPA、Styra DAS、Conftest、Gatekeeper、Kubewarden、Trivy、KICS、Regula、Snyk IaC、Terraform Cloud、Spacelift、env0、Envoy/Istio。导出为:适用于所有语言 SDK 的 WASM、签名捆绑包、OSCAL、SARIF、OCSF、Ansible、SCAP、InSpec、Wazuh、CEL/Kyverno、Azure Policy、AWS Config、Steampipe、Sentinel、Sigma、Prowler(见 converters/)。

六十秒内在 CI 中使用它:docs/INTEGRATIONS.md——拉取 GHCR 捆绑包,评估你的事实,在不符合合规要求时让作业失败;用 Conftest 做 IaC 门禁。

上面的计数由伴随每个合并批次的文档处理重新标记; 在批次之间它可能会略微偏低。任意提交处的确切数字:

git ls-files | grep '\.rego$' | grep -vcE '(^|/)(test_|.*_test\.rego$)'   # policy files
git ls-files | grep -c '\.rego$'                                          # including tests

control-level checks control-level checks (endpoint) License OPA Rego CIS RHEL 9 GitHub Stars


为什么选择这个仓库?

从零编写合规策略既昂贵又容易出错。一个典型企业仅为 CIS RHEL 9 部署 OPA 就需要 338 项单独的控制检查——而这还只是一个操作系统的一个框架。

这个库让你在第一天就获得一套完整、可用的策略集,覆盖 30 多个平台、55 多个监管框架,以及从 CIS 和 DISA STIG 到 NERC-CIP 和 IEC 62443 的每一项主要合规标准。所有策略:

  • 使用 Rego v1 语法(import rego.v1)——无弃用警告,向前兼容
  • 返回结构化 JSON 报告(合规、评分、违规列表)——可直接接入仪表板或 CI
  • 可独立加载——可单独使用一个框架或整个库;无耦合
  • 暴露一个统一入口点——每个框架都用 data.<package>.main.compliance_report,这样你只需按名称评估,无需了解其内部结构
  • 故障关闭——未提供任何事实的框架会报告不合规并给出明确原因,绝不会静默通过(见下文)
  • 供应商中立——不内置任何编排器、部署拓扑或调用方术语
  • 采用 Apache 2.0 许可——可无限制地商业使用

为什么不自己构建?你可以——但仅 CIS RHEL 9 就有 14 个章节中的 338 项控制。NERC-CIP 涵盖 14 项标准(CIP-002 至 CIP-015),包含 200 多项要求。IEC 62443 在 7 项基础要求之上增加了 51 项系统要求。从零开始需要数月。这个库就是那数月的工作,已经完成。


覆盖范围一览

标准 / 框架 路径 控制 / 要求
CIS RHEL 9 v2.0.0 benchmarks/cis/rhel_9/ 17 个模块 · 224+ 控制 ID ✅
CIS RHEL 8 benchmarks/cis/rhel_8/ 完整
CIS RHEL 10 benchmarks/cis/rhel_10/ 完整
CIS Ubuntu 22.04/24.04/20.04 benchmarks/cis/ubuntu_*/ 完整
CIS Rocky Linux 8/9 benchmarks/cis/rocky_linux_*/ 完整
CIS Debian 11 benchmarks/cis/debian_11/ 完整
CIS Amazon Linux 2023 benchmarks/cis/amazon_linux_2023/ 完整
CIS Windows Server 2019/2022 benchmarks/cis/windows_server_2022_modular/ 9 个章节
CIS Windows 10/11 benchmarks/cis/windows_10/ 完整
CIS Microsoft 365 Foundations v7 (SaaS) benchmarks/cis/saas/m365_v7/ 9 个章节:Entra、Exchange、Defender、Purview、SharePoint、Teams、Intune、Fabric、Admin Center
CIS PostgreSQL benchmarks/cis/postgresql/ 完整
网络设备——Cisco、Juniper、Palo Alto、Fortinet、Arista、VyOS、pfSense benchmarks/cis/network_devices/ 完整
CIS AWS / Azure / GCP benchmarks/cis/cloud/ 基础
CIS Docker / Kubernetes / OpenShift benchmarks/cis/containers/ 完整
DISA STIG——19 个平台(RHEL 8/9、Windows Server 2016/2019/2022/2025、Windows 10/11、Ubuntu 20.04/22.04、Amazon Linux 2023、SLES 15、Kubernetes、OpenShift 4、Crunchy Postgres 16、SQL 2016、Apache 2.4、Cisco IOS-XE、vSphere 8 ESXi) benchmarks/stig/ 按规则发现,带 XCCDF 验证的 ID(2026 年 7 月库);新平台上所有 CAT I;故障关闭入口点;每个聚合器说明总覆盖率
NIST 800-53 rev5 frameworks/federal/nist/sp_800_53/ 所有控制族
NIST 800-82 (OT) frameworks/critical_infrastructure/nist_800_82/ 完整
FISMA / FedRAMP / CMMC frameworks/federal/ 完整
ISO 27001:2022 frameworks/management/iso27001/ 完整 ISMS
SOC 2 Type II frameworks/management/soc2/ 所有 TSC
PCI-DSS v4.0 frameworks/financial/pci_dss/ 所有 12 项要求
SOX ITGC frameworks/financial/sox/ 完整
HIPAA frameworks/privacy/hipaa/ 完整
GDPR frameworks/privacy/gdpr/ 完整
NERC-CIP (CIP-002 – CIP-015) frameworks/critical_infrastructure/nerc_cip/ 14 项标准
IEC 62443(所有部分) frameworks/critical_infrastructure/iec_62443/ 51 项 SR,SL 1–4
NIST IR 7628(AMI / 智能电网) frameworks/critical_infrastructure/ami/ 完整
DORA / NIS2 frameworks/regulatory/ 完整
NCSC CAF 4.0 frameworks/compliance/ncsc_caf/ 23 项网络成果
数字主权 frameworks/sovereignty/ 7 个领域
CSA CCM v4.0 frameworks/management/csa_ccm/ 16 个领域,197 项控制
ISO/IEC 27701:2019 frameworks/privacy/iso27701/ PIMS、PII 控制者、PII 处理者、DSR
NIST SP 800-171 Rev 3 frameworks/federal/nist/sp_800_171/ 14 个族,110 项 CUI 要求
CCPA / CPRA frameworks/privacy/ccpa/ 消费者权利、敏感 PI、数据实践
EU AI Act (2024/1689) governance/eu_ai_act/ 禁止、高风险、透明度、GPAI、治理
TSA Pipeline Security Directives frameworks/critical_infrastructure/tsa_pipeline/ SD Pipeline-2021-01G + 02G,12 个章节,112 项要求
GLBA Safeguards Rule (16 CFR 314) frameworks/financial/glba/ 所有 §314.4 要素 + §314.5 违规通知(2024),已建模小型机构豁免
CISA CPG 2.0 (Oct 2025) frameworks/federal/cisa_cpg/ 所有 34 项目标,六个 CSF-2.0 功能(含 GOVERN),按功能汇总
ISO/IEC 42001:2023 (AIMS) governance/iso_42001/ 第 4–10 条 + 附录 A 组——与 EU AI Act + NIST AI RMF 共同构成 AI 三件套
ITAR (22 CFR 120–130) frameworks/regulatory/itar/ 数据保护切片:视同出口、§120.54 加密豁免、DDTC 卫生——法律/许可范围已如实排除
COBIT 2019 frameworks/management/cobit/ 跨 EDM/APO/BAI/DSS/MEA 的治理系统认证——明确声明不进行成熟度评估
CISA SCuBA M365 benchmarks/scuba/m365/ 涵盖 7 个产品(Entra ID、Defender、EXO、Power BI、Power Platform、SharePoint/OneDrive、Teams)的全部 104 项基线策略;报告 SHALL/SHOULD 关键性;BOD 25-01
CIS Amazon EKS v1.8.0 benchmarks/cis/eks/ 49 项控制(kubescape 映射覆盖;缺口在头部说明)
CIS Azure AKS v1.8.0 benchmarks/cis/aks/ 56 项控制(kubescape 映射覆盖;缺口在头部说明)
CIS Google GKE v1.9.0 benchmarks/cis/gke/ 40 项控制(部分覆盖官方基准——在头部说明)
NSA/CISA Kubernetes 加固 v1.2 benchmarks/nsa_cisa/kubernetes/ 指南 5 个章节共 43 项控制
Kubernetes Pod 安全标准 benchmarks/pss/kubernetes/ 12 项基线 + 6 项受限控制,针对实际 Pod 清单进行评估
FERPA(34 CFR Part 99) frameworks/privacy/ferpa/ 32 项控制:通知、访问/修正、同意、例外条件、目录信息、披露记录保存
COPPA(16 CFR Part 312,2025 年修正案) frameworks/privacy/coppa/ 21 项控制,包括单独的第三方披露同意、保留政策、书面信息安全计划
CIS Controls v8.1 frameworks/management/cis_controls_v8/ 18 项关键安全控制、153 项保障措施、累积 IG1 ⊆ IG2 ⊆ IG3 评分——区别于上文的 CIS 基准
零信任——CISA ZTMM v2.0 + NIST SP 800-207 frameworks/federal/zero_trust/ 5 大支柱 + 3 项跨领域能力共 83 项标准
PQC 就绪(FIPS 203/204/205、EO 14412、CNSA 2.0) frameworks/federal/pqc/ 15 项按配置文件分级的控制(general/federal/nss)+ 对提供的加密清单进行数据驱动的算法分类(HNDL、IR 8547 弃用、CNSA 2.0)
BNM 技术风险管理(马来西亚,2026 年 9 月) frameworks/financial/bnm_rmit/ B 部分 §§8–15 的 99 项强制性 S 段落;云、第三方、NCII 和数字服务段落由声明的标志控制;报告中包含 2027 年到期义务以及 4 小时 / 120 分钟可用性目标
HKMA SPM TM-G-1 + TM-C-1(香港) frameworks/financial/hkma_trm/ 67 项控制:TM-G-1 §§2–7 技术风险管理以及 TM-C-1 网络职责(事件报告、C-RAF、STDB、CISP);WLAN、外包和海外 IT 段落由声明的标志控制
APRA CPS 234 信息安全(澳大利亚,2019) frameworks/financial/apra_cps234/ 要求段落 13–36 每段一项控制;第三方段落由声明的标志控制;报告中包含 72 小时事件和 10 个工作日弱点时钟
METI 网络安全管理指南 Ver. 3.0(日本,2023) frameworks/regional/meti_csm/ 附录 A 检查表:3 项原则(9 个条目)+ 10 个方向(40 个条目),每个条目附有其 NIST CSF 子类别引用;按方向报告
印度 DPDP 法案 2023 + DPDP 规则 2025 frameworks/privacy/dpdp_india/ 数据受托人义务:合法依据、通知、同意、规则 6 保障措施、72 小时违规报告、保留与删除、儿童、重要数据受托人、权利、传输;四个声明的范围标志;报告中包含处罚层级
CERT-In 根据 IT 法案 s.70B(6) 发布的指令(2022 年 4 月) frameworks/regional/cert_in/ 印度:6 小时事件报告、附件 I 全部 20 种事件类型、180 天境内日志、NIC/NPL 时间同步、PoC;提供商和 VASP 职责由声明的行业标志控制
MAS 技术风险管理指南(2021 年 1 月) frameworks/financial/mas_trm/ 第 3–15 章共 237 项控制,按章报告;第 14 章(在线金融服务)由标志限定范围
ACSC Essential Eight(2023 年 11 月) frameworks/regional/essential_eight/ 8 项缓解策略、96 项要求;总体成熟度 = 最低策略级别
FBI CJIS 安全政策 frameworks/federal/cjis/ 全部 13 个政策领域、98 项要求,映射至 NIST 800-53
NIST SSDF(SP 800-218 v1.1) frameworks/federal/nist_ssdf/ 42 项安全软件开发控制措施
IRS Publication 1075(Rev. 11-2021) frameworks/federal/irs_1075/ 8 个保障领域、57 项要求 — IRC 6103(p)(4)(A)–(F)、§9 计算机安全(800-53 Rev 5 裁剪)、§10 事件响应
UK Cyber Essentials(Willow,2025 年 4 月) frameworks/regional/cyber_essentials/ 5 个技术控制主题、28 项要求
BSI C5:2020、MAS TRM(新加坡,2021 年 1 月)、CERT-In Directions(印度,2022)、India DPDP Act 2023 + Rules 2025、METI CSM Guidelines(日本)、APRA CPS 234、HKMA TM-G-1/TM-C-1、BNM RMiT(马来西亚) frameworks/regional/bsi_c5/ 全部 17 个标准领域、61 项要求 — 包括可移植性/互操作性(导出 + 确认删除)和政府调查请求(INQ)
ISO/IEC 42005:2025(AI 影响评估) governance/iso_42005/ 22 项证明检查,覆盖 AIIA 流程(第 5 条)和各系统记录(第 6 条),并与 ISO 42001 AIMS 集成对接
OWASP LLM Top 10(2026) governance/owasp_llm/ 30 项控制措施(每个风险 3 项,LLM01–LLM10:2026),并附 MITRE ATLAS 缓解措施对照表(atlas-data v2026.09)
FedRAMP 20x KSI frameworks/federal/fedramp_20x/ 全部 46 项关键安全指标,Class B/C 配置文件,由 Consolidated Rules 数据文件生成;rev5 模块保留用于现有/High
UK MoD DCC — DEF STAN 05-138 Issue 4 frameworks/regional/dcc/ 全部 148 项控制措施、4 个网络风险配置文件(L0 基础 → L3 专家),包含精确的逐控制级别集合,包括非累积式替代对

每个已实施的标准都在 STANDARDS_UPDATE_REGISTRY.md 中跟踪 — 固定版本、上游修订节奏和监视 URL — 因此模块会在标准变化时重新生成,而不是悄然漂移。


包含内容

领域 策略 覆盖范围
CIS Benchmarks + DISA STIGs 324 30+ 平台:Linux、Windows、云、容器、托管 Kubernetes(EKS/AKS/GKE)、数据库、Web 服务器、网络设备、VMware、移动端和 SaaS(M365)— 外加 19 个平台的 DISA STIGs。CIS 基准版本更新至 2026 年 5 月发布版;针对高价值目标(RHEL 9、Ubuntu 22.04、Windows Server 2022)的 Level 2 加固配置文件
联邦与 K8s 加固基线 10 CISA SCuBA M365(104 项策略、7 个产品、BOD 25-01)、NSA/CISA Kubernetes Hardening v1.2(43 项控制措施)、Kubernetes Pod Security Standards(baseline + restricted,依据实际 Pod 清单评估)
监管框架 328 ISO 27001、SOC 2、PCI-DSS、SOX、FISMA、FedRAMP、CMMC、GDPR、HIPAA、NERC-CIP、IEC 62443、DORA、NIS2、NY DFS、SEC Cyber、SWIFT CSP、HITRUST、TISAX、CFR Part 11、NCSC CAF、Digital Sovereignty、CSA CCM v4.0、ISO 27701、NIST SP 800-171 r3、CCPA/CPRA、TSA Pipeline SDs、GLBA、CISA CPG 2.0、ITAR、COBIT 2019、FERPA、COPPA(2025 年修正案)、CIS Controls v8.1、Zero Trust(CISA ZTMM v2.0)、NIST SSDF、FBI CJIS、ACSC Essential Eight、IRS Pub 1075、UK Cyber Essentials、BSI C5:2020
执行 17 Ansible、Terraform、Dockerfile、Kubernetes 准入、Git 审批/剧本文档、AAP 作业门控、CI/CD 流水线门控、SLSA 供应链治理
治理 21 AI agent 授权、MCP 工具调用强制执行、GEISA(API/ADM/LEE/VEE)、EU AI Act(Regulation 2024/1689)套件、ISO/IEC 42001(AIMS)、OIDC token 验证、FinOps 标记
交叉映射 2 STIG ↔ NIST 800-53 控制映射、框架映射
威胁检测 1 加密货币挖矿程序检测

亮点:CIS RHEL 9 v2.0.0 — 跨 17 个模块的 224+ 个不同 CIS 控制 ID (14 个核心 CIS 章节,外加 3 个用于 STIG/NIST 漂移检测的扩展加固模块)。

关于覆盖数字。上述控制 ID 是从模块实际发出的违规消息中统计的, 因此该数字可从一次克隆中复现:

grep -rhoE 'CIS (L2 )?[0-9]+(\.[0-9]+)*' benchmarks/cis/rhel_9 --include='*.rego' \
  | sed -E 's/CIS L2 /CIS /' | sort -u | wc -l

这是下限,而非上限 — 单条规则往往满足不止一个 CIS 控制项, 因此真实覆盖率更高。我们发布能够证明的数字,而不是无法证明的 头条百分比。


快速开始

选项 A — OCI bundle(生产环境推荐)

直接从 GitHub Container Registry 拉取预构建的 bundle — 无需克隆:

# Pull the full policy bundle
oras pull ghcr.io/ynotbhatc/rego_policy_libraries:latest

# Start OPA with the bundle
podman run -d --name opa -p 8181:8181 \
  -v "$(pwd)/bundle.tar.gz:/bundle.tar.gz:ro" \
  openpolicyagent/opa:1.10.0 run --server --addr :8181 --bundle /bundle.tar.gz

提供带版本号的标签:ghcr.io/ynotbhatc/rego_policy_libraries:v1.0.0

安装 oras:https://oras.land/docs/installation


选项 B — Git 克隆

# Clone
git clone https://github.com/ynotbhatc/rego_policy_libraries.git
cd rego_policy_libraries

# Start OPA
podman run -d --name opa -p 8181:8181 openpolicyagent/opa run --server --addr :8181

# Load all CIS RHEL 9 policies
for f in benchmarks/cis/rhel_9/*.rego; do
  curl -s -X PUT --data-binary @"$f" \
    "http://localhost:8181/v1/policies/$(basename $f .rego)"
done

# Evaluate against your system facts — uniform entrypoint, same for every framework
curl -s -X POST http://localhost:8181/v1/data/cis_rhel9/main/compliance_report \
  -H 'Content-Type: application/json' \
  -d '{"input": {"os_family": "RedHat", ...}}'

以无输入进行查询,你会得到 compliant: false,并伴随一个明确的 FAIL-CLOSED 违规 — 而不是 100% 通过。这是有意为之;参见 框架入口点。


策略分类体系

rego_policy_libraries/
├── benchmarks/                  # Technical security baselines
│   ├── cis/
│   │   ├── rhel_8/ rhel_9/ rhel_10/
│   │   ├── ubuntu_20_04/ ubuntu_22_04/ ubuntu_24_04/
│   │   ├── debian_11/ rocky_linux_8/ rocky_linux_9/ amazon_linux_2023/
│   │   ├── windows_server_2016/ windows_server_2019_modular/
│   │   ├── windows_server_2022/ windows_server_2022_modular/
│   │   ├── windows_10/ windows_11/
│   │   ├── aws/ azure/ gcp/     # Cloud Foundations
│   │   ├── docker/ kubernetes/  # Containers
│   │   ├── eks/ aks/ gke/       # Managed Kubernetes (EKS v1.8.0, AKS v1.8.0, GKE v1.9.0)
│   │   ├── postgresql/ databases/
│   │   ├── saas/m365_v7/        # SaaS — CIS Microsoft 365 Foundations v7 (m365/ = v6 legacy)
│   │   ├── network_devices/     # Cisco, Juniper, Palo Alto, Fortinet, Arista, VyOS, pfSense
│   │   ├── vmware/              # ESXi 8, vCenter
│   │   ├── mobile_devices/      # Android, iOS
│   │   ├── os/linux/            # legacy/simple RHEL 9 variants — superseded
│   │   ├── cloud/               # AWS, Azure, GCP Foundations
│   │   ├── containers/          # Docker, Kubernetes, OpenShift
│   │   ├── databases/           # MySQL 8, Oracle 19c, PostgreSQL 13/14/15
│   │   ├── web_servers/         # Apache 2.4, Nginx 1.20
│   │   └── network/             # Cisco IOS, Juniper Junos, Palo Alto, Fortinet, Arista
│   ├── stig/                    # DISA STIGs — 19 platforms (Linux, Windows, K8s/OpenShift,
│   │                            # databases, Apache, Cisco IOS-XE, vSphere)
│   ├── scuba/m365/              # CISA SCuBA M365 baselines — 104 policies, 7 products (BOD 25-01)
│   ├── nsa_cisa/kubernetes/     # NSA/CISA Kubernetes Hardening Guidance v1.2 — 43 controls
│   └── pss/kubernetes/          # K8s Pod Security Standards — baseline + restricted, manifest-evaluated
│
├── frameworks/                  # Regulatory compliance
│   ├── federal/                 # NIST 800-53/171/800-82, CSF 2.0, AI RMF, SSDF, FISMA, FedRAMP,
│   │                            # CMMC, Zero Trust (ZTMM v2.0 + 800-207), CJIS, IRS Pub 1075
│   ├── management/              # ISO 27001, SOC 2, CSA CCM, COBIT 2019, CIS Controls v8.1,
│   │                            # Corporate, NCSC CAF 4.0
│   ├── financial/               # PCI-DSS, SOX, SWIFT CSP, NY DFS, SEC Cyber, GLBA
│   ├── privacy/                 # GDPR, HIPAA, ISO 27701, CCPA/CPRA, FERPA, COPPA
│   ├── regulatory/              # DORA, NIS2, ITAR
│   ├── regional/                # ACSC Essential Eight, UK Cyber Essentials, BSI C5, UK MoD DCC, CERT-In (India), METI CSM (Japan)
│   ├── critical_infrastructure/ # NERC-CIP (CIP-002–CIP-015), IEC 62443, NIST IR 7628,
│   │                            # NIST 800-82, TSA Pipeline Security Directives
│   └── sovereignty/             # Digital Sovereignty (7 domains)
│
├── enforcement/                 # Gate-style policy enforcement
│   ├── ansible/                 # Block non-compliant playbooks at check-in and runtime
│   ├── terraform/               # Validate plans before apply
│   ├── dockerfile/              # Lint Dockerfiles at build time
│   ├── kubernetes/              # Admission control for K8s manifests
│   ├── git/                     # Approval and playbook-documentation policies
│   ├── cicd/                    # CI/CD pipeline gating
│   └── supply_chain/            # SLSA-style supply-chain governance
│
├── governance/                  # AI and operational governance
│   ├── ai/                      # AI agent action classification and authorization
│   ├── mcp/                     # MCP server tool-call enforcement
│   ├── eu_ai_act/               # EU AI Act (Regulation 2024/1689) — prohibited, high-risk, GPAI, transparency
│   ├── geisa/                   # GEISA runtime compliance (API, ADM, LEE, VEE)
│   ├── oidc/                    # OIDC token validation for portal/MCP access control
│   └── finops/                  # Resource tagging policies
│
└── threat_detection/
    └── crypto_mining/           # Detect unauthorized cryptocurrency miners

CIS Benchmark 覆盖

平台 路径 控制项
RHEL 9 benchmarks/cis/rhel_9/ 17 个模块 · 224+ 个控制 ID ✅
RHEL 8 benchmarks/cis/rhel_8/ 完整
Ubuntu 22.04 benchmarks/cis/ubuntu_22_04/ 完整
Ubuntu 20.04 / 24.04 benchmarks/cis/ubuntu_20_04/ 完整
Debian 11 benchmarks/cis/debian_11/ 完整
Rocky Linux 8 / 9 benchmarks/cis/rocky_linux_8/ 完整
Amazon Linux 2023 benchmarks/cis/amazon_linux_2023/ 完整
Windows Server 2019/2022 benchmarks/cis/windows_server_2022_modular/ 模块化(9 个章节)
AWS / Azure / GCP benchmarks/cis/cloud/ 基础
Docker / Kubernetes / OpenShift benchmarks/cis/containers/ 完整
MySQL / Oracle / PostgreSQL benchmarks/cis/databases/ 完整
Cisco / Juniper / Palo Alto / Fortinet / Arista benchmarks/cis/network/ 完整

IEC 62443 覆盖

面向 IEC 62443 工业自动化与控制系统(IACS)安全的完整库 — 涵盖 Part 3-3 的全部 51 项系统要求(SR)以及 Part 2 管理要求。

文件 部分 标题 SR
fr1_identification_authentication.rego 3-3 FR 1 标识与认证控制(IAC) SR 1.1–1.13(13)
fr2_use_control.rego 3-3 FR 2 使用控制(UC) SR 2.1–2.12(12)
fr3_system_integrity.rego 3-3 FR 3 系统完整性(SI) SR 3.1–3.9(9)
fr4_data_confidentiality.rego 3-3 FR 4 数据机密性(DC) SR 4.1–4.3(3)
fr5_restricted_data_flow.rego 3-3 FR 5 受限数据流 / 区域与管道(RDF) SR 5.1–5.4(4)
fr6_timely_response.rego 3-3 FR 6 对事件的及时响应(TRE) SR 6.1–6.2(2)
fr7_resource_availability.rego 3-3 FR 7 资源可用性(RA) SR 7.1–7.8(8)
part2_security_management.rego 2-1 安全管理体系(CSMS) —
part2_patch_management.rego 2-3 IACS 环境中的补丁管理 —
part2_service_provider.rego 2-4 IACS 服务提供商安全计划(SP.01–SP.10) —
part3_risk_assessment.rego 3-2 安全风险评估(ZCR 1–5) —
iec_62443_main.rego 全部 主编排器 — 聚合所有部分 共 51 项

安全等级(SL)分层:所有 FR 模块均强制执行按 SL 区分的要求 — 违规项会标注其适用的 SL(从 SL 1 基线到 SL 4 国家支持型威胁防护)。

OPA 端点:POST /v1/data/iec_62443_main/iec_62443_compliance_report

{
  "standard": "IEC 62443",
  "target_sl": 2,
  "compliant": false,
  "fr_compliance_score": 71,
  "sr_compliance_score": 84,
  "passing_frs": 5,
  "total_frs": 7,
  "passing_srs": 43,
  "total_srs": 51,
  "part3_3_foundational_requirements": {
    "FR1_identification_authentication": { "compliant": true, "passing_srs": 13 },
    "FR5_restricted_data_flow": { "compliant": false, "violations": ["..."] }
  }
}

TSA 管道安全指令覆盖

两项当前生效的 TSA 管道网络安全指令,位于 frameworks/critical_infrastructure/tsa_pipeline/ — 12 个章节模块外加一个 编排器,涵盖 112 个指令子段落。

指令 生效日期 涵盖章节
SD Pipeline-2021-01G — 增强管道网络安全 2026-01-16 → 2027-01-15 II.B 网络安全协调员 · II.C 向 CISA 报告事件 · II.D 漏洞评估
SD Pipeline-2021-02G — 管道网络安全缓解措施、应急计划与测试 2026-05-03 → 2027-05-02 II.A/III.A 关键网络系统 · II.B/VI 实施计划 + 修订 · III.B 网络分段 · III.C 访问控制 · III.D 持续监控 · III.E 补丁管理 · III.F 事件响应计划 · III.G 评估计划 · IV/V 记录 + SSI

OPA 端点: POST /v1/data/tsa_pipeline/main/compliance_report

这些指令在很大程度上由截止日期驱动,而这些截止日期正是这些策略所主张的——每一个都由 tests/test_tsa_pipeline_deadlines.rego 中的测试固定:

时钟 指令
72 小时——向 CISA 报告事件 SD-01G II.C.3
24 小时——补充信息 SD-01G II.C.5.f
7 天——协调员信息变更 SD-01G II.B.1.e
60 天——“无关键网络系统”通知 SD-02G II.A.5
45 / 50 / 30 天——永久变更 · 修订备案 · 复议申请 SD-02G VI.C / VI.D / VI.F
12 个月,≥ 2 个目标——事件响应计划演练 SD-02G III.F.1.e
24 个月——网络安全架构设计评审 SD-02G III.G.2.b
每年 ⅓,3 年 100%——评估覆盖率 SD-02G III.G.2.d
12 个月——评估计划和报告提交 SD-02G III.G.3–4
24 小时——最大数据包捕获时长 SD-02G IV.C.2.e.ii

尚不存在事实来源。 这两项指令绝大多数由计划、证明和记录保存驱动(“是否存在 TSA 批准的网络安全实施计划”、“评估计划是否在 12 个月内提交”)。这些都不来自主机事实收集,目前也没有任何东西发出各模块头部所记录的 input。在输入缺失的情况下,此框架报告 全部 12 个部分均完全不合规——对于审计框架而言这是正确的故障关闭行为,但在接入证明录入或 GRC 导出之前,它并不是一个可用的评估。不要把它当作可用的来演示。


NERC-CIP 覆盖

完整库覆盖 frameworks/critical_infrastructure/nerc_cip/ 中所有现行 CIP 标准(CIP-002 至 CIP-015)。

OPA 端点: POST /v1/data/nerc_cip_main

数据源: 14 项 CIP 策略使用的每个 input.* 字段都记录在 frameworks/critical_infrastructure/nerc_cip/DATA_SOURCES.md 中——每个条目列出真实世界的来源系统(GRC、CMDB、LMS、PACS、SIEM、INSM 平台、漏洞扫描器等)、收集方法(Ansible 模块或 REST 端点),以及该集成当前是已上线还是存根。


将策略加载到 OPA

单个策略

curl -X PUT --data-binary @benchmarks/cis/rhel_9/pam_validation.rego \
  http://localhost:8181/v1/policies/cis_rhel9_pam

目录中的所有策略

for f in benchmarks/cis/rhel_9/*.rego; do
  curl -s -X PUT --data-binary @"$f" \
    "http://localhost:8181/v1/policies/$(basename $f .rego)"
done

可选:按域拆分

单个 OPA 实例即可轻松服务整个库——从那里开始。如果之后你希望在域之间实现爆炸半径或访问隔离,可以运行多个实例,并向每个实例加载一个子树:

# e.g. one instance per domain, each on its own port
podman run -d --name opa-benchmarks  -p 8181:8181 openpolicyagent/opa run --server --addr :8181
podman run -d --name opa-frameworks  -p 8182:8181 openpolicyagent/opa run --server --addr :8181
podman run -d --name opa-governance  -p 8183:8181 openpolicyagent/opa run --server --addr :8181

然后将 benchmarks/ 加载到第一个,frameworks/ 加载到第二个,将 governance/ + enforcement/ 加载到第三个。

如何拆分完全由你决定——策略既不知道也不关心自己被加载到哪个实例,且没有任何策略引用另一个实例。选择任何符合你希望如何控制访问的分组方式;上面这个并无特别之处。


框架入口点

每个框架都暴露统一的入口点:

data.<package>.main.compliance_report

这样你就可以按名称评估任何框架,而无需了解其模块内部如何组织。有些框架是单个模块,另一些则聚合了十几个;无论哪种方式,入口点看起来都一样。

入口点以持有策略的包命名——绝不使用调用方自己的词汇。如果你的系统对某个框架的拼写不同(本库称为 cis_ubuntu_22_04 的地方你称为 cis_ubuntu_2204),请在你这边写一个薄别名:

package cis_ubuntu_2204.main

import rego.v1

compliance_report := data.cis_ubuntu_22_04.main.compliance_report

将这种转换保留在你的仓库中,才能让这个库保持通用。

故障关闭

大多数控制项的表述是 “如果事实表明 X,则违规”。在没有事实的情况下,没有任何迭代,也没有任何违规——而一份天真的报告会宣布,对于一次什么都没衡量的评估,几乎完全合规。这一结果与一个真正干净的系统无法区分,而这正是那种会悄悄进入审计记录的东西。

因此,每个入口点都会根据是否提供了事实来进行门控:

输入 结果
没有事实 compliant: false,0%,所有控制项均计为失败,显式 FAIL-CLOSED 违规
真实事实 正常评估;门控透明
opa eval -d . -f pretty 'data.cis_rhel9.main.compliance_report'
# compliant: false, compliance_percentage: 0, violations: ["FAIL-CLOSED: no facts supplied ..."]

空报告永远不是通过的报告。限制:该门控检测的是完全为空的输入,而不是部分为空的输入——稀疏或形状错误的事实仍会正常评估,并可能少报违规。


输入 / 输出契约

每个框架的入口点接受系统事实作为输入,并返回结构化报告。各个模块还额外暴露自己的 compliance_assessment / compliance_report 规则,如果你只想要单个部分而不是整个框架:

{
  "compliant": false,
  "summary": {
    "total_controls": 338,
    "passing_controls": 301,
    "failing_controls": 37,
    "compliance_percentage": 89.05,
    "overall_compliance": "FAIL"
  },
  "violations": [
    "1.1.1 Ensure mounting of cramfs filesystems is disabled",
    "5.2.4 Ensure SSH X11 forwarding is disabled"
  ],
  "section_compliance": {
    "1_filesystem": true,
    "2_services": false,
    ...
  }
}

作为 Git 子模块使用

# Add to your project
git submodule add https://github.com/ynotbhatc/rego_policy_libraries.git policies
git submodule update --init --recursive

# Update to latest
git submodule update --remote policies
git add policies && git commit -m "Update policy library"

要求

  • Open Policy Agent v0.60+,或 Enterprise OPA (EOPA)——这些策略仅使用标准 Rego 和内置函数,因此任一运行时均可
  • 所有策略均使用 import rego.v1(Rego v1 语法)
  • 在 CI 中针对 OPA v0.68 持续测试,并在本地针对 OPA v1.x 测试
  • 没有其他依赖——没有 sidecar、没有数据文档、没有外部服务。策略是其输入的纯函数,不执行任何 I/O(没有 http.send)。

使用者

该库是独立的。它不关心谁调用它、如何收集事实或结果存储在哪里——它是一棵由 .rego 文件及其测试组成的树,仅此而已。

任何特定于某个调用者的内容——框架键命名、路由表、结果模式、事实收集——都属于该调用者,而不是这里。如果你在本仓库中发现某些内容只对某一个使用者有意义,那就是一个值得报告的 bug。

已知使用者:

  • AAC(Ansible Automated Compliance)——一个基于 Ansible Automation Platform + OPA + PostgreSQL 的合规自动化平台。它将该库作为 git 子模块使用,并在自己一侧保留自己的键转换别名和路由配置。(编排仓库是私有的;该策略库是开放组件。)

在其他地方使用它?请开一个 issue——目标是这里没有任何内容需要了解上述任何一项。


GitHub 上更多 Rego 策略

指向社区中其他优秀策略即代码工作的链接——完全归功于以下每个项目的所有者和作者。这些是参考,不是内置副本:我们链接到它们以便你能找到它们;这些策略仍留在其原仓库中,由其各自的维护者和许可证管理。

策略库

仓库 所有者 / 作者 涵盖内容
redhat-cop/rego-policies Red Hat Community of Practice 用于 OPA、Gatekeeper 和 Conftest 的 Kubernetes/OpenShift + 通用配置合规策略
kubewarden/rego-policies-library Kubewarden 项目(SUSE) Kubernetes 安全与合规准入策略(兼容 Gatekeeper/Kubewarden,编译为 Wasm)
conforma/policy Conforma / Konflux-CI(Enterprise Contract) 软件供应链验证——镜像证明、构建来源、流水线定义验证
raedrizk/ansible-policy-as-code Raed Rizk(@raedrizk) AAP 治理 / 流水线强制执行 — 作业模板命名、EE 安全、fork 限制、基于时间的访问、SCM 分支强制执行、超级用户限制

样式、代码检查与工具

仓库 所有者 / 作者 它是什么
open-policy-agent/rego-style-guide Open Policy Agent 维护者 官方 Rego 风格指南 / 编写最佳实践(补充 Regal 代码检查器)
open-policy-agent/rego-python Open Policy Agent 用于处理 Rego AST 的 Python 库
itaysk/regogo Itay Shakury(@itaysk) 封装 Rego 引擎的 Go 库,用于通用 JSON 查询(jq 风格)

感谢每个项目的维护者和作者。要添加仓库?请链接到它(不要复制策略),注明所有者/作者,并给出一行描述。


转换器 — 从其他引擎使用该库

Rego 是 OPA、Enterprise OPA、Conftest、Gatekeeper、Kubewarden、Trivy、KICS、Regula、 Snyk IaC、Styra、Terraform Cloud 和 Spacelift 的原生语言,因此大多数平台按原样运行这些策略。对于 其他所有情况,converters/ 是该库的第二款产品:打包(适用于每种 语言 SDK 的 WASM、签名捆绑包)、交换导出(OSCAL、SARIF、OCSF、crosswalk CSV)以及按引擎的生成器 (Ansible、SCAP、InSpec、Wazuh、CEL/Kyverno、Azure Policy、AWS Config、Steampipe、Sentinel、Sigma、Prowler)。 每个目标都有自己的目录、状态和往返测试;路线图和工作顺序见 converters/README.md。

贡献

  1. 将新的 .rego 文件放在适当的分类路径中
  2. 在顶部添加 import rego.v1
  3. 使用标准输出结构暴露 compliance_assessment 规则
  4. 提交 PR

许可证

Apache 2.0

来源:Hacker News · github.com