安全运营之浅谈SIEM告警疲劳

news2024/11/13 18:16:48

闲谈:

         刚开始学习SIEM、态势感知这类产品的时,翻阅老外们的文章总是谈什么真阳性,假阳性告警、告警疲劳,当时在国内资料中没找到很合理的解释,慢慢就淡忘这件事了。随着慢慢深入工作,感觉大概理解了这些概念并且有了一些新的领悟。心血来潮写了这篇文章,想给刚接触SIEM类产品的新同学做一下科普吧,希望你看完本文后能不再对所谓"误报"无从先下手,从而缓解你的告警疲劳。

SIEM介绍:

       既然要讲SIEM的告警疲劳,简单介绍一下SIEM。

概述:

       SIEM(Security Information and Event Management),安全信息和事件管理。

       先简单讲一下其他概念。

       SIM(Security Information Event Management):安全信息管理,也称日志管理,用于日志的长周期存储、日志分析,报告输出。

       SEM(Security Event Management):安全事件管理,用于事件关联,告警监控,通知管理。

       其实这样就不难理解,实际上SIEM=SIM+SEM,即SIEM类产品融合了两者的功能:该产品用于收集日志数据并进行长期存储,将收来的数据进行标准化处理,并通过日志搜索,关联告警,可视化图表,报告输出,告警通知等功能来提供安全事件的监测,调查,分析,响应的能力。

图片

告警疲劳:

       鉴于SIEM强大的数据采集存储、标准化能力,关联分析等能力,分析师将各种各样的数据源日志接入SIEM,其中包括了防火墙、行为管理、终端杀毒、IDS/IPS、WAF、VPN、堡垒机、3A、NDR、EDR、应用数据等等等。

       本身当一个企业(默认是大型企业,如果是小型企业,我相信你也不会用SIEM这种产品)在做安全的基础建设时,铺的安全设备的数量就很多,随之而来告警的数量也会翻倍。更由于等保合规等要求,可能实际设备类型也会变得足够多,告警类型涉猎就更广泛。当两者碰撞起来就会造成海量告警。

       实际海量告警对于分析师理论上也应该不足为惧,因为本身SIEM有标准化和关联的能力,理想状态下,其实告警不应该很多。但是以目前工作来看,理想终归是理想,目前现状依旧是有效告警被淹没在海量无效告警中。

告警疲劳的表面现象:

       简单总结一句话:有效的告警(值得分析的告警)被淹没在海量无效告警(“误报”或不值得分析的告警)中,从而导致分析师力不从心,分析效率下降,对告警产生疲劳.

       常表现出的现象如下:

  • 上级监管部门通报XXX告警,我们的安全设备捕获到该攻击,但是SIEM的“误报”太大,我们还没分析到这个告警。
     

  • 本身这个安全设备在没发送给SIEM时,我们长期优化后,这个设备的告警已经足够精准,“误报”已经足够少了,为什么接入SIEM后这个设备的告警量比原来多这么多?

    • 由于现象一和二间接导致不如直接监控安原来全设备,但是推动SIEM建设又不得不用SIEM,导致陷入死循环。

误报:

       既然聊到告警疲劳,肯定要涉及到误报。肯定要这里细心的同学可能发现,上面的"误报"我都打了引号。

       这里讲一下工作来我对误报本质的看法。

       个人观点:“误报”其实是甲乙双方对攻击认知的不同。

       目前的安全设备规则库中已经很少那种写的很粗并且逻辑错误的误报了。像:单纯只匹配了个select就告警sql注入了。这种现象已经很少了,如果还存在,你应该推动你的安全设备的规则库进行升级啦或者你该思考一下你采购的安全设备了。

       至于为什么说是双方认知的不同,举一个例子:

       某天,作为分析师的你接到通知,NDR没有告警a.php。你经过分析,这次攻击行为没有payload,并没有成功,只是一次扫描尝试行为。

       问题来了,甲方认为这是一种对攻击的漏报行为,设备出现问题。而你与厂商沟通,厂商的回复是:这是一种爬虫行为或这扫描尝试行为,这种行为不存在攻击特征,不应该告警。因为这种行为没有明显攻击特征,当有明显的payload或者代码执行特征,NDR一定会有代码执行或者webshell等告警。这种单纯的爬虫或者尝试的行为,不应该告警,如果这种都告警,会导致有海量告警。而且把这些无分析意义的扫描告警进行告警出来交给分析师来判断,这是一种不负责任的行为。

       这个故事就是我所谓双方对攻击的认知不同,至于谁对谁错,见仁见智吧。至于为什么讲这个故事,是希望在工作中多思考事物的两面性,有些所谓的误报真的是误报么?所以我不是很喜欢国内用一个“误报”来一言蔽之,相比之下,我更倾向于国外对告警的分类,倒不是因为国外的月亮圆,只是说这种分类较为科学。

