标签: 安全合规

  • IaC 安全必备利器Checkov 在 DevSecOps 流程中的实践

    随着云计算和自动化技术的快速发展,基础设施即代码(Infrastructure as Code,IaC) 已成为现代软件交付的重要组成部分。与此同时,DevSecOps 的兴起,推动安全理念前移,将安全嵌入开发和运维流程,实现安全与速度的平衡。

    在云原生和自动化时代,IaC 已是基础设施管理的基石,保障其安全性成为必然。借助 Checkov 等工具,结合 DevSecOps 的安全文化,能够有效降低配置风险,提升整体交付质量和安全韧性。推动 IaC 安全从“可选”走向“必需”,是每个现代软件团队迈向成熟的关键一步。

    1. 为什么 IaC 安全不可忽视?

    IaC 通过代码化方式管理基础设施,极大提升了自动化水平和交付效率。但这也带来了新的安全挑战:

    • 配置风险高发
      误配置如开放存储桶、过宽权限或暴露的网络端口,极易被攻击者利用。
    • 敏感信息泄露隐患
      直接在 IaC 代码中硬编码密钥、凭证,存在重大安全漏洞。
    • 合规压力持续增加
      必须满足内部政策与行业法规要求,确保基础设施符合安全规范。
    • 快速部署带来的风险扩散
      自动化频繁部署导致漏洞迅速扩散,若未及时发现,后果严重。

    因此,在 DevSecOps 体系中,必须对 IaC 实施自动化安全扫描,实现“安全左移”,及早识别并修复安全隐患。

    2. Checkov:IaC 静态安全扫描利器

    Checkov 是一款开源的 IaC 静态分析工具,广泛支持主流 IaC 格式和云平台,帮助开发者和安全团队在代码层面发现潜在风险。

    主要功能亮点:

    • 支持多种 IaC 格式:Terraform、CloudFormation、Kubernetes YAML、ARM 模板、Serverless、Helm charts、Dockerfile 等。
    • 针对 AWS、Azure、GCP 等主流云平台内置丰富的安全合规策略。
    • 拥有数百条预置检测规则,覆盖常见安全漏洞和最佳实践。
    • 易于集成,适配本地开发环境和 CI/CD 流水线,实现自动化扫描。

    通过 Checkov,团队能够快速定位配置风险,防止漏洞进入生产环境。

    3. 快速上手 Checkov

    安装

    pip install checkov

    验证

    checkov --version

    扫描示例

    • 扫描单个文件:
    checkov -f main.tf
    • 扫描整个项目目录:
    checkov -d .

    4. 将 Checkov 深度融合到 DevSecOps 流程

    • 早期预警
      鼓励开发者本地运行 Checkov,尽早发现和修复安全问题。
    • CI/CD 自动化
      将 Checkov 作为流水线必经环节,扫描未通过即阻断合并或部署,确保安全代码上线。
    • 持续优化
      定期分析扫描报告,提炼常见风险,持续完善 IaC 模板和安全策略。
    • 跨团队协作
      安全团队与开发团队紧密配合,提升安全意识,共同打造安全可靠的基础设施。
  • 使用 OpenSCAP 和 SCAP Security Guide 加固Ubuntu 24.04.2 (Noble Numbat)

    OpenSCAP 和 SCAP Security Guide 的作用

    • OpenSCAP 是一个用于自动化安全合规检查的开源工具,基于 SCAP(Security Content Automation Protocol,安全内容自动化协议)。它用于扫描系统,评估是否符合特定的安全基准,并生成修复建议或自动应用修复措施。
    • SCAP Security Guide(SSG) 是一套预定义的安全基准规则库,包含适用于不同操作系统(如 Ubuntu、RHEL、CentOS 等)的安全配置标准,例如 CIS(Center for Internet Security)基准DISA STIGPCI-DSS 规范。SSG 提供了 SCAP 兼容的 XML 文件,供 OpenSCAP 解析和执行安全检查。

    OpenSCAP 负责执行安全扫描,SCAP Security Guide 提供具体的安全基准规则,两者配合使用,可以自动化地评估和加固系统的安全性。

    1. 准备环境

    确保你的系统已安装 OpenSCAP 的必要工具。如果尚未安装,可使用以下命令安装:

    apt update
    apt install openscap-scanner -y

    安装完成后,验证 OpenSCAP 是否成功安装:

    oscap --version

    你应该会看到类似如下的版本信息:

    OpenSCAP command line tool (oscap) 1.3.9

    2. 下载并解压 SCAP Security Guide

    1. 下载 SCAP Security Guide:
    wget https://github.com/ComplianceAsCode/content/releases/download/v0.1.76/scap-security-guide-0.1.76.zip
    1. 解压文件并进入目录:
    unzip scap-security-guide-0.1.76.zip
    cd scap-security-guide-0.1.76

    解压后,你会看到多个 SCAP 配置文件。

    3. 选择适合的安全基准配置文件

    运行以下命令查看 Ubuntu 24.04 可用的 SCAP 配置文件:

    oscap info ssg-ubuntu2404-ds.xml

    Ubuntu 24.04 支持以下基准配置:

    • CIS Level 1 Server(较宽松,适用于基本安全需求)
    • xccdf_org.ssgproject.content_profile_cis_level1_server
    • CIS Level 1 Workstation
    • xccdf_org.ssgproject.content_profile_cis_level1_workstation
    • CIS Level 2 Server(更严格,适用于高安全需求)
    • xccdf_org.ssgproject.content_profile_cis_level2_server
    • CIS Level 2 Workstation
    • xccdf_org.ssgproject.content_profile_cis_level2_workstation

    推荐配置:

    • 服务器xccdf_org.ssgproject.content_profile_cis_level1_serverxccdf_org.ssgproject.content_profile_cis_level2_server
    • 工作站xccdf_org.ssgproject.content_profile_cis_level1_workstationxccdf_org.ssgproject.content_profile_cis_level2_workstation

    4. 执行安全检查

    使用以下命令评估系统是否符合 CIS Level 1 Server 基准:

    oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
        --results scan-results.xml \
        --report report.html \
        ssg-ubuntu2404-ds.xml

    输出说明:

    • scan-results.xml:详细的扫描结果文件。
    • report.html:可视化的合规性报告,可用浏览器打开查看。

    5. 生成并应用安全加固修复脚本

    如果扫描结果显示有不合规项,可以生成修复脚本并应用加固:

    1. 生成修复脚本
    oscap xccdf generate fix --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
        --output remediation.sh \
        ssg-ubuntu2404-ds.xml
    1. 检查修复脚本内容(确保符合预期):
    cat remediation.sh
    1. 执行修复脚本
    bash remediation.sh

    注意:修复过程可能会更改系统配置,建议在执行前备份关键数据。

    1. 再次检查修复效果
    oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
        --results scan-results-after.xml \
        --report report-after.html \
        ssg-ubuntu2404-ds.xml

    6. 总结与注意事项

    选择合适的安全基准

    • 服务器推荐 cis_level1_servercis_level2_server
    • 工作站推荐 cis_level1_workstationcis_level2_workstation

    错误处理

    • 如果执行 oscap 命令时遇到错误,可检查 scan-results.xmlreport.html 获取详细信息。
    • 部分规则可能需要手动调整,具体可参考 remediation.sh 内容。

    查看合规性报告

    使用浏览器打开 report.html,详细查看系统安全状态。

    完整流程示例(适用于服务器,CIS Level 1):

    # 1. 运行安全合规性检查
    oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
        --results scan-results.xml \
        --report report.html \
        ssg-ubuntu2404-ds.xml
    
    # 2. 生成修复脚本
    oscap xccdf generate fix --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
        --output remediation.sh \
        ssg-ubuntu2404-ds.xml
    
    # 3. 执行修复脚本
    bash remediation.sh
    
    # 4. 重新运行检查以验证修复效果
    oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
        --results scan-results-after.xml \
        --report report-after.html \
        ssg-ubuntu2404-ds.xml

    如果你有不同的系统用途(服务器/工作站)或需要更高安全级别(Level 2),可以调整 --profile 参数来适配不同基准。