基线巡检
在 osquery 采集结果上执行等保 2.0 与 CIS 合规判定。不调用模型,结论可复现,离线环境可用。
基线巡检对主机的 SSH 配置、口令策略、审计开关等项目做合规判定。每条规则由一段 osquery SQL 采集查询和一个判定算子组成。判定是确定性的,不调用模型。所有版本都可以使用。
网关启动时创建基线用的索引(baseline-rules、baseline-results、baseline-runs)。规则库为空时,自动导入内置的 127 条规则,覆盖 Linux 与 Windows 上等保 2.0 和 CIS 的常见检查项。已有规则的规则库不会被覆盖。

接入 osquery 数据
没有巡检记录时,页面上可以选择 查看接入步骤。

步骤
- 在目标主机上安装 osquery,把 规则库 中的采集查询作为 pack 定时执行。pack 中的查询名即规则 ID。
- 用 Fleet(Osquery Manager)、Filebeat 或 Logstash 把采集结果写入 Elasticsearch。网关默认读取
logs-osquery_manager.result-*。 - 在页面顶部的 osquery 字段自检 中,核对网关推断的主机字段、规则键和列前缀。与实际数据不一致时,用环境变量覆盖(见 配置项)。自建 ELK 的索引名和字段前缀常与默认值不同。
- 选择 立即巡检。
网关按规则逐台主机判定,结果显示在 巡检结果 中。定时巡检由 RST_BASELINE_INTERVAL_SECONDS 设置,不少于 300 秒,建议与 osquery pack 的执行间隔一致,例如 86400。
巡检结果
| 卡片 | 含义 |
|---|---|
| 合规评分 | 通过数除以通过与不合规之和,按主机与规则的组合计算 |
| 通过 | 判定通过的组合数 |
| 不合规 | 需要修改配置的组合数 |
| 待人工 / 异常 | 不计入评分 |
卡片下方是 历次合规评分、判定分布、单机合规评分 和结果表。选择结果表中的一行,查看 期望值、实际观测、整改建议 和标准引用,例如 等保2.0-8.1.4.2, CIS-5.4.1。
网关读取上报中的 host.os.* 判定主机平台,只对主机执行对应平台和通用的规则。上报中没有 host.os.* 时,对该主机执行全部规则。超过 RST_BASELINE_MAX_AGE_HOURS(默认 48 小时)的采集结果判为过期,不参与通过与不合规的判定。
规则库

规则库 中每条规则有规则 ID、标题、平台、判定算子、启用状态和来源(内置 或 自定义)。按 ID、标题或类别过滤,停用不适用的规则。界面为英文时,内置规则的标题、类别、标准引用和修复建议显示为英文。自建或改过的规则按输入原样显示。
新建规则
在 规则库 中选择 新建规则,填写以下字段。

| 字段 | 说明 |
|---|---|
| 规则 ID | 3 到 64 个字符,限 [A-Za-z0-9._-]。同时是 osquery pack 中的查询名 |
| 平台 | linux 或 windows,留空表示通用 |
| 采集查询(osquery SQL) | 例如 SELECT value FROM ... WHERE key='PermitRootLogin' |
| 判定字段(judge.field)、判定算子、期望值(judge.expected) | 取采集结果的哪一列、比较方式(等于、包含、正则、数值比较)和期望值 |
| 字段缺失时判定(judge.on_missing) | 采集结果中没有该字段时,判为通过、不合规或待人工 |
| 整改模板 | 不合规时给出的整改建议,例如「编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no」 |
| 标准引用(逗号分隔) | 在结果和报告中原样显示 |
历史轮次
历史轮次 列出每一轮的完成时间、评分、通过与不合规数、主机与规则数。选择一轮查看该轮的完整结果。运营报告 引用报告周期内的基线通过率。
配置项
| 环境变量 | 默认 | 说明 |
|---|---|---|
RST_BASELINE_OSQUERY_INDEX | logs-osquery_manager.result-* | 读取的 osquery 结果索引 |
RST_BASELINE_RULES_INDEX | baseline-rules | 规则库索引 |
RST_BASELINE_RESULTS_INDEX | baseline-results | 判定结果索引 |
RST_BASELINE_RUNS_INDEX | baseline-runs | 巡检轮次索引 |
RST_BASELINE_HOST_FIELD | 自动推断 | 主机标识字段 |
RST_BASELINE_QUERY_FIELD | 自动推断 | 查询名字段,与规则 ID 关联 |
RST_BASELINE_COL_PREFIX | 自动推断 | 结果列前缀,例如 osquery. |
RST_BASELINE_INTERVAL_SECONDS | 未设置 | 定时巡检间隔(秒),不少于 300。未设置或小于 300 时不定时巡检 |
RST_BASELINE_MAX_AGE_HOURS | 48 | 超过该时长的采集结果判为过期 |
RST_BASELINE_HOST_ROSTER_DAYS | 30 | 超过该天数未上报的主机不再参与巡检 |