SIEM的告警分类:

        国外对告警的分类,个人觉得应该是基于机器学习中的True positives(TP,真正)、True negatives(TN,真负)、False positives(FP,假正)、False negatives(FN,假负)的方法进行的分类。

即他们经常所谓的:

  • 真阳性(True Positive),系统检测到了真实存在的攻击,即告警判断为异常告警。

  • 伪阳性(False Positive),系统检测到了不存在的攻击。即告警判断为误报。

  • 真阴性(True Negative),系统没有检测到真实存在的攻击。即告警判断为正常告警。

  • 伪阴性(False Negative),系统检测不到真实存在的攻击。即告警误判为正常告警。

       

       以上为国外的概念,是不是听的云里雾里。如果结合新冠来理解呢

      即:

  • 真阳性:检测到感染新冠,并且真的感染,小阳人。(真实攻击行为。)

  • 假阳性:检测感染新冠,其实并未感染,假阳人。(检测为攻击行为,其实为误报。)

  • 真阴性:未感染新冠,正常人。(真正意义上的攻击失败,或业务正常平稳运行无告警)

  • 伪阴性:检测到未感染新冠,实际已经感染,漏检或未检但已感染。(漏报攻击行为,或检测到攻击失败但实际上已经攻击成功)

       理论上说,优秀的安全建设通过长期运营,真阳性告警应该最少,大部分为真阴性告警。不存在伪阴性告警,假阳性告警特别少。

       而实际国内安全运营的现状:

       大量伪阴性告警,即由于数据采集不全面、不做BAS检测、长期不做非HW的红蓝对抗而过分信任设备而漏报的攻击行为。

       巨量的真阴性告警,即攻击失败的扫描器探测,端口扫描,爬虫等。

       巨量的假阳性告警,即安全设备检测规则不严谨或不切合业务导致的误报,SIEM开箱自带的规则不适配导致的告警,一些失效的威胁情报告警等。

       大量的“良性”的真阳性告警,即由于某些原因无法推进整改的大量弱口令告警,违规的办公软件的远控告警,开发人员为了偷懒写的脚本导致的SSH暴破等。

       少量的“恶性”的真阳性告警,即真正攻击者的恶意攻击行为,已导致失陷。

       PS:其实真阳性告警,并不存在良性与恶性的区分,对于攻击者而言有机可乘的都是薄弱点。这样说,仅是为了做区分。

SIEM告警疲劳的根本原因:

       讲完告警的分类,和运营的现状,总结一下告警疲劳的根本原因。

       结合工作经验,总结为以下几个原因:

  • 不评估数据源的数据质量,无脑的将各种设备的日志,无脑接入SIEM,导致很多垃圾数据进入内置SIEM规则,导致大量无效告警。

  • 安全设备不推动规则优化升级,导致规则版本低,或者某些检测逻辑不正确的规则不进行优化调整或关闭。

  • SIEM内置的开箱规则,不评估数据源和规则的触发条件,导致大量的无效告警.

  • 运营过程中,发现的业务某些问题不进行推动,也不对这些告警进行优化或抑制处理,导致告警量无法下降.

  • SOAR未充分发挥其作用,只用来封IP,下线终端等,其实SOAR也可以处理一些低危告警,或者将某些告警进行威胁级别升级。

