当前位置: 首页 > ops >正文

安全态势感知中的告警误报思考

如果说2020年还是小打小闹,那么2021年无疑是杀疯了,我带着我的误报识别系统和事件专家系统在流量态势感知领域杀疯了。先说说这个误报识别系统,我创新性的定义了灰色事件,认为告警不是非黑即白的,而是需要持续评估的,零信任的风终究是吹到了态势感知,特别适合攻击结果是未知的海量告警。2021年9月26日,我又提交了一篇专利交底书(把第一作者让给领导了,同时也获得了优秀员工的称号),现在也已经审定授权了。实际做的,要比公开专利中的复杂,缺少了自学习引擎,根据用户的处置信息自动处置相似的告警,我看现在基本上各个安全厂商都支持这个功能了,实际上是我2021年就玩剩下来的了。看着公开的专利,我陷入了沉思。

ailx10

网络安全优秀回答者

互联网行业 安全攻防员

去知乎咨询

  • 2020年10月15日:ailx10:安全态势感知中的主机关注度打分思考
  • 2020年10月22日:ailx10:安全态势感知中的安全事件可信度思考

(1)内对内多打一场景

在一天时间内,针对任意安全事件的内对内多打一场景,观察源地址的数量以及源地址分布的C段数量,如果源地址数量多且C段多,那么该安全事件误报概率高。因为短时间内,内网不可能跨多个C段大面积失陷。最经典的误报场景比如SQL注入,内网一个公共网站存在数据库查询请求不规范,任何人请求流量探针都会上报SQL注入事件,符合内对内多打一场景,源地址很多,且源地址分布的C段很多。

这里的源地址很多,并且C段很多,是一个笼统的说法,具体实施的时候,可以通过人工经验直接定义基础值。更学术的做法是:通过历史人工处置的误报安全事件为基础,计算其对应的源地址数和C段数,目标安全事件的源地址大于基础误报源地址,C段数大于基础误报C段数,也可以用C段数除以源地址数得到一个比例,目标安全事件的比例大于基础比例,就自动判断为误报安全事件。

(2)内对内一打一场景

在一天时间内,针对任意安全事件的内对内一打一场景,观察源地址对目的地址的告警次数,是否符合泊松分布条件,泊松分布的一个重要特性是均值等于方差,这里我做了一个简单的假设:告警误报是符合泊松分布的,告警误报的发生是不可预测的符合随机性,告警误报的发生是相互独立的符合独立性,短时间内告警误报是相对稀少的符合稀有性,长周期来看告警误报是趋于稳定的符合平均速率。

假设30天内,A主机对B主机的SQL注入平均每日告警次数是5次,并且每日告警次数都大于0,同时均值和方差的比例接近1,那么我们有理由怀疑可能是告警误报,并且可以设置一个99%分位来进行异常检测,简单来说,在正常情况下,99%的天数中SQL注入攻击次数应该低于这个阈值,因此,超过这个阈值的自然是真实攻击了。

基于泊松分布,我们能预测第31日误报告警不同发生次数的概率(理论和实际观察也是很接近的):

  • 0次的概率: 0.0067 (0.67%)
  • 至少1次的概率: 0.9933 (99.33%)
  • 至少5次的概率: 0.5595 (55.95%)
  • 恰好5次的概率: 0.1755 (17.55%)
  • 超过10次的概率: 0.0137 (1.37%)

我们可以放宽一点,95%分位对应的告警次数是9,因此第31天A主机对B主机的SQL注入告警次数小于9,就认为是误报,超过9次就认为是真实攻击。想要判定更多的误报,就拉大分位数,但容易漏掉真实攻击,想要更准的误报,就调小分位数,同样的可能错过一些误报。这种属于经验值,根据实际环境进行调整即可。

现在想想,把时间窗口做成1小时,结合精准研判,针对攻击结果是未知的告警,使用这种方法进行误报识别,简直嘎嘎乱杀。

已开启送礼物

所属专栏 · 2025-05-31 11:25 更新

信息安全入门

ailx10

网络安全话题下的优秀答主

最热内容 ·

零基础学习网络安全这一块,请问有哪些相关资料可以推荐一下?

发布于 2025-05-14 18:45・江苏

http://www.xdnf.cn/news/10503.html

相关文章:

  • 多群组部署
  • X浏览器APP:轻巧快捷,畅享极速浏览
  • TomSolver 库 | config详解及其测试
  • ANN与SNN的那些事
  • 动态规划(10):状态压缩
  • 力扣LeetBook数组和字符串--数组简介
  • Spring Security入门:创建第一个安全REST端点项目
  • [RoarCTF 2019]Easy Calc
  • SQL 逻辑处理顺序详解
  • 第二章支线五 ·CSS炼金续章:变量与暗黑主题术
  • 放弃 tsc+nodemon 使用 tsx 构建Node 环境下 TypeScript + ESM 开发环境搭建指南
  • SpringMVC的注解
  • StarRocks物化视图
  • 可视化大屏通用模板Axure原型设计案例
  • 代码随想录60期day54
  • [leetcode] 二分算法
  • 密码学:解析Feistel网络结构及实现代码
  • 传送文件利器wormhole的使用方法
  • 【iOS】ARC 与 Autorelease
  • 数据库系统概论(十五)详细讲解数据库视图
  • Linux运维笔记:服务器安全加固
  • HTML 中 class 属性介绍、用法
  • AlmaLinux OS 10 正式发布:兼容 RHEL 10 带来多项技术革新
  • Kotlin 中的 companion object 使用指南
  • (LeetCode 每日一题)135. 分发糖果 ( 贪心 )
  • 电子电气架构 --- 如何应对未来区域式电子电气(E/E)架构的挑战?
  • 【安全】VulnHub靶场 - W1R3S
  • STM32:CAN总线精髓:特性、电路、帧格式与波形分析详解
  • 单元测试-断言常见注解
  • 探索大语言模型(LLM):参数量背后的“黄金公式”与Scaling Law的启示