UEBA

UEBA是一种采用高级数据分析方法、面向用户和实体网络行为,进行异常检测和调查的技术,也是安全智能分析切入点。

  • U:表示用户(User),UEBA不是一般的安全分析,而是以分析用户活动为首要任务和目的的系统;
  • E:表示实体(Entity),UEBA不仅仅分析用户,还分析主机、设备、应用等等实体对象,它本质上是用户+实体分析;
  • B:表示行为(Behavior),指UEBA重点聚焦于行为和活动,主要任务是发现有意思的和恶意的行为,不是分析对象的角色、属性和参数,当然分析对象活动需要这些数据,而且是关键的上下文数据;
  • A:表示分析(Analytics),高级分析(不是简单的规则匹配)能力是UEBA的基因,高级分析技术不一定是机器学习,但不是使用硬编码规则、阈值和平均值。

UEBA——面向用户与实体行为的检测分析技术,目前在国际上的发展趋势已日益清晰,且已实现大规模的商业化。AI用于网络安全领域的用户实体异常行为分析还是近些年事情,早在2014年Gartner就在发布用户行为分析(UBA)市场界定中认为异常行为分析是智能安全分析的突破口。近年来,国外UEBA技术发展迅速,2018年RSA大会上展示的系统也都不谋而合的采用了统计与机器学习等技术来检测异常行为,更 多UEBA相关概念参考《用户实体行为分析技术(UEBA)》。

UEBA的核心点

1.跨越SIEM/ROC产品,UEBA产品考虑更多的数据源。

​ 从网络设备、系统、应用、数据库和用户处收集数据,有更多的数据,是其成功的条件之一。

2.数据驱动,但并不是单纯依靠数据驱动。一般都是数据驱动+专家驱动的混合系统。

单纯的数据驱动的问题:

​ 1.在学习之处很难拿到十分完善的数据,每当有新的数据源都需要重新进行学习,对于工程化来说是一场灾难

​ 2.增加features很难做到快速部署

​ 3.机器学习的到的结果是黑盒,不能解释说明,因此用户很难直接根据机器学习的结果直接进行响应和判别

3.并不是单纯的依靠机器学习,而是机器学习和统计学习相结合。

异常主要来源于两个方面:

​ 1.统计特征。例如用户访问文件夹数量异常、是否第一词访问某个较敏感的文件夹等

​ 2.可以输出确信度很高的机器学习结果。如DGA域名机器学习检测结果

异常并不会直接给用户告警,而是作为下一步机器学习的元数据features,根据这些features再利用及机器学习模型快速确定不同features对应的风险值,风险值大于一定的阈值才会进行告警。

4.必须针对特定的应用场景才能起到很好的效果

UEBA分析方法

一些UEBA解决方案依靠传统方法来识别可疑活动。这些可以包括手动定义的规则,安全事件与已知攻击模式之间的关联。传统技术的局限性在于它们仅与安全管理员定义的规则一样好,并且无法适应新型威胁或系统行为。

先进的分析是UEBA工具的标志,它涉及多种现代技术,即使在没有已知模式的情况下也可以帮助识别异常行为:

  • 有监督的机器学习–已知良好行为和不良行为的集合被输入到系统中。该工具学习分析新行为并确定它是否类似于已知的良好或已知的不良行为集。
  • 贝叶斯网络–可以结合监督的机器学习和规则来创建行为配置文件。
  • 无监督学习–系统学习正常行为,并能够检测和警告异常行为。它无法分辨出异常行为是好是坏,仅是它偏离了正常行为。
  • 强化/半监督机器学习–一种混合模型,其基础是无监督学习,并且实际的警报解决方案被反馈到系统中,以允许对该模型进行精细调整并降低信噪比。
  • 深度学习–启用虚拟警报分类和调查。该系统训练代表安全警报及其分类结果的数据集,执行功能的自我识别,并能够预测新的安全警报集的分类结果。