告警疲劳的解决方案:

  • 减少假阳性告警的数量。

    • 优化安全设备的规则,定期推动规则库的升级。对于检测逻辑不正确的规则反馈厂商整改或进行关闭。

    • 对接入SIEM的数据源的字段质量进行评估,提供有效字段的数据酌情考虑接入SIEM。

    • 对SIEM开箱规则进行评估,对于无效或不适用现场的规则的阈值及时间窗口等进行调整或关闭。减少告警数量的同时,也能减少引擎的压力。

    • 及时更新威胁情报,或者考虑建设多源威胁情报。

    • 检查SIEM上是否收到了安全设备上已经优化过的告警误报,排查原因。(有些安全设备未将白名单的日志进行单独区分,发送日志时也会将加白的告警一股脑发送出去。)

  • 抑制“良性"的真阳性告警的数量。

    • 对于段时间内无法推进解决的真正问题,进行告警抑制。(一般的SIEM工具都有该功能,一般叫做告警抑制或者告警归并。即单位时间窗口内,以某个条件作为分组条件,只产生一条告警。)

    • 还是推荐积极推动业务整改某些真正的问题,例如明文传输,弱口令,违规行为等。

  • 抑制真阴性告警的数量。

    • 对于真正的”攻击失败“,端口扫描或扫描器的低危探测行为或爬虫等进行告抑制。

  • 充分发挥SOAR的作用。

    • 对于真正的”攻击失败“,用SOAR来处理关闭case或进行威胁级别降低,或者将某些“恶性”的真阳性告警进行威胁级别提升。

  • 尽量减少或真正意义上不存在伪阴性告警。

    • 可以进行BAS检测或红蓝对抗,并进行复盘,将攻击手法沉淀为规则。

总结:

       SIEM的告警疲劳是业内的一个难题.告警疲劳会对分析师的分析效率造成巨大影响,并且有效告警被淹没到无效告警中,同时也会导致安全问题无法暴露,影响企业的安全.

       如果你也面临文中提到的问题,可以参考文中的观点,或发散思维,提供更好的解决方法进行分享。群策群力,共同进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2118961.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

‌技术人必看!如何科学规划,从需求出发打造完美技术方案

引言 在互联网架构师的角色中,我们面临的挑战不仅仅是编写代码,更重要的是深入理解需求、设计系统,并确保我们的解决方案能够稳定、高效地运行。本文将详细介绍从新需求提出到技术方案发布的全过程。 1. 理解现有需求和场景 在开始一个新的…

信息学奥赛初赛天天练-87-NOIP2014普及组-完善程序-矩阵、子矩阵、最大子矩阵和、前缀和、打擂台求最大值

