UBA/UEBA的资料收集和学习

=Start=

缘由:

之前做过一个平台,可以算是简版的UBA/UEBA吧,不过一直没来得及好好收集整理UBA/UEBA相关的资料,系统性的学习总结。这里先整理一篇,方便以后快速参考。

正文:

参考解答:
1. UBA/UEBA的来源和定义
UBA(User Behavior Analytics,用户行为分析)
UEBA(User and Entity Behavior Analytics,用户实体行为分析)
UEBA前身叫UBA(用户行为分析)最早用在网站访问和精准营销方面,通过对相关数据(用户购买、点击、收藏等行为)进行统计、分析,实现用户标签画像,预测用户消费习惯,最终对用户感兴趣商品进行推送,达到精准营销的目的。
Gartner对 UBA/UEBA 的市场分析定位:
  • 2014年,Gartner发布了用户行为分析(UBA)市场界定;
  • 2015年,Gartner将用户行为分析(UBA)更名为用户实体行为分析(UEBA);
  • 2016年,用户实体行为分析(UEBA)入选Gartner十大信息安全技术;
  • 2017年,用户实体行为分析(UEBA)厂商强势进入2017年度的Gartner SIEM魔力象限;
  • 2018年,用户实体行为分析(UEBA)入选Gartner为安全团队建议的十大新项目。

 

2. UBA/UEBA能解决什么问题&不能解决什么问题
能解决的问题:
以极高的准确率命中异常事件,使真正的安全威胁浮出水面,这是用户实体行为分析(UEBA)备受关注的主要原因。
用户实体行为分析(UEBA)关联了用户活动和相关实体(用户相关的应用和终端等)信息构建人物角色与群组,进一步定义这些个体与群组的合法和正常行为,把这些人物角色在群体与群体、群体与个体、个体与个体(那些远离合法和正常行为的群体与个体)维度上相互比对分析,将异常用户(失陷账号)和用户异常(非法行为)检测出来,从而达到检测业务欺诈、敏感数据泄露、内部恶意用户、有针对性攻击等高级威胁的目的。
不能解决的问题:
切合实际的讲,企业不可能够通过翻新SIEM或UEBA来实现其从未设计过的功能来应对内部威胁。
3. UBA/UEBA落地的关键事项
  1. 明确目标(不论是人、工具还是平台,都无法解决没有明确定义的问题);
  2. 收集高质量的相关日志避免——垃圾进,垃圾出!!!);
  3. 经验驱动+机器学习算法驱动(前期靠经验找出明确可确认的问题,后期可以借助机器学习算法分析已找出的问题);
  4. 相关安全产品联动(安全产品的最终目标是为了避免出安全问题,所以UBA/UEBA能检测出来异常是一方面,能和其它的安全产品联动以避免异常导致安全问题才是能力、价值最大化的体现);

 

4. UBA/UEBA的最佳实践以及相关厂商
最佳实践参见上面的「落地关键事项」;
相关厂商有:Exabeam、Splunk、LogRhythm、Securonix等。
参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/4103.html