传统的分析技术是确定性的,在某种意义上,如果某些条件为真,则会生成警报,如果不是,则系统假定“一切都很好”。上面列出的高级分析方法的不同之处在于它们是启发式的。他们计算风险分数,这是事件表示异常事件或安全事件的概率。当风险分数超过特定阈值时,系统将创建安全警报。

在实际使用过程中,无监督学习识别出的未知威胁还可以结合人工标注,安全专家定期针对少量异常行为进行标记,通过有监督学习,利用Active Learning算法,允许用户进行有限标注,通过CNN(卷积神经元网络)训练少量样本模型,进而通过模型串接,修正原有算法分析结果,最终算法可以更贴合企业业务场景、提升算法准确率。

两种异常行为分析的方式

1.建立异常行为模型

​ 针对特定种类的攻击行为,根据人工经验构建一攻击行为指标,基于行为指标简历机器学习模型,从而识别异常行为。

​ 缺陷:需要对攻击有充分的理解

2.建立正常行为模型

​ 针对波保护对象进行实体行为进行”画像”,建立一套对实体行为刻画的指标,基于这些指标简历及机器学习模型,通过数据与正常的模式的偏离程度来识别异常

注意点:

1、监视列表Watchlist
没必要评分的组或者部门就不评分,特殊白名单账号移除监视列表。
2、分析Analytics
举个例子:用户在星期一上午 9 点登录。该用户的风险评分为 10。风险评分范围从 1 到 100,其中 100 是最极端的风险级别。当该用户每天早上 9 点重复登录时,他的风险评分从 10 到 9 再到 8,因为他表现出一致的行为。但是,当他在午夜登录时,他的风险评分会上升,因为这是该用户的异常行为。考虑到他的所有其他在线活动——他通常访问的应用程序、他处理的文件、他发送电子邮件的人、他的同龄人在做什么等——分析可以开始描绘该用户的这项活动的风险有多大。分析从每个用户和实体的多个来源获取访问和活动数据馈送,并根据行为为每个人实时生成风险评分。
3、上下文context
风险评分与丰富的上下文相结合是成功预测安全分析的先决条件。安全团队需要能够检查访问模式和行为,使他们能够查看可能同时发生在不同位置的多组活动之间的重要关系。这就是数据科学和机器学习的价值所在。组织需要知道谁、什么、在哪里以及为什么,而且他们必须几乎实时地知道。机器学习克服了在大量不同和断开的数据源之间建立链接的挑战。
4、时间序列分析 Time series analysis
指在数据中使用时间相关性的回归算法。用户操作是否越界——在某个小时或某个时间范围内?将该信息与 K-means 算法的结果相结合,该算法查看目标机器组,您可以获得用于确定用户在下班时间工作的上下文,例如系统更新。

分析引擎的优化

在分析引擎的优化上,无论选择的是深度学习、强化学习还是其它学习,都少了从“势”到“态”的凌驾,只有从“态”到“势”的亦步亦趋,其中少了许多试探性的刺激—选择—调整。为实现对分析引擎的优化和系统的最大化利用还需要让人更多的参与到系统的训练中,并尽可能的多分配决策的任务给人完成,以增加人对系统的信任度。

参考莫凡的《基于机器学习的用户实体行为分析技术在账号异常检测中的应用》进行分析:

1、基础特征提取

第1 类维度是用户与用户之间行为基线的对比。基于大部分用户行为是正常的原则,通过用户
与用户之间的行为基线对比,可以发现偏离集群基线的少数用户。

图1 用户账号24 小时在线概率密度分布

第2 类维度是用户组与用户组之间行为基线的对比。一般而言,在企业内部处于同一个部门相似
岗位的员工应该有类似的行为基线,不同部门之间如技术部门与销售部门工作上有较大差异,反映在网络行为和终端行为上肯定会有较大不同。

偏离度的计算公式如下:

式中,Di 代表第i 个用户的偏离度;di 代表第i 个用户与类簇中心距离;dmean 代表同组用户与类
簇中心的平均距离。

