作者:mcvoodoo
UEBA通过机器学习对用户、实体进行分析,不管这种威胁是不是已知,也包括了实时和离线的检测方式,能得到一个直观的风险评级和证据分析,让安全人员能够响应异常和威胁。
到底是怎样的整体架构呢?我就不再介绍了,没看过前面篇章的朋友,可以点击下面链接,去看看:
UEBA架构设计之路1:UEBA框架
UEBA架构设计之路2:数据接入和准备
UEBA架构设计之路3:复杂事件处理引擎
UEBA架构设计之路4:异常、威胁指标和威胁
UEBA架构设计之路5: 概率后缀树模型
UEBA架构设计之路6: 图聚类
UEBA架构设计之路7: 横向移动检测
已经看过的朋友,咱继续。
后面的章节则会介绍各种组件的细节,包括数据接入和准备引擎,处理引擎,实时/离线配置,机器学习模型和不同应用,交互等。
通过对网络流量的分析,可以观察到恶意软件的痕迹,例如恶意软件会定期向控制端发送信息。
左上方接收到事件数据,其中自适应过滤器会根据动态白名单过滤掉无关紧要事件,举例来说,虽然我们不知道xx.com这个域名是好是坏,但分析得知网络上大多数用户经常访问xx.com,因此推断xy.com为良性,所以对xy.com进行恶意域名关联分析没必要。动态白名单能够简化计算,减少误报。
接下来继续处理事件数据生成特征分数,并生成实体基线。特征分数包括多个,每个分数则是根据不同特征生成。这里包括定时分析、语义分析、通信统计、排序分析、实体关联分析、推荐分析和其他各种。每个分析生成一个或多个分数,例如时序分析可以生成两个分数,一个是关联通信周期性分析,另一个是关联通信间隔时间的方差。
实体基线还可通过全局证据收集丰富取证数据,例如内部黑名单或外部WHOIS数据,通过证据收集进入证据数据,这里的数据可对特征分数模型产生影响。实体基线还包括分数归一化,涉及归一化多个特征分数,以便在异常分数生成阶段进行后续处理。
接下来生成异常分数,如果异常分数满足标准,则过程结束。
特征分数是基于每个实体计算的,也即是实体和恶意软件关联可能性量化评估模型,模型分为处理逻辑和模型状态,生成特征和生成异常分数可以是同一个模型,常用特征分数模型是监督和无监督,监督模型由人工开发训练样例以有效生成特征分数,每个特征分数是一段范围内的值,例如0-10。
前面也说到特征分数是基于每个实体计算的,也会生成多个特征分数,下面这个表列出了xy.com的特征分数f1到fn。
定时分析 |
通信统计 |
语义分析 |
其他分析 |
|
实体 |
f 1 |
f 2 |
f 3 |
f n |
xy.com |
5.2 |
4.0 |
3.2 |
7.8 |
上面是简化的,实际情况中特征可能包括几百个,与实体关联的特征分数标示为特征向量f = {f 1 f 2 f 3。。。f n }。xy.com的实体配置文件可以表示为特征向量,f = {5.2 4.0 3.2。。。7.8}。
举一些例子有助于理解,语义分析:通过分析关联域名字符排序,这个字符排序生成了置信度。通信统计可以是通信周期性、通信间隔时间变化、通信顺序检测利用链、传输进出比率统计。定时分析,恶意软件定期从外部接收控制消息。这些分析基于安全知识,得到的评分标识了恶意软件关联性。
但随着对抗升级,恶意软件也不再是基于静态域名,而是机器不断生成新域名通信。这里的特征是高度熵或随机性,分析字符中的熵或随机性方法则是通过n-gram分析,可以使用语言域名的大量词汇来训练用于n元语法分析的机器学习模型,通过训练开发出n-gram概率列表。换句话说,n-gram分析模型可以观察域名字符序列,可以参考国外的一个n-gram分析:
人肉查看,左右域名的哪个概率更低?显然是左边,n-gram概率模型要实现的就是这个见解。
分析一定时间内,实体定时的通信消息,基于特征分配分数,其中特征分数代表了置信水平。根据安全知识,高周期性的通信不太可能是人为生成,而是机器生成。在数据传输统计上,通过进出比率能够了解到通信目的,出方向大于进方向可以指示数据泄漏。
异常分数基于实体基线得到,可将异常分数概念化为实体所有特征分数的组合。生成异常分数是一个集合学习过程,应用多个模型处理多个特征。生成异常分数可以是简单的计算特征分数的加权线性组合,异常分数可以简单表示为:异常分数= ∑i = 1 n wi fi
其中w i是每个特征分数f i的加权因子,并且异常分数仅是多个特征分数中的每一个与加权因子的总和。加权因子w i取决于很多因素,例如实体类型、用户配置项、要素分数。
应用集合学习,能够实现更好的预测性能并减少误报,适用于集成学习的则是随机森林,整个过程则是:根据多个机器学习模型处理多个实体基线,分配多个中间异常分数。
一旦生成异常分数,如果满足指定标准,则检测到异常,前面我们说异常分数可以是0-10,标准在这里可定义为大于等于6则为异常。但指定标准不一定静态的,可根据事件数据量、用户配置等动态变化。
如果检测到异常,则输出异常指示线是个用户,示例输出如:
域名 |
通信分数 |
定时分数 |
7层分数 |
NLP分数 |
建议 |
www.abc.com |
高 |
中 |
中 |
无 |
优先级:高,通信正常,活跃 |
www.frejghrf.com |
0 |
中 |
0 |
高 |
优先级:低,防火墙拦截 |
www.baidu.com |
无 |
无 |
无 |
无 |
无 |
最后的建议是根据前面得分进行解释,而在得分上分为高中无,也可以是数字。www.abc.com 通信分数为高,表示通信正常且未拦截,因此建议中是高优先级处理。这个建议根据人工给定规则生成。
检测到的异常存储在异常图数据结构中,异常图数据结构表示关联实体的多个节点,以及链接节点中的多个边。
未完待续
声明:本文来自唯品会安全应急响应中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。