自动化核查与持续合规
sentinel, Lab
v3.0
STABLE
Linux
安全基线
最小权限
自动化核查
安全加固
场景 4 — 阶段三:自动化核查与持续合规
自动化核查方案
| 工具 |
说明 |
| OpenSCAP |
开源安全合规框架,支持 XCCDF/OVAL 标准,CIS Profile 内置 |
| Lynis |
开源安全审计工具,一键扫描 + 详细报告 + 评分 |
| 脚本自研 |
基于 Shell/Python 的自定义核查脚本,精确匹配企业基线 |
| Ansible Playbook |
自动化加固 + 核查一体化,可批量执行 |
| CIS-CAT |
CIS 官方工具,Benchmark 专业扫描 |
核查脚本设计
#!/bin/bash
# 基线核查脚本框架
PASS=0; FAIL=0; WARN=0
check() {
local id=$1 desc=$2 cmd=$3 expect=$4
result=$(eval "$cmd" 2>/dev/null)
if echo "$result" | grep -q "$expect"; then
echo "[PASS] $id: $desc"; ((PASS++))
else
echo "[FAIL] $id: $desc"; ((FAIL++))
fi
}
# SSH 检查
check "SSH-001" "禁止root远程登录" \
"grep '^PermitRootLogin' /etc/ssh/sshd_config" "no"
check "SSH-002" "使用SSHv2" \
"grep '^Protocol' /etc/ssh/sshd_config" "2"
# 用户检查
check "USR-001" "无空口令用户" \
"awk -F: '($2==""){print}' /etc/shadow | wc -l" "0"
check "USR-002" "仅root的UID为0" \
"awk -F: '($3==0){print $1}' /etc/passwd" "root"
# 文件权限检查
check "FILE-001" "shadow文件权限600" \
"stat -c '%a' /etc/shadow" "600"
# 服务检查
check "SVC-001" "telnet未启用" \
"systemctl is-enabled telnet 2>/dev/null" "disabled"
echo "结果: PASS=$PASS FAIL=$FAIL WARN=$WARN"
核查频率与范围
| 频率 |
范围 |
说明 |
| 新服务器上线前 |
全量 119 项 |
上线前必须通过 L1 基线核查 |
| 每日自动化抽查 |
核心服务器 |
SSH/权限/日志关键项 |
| 每周全量自动化核查 |
所有服务器 |
全量扫描,输出报告 |
| 每月人工抽检 + 报告 |
10% 服务器 |
人工验证,月度合规报告 |
| 重大变更后 |
变更影响范围 |
配置变更后立即核查相关项 |
合规度量指标
| 指标 |
当前 |
目标 |
| L1 基线合规率 |
72% |
≥ 95% |
| L2 基线合规率 |
45% |
≥ 85% |
| L3 基线合规率 |
28% |
≥ 75% |
| 高危项合规率 |
68% |
≥ 99% |
| 修复及时率 |
60% |
≥ 90% |
| 新上线合规率 |
85% |
100% |
持续合规机制
| 机制 |
说明 |
| 基线版本管理 |
基线标准版本化管理,变更需评审 |
| 核查结果看板 |
实时展示各服务器/集群合规状态 |
| 不合规告警 |
高危项不合规实时告警通知责任人 |
| 整改跟踪 |
不合规项自动生成整改工单,跟踪闭环 |
| 定期通报 |
周报:合规率趋势,月报:整改进展 |
| 基线更新跟踪 |
CIS/等保标准更新,季度评审基线 |
典型不合规整改
| 不合规项 |
风险 |
整改措施 |
| SSH 允许 root 登录 |
高 |
修改 sshd_config,PermitRootLogin no |
| 密码策略过弱 |
高 |
配置 PAM 密码复杂度要求 |
| 不必要服务开放 |
中 |
systemctl disable + mask |
| 关键文件权限过宽 |
中 |
chmod 精确设置权限 |
| 审计规则缺失 |
中 |
补充 auditd 规则并重启服务 |
| 内核参数未加固 |
低 |
更新 sysctl.conf 并 sysctl -p |