在企业安全运营中,安全运营中心(SOC)部署了各种安全设备,收集到了海量安全数据,并针对这些数据开发出各种检测模型,但随之而来的问题就是:
首先想探讨的是,产生和分析安全告警能给我们带来什么?总结起来,安全告警分析能做到:
安全告警的核心目的,也是安全设备的初衷,如:
通常在边界处,识别还未成功的攻击探测行为,同时可监控外部攻击态势,防患于未然:
安全告警还可用于检测内部异常或违规行为,虽然本身非攻击行为,但通常会间接导致安全问题,如:
不仅是攻击流量,正常流量也会被安全设备监控到,所谓的“高误报率”正是由这部分流量导致,这部分流量同样可以被利用起来,用于做资产梳理,梳理内网环境等,如:
在告警量较大、处置人员较少的情况下,处置告警可采用以下方法:
1 告警聚类分类
对告警进行过滤、分类,首先将数量大、重要度低的告警过滤掉,对剩下的告警进行针对性分析,筛选出真实攻击以及潜在的针对性攻击。
这个分析可从各个维度展开,如攻击源角度:少量攻击源贡献了大部分告警,告警类型角度:路径爆破占据了较大比重、时间维度、业务维度等。
举个例子,图为某IP与业务主机的所有告警类型的数量随时间变化的曲线图,黄色为路径穿越告警,红色为其他类型web攻击告警:
分析后可发现如下规律:
经由以上3点,基本可以确定这些告警由正常业务触发。
通过这些规律总结,我们可以针对现网告警提炼出典型攻击特征,正常业务流量导致的告警特征呈现什么规律?无差别扫描/蠕虫在时间维度上呈现什么规律?什么特征的告警更有可能是真实攻击?
正常的流量总是相似的,异常流量却各有各的不同,这些特征都可以形成更具体的专家经验沉淀下来。
2 关注重要资产
关注核心资产,特定目标的告警量往往不多,可以进行重点分析。
3 关注特定类型告警
像应用层RASP、主机层HIDS、网络层NDR,这类安全产品的置信度较高、危害较大,可考虑优先关注。
对安全告警进行分析调查后,最终需对安全告警进行定性,按危害程序从低到高排序,告警最终可粗略分为以下几类:
1 正常行为
判定为正常业务行为导致的误报,包含正常的内部漏洞扫描动作,这些基本可认为是“无害”的,现网大部分告警基本都属于这一类。
为了避免后续重复处置,可通过一些手段排除,如提取业务特征添加告警白名单,或以某种形式给其打标签来区分攻击流量。
2 低危告警
现网大量僵尸网络或扫描器会执行无差别扫描等大量常态化的攻击行为,这些攻击往往都不会成功,可以认定为低危告警,做IP封禁操作或持续观察即可。
3 异常行为
该部分告警需要做出一定的处置,联系相应的资产负责人进行进一步核查确认。
4 高危告警
正在发生或者已经成功的入侵行为,列为高危告警,需立即着手处置。
现网大部分无效告警最终还是需要通过优化告警模型和规则来解决。攻击检测效果的提升本质上还是基于对攻击行为和数据的深刻理解。
但囿于当前安全运营人员攻防经验的缺乏,检测场景不够细化,检测规则不够细粒度,是现网产生大量误报的一个核心原因。
我理解,一种相对科学的规则维护和模型开发过程是:
1 选定攻击类型/日志源
这是模型开发的出发点,通常是两种思路:
2 思考攻击场景
从攻击者角度,列举具体攻击场景,细化到常用的攻击命令,比如针对crontab,有哪些攻击场景?
参考ATT&CK提供了三种攻击场景:执行命令、持久化后门、权限提升。那我们下面就需要针对这三种攻击战术制定更具体的检测场景:
攻击者通常通过crontab执行系统命令,可检测crontab中是否包含命令:shbashpython等。
攻击者通常通过crontab命令下载后门木马,执行反弹shelll等,可检测crontab中是否包含命令:bashcurlwgetscp等。
攻击者常通过典型的SUI提权:可检测crontab中是否包含命令:chmod等
3 规则实现
最后一步,则是将上面的各个场景转化为具体的检测规则语法。
为了减少误报同时避免漏报,模型开发者需要更多的思考,从行为模式的角度,寻找一些元素,来细分业务正常操作和攻击者操作。
参考:
https://cloud.tencent.com/developer/article/1883282