ML 良性基线
按站点+路由为「正常请求」建模,偏离正常即弱信号。人工训练、复核、生效的全流程。
「ML 良性基线」与语义引擎思路相反:语义引擎证明「这是攻击」,ML 则为「正常请求」建模,偏离正常即产出弱信号 ml_anomaly 参与融合。它按「站点 + 路由」分桶,做字段级 + 请求级双层建模,全程 Go 实现。

#人工闭环:采样 → 训练 → 生效
训练与生效全人工,不做任何自动周期重训,避免模型被悄悄污染:
- 1自动采样引擎自动收集经语义 + Coraza 双重清洗的正样本,按路由入缓冲。
- 2手动训练某路由攒够
min_samples(默认 200)后,运营在控制台点「训练」生成候选模型(此时只影子打分)。 - 3复核后生效确认无误后点「生效」,生效模型才进入融合参与决策。没生效的模型 = 0 分、不打分。
#关键字段
| 字段 / 控件 | 默认 / 示例 | 说明 |
|---|---|---|
enabled | true | 开启采样与打分(旁路弱信号,不单独定生死)。 |
shadow | false | false=生效模型的 ml_anomaly 进融合参与拦截;true=只观测、零拦截影响。 |
min_samples | 200 | 每(站点,路由)攒够多少 benign 样本才允许训练。 |
per_route | true | 按站点+路由分桶(推荐);false 退化为站点级,多 API 会混,不建议。 |
algorithm | statistical | statistical 轻量可解释;iforest 隔离森林,更能抓多维联合异常。 |
consistency | true | 联合一致性校验:参数/头组合共现 + UA-头一致(浏览器 UA 却缺常见头 = 伪装信号)。 |
ML 只对「已配置的站点」建模。发往未配置 Host(直连 IP 扫描器 / 伪造 Host)的流量不采样、不打分。模型始终落盘,重启不丢、无需重训。