1 完善程序 最大子矩阵和 给出 m行 n列的整数矩阵,求最大的子矩阵和(子矩阵不能为空)。 输入第一行包含两个整数 m和 n,即矩阵的行数和列数。之后 m行,每行 n个整数,描述整个矩阵。程序最终输出最大的子矩阵和。 (最…

SAP中mmpv自动过账—附带源码

想省事儿的直接拖到后面查看代码 思路分析 实现逻辑:初版 前台测试:选择屏幕确认公司代码。必要情况手动开账勾选前台执行按钮 1.1去marv表找公司代码的当前账期,简单运算获取下一个账期。1.2执行bdc,模拟前台手动开账期1.3执行的必要信息存日志表。例:修改人(开账期的人…

FastAPI 进阶:使用 BackgroundTasks 处理长时间运行的任务

在 FastAPI 中,BackgroundTasks 是一个功能,它允许你在发送响应给客户端之后执行后台任务。这些任务对于不需要客户端等待的操作非常有用,比如发送电子邮件通知或处理数据。然而,当服务器重启时,由于 BackgroundTasks …

C++: set与map容器的介绍与使用

本文索引 前言1. 二叉搜索树1.1 概念1.2 二叉搜索树操作1.2.1 查找与插入1.2.2 删除1.2.3 二叉搜索树实现代码 2. 树形结构的关联式容器2.1 set的介绍与使用2.1.1 set的构造函数2.1.2 set的迭代器2.1.3 set的容量2.1.4 set的修改操作 2.2 map的介绍与使用2.2.1 map的构造函数2.…

基于python的mediapipe姿态识别 动作识别 人体关健点 实现跳绳状态判别 计数功能

基于Python的MediaPipe姿态识别实现跳绳状态判别与计数功能 项目概述 本项目旨在利用Google的MediaPipe库,结合姿态识别技术,实现对跳绳动作的实时检测与计数功能。通过识别人体关键点,系统能够准确判断跳绳动作的状态,并实时统…

Java入门:07.Java中的面向对象03

11 this关键字 this关键字有两个作用 第一个作用,用来调用重载的构造方法 public class Test3{public static void main(String[] args){new User();new User("ls");new User("ls","女");} } ​ class User{String name ;String sex…

Autosar工程师必读:ETAS工具链自动化实战指南<三>

----自动化不仅是一种技术,更是一种思维方式,它将帮助我们在快节奏的工作环境中保持领先! 目录 往期推荐 自动化命令--generate 命令语法 参数说明 命令使用前提 场景1:BSW代码生成 场景2:RTE代码生成 场景3&a…

对非洲33国免关税!非洲市场不容错过

2024年9月5日中非合作论坛峰会在北京隆重召开,会议后宣布对非洲33个国家实行0关税的优惠政策,并且在未来三年,推动中国企业对非投资不少于700亿元人民币。 自然而然的,中非友好关系必然会带动中国对非洲市场的出口,近…

云计算实训44——K8S及pod相关介绍

一、K8S基本概念 1、k8s是什么 K8S是Kubernetes的 缩写,由于k 和 s 之间有⼋个字符,所以因此得名。 Kubernetes 是⼀个可移植的、可扩展的开源平台,⽤于管理容器化 的⼯作负载和服务,可促进声 明式配置和⾃动化。 2、k8s的功能…

STM32F1+HAL库+FreeTOTS学习10——任务相关API函数使用

STM32F1HAL库FreeTOTS学习10——任务相关API函数使用 任务相关API函数1. uxTaskPriorityGet()2. vTaskPrioritySet()3. uxTaskGetNumberOfTasks()4. uxTaskGetSystemState()5. vTaskGetInfo()6. xTaskGetCurrentHandle()7. xTaskGetHandle()8. xTaskGetIdleTaskHandle()9. uxTa…

你需要掌握的算法:快慢指针

文章目录 前言龟兔赛跑乌龟能否追上兔子乌龟与兔子在何处相遇龟兔问题的推论 快慢指针基础概念发展历史 快慢指针的应用检测链表是否有环找到链表的中间节点计算链表的环长度找到链表环的入口节点 小结 前言 在处理链表数据结构时,快慢指针是一种非常高效的算法技巧…

鸡尾酒排序算法

目录 引言 一、概念 二、算法思想 三、图例解释 1.采用冒泡排序: 2.采用鸡尾酒排序: 3.对比总结 四、算法实现 1.代码实现 2.运行结果 3.代码解释 五、总结 引言 鸡尾酒排序(Cocktail Sort),也被称为双向冒…

同一天!蚂蚁集团宣布将发布3款AI新产品!腾讯、零一万物、面壁智能推出最新大模型|AI日报

文章推荐 缓解父母焦虑!详细实测!这些免费AI可以成为孩子提高学习能力的得力助手! 附送试听地址!OpenAI ChatGPT被曝将新增8种语音!英特尔酷睿Ultra 200V正式发布|AI日报 今日热点 蚂蚁将发布三款AI新产…

Zynq7020 SDK 初学篇(4)- PL 端 GPIO

1.开发背景 基于 PS 端 GPIO 的基础上,如何调用 PL 端 GPIO 的输入输出 2.开发需求 PL 端按键控制 PL 端 LED 3.开发环境 Zynq7020 Vivado2017.4 4.实现步骤 4.1 设计配置 这里设置 PIO 数量 3 个 由于 PL 端不像 PS 端一样绑定 GPIO,所以需要对上面…

内容营销服务,照亮您的独特优势,助力业务增长

内容营销公司通常会承诺过高但交付不足,而在Digital Commerce Partners,我们走的是相反的方向。我们会调低(然后超越)预期。 由于我们是Copyblogger的SEO和内容营销代理商,我们知道伟大的事情需要时间——这意味着吸引…

【最新华为OD机试E卷-支持在线评测】通过软盘拷贝文件(200分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试E卷,全、新、准,题目覆盖率达 95% 以上,支持…

人工智能安全治理框架导图

资源链接:《人工智能安全治理框架》1.0版发布_中央网络安全和信息化委员会办公室

【Python机器学习】循环神经网络(RNN)——循环网络的记忆功能

文档中的词很少是完全独立的,它们的出现会影响文档中的其他词或者收到文档中其他词的影响: The stolen car sped into the arena. The clown car sped into the arena. 这两句话可能会产生两种完全不同的情感感受。这两个句子的形容词、名词、动词、介词…

算法入门-深度优先搜索2

第六部分:深度优先搜索 104.二叉树的最大深度(简单) 题目:给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:ro…