安全配置基线如何制定?

wen 网络安全 48

本文目录导读:

安全配置基线如何制定?

  1. 第一步:明确范围与目标
  2. 第二步:选择或参考权威标准
  3. 第三步:核心配置项
  4. 第四步:撰写基线文档
  5. 第五步:实施与自动化
  6. 第六步:持续监控与审计
  7. 一个简化的示例(Linux 基线片段)
  8. 三个常见的陷阱(避坑指南)

制定安全配置基线是保障信息系统安全的基础性工作,其核心目的是为所有设备、系统和软件提供一个统一、最小权限、已知安全状态的配置标准,以下是制定安全配置基线的标准流程和方法:

第一步:明确范围与目标

  1. 梳理资产清单:明确基线将应用于哪些资产,
    • 操作系统(Windows Server, Linux, macOS)
    • 网络设备(路由器、交换机、防火墙)
    • 中间件(Nginx, Apache, Tomcat)
    • 数据库(MySQL, PostgreSQL, Oracle, Redis)
    • 应用软件(办公软件、开发工具)
  2. 确定安全目标:基于业务需求和合规要求。
    • 合规驱动:等保2.0、ISO 27001、GDPR、PCI-DSS、CIS Benchmarks等。
    • 威胁驱动:针对常见攻击(如弱口令、漏洞利用、DDoS)进行防御。
    • 业务连续性:确保配置不会影响核心业务的正常运行。

第二步:选择或参考权威标准

直接“从零开始”编写基线很难且容易遗漏,建议参照权威机构发布的安全配置基准。

  • CIS Benchmarks(国际权威):最广泛使用,分操作系统、云平台、数据库等,详细且免费。
  • NSA(美国国家安全局)/ DISA STIGs:针对军事级防御,极其严格。
  • 等保2.0 三级/四级要求:国内标准,注重合规与国产化。
  • 厂商官方安全手册:如微软安全基线、红帽加固指南。

第三步:核心配置项

安全配置基线通常包含以下八大类核心配置项(以操作系统为例):

  1. 账户与认证管理

    • 最小权限:禁用或删除默认管理员/guest账户;使用普通账户日常操作。
    • 密码策略:长度(>8位)、复杂度、生命周期(90天)、历史记录。
    • 多因素认证(MFA):对远程管理(SSH/RDP)启用。
    • 锁定策略:登录失败次数(5次)后锁定账户。
  2. 服务与端口管理

    • 关闭不用的服务:例如FTP、Telnet、RPC、打印服务(Print Spooler)等。
    • 最小化开放端口:仅开放业务必需端口,如80/443/22/3306。
    • 禁用不必要的协议:如IPv6(若未使用)、LLMNR、NetBIOS。
  3. 文件与目录权限

    • 系统关键文件/etc/passwd/etc/shadow 只能被root读取。
    • 审计日志:权限严格,禁止非管理员删除。
    • 共享权限:使用最小权限原则,不设置Everyone完全控制。
  4. 日志与审计

    • 启用审计:记录关键事件(登录成功/失败、特权使用、策略更改)。
    • 日志配置:日志保留时间(>180天)、存储路径、大小限制。
    • 时间同步:配置NTP服务,保证日志时间准确。
  5. 补丁与更新管理

    • 自动更新:设置内部更新服务器(WSUS、Red Hat Satellite)。
    • 补丁窗口:定义安全补丁的测试与部署周期(如:高危漏洞72小时内修复)。
  6. 网络与防火墙

    • 主机防火墙:一律开启,默认拒绝入站,允许出站。
    • IP限制:仅允许特定管理IP访问SSH/RDP。
  7. 安全增强功能

    • ASLR/DEP(数据执行保护)/ PIE(位置无关可执行文件):启用。
    • SELinux/AppArmor:设置为Enforcing模式。
    • WAF配置(Web应用防火墙):开启规则集。
  8. 敏感数据保护

    • 加密传输:禁用HTTP明文,必须使用TLS 1.2+。
    • 磁盘加密:全盘或敏感分区加密。

第四步:撰写基线文档

一份合格的配置基线文档应包含:

  1. 元数据:适用版本、制定日期、责任人、版本号。
  2. 配置项编号:便于追踪(如 OS-WIN-001)。
  3. 配置要求:清晰描述预期状态(如:要求:启用密码复杂性。)。
  4. 检查方法:命令行或脚本命令(如 grep 'PASS_MAX_DAYS' /etc/login.defs)。
  5. 加固方法:如何实施(如修改配置文件,执行 chage -M 90)。
  6. 风险与例外:说明不兼容或不适用场景的处理流程(如:该配置与集团旧系统A冲突,申请豁免)。

第五步:实施与自动化

  • 使用脚本或工具:手动配置易出错且效率低。
    • Ansible/Puppet/Chef:批量部署基线。
    • PowerShell DSC:Windows环境配置即代码。
    • Shell脚本:Linux基线自动化。
  • 灰度发布:先测试5%的机器,确认无业务影响后再全量部署。

第六步:持续监控与审计

  1. 定期扫描:使用工具(如 OpenSCAPNessus Policy ComplianceTenable.io云安全中心)检查基线符合率。
  2. 修复偏差:配置漂移(Drift)是常态,一旦发现不对项,自动或手动回滚至基线状态。
  3. 基线迭代:每季度或当出现重大漏洞(如Log4j)时,更新基线。

一个简化的示例(Linux 基线片段)

编号 配置项 要求 检查方法
LNX-001 密码最大有效期 90天 grep PASS_MAX_DAYS /etc/login.defs
LNX-002 root SSH登录 禁止直接登录 grep PermitRootLogin /etc/ssh/sshd_config
LNX-003 闲置超时 600秒 grep TMOUT /etc/profile
LNX-004 审计日志目录权限 仅 root 可读写 stat /var/log/audit/
LNX-005 禁用的服务 telnet-server 必须处于未运行状态 systemctl status telnet.socket

三个常见的陷阱(避坑指南)

  1. 硬编码例外:不要直接在文档中写“允许root登录”,应写成“除非有业务豁免申请并经审批,否则禁止root登录”。
  2. 忽视云环境:云上主机应遵循云厂商的安全组最佳实践(如所有入站流量默认拒绝)。
  3. 基线太死板:业务运行环境不同(如内部测试服务器 vs 生产服务器),应区分严格和生产基线。

制定安全配置基线不是一次性的技术工作,而是一个“选择标准 → 文档化 → 自动化实施 → 持续监控 → 定期迭代” 的闭环流程,核心原则是:最小权限、最小攻击面、已知安全状态

抱歉,评论功能暂时关闭!