← 状态页 /status/
XK-LAB // 告警噪音指数 ALERT-NOISE ● 待读 /data/noise-index.json(读不到就写读不到)
一句话窗口待读

你的告警面板里 — 是自家 agent 的心跳。

分母与分子都在 JSON 里,可以自己除一遍:心跳条数 ÷ alert 总条数。 剩下的部分是信号 —— 但这不等于"剩下的都是攻击"(见下面的检测缺口)。

口径:只统计 event_type = alert 的事件;flow / http / ssh 这些 流量事件不进分母 —— 它们本来就不是"告警",混进来会把噪音比例稀释成假数字。

噪音 vs 信号按占比画,不用图表库
  • 噪音(心跳)— 条 · 占比—
  • 信号(其余告警)— 条 · 占比—

条数与占比从同一份 JSON 现算: 占比 = 条数 ÷ alert 总数。读不到就整块留空 —— 不补数。

按规则拆开规则待读
SID规则 / 描述条数占比归类
—待读 /data/noise-index.json——待读

检测缺口 · 规则 100110

规则 100110(120 秒内 5 次登录失败)在这个窗口命中 0 次。 0 不代表没有攻击 —— 机器人拿泄露口令表,一枪就中是常态, 「失败 5 次」这个条件在这套蜜罐上永远凑不齐。详见 攻击链复盘笔记。

口径 · 这些数从哪来先看这块,再看数字
数据来源srv2 的 Suricata eve.json,窗口 —。本页是当日分析出来的快照,不是实时取数: 产物里 source 字段写明它是「已核实摘要」还是「现场统计」。
为什么心跳算噪音sid 2013031 是腾讯云 agent 每 5 分钟往 169.254.0.4:80 发一次 POST /ca_report.cgi —— 固定的源、固定的目的、固定的语义,里面没有一个字节是攻击。 它占满了告警列表,把真正要看的那几条挤到看不见。
蜜罐侧量级同一个窗口里 Cowrie 单日 14,147 个会话(login.success 14,061 / login.failed 19),:2222 的 flow 139,987 条。 会话数比"单包告警"更硬 —— 那才是真的有人在连。
不做的不调任何接口、不写任何东西、不看服务器;这一页只是一次同域静态文件读取。 数字读不到就整页留空写「读不到(原因)—— 不补数」。

产物:static/data/noise-index.json ← scripts/noise/build-noise.py(Python 3 stdlib,无第三方依赖; --from-written = 已核实摘要,--in = 现场数 eve.json)。

  • 待读产物里的 notes[](每一条缺失项的原因都写在那里)。

产物生成时间:—

相关页面:状态页 · 当前告警 · 公开端点清单 · 紫队自测(攻击链复盘)