基线巡检
等保 2.0 / CIS 合规判定,规则跑在 osquery 采集结果上。不调模型,结论可复现,气隙可用。
基线巡检回答「这 40 台主机的 SSH 配置、口令策略、审计开关合不合规」。每条规则 = 一段 osquery SQL 采集 + 一个判定算子,判定是确定性的,不消耗模型额度。所有版本都有。

接入(第一次用)
没有巡检记录时页面显示接入步骤:

建索引
网关在 ES 里建三个索引:规则 baseline-rules、结果 baseline-results、轮次 baseline-runs(名字可用 RST_BASELINE_*_INDEX 改)。
导规则
导入内置规则库(127 条,覆盖 Linux / Windows 的等保 2.0 和 CIS 常见项),在「规则库」tab 里查看、增改。
部署 osquery
在目标主机装 osquery,把规则库里的采集查询作为 pack 定时执行;用 Fleet(Osquery Manager)/ Filebeat / Logstash 把结果写进 ES。默认读 logs-osquery_manager.result-*(RST_BASELINE_OSQUERY_INDEX)。
核对字段映射
页面顶部「osquery 字段自检」显示网关推断的主机字段、规则键、列前缀。自带 ELK 的索引名和字段前缀常与默认不同,不一致用 RST_BASELINE_* 环境变量覆盖。
巡检
数据就位后点「立即巡检」,按规则逐主机判定。要定时跑,设 RST_BASELINE_INTERVAL_SECONDS(≥ 300,建议和 osquery pack 的 interval 一致,如 86400)。
巡检结果
顶部四张卡:合规评分(主机 × 规则)、通过、不合规(需要改配置)、待人工 / 异常(不计入评分)。评分的分母只算通过和不合规。
下面是历次合规评分趋势、本轮判定分布、单机合规评分,以及结果表:主机 / 规则 / 类别 / 严重度 / 判定 / 实际观测。点一行看期望值、实际观测、整改建议和标准引用(如 等保2.0-8.1.4.2, CIS-5.4.1)。
osquery 结果超过 48 小时(RST_BASELINE_MAX_AGE_HOURS)判为 stale,不参与通过 / 不通过判定;30 天(RST_BASELINE_HOST_ROSTER_DAYS)没上报的主机不再枚举。
规则库

每条规则:规则 ID、标题、平台(linux / windows / 通用)、判定算子、启用状态、来源(内置 / 自定义)。可以按 ID / 标题 / 类别过滤,停用不需要的规则。
新建 / 编辑规则

| 字段 | 说明 |
|---|---|
| 规则 ID | 3–64 字符 [A-Za-z0-9._-],同时是 osquery pack 里的查询名 |
| 采集查询 | osquery SQL,例如 SELECT value FROM ... WHERE key='PermitRootLogin' |
| 判定字段 / 算子 / 期望值 | 拿采集结果的哪一列、怎么比(等于 / 包含 / 正则 / 数值比较)、期望是什么 |
| 字段缺失时判定 | 采集结果里没有这个字段时算通过、不合规还是待人工 |
| 整改模板 | 不合规时给出的整改建议,例如「编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no」 |
| 标准引用 | 逗号分隔,报告里原样显示 |
历史轮次
「历史轮次」tab 列出每一轮的完成时间、评分、通过 / 不合规、主机 × 规则数,点进去看那一轮的完整结果。运营报告会引用周期内的基线通过率。