基于机器学习的用户实体行为分析技术在账号异常检测中的应用
即将开播:5月14日,Jenkins在K8S下的三种部署流程和实战演示
伴随企业业务的不断扩增和电子化发展,企业自身数据和负载数据都开始暴增。然而,作为企业核心资产之一的内部数据,却面临着日益严峻的安全威胁。越来越多以周期长、频率低、隐蔽强为典型特征的非明显攻击绕过传统安全检测方法,对大量数据造成损毁。
当前,用户实体行为分析(User and Entity Behavior Analytics,UEBA)系统正作为一种新兴的异常用户检测体系在逐步颠覆传统防御手段,开启网络安全保卫从“被动防御”到“主动出击”的新篇章。因此,将主要介绍UEBA在企业异常用户检测中的应用情况。
首先,通过用户、实体、行为三要素的关联,整合可以反映用户行为基线的各类数据;其次,定义4类特征提取维度,有效提取几十种最能反映用户异常的基础特征;再次,将3种异常检测算法通过集成学习方法用于异常用户建模;最后,通过异常打分,定位异常风险最大的一批用户。
在实践中,对排名前10的异常用户进行排查,证明安恒信息的UEBA落地方式在异常用户检测中极其高效。随着互联网技术的日益发展和国家在大数据战略层面的深化推动,数据采集终端越来越多,收录的种类越来越丰富,数据已经成为企业重要乃至最核心的资产之一。
在数据价值受到高度重视的同时,企业面临的各种针对数据安全威胁的问题也愈发严重,信息安全保障逐渐聚焦为数据的安全保障。通常情况下,外部攻击种类繁多、持续高频,企业习惯于将资源布置于构筑安全防护堡垒,以抵御来自外部的进攻。然而,除了外部的黑客攻击,内部人员参与信息贩卖、共享第三方的违规泄露事件也层出不穷。
调查显示,约有75%的安全威胁是从组织内部发起的。无论是离职员工顺走专利数据,还是心怀怨恨的员工蓄意破坏系统,一再发生的各种安全事件证明,攻破堡垒的最容易的方式往往来自内部威胁。面对这种威胁,内外双向的安全需求催生了用户实体行为分析(User and Entity Behavior Analytics,UEBA)。对内,传统威胁防御手段不足。对于已经意识到问题紧迫性的企业而言,使用传统的安全技术并未能帮助他们有效解决来自内部的安全问题。
原因在于传统方法多为分散的、事后的、缺少针对性的。安全最薄弱的环节是人,只有建立以用户为核心对象的分析体系,才能更加及时发现和终止内部威胁,杜绝信息泄漏于萌芽状态。对外,市场需求推动技术更新。
作为一种高级网络威胁检测手段,UEBA发展迅速,甚至正在颠覆原有市场格局。UEBA是基于大数据驱动、以用户为核心、关联实体资产、采用机器学习算法进行异常分析以发现解决内部威胁的一套框架和体系。
相较于传统手段对安全事件的关注,UEBA更关心人,通过用户画像和资产画像,检测诸如账号失陷、主机失陷、数据泄漏、权限滥用等风险,以极高的准确率定位异常用户。
1 企业员工账号的关联
UEBA本质上属于数据驱动的安全分析技术,需要采集大量而广泛的用户行为类数据。大数据时代,数据是一切分析的基础,少量的或者质量不高的输入必然导致价值不高的输出。然而,这并不意味着数据纯粹的越多越好,与场景不相关的数据,过多收集只会增加系统负担。
所以,行为分析的基础是数据,数据采集的前提是场景,采集的数据要和分析的特定场景相匹配,高质量多种类的数据是用户实体行为分析的核心。用户实体行为分析可以使用的数据,包括安全日志、网络流量、威胁情报以及身份访问相关日志等,尽可能多地接入和用户场景相关的数据,常见如VPN日志、OA日志、员工卡消费日志以及门禁刷脸日志等。
可以将这些数据大致归纳为用户身份数据、实体身份数据和用户行为数据3种类型。用户身份数据分为两类:一类是真实身份数据,如人事部门提供的员工资料;一类是虚拟身份数据,如用户在网络上的注册资料。由于UEBA严重依赖高质量数据,使得企业需要有数据治理的基础能力,需要有统一的数据字典。
通过统一数据字典,可以统一不同日志的字段信息,进而关联不同日志的用户信息,通过关联真实身份与虚拟身份,达到定位具体的用户的目标。实体身份数据是网络中用户的唯一身份标识,如IP地址、MAC地址等。用户行为数据分类则可分为网络行为信息和终端行为信息。
2 员工账号与实体资产的关联
员工账号与实体资产的关联,即用户身份数据与实体身份数据的关联,它们通过用户行为数据实现关联。例如,某用户登录VPN,通过登录日志的用户信息相关字段,可以定位用户的身份信息。用户使用VPN访问公司内网,通过访问日志的目标地址信息相关字段,可以定位实体资产的身份信息,获取会话期间终端日志信息,同时也实现员工账号与实体资产的关联。
访问日志的获取有多种形式,可以是VPN设备自身记录的日志,也可以是其他安全设备的记录日志,如深度包检测(Deep Packet Inspection,DPI)系统日志。所谓“深度”是和普通的报文分析层次相比较而言的。
“普通报文检测”仅分析IP包4层以下(物理层、数据链路层、网络层、传输层)的内容,包括源地址、目的地址、源端口、目的端口以及协议类型。而DPI除了对前面的4层进行分析外,还增加了应用层等其他层的分析,识别各种应用及其内容。DPI系统提供的审计信息、应用程序会话识别信息、应用程序会话流量统计信息、网络传输层流量统计信息、应用层流量统计信息等,可以极大丰富用户网络行为信息。终端日志可以通过终端检测与响应(Endpoint Detection and Response,EDR)系统获取。
EDR日志可以帮助采集终端的内存操作、磁盘操作、文件操作、系统调用、端口调用、网络操作、注册表操作等,通过分析进程行为、应用行为以及服务行为等,补全用户终端行为信息。通过用户网络行为与终端行为等信息整合,可以完成用户与实体的关联,同时也完整地还原了用户的网络会话和会话期间的用户行为,为后期的行为分析提供高质量的数据素材。
3 基础特征提取
用户行为特征提取是整个用户行为分析建模的基础,需结合业务实际需求,找出相关的数据实体,以数据实体为中心,规约数据维度类型和关联关系,形成符合业务实际情况的建模体系。一般的特征提取步骤包括用户数据与实体数据的分解和对应、实体间关联关系分解、用户特征维度分解以及用户行为特征的提取。
相比算法层面的精进,有效提取数据特征经常会取得更直接的收益,能够展现数据的基本属性和业务逻辑的特性,甚至仅需要使用简单的模型就能取得很好的结果,而冗余的无逻辑特征不仅无益于建模,甚至会降低分析的精度与速度。在特征提取的设计中,专家知识至关重要。经验往往是取得成果的捷径,但是在实际情况中总会遇到一些陌生的场景,缺少经验知识,这时逻辑和方法论显得更为普适。
通常采用4类通用的维度来提取用户行为特征,分别是用户与用户之间行为基线的对比、用户组与用户组之间行为基线的对比、基于用户自身行为基线对比的离散数据特征提取和基于用户自身行为基线对比的连续数据特征提取。第1类维度是用户与用户之间行为基线的对比。
基于大部分用户行为是正常的原则,通过用户与用户之间的行为基线对比,可以发现偏离集群基线的少数用户。在某一个特征维度上,这些少数用户就是疑似异常的。典型事件为非工作时间的用户行为异常。
通常情况下,员工对公司内部资源的访问应该在工作时间,任何非工作时间的行为都应该重点关注。那么,如何定义非工作时间呢?不同行业不同性质的企业,工作时间会有较大差别。国企与民企、传统产业与新兴产业,工作时间段上存在比较大的偏差。
此外,同一领域的不同企业也有各自的加班文化,不能排除很多员工在考勤外时间通过VPN访问内网是用于正常工作的可能。因此,基于对所有员工的历史行为记录,通过核密度估计(Kernel Density Estimation,KDE)计算一天24 h每个时间点用户访问资源的概率密度,将概率低于动态阈值的时间点定义为非工作时间,从而把员工在非工作时间段产生的行为提取为一个异常特征。
图1为某公司的员工账号24 h在线概率密度分布图,可得账号在白天工作时间在线的概率最大。当动态阈值为0.01时,可以看出该公司的员工在凌晨3点到凌晨6点的在线概率最小。在凌晨0点到凌晨3点,该公司还有部分员工在使用VPN加班工作,说明该公司加班严重,加班到凌晨一两点是常态。
如果直接定义晚上22点到早上6点为非工作时间,将导致较多的误报,而利用该类特征,能够自适应地学习该公司真正的非工作时间。
图1 用户账号24小时在线概率密度分布
第2类维度是用户组与用户组之间行为基线的对比。一般而言,在企业内部处于同一个部门相似岗位的员工应该有类似的行为基线,不同部门之间如技术部门与销售部门工作上有较大差异,反映在网络行为和终端行为上肯定会有较大不同。一个易于理解的事件是,基于不同角色属性的员工访问统一资源定位符(Uniform Resource Locator,URL)记录的聚类。
显然,同角色属性或者同部门的员工应该会有更多共同访问对象和访问目的。根据日志信息,建立用户和一段时间内被访问较多的或者业务相关的URL的关联矩阵。矩阵元素可以是访问次数、访问时长或者平均访问时长,利用欧式距离计算客户之间的距离,并进行聚类操作。
对远离自身角色所在部门群组的用户可以标记为异常,同时基于用户与群组中心的距离给出偏离度,针对异常出现的偏离程度,可提取访问异常特征。偏离度的计算公式如下:
式中,
代表第i个用户的偏离度;
代表第i个用户与类簇中心距离;
代表同组用户与类簇中心的平均距离。图2为技术部门与销售部门在访问次数、访问时长上的聚类图,圆圈代表技术部门,三角形代表销售部门,五角星代表这两个组的聚类中心,两个类簇中间散落的几个用户可以明显看出异常。如果不分用户组,那么圆圈中的三角形将被认为是正常用户;现在区分用户组进行聚类,则可以明显看出,这些混杂在圆圈中的三角形离实际的聚类中心很远,是异常最大的用户。
图2 用户组聚类结果
第3类维度是基于用户自身行为基线对比的离散数据特征提取。通过学习大量的历史行为数据建立正常的用户基线后,可以对偏离历史基线的用户行为提取异常特征。典型事件是用户使用新的IP地址。一个没有在历史记录中出现的IP地址,意味着用户的活动基线偏离了原有的轨迹,当然也可能是诸如用户出差等客观原因造成的。
但当结合其他的一些信息如新IP地址伴随着新的MAC地址,这意味着用户不仅变更了登录地址,也变更了登录设备,加重了可疑度。如果还有其他的信息辅助,或者用户的新IP地址不断出现,需要将这类现象归纳为疑似异常。
所以,通过一些场景的设想,可以基于用户自身行为基线提取离散数据的异常特征。第4类维度是基于用户自身行为基线对比的连续数据特征提取。通过学习用户的连续数据的行为基线,可以对偏离历史基线的用户行为提取异常特征。举例来说,用户正常的网络行为都应该有在一定范围内波动的出入流量,DPI系统可以帮助记录每次访问目标的流量情况。
用户的出入流量是连续变量,应该满足某种分布。假设用户的访问流量持续大幅远离了历史分布,则有理由怀疑用户使用习惯发生了改变,需要对此加以关注。通过使用RPCA-SST、ARIMA等算法对这类连续的时序数据进行异常检测,从而提取出异常特征。
图3为某用户在6月份的流量时序图,实线为实际的流量时序,阴影为时序异常检测算法拟合的正常范围。超出预测范围的点被标记为异常,为图3中的圆点。根据异常点的个数及异常程度,能提取出该用户的异常特征。
图3 时序异常检测
4 基于Ensemble Learning的异常用户检测
用户异常行为建模的3大要素为用户、实体和行为特征。通过访问关系的关联,将3大要素映射到核心的用户行为上。经过第3章节介绍的4类维度的分解,提取了几十种有效的用户行为特征。获取特征后,即能使用机器学习算法检测异常用户。
由于内部攻击并不经常发生,标签数据的稀少性决定了多数情况下UEBA使用的是无监督学习算法。从另一个角度说,不依赖先前的攻击知识反而允许系统发现少见的和过往未曾发现的威胁。异常检测的主要任务是在正常的用户数据集中提取出小概率的异常数据点,这些异常点的产生不是由于随机偏差,而是有如故障、威胁、入侵等完全不同的机制。
这些异常事件的发生频率同大量的正常事件相比仅仅是少数的一部分。异常检测算法众多,它们的期望尽管都是尽可能分离出正常数据与异常数据,但其原理各不相同。针对不同的数据源,很难保证哪一类算法能够取得最优的结果。采用孤立森林、One Class SVM以及局部异常因子3种算法的集成来全面识别和评价最可能影响系统的各种异常用户。
利用这3种算法进行异常检测,可以分别得到所有用户的异常打分。对3种算法结果进行加权归一,便可以得到最终的针对所有用户的异常打分排名。利用这些信息,企业可以按照一定的逻辑顺序,采用适当的对策处理现存的威胁,并按轻重缓急实施补救措施。
整个UEBA的核心系统框架如图4所示。每个算法都会对用户i计算一个独立的异常分值。孤立森林、One Class SVM、局部异常因子3种算法的几个分别记为
,其对应的权重分别为
,则最终的异常评分Score为:
图4 UEBA核心系统框架
5 实验结果分析及案例
表1为排名前20的异常用户分值及部分特征值,用户名用Hash做了脱敏处理。对排名靠前的异常用户一一验证,在排名前10的用户中,确认了包括账号第三方共享、主机中毒、恶意扫描、离职员工潜入内网以及敏感信息被违规拉取等问题,账号风险准确率达到90%。表1 排名前20异常用户分值及部分特征值
用户446983413异常排名居首,对其异常特征进行排查,发现存在账号爆破、异地登录、端口扫描、从OA系统下载文件以及传输流量过大等异常,最终安全运维人员确定为因VPN账号被爆破导致的敏感信息泄露事件。它在时间轴上的发生顺序如图5所示。
图5 用户446983413相关事件时间轴
6 结 语
本文介绍了UEBA即用户行为实体分析在企业异常用户检测中的应用情况,通过用户、实体、行为3要素的关联,整合了可以反映用户行为基线的各类数据,将用户的行为特征提取分布到4类维度上展开,有效提取了几十种最能反映用户异常的基础特征。