UEBA中的行为基线分析

一、前言

UEBA(User Entity Behavior Analytics)作为一种异常行为分析的方法,在安全领域已经有了较为深入的应用,早在 2016 年Gartner 就已经将其作为当年十大信息安全技术之一。在SOC、SIEM等产品中集成UEBA能力已经成为时下热门的趋势。

国内主流的厂商的技术及方案不尽相同,但主要集中在企业安全这一方向,这或许是因为在企业安全的威胁场景中,UEBA的分析效果更明显。企业安全中有两个关键的要素:资产与人。在传统的解决方案(如SOC类)中更加关注资产面临的风险往往忽视了人的重要性,这在近年来不断出现的信息泄露事件中可见一斑。当然,概念再好也要在实际生产中能够落地,下面将从一个小的点切入,分享一下UEBA中典型的采用KDE算法对人员行为基线进行建模及分析的方法。

二、KDE

核密度估计(Kernel Density Estimation)是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)提出(百科)。我的理解是该算法需要找出点的**处于某个区间的概率。例如[7,8,9,14,15,22,23,24,25],设宽度(范围区间)为10,则采用直方图表示如下:QQ截图20200311175858.png

很显然,直方图不够平滑,受宽度影响很大,为了使分布更接近于真实,KDE采用相关的核函数计算点的密度分布,概率密度如下:QQ截图20200312113944.png

本质上KDE属于聚类算法的一种。对于核函数类型的选择则根据场景的不同而不同,这里采用Epanechnikov曲线。宽度的选择对结果有影响,一般结合经验设置宽度。

三、基线建模

假设一个企业安全场景:公司内部系统如企业邮箱、OA、文件服务器等访问需要先登陆VPN,各地分公司也需要VPN接入企业内网。现在需要根据VPN相关的日志来分析可能存在的风险或违规操作。对用户登陆VPN系统的时间基线进行建模,可以有效的发现用户当前是否有偏离以往操作习惯的行为,以便通过专家方法进行更深入的分析。主要步骤如下:

1、获取具体用户某段时间范围内VPN操作时间日志

2、以此为训练样本,训练用户行为基线,绘制概率密度分布曲线

3、当前操作密度分布与基线进行对比,发现偏离基线,考虑操作存在风险

以用户A为例,一个月当中每天的VPN使用记录如下(横轴为距离0:00点的时间戳,纵轴为记录次数):QQ截图20200312144528.png

使用KDE算法进行训练,宽度选择1800(半个小时),训练结果如下:3.png

换算到概率密度分布:1.png

  使用使用sklearn库,代码:
  a = np.array(l).reshape(-1, 1)		 
  kde = KernelDensity(kernel='tophat', bandwidth=1800).fit(a)
  e = kde.score_samples(s.reshape(-1, 1))
  plt.plot(s, np.exp(e))

取A用户当前使用数据(红色线),计算后与基线进行对比:

2.png

对比发现10:00之前操作偏离基线,提示用户行为异常。以上是对时间序列的分析,实际上,基线还包括访问记录、访问源等。根据企业的安全风险场景,结合UEBA的分析方法发掘潜在威胁,降低风险发生概率。

Life is short,You need UEBA!

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值