《UBA/UEBA的资料收集和学习》上有18条评论

  1. Gartner:2018年十大安全项目详解
    https://mp.weixin.qq.com/s/TAIfmDxkfYVZ4lz6UQjGGg

    根据Gartner自己的说明,给出了选取十大安全项目的方式。

    首先,假定客户已经具备了相当的安全基础。如果连这些基础都没有达到,那么也就不要去追求什么十大安全项目,乃至十大安全技术了。这些基础包括:
    1) 已经有了较为先进的EPP(端点保护平台),具备诸如无文件恶意代码检测、内存注入保护和机器学习的功能;
    2) 已经做好了基本的Windows账户管理工作;
    3) 已经有了IAM;
    4) 有了常规化的补丁管理;
    5) 已经有了标准化的服务器/云工作负载保护平台代理;
    6) 具备较为强健的反垃圾邮件能力;
    7) 部署了某种形式的SIEM或者日志管理解决方案,具有基本的检测/响应能力;
    8) 建立了备份/恢复机制;
    9) 有基本的安全意识培训;
    10)具备基本的互联网出口边界安全防护能力,包括URL过滤能力;
    没错,对于客户而言,上面10个技术和能力更为基础,优先级更高,如果上述能力都有欠缺,先别轻易考虑什么十大安全项目!

    2.1 特权账户管理项目
    2.2 符合CARTA方法论的弱点管理项目
    2.3 积极的反钓鱼项目
    2.4 服务器工作负载的应用控制项目
    2.5 微隔离和流可见性项目
    2.6 检测和响应项目
     2.6.1 EPP+EDR
     2.6.2 UEBA
     2.6.3 欺骗
     2.6.4 MDR服务
     2.6.5 小结
     这里,我个人小结一下,目前市面上常见的新型威胁检测技术大体上包括:EDR、NTA、UEBA、TIP、网络沙箱、欺骗技术等。可以说这些新型技术各有所长,也各有使用限制。
    2.7 云安全配置管理(CSPM)项目
    2.8 自动化安全扫描项目
    2.9 CASB项目
    2.10 软件定义边界项目

  2. UEBA架构设计之路1:UEBA框架
    https://mp.weixin.qq.com/s/Sai3h-wNGXc92Va941yG6A

    实际上,如果设备和用户是可信的,现有的很多方法都检测不到。传统安全产品的缺点是无法检测未知威胁和内部威胁,无法扩展,难以处理大数据。而且攻击者总能找到绕过传统安全技术的方法,比如规则驱动的恶意文件签名,沙盒。此外随着数据量的增加,人工分析越来越慢,响应速度过长。举例来说杀伤链,从入侵到横向移动到渗透,传统安全产品很难关联并作出适当响应,容易被大量误报淹没。

    UEBA相对来说具有洞察力和可扩展性,简单说UEBA是大数据驱动,且采用机器学习方法进行安全分析,能够检测高级、隐藏和内部威胁的行为分析技术,不需要使用签名或规则。在杀伤链上能关联数据,进行有针对性的发现,这些分析技术包括机器学习、行为建模、分类、对等组分析、统计模型和图形分析。分析结合评分机制,对比活动,最终实现异常和威胁的检测。同时,UEBA还包括威胁可视化,以可视的方式跨越杀伤链分析。

  3. 如何构建一个相对安全的账号体系?
    https://mp.weixin.qq.com/s/pNHthmCvRPFCNpOrMyyTPg

    一、你的账号安全吗?
    历史总是用惨痛的经历让我们明白一些道理,假如拥有一个健全的账号安全体系,许许多多的安全事故或许就不会发生、或者泄露的数据没那么多,影响没那么大。

    二、设计一个相对安全的账号体系
    以我的有限的经历来看,假如我是账号的使用者,当我在访问某个系统时,一个安全的账号体系,至少需要解决三个问题,即:
    我是谁?我能做什么?我在做什么?
    解决了这三个问题,我的一举一动系统就都能掌握,也能够控制。首先,只有知道我是谁,才能确定我能做什么;其次,限制我能做什么不能做什么,是从根本上去除安全隐患;最后,一个系统不可能是完美的,即使设计完美,实现上也可能会有偏差,而了解我在做什么,是确认现有策略是否有效,是一个查漏补缺的措施。

    三、认证 -- 我是谁
    1、认证解决了什么问题
    认证所要解决的问题,正是“我是谁”的问题,或者说是确认用户的身份。
    2、认证发展的三个阶段
    2.1、What you know -- 我知道A的某些私密信息,证明我是A
    (1)静态密码类
    (2)动态密码类问题
    2.2、What you have -- 我拥有A的某个关键东西,证明我是A
    2.3、Who you are -- 通过提取我的生物特征,证明我是A
    3、认证应该怎么做
    (1)多因素认证
    (2)多级认证

    四、授权 -- 我能做什么
    1、授权解决了什么问题
    2、几种常见的权限控制策略
    2.1、OBAC--基于对象的访问控制
    2.2、RBAC--基于角色的访问控制
    2.3、ABAC--基于属性的访问控制
    3、什么样的权限控制策略是好的策略
    首先,权限控制的策略多样多化,没有绝对的好与坏之分;不同的应用场景,不同的安全需求,需要选择不同的策略或多种策略的组合,一句话,满足需求即可,不必过分追求。
    如果没有特定应用场景要求的话,以我浅薄的经历来看,一个好的权限控制策略,至少需要满足两个原则:
    (1)权限最小化
    (2)权责分离

    五、审计 -- 我在做什么
    1、审计要解决什么问题
    2、实时在线审计
    (1)各类黑库过滤
    黑IP库、黑手机库、黑IMEI库、黑设备库等等,只要是在黑库中的请求,即可进行直接拦截或重点监控。
    (2)聚集分析
    账号(UIN/手机号/邮箱/户口所在地等)聚集、IP聚集(IP聚集/IP频繁变更/区域聚集等)、设备(IMEI/GUID/MAC地址)聚集、时间段聚集等,只要有易于往常的明显聚集出现,即恶意攻击的可能性大大增加,可进行告警,人工介入分析;更严重的情况,也可进行拦截。
    (3)波动分析
    对来自某个业务的请求过大时,可进行限流限频,防止其可能遭受的恶意攻击影响到其他业务正常运行。
    对访问量大幅波动的情况,进行告警,人工介入,查看是否正常。
    对访问量超过阀值的情况,进行告警,人工介入,查看是否正常。
    3、事后离线审计
    事后分析既是一种补救的措施,也是一种补充的措施,相对于实时在线审计,离线审计可以在更大的时间范围,做和实时审计相同或不同的分析,从而发现在线审计发现不了的问题,常见的方式包括但不限于以下几种:
    (1)构建各类黑库
    用更大量的数据去确认线上的可疑对象是否真的是恶意请求,从而建立起更准确的各类黑库,反馈到线上,用于线上实时打击。
    (2)构建用户画像
    除了直接拉入黑库外,对其余用户进行归类分析处理,以便后续对可疑用户进行重点关注;对安全用户减少关注,但仍需定时审计,以便更合理的利用计算机资源。
    (3)改善系统安全
    对于已发生的安全事件,可通过审计日志,回溯事件,确认问题所在,用于改善系统安全能力。

    六、小结
    七、后话
    需要说明的是,本文探讨的是怎样构建一个相对安全的账号体系;并不是说,所有的系统都要做到这种安全级别,对于一个没有重要信息或资产,安全性要求也不高的系统,做下简单认证,验下登录态足矣,浪费过多的资源,为其搭建一个庞大复杂的账号体系,反而是拿着牛刀来杀鸡;还是那句话,满足需求即可。
    同样地,做到这种安全级别也是不够的,只能说,在当下相对安全而已;随着科技的发展,安全手段在不断增强;未知的安全威胁也在不断增加,让我们一起努力为用户构建一个更安全的账号体系吧。

  4. 异常检测(anomaly detection)
    https://blog.csdn.net/u012328159/article/details/51462942

    一、异常检测定义及应用领域
    先来看什么是异常检测?所谓异常检测就是发现与大部分对象不同的对象,其实就是发现离群点。异常检测有时也称偏差检测。异常对象是相对罕见的。下面来举一些常见的异常检测的应用:
    欺诈检测:主要通过检测异常行为来检测是否为盗刷他人信用卡。
    入侵检测:检测入侵计算机系统的行为
    医疗领域:检测人的健康是否异常

    二、常见的异常检测算法
    有许多的异常检测算法,不过本篇博客只会详细介绍基于模型的技术。主要有以下几种异常检测方法:
    · 基于模型的技术:许多异常检测技术首先建立一个数据模型,异常是那些同模型不能完美拟合的对象。例如,数据分布的模型可以通过估计概率分布的参数来创建。如果一个对象不服从该分布,则认为他是一个异常。
    · 基于邻近度的技术:通常可以在对象之间定义邻近性度量,异常对象是那些远离大部分其他对象的对象。当数据能够以二维或者三维散布图呈现时,可以从视觉上检测出基于距离的离群点。
    · 基于密度的技术:对象的密度估计可以相对直接计算,特别是当对象之间存在邻近性度量。低密度区域中的对象相对远离近邻,可能被看做为异常。

  5. Stanford机器学习—第十一讲.异常检测
    https://blog.csdn.net/l281865263/article/details/46654353

    Abnormal Detection(异常检测)和 Supervised Learning(有监督训练)在异常检测上的应用初探
    https://www.cnblogs.com/LittleHann/p/7086851.html

    1. 异常检测 VS 监督学习
    0x1:异常检测算法和监督学习算法的对比
    0x2:常见的有监督学习检测算法
    0x3:常见的异常检测算法
    2. 打标训练样本的获取
    0x1: 对安全领域的算法应用 - 打标数据的采集往往是真正麻烦却很重要的事情
    3. 有监督学习异常检测
    1. A Character-Level Convolutional Neural Network with Embeddings + CNN
    0x1: data prepare
    0x2: Architecture
    2. Graph-based Intrusion Detection on Process Event
    4. 基于密度的异常检测
    1. Intrusion Detection System using Unsupervised Neural Networks - GNG / SOM
    5. 基于邻近度的异常检测
    1. Isolation Forest Outlier Detection - 孤立森林 异常检测
    2. unsupervised-machine-learning-with-one-class-support-vector-machines - 单分类SVM无监督聚类
    0x1: scikit-learn实现的one-class svm demo
    0x2:参数优化 - 选择
    6. 基于模型(分布建模)的异常检测
    0x1:一元高斯分布异常检测
    1. 正态分布介绍
    2. 正态分布的一些特性
    3. 基于一元正态分布的离群点检测方法
    4. 使用一元高斯分布进行异常统计前需要关注的问题
    5. 一个基于文件创建时间孤立点的异常统计Project - 无监督异常统计
    0x2:多元高斯分布异常检测
    1. 多元高斯分布数学模型
    2. 多元高斯分布图像
    3. 多元高斯分布如何进行异常检测?
    7. 基于概率统计的异常检测
    0x1:基于概率统计模型做异常检测的基本套路
    1. 一个关于白样本的很严肃的问题
    2. 可用于异常概率统计的评价函数的特点
    0x2:马尔科夫不等式
    0x3:切比雪夫不等式
    0x4:Grubbs' Test(格拉布斯检测)
    1. 算法过程
    2. 使用绝对中位差代替均值 - 提高鲁棒性
    3. 一个典型的案例
    8. 序列数据的异常检测算法
    0x1:序列数据的异常分类
    1. 语境异常点
    2. 异常子序列
    3. 异常序列-对比于基础序列
    0x2:序列异常检测的挑战
    9. 异常检测在工程化项目中怎么用?
    0x1:为什么看似很美好的异常检测算法在一些项目中不能完美work?
    0x2:结合一些领域知识来缩小假设类的范围

    外卖订单量预测异常报警模型实践
    https://tech.meituan.com/order_holtwinter.html

  6. UEBA架构设计之路2:数据接入和准备
    https://mp.weixin.qq.com/s/_NZFQemuaVQ8B6F4itG9_A

    三、数据接入和准备

    数据类型:
    应用日志
    业务处理日志
    点击流数据
    配置文件
    数据库审计日志
    文件系统日志
    API日志
    消息队列
    操作系统状态和诊断命令
    包/流数据
    Syslog
    WEB访问日志
    PROXY日志
    Windows事件日志
    无线数据

    数据来源:
    ……

    数据价值:
    ……

    数据连接器
    格式检测器
    字段映射器
    关系图生成器
    身份解析和设备解析
    事件丰富器
    事件视图
    会话

  7. UEBA架构设计之路3:复杂事件处理引擎
    https://mp.weixin.qq.com/s/U1o5Db-1EvwtOCJJ949hJQ

    四、复杂事件处理引擎
    复杂事件处理引擎跟踪分析数据流,这种数据流是无界的,也即是连续接收开放的数据序列,且终点未知。传统引擎都是基于规则的,规则的特点是计算简单,所以在实时计算中消耗较少。但规则的问题是针对已知结论的模式,对未知攻击无法识别,所以他不需要考虑历史事件。历史事件的增加,会对存储和处理能力都有新的要求。

    UEBA系统使用基于ML的引擎,分布式训练和多机器学习模型的应用,模型处理事件特征集生成评分和结论。在实时处理中,收到数据,通过机器学习模型,立刻得到结论。事件特征集包括原始数据子集、关联的元数据、原始数据汇总和派生属性、标签以及这些内容的组合。通常事件处理引擎将输入输出都存放在非持久性存储器,提高I / O,减少时延。

    对实体的行为分析手段有很多,例如:
    概率后缀树(PST)
    协同过滤
    基于内容的推荐分析
    使用文本模型的白名单和黑名单统计匹配
    熵/随机性/ n-gram分析的分层时间记忆过程
    统一资源定位符
    网络资源定位符和域(AGD)
    罕见分类特征/关联分析
    实体的身份解析模型
    陆地速度异常/地理位置分析
    离散时间序列数据的贝叶斯时间序列统计基础(基于可变记忆马尔可夫模型和上下文树加权)
    周期性模式的动态阈值分析

    基于图形的实体活动分析的方法也很多:
    命令和控制检测分析
    信标检测器
    设备,IP,域和用户信誉分析
    横向移动检测器
    用户/设备的动态指纹识别
    相似性和页面排名的实体分组
    社交邻域图聚类
    在线分布式聚类
    二分和通用图聚类

  8. APT detection based on machine learning
    https://mp.weixin.qq.com/s/hKsItaIkwqdbmtvvhG6DYg
    https://www.sciencedirect.com/science/article/pii/S0167739X18307532

    如何能有效的对APT入侵进行检测是目前亟待解决的一个难题,传统的基于APT生命周期的某一环节进行检测的方式,不仅存在漏报的问题,误报率也居高不下,使用者需要设立大量的安全岗位用于分析这些产品的告警事件,APT是一个多环节的攻击方式,作者提出,如果能在APT的多个环节建立入侵检测,并将不同环节的告警事件进行关联,只有能够完整的或部分完整的表达一个APT场景的安全事件集才能真正的被标记为一次APT攻击,通过这种方式能有效降低误报率,提高准确性。作者基于这种思想提出了事件关联模型,并通过机器学习的方式,预测APT攻击,为在安全专家提供APT攻击信息。

    模型由三部分构成,分别为Detection/Correlation/Prediction。其中Detection作为APT检测中发现流量中恶意行为监测模块,威胁事件监测是本模型的基础,威胁检测模块作者采用了8种威胁检测模型,分别在APT攻击生命周期的四个环节检测恶意事件,该模块输出为告警事件,告警事件将在Correlation模块分析关联关系,并形成关联事件集,关联事件集由作者根据APT的特性定义的约束关系而生成,根据事件集还会计算该事件集的关联度,关联事件集和关联度将作为Prediction模型的输入,用于训练模型。

  9. UEBA架构设计之路4:异常、威胁指标和威胁
    https://mp.weixin.qq.com/s/nwIrGybVsZ_zzOsRav1EZA

    五、异常、威胁指标和威胁
    系统平台检测首先异常,进一步基于异常形成威胁。还有一个名词是威胁指标,是指安全威胁的潜在中间级别,安全威胁指标又可分为底层威胁、威胁指标、顶级威胁。之所以这样逐步演进,目标是为了减少误报,降低噪音。
    异常表示预期行为发生了变化,变化不一定威胁,但表示了可能引起关注的事件,由于大型系统中异常是海量的,所以在这一步无法进行人工介入调查。例如传入了1亿个事件,产生了100个异常,进一步处理则得到10个威胁指示,再被进一步处理得到1-2个威胁。

    1、异常检测

    2、识别威胁指标

    3、识别威胁指标——实体关联
    检测到的异常通常与多个实体相关,比如发现多个设备异常,而设备又和多个用户相关,这些异常组成异常数据集。

    4、识别威胁指标——异常持续时间
    在时间段t0到tn阶段检测到异常1~N,实际场景中表示短时间内发生大量异常,异常具有开始时间和结束时间,如果检测到的异常持续时间满足标准,则识别为威胁指标。

    5、识别威胁指标——罕见度分析
    罕见度分析也可以理解为稀有度分析,如果事件确定为罕见,则检测为异常。这种异常检测是局部稀有性分析,在特定实体的背景下观察事件罕见性。基于本地异常汇集成全局稀有性分析,这样异常的数量就是严重程度的重要指标。全局稀有性模型和本地稀有性模型是相同的处理逻辑的模型,不同在于一个是检测集合,一个是检测单个实体。

    6、识别威胁指标——关联异常
    关联异常是指用不同模型检测同样的数据,同一个数据被稀有度分析模型检测出异常,也被其他模型检测出异常,这样的组合观察能提供更多视图,基于这种组合的结果打分。
    上面的关联是并行的,另外一种组合是串行,第一个模型处理完交给第二个模型,例如先看是否有关联异常,再看是否稀有度异常。

    7、识别威胁指标——异常数据丰富
    除了内部检测模型,还可使用诸如威胁情报之类的外部数据,例如检测到实体连接外部木马远控服务器。通过外部信息合并,可增加置信度,并且在一些情况下识别威胁指示。

    8、识别威胁
    首先,威胁指示符数据的子集和预定义的安全性场景相关联,根据相关性识别出候选威胁。相关性我们后面再解释,可以理解为类似恶意软件威胁范围关联,或者杀伤链关联组件实体。
    接下来把威胁指示数据和预先配置的预设规则比较,例如内部威胁可以和专家规则关联。然后生成模式匹配的分数。如果满足标准则识别为安全威胁。

    六、复合关系图
    复合关系图的威胁检测过程:
    1、接收事件数据
    2、生成事件特定关系图(迷你图)
    3、获取异常数据并存储
    4、将特定关系图压缩组合
    5、将特定关系图与异常数据组合成复合关系图
    6、从复合关系图和时间范围,使用模型分析
    7、模型分析后,将复合关系图转换为异常关系图,识别安全威胁
    8、确认异常

  10. 厉害的人是怎么分析问题的?
    https://www.zhihu.com/question/304174916/answer/547640584

    一、明确问题
    如果要解决问题,首先得弄清楚期望是什么,目前现状又是如何,这样才能精准定义问题所在。
    明确的问题,才能得到正确的答案,这是第一步。

    第一步,校准目标B
    目标要符合SMART原则,同时要避免把手段当成目标;

    第二步,重构方法A
    现状是由原来的方法导致的,因此,想要改变现状,不是从现状出发,添加一个新的解决方案,而是回过头,重构原来的方法系统。

    第三步,消除变量C
    如果AB都没有问题,问题依然存在,一定存在着变量,你可以通过「象、数、理」这个基本框架来寻找它,并通过5Why的提问方法,挖掘真正的原因。

    二、系统思考
    金字塔原理
    系统之美
    第五项修炼

    三、大体套路/流程

    分析的第一步,永远是从梳理问题开始的,把问题点尽可能细致的弄清楚,所谓收集信息,从接到问题这一刻就开始了。当然这里有套路可以用,比如5w2h方法。

    在梳理完问题以后,第二步开始针对问题细节采集数据,验证思路。这里又是一个复杂的采集信息的过程。

    第三步,在拿回足够多的数据以后,分析的方法就多了。讲商业分析的书也有很多,之前也有很多答主做了分享。这里不赘述了。有意思的是,很多不会对外公开的秘籍,也是建立在大量采集信息的基础上的。比如大家好不好奇,我们做咨询的怎么判断客户靠不靠谱?一图概括如下,大家感受一下,没有大量的信息,所谓思维方法,真的就是无源之水、无根之木。

  11. 阳性,阴性,假阳性,假阴性,敏感度,特异性
    https://blog.csdn.net/pursuit_zhangyu/article/details/80771978

    一般从医学角度说,阳性(positive),代表有病或者有病毒,阴性(negative),代表正常。

    假阳性(false positive)是指因为种种原因把不具备阳性症状的人检测出阳性的结果。其实就是将没病的检查成有病的,假阳性检测结果易造成误诊,
    假阴性(false negative)就是将有病的检查为没病,假阴性结果导致漏诊。

    敏感度(sensitivity):又称真阳性率,即患者被诊断为阳性的概率,计算公式是:真阳性/(真阳性+假阴性)×100%,此值越大,说明诊断试验越灵敏。

    特异度(specificity):又称真阴性率,即实际上未患病的人被诊断为阴性的概率,计算公式是:真阴性/(真阴性+假阳性)×100%,此值越大,说明诊断试验越精确。

发表评论

电子邮件地址不会被公开。 必填项已用*标注