图2 用户组聚类结果

第3 类维度是基于用户自身行为基线对比的离散数据特征提取。通过学习大量的历史行为数据建
立正常的用户基线后,可以对偏离历史基线的用户行为提取异常特征。

第4 类维度是基于用户自身行为基线对比的连续数据特征提取。通过学习用户的连续数据的行
为基线,可以对偏离历史基线的用户行为提取异常特征。

图3 时序异常检测

2、基于集成学习的异常用户检测

获取特征后,即能使用机器学习算法检测异常用户。异常检测算法众多,它们的期望尽管都是尽可能分离出正常数据与异常数据,但其原理各不相同。针对不同的数据源,很难保证哪一类算法能够取得最优的结果。

采用孤立森林、One Class SVM 以及局部异常因子3 种算法的集成来全面识别和评价最可能影响系统的各种异常用户。利用这3 种算法进行异常检测,可以分别得到所有用户的异常打分。对3 种算法结果进行加权归一,便可以得到最终的针对所有用户的异常打分排名。

整个UEBA 的核心系统框架如图4 所示。

图4 UEBA 核心系统框架

每个算法都会对用户i 计算一个独立的异常分值。孤立森林、One Class SVM、局部异常因子3 种算法的几个分别记为S1、S2、S3,其对应的权重分别为P1、P2、P3,则最终的异常评分Score 为:

3、结果分析

表1 为排名前20 的异常用户分值及部分特征值。

用户446983413 异常排名居首,对其异常特征进行排查,发现存在账号爆破、异地登录、端口扫描、从OA 系统下载文件以及传输流量过大等异常,最终安全运维人员确定为因VPN 账号被爆破导致的敏感信息泄露事件。它在时间轴上的发生顺序如
图5 所示。

图5 用户446983413 相关事件时间轴

参考:

  1. http://222.198.130.40:81/Qikan/Article/Detail?id=7101810386&from=Qikan_Search_Index
  2. https://netsecurity.51cto.com/art/202005/616455.htm
  3. https://anchorety.github.io/2019/08/01/UEBA/
  4. https://www.venustech.com.cn/new_type/cpdt/20181129/21343.html

  5. https://www.secrss.com/articles/31002

  6. http://www.tyrsafe.com/a/975.html

  7. http://www.caict.ac.cn/kxyj/qwfb/ztbg/202006/P020200619441768543756.pdf

  8. https://www.skyguard.com.cn/pdf/%E4%BB%A5%E4%BA%BA%E4%B8%BA%E4%B8%AD%E5%BF%83%E7%9A%84%E6%95%B0%E6%8D%AE%E9%98%B2%E6%8A%A4%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf

  9. https://blog.nowcoder.net/n/35c1f1094f084a088ca02f1264ecca14

  10. https://www.codenong.com/cs106035987/

基于机器学习的UEBA在账号异常检测中的应用相关推荐

  1. 基于Isolation Forest以及MeanShift进行异常检测模型的构建

    基于Isolation Forest以及MeanShift进行异常检测模型的构建 根据纽约时报的统计,数据科学家在他们的时间中有50%到80%的时间花费在收集和准备不规则数据的更为平凡的任务中,然后才 ...

  2. 基于深度学习的日志数据异常检测

    基于深度学习的日志数据异常检测 数据对象 智能运维(AIOps)是通过机器学习等算法分析来自于多种运维工具和设备的大规模数据.智能运维的分析数据对象多源运维数据包括系统运行时数据和历史记录数据,历史记 ...

  3. 基于深度模型的日志序列异常检测

    基于深度模型的日志序列异常检测 ​ 日志异常检测的核心是利用人工智能算法自动分析系统日志来发现并定位故障.根据送入检测模型的数据格式,日志异常检测算法模型分为序列模型和频率模型,其中序列模型又可以分为 ...

  4. 轩辕实验室丨基于信息熵的车载网络流量异常检测防御方法

    本文来自轩辕实验室相关研究成果. 本发明通过设定一个检测阈值和固定大小的滑动窗口,计算滑动窗口中流量的信息熵,利用所计算的熵值和阈值对比进行异常判断,实现一种基于信息熵的车载网络流量异常检测防御方法. ...

  5. 吴恩达机器学习(二十七)异常检测、高斯分布

    目录 1.异常检测 2.高斯分布 3.异常检测VS监督学习 4.选择要使用的功能 5.多变量高斯分布以及它在异常检测中的应用 1.异常检测   这一章中将介绍异常检测问题,这是机器学习算法的常见应用, ...

  6. 机器学习(十五)异常检测

    文章目录 Log 一.问题动机(Problem motivation) 1. 直观理解异常检测 2. 正式定义异常检测 3. 异常检测应用案例 ①欺诈检测 ②工业生产领域 ③数据中心的计算机监控 二. ...

  7. 异常检测中的浅层模型与深度学习模型综述(A Unifying Review of Deep and Shallow Anomaly Detection)

    A Unifying Review of Deep and Shallow Anomaly Detection 异常检测中的浅层模型与深度学习模型综述 摘要:随着众多异常检测方法(基于生成模型,单分类 ...

  8. VAE逻辑整理及VAE在异常检测中的小实验(附代码)

    VAE逻辑整理及VAE在异常检测中的小实验(附代码) Variance和control variate 两种常见的分类器 相应代码 Minst数据集的训练和重构 KDD99数据  本文主要讲解一下整个 ...

  9. 异常检测中的评价指标——TPR/FPR/P/A/F/R

    1.异常检测 相对于一般的分类问题(例如sklearn.datasets的load_iris数据集,是针对蝴蝶类型进行分类,对每一种类别同等关心),这里的"异常检测"主要指在多分类 ...

最新文章

  1. Linux 配置IP地址,子网,网关,DNS,linux远程, wget 下载工具
  2. PHP分页代码实例教程
  3. 机器学习之生成学习算法
  4. HDU-3480 Division (四边形不等式优化DP)
  5. 修改MOSS2007内容查询部件实现自定义格式显示
  6. 方法内联在JVM中有多积极?
  7. 大样品随机双盲测试_训练和测试样品生成
  8. 汇编代码调用main和分配内存
  9. Pytorch:函数的手动梯度计算方法
  10. 【vue】使用Promise方法保证按顺序执行
  11. Material Design设计技巧
  12. SQL用了两年多,分享2个最常用的小技巧
  13. 基于Verilog的贪吃蛇小游戏设计(附代码)
  14. 商业需求分析(BRD)模板
  15. 基于SSM+SpringBoot+Vue+ElmentUI实现公司案件管理系统
  16. MySQL区分大小写
  17. FileZilla的下载与安装以及简单使用(有图解超简单)
  18. TSMC HPC工艺介绍
  19. 【Excel实战】--目录及链接
  20. PIM协议(PIM-DM、PIM-SM)

热门文章

  1. 建筑行业变革,ALC板材从工业建筑“红海”向民用住宅“蓝海”过渡
  2. sony z5p卸载垃圾程序脚本
  3. 第53课实战操作Kafka+Flume成功! Spark大型项目广告点击项目技术骨架实现之Spark+Kafka+Flume实战
  4. 《天引》读书笔记——由新月形面积引发的人类长达2000年的探索。
  5. node.js Next框架的三种渲染方式:客户端渲染、SSG、SSR
  6. C++ 内存泄漏检测与实现
  7. 利用大数据挖掘创新市场监管新方式
  8. 【从RL到DRL】深度强化学习基础(五)离散控制与连续控制——确定策略梯度方法(DPG)、使用随机策略进行连续控制
  9. 数学速算法_怎样让孩子喜欢上数学,除了老师,家长更应该把这4件事做好
  10. opencv打卡52-53: 礼帽与黑帽tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)//////balckhat = cv2.mor