无监督方法在UEBA行为分析中的应用与实践
2021-10-25 11:10:53 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

导读
      腾讯SOC+UEBA(用户实体行为分析)面向政企办公安全、数据安全治理、员工高危操作风险管理等领域使用一系列分析方法(机器学习、无监督学习等)对用户实体画像进行风险检测和评估,以识别内部风险用户和风险实体。支持对各类安全数据的智能分析与可视化展示,提供仪表板和风险时间线及工单告警能力,实现安全运营与管理闭环,让安全建设可感知可运营,赋能安全团队。

本文目录

        一、背景挑战

        二、算法介绍

           2.1 整体思路

           2.2 正样本筛选

               2.2.1 特征构造

               2.2.2 孤立森林

           2.3 算法介绍

               2.3.1 VAE

               2.3.2 GANomaly

        三、文末总结

一、背景挑战

       由网络产生的未知风险中,很大一部分来自于内部人员有意或无意的违规违纪行为,例如一些内部人员非法接入、业务数据窃取、私自外发等非常规行为泄露机密文件,传统以来静态规则的检测方法很难识别这些行为,即使能发现一些线索,也会淹没在海量信息中无法及时响应,导致难以追溯定责。
       为此,腾讯SOC使用UEBA技术围绕以人、设备为主体的行为范式,结合员工行为、群组的对等关系及数据使用情况进行用户实体的行为分析。当前UEBA用户行为异常分析中面临如下三大挑战:
  1. 真实异常样例少,由于内部员工越权访问涉密数据或者账号失陷用户攻击是小概率事件,可获取的真实异常事件样本极少; 正、负样本数量极不平衡,历史日志中绝大部分都是正常行为的数据,异常数据所占比例很小,不足以准确描绘异常的特征,无法直接从数据中学到所有异常的特性;

  2. 数据标注困难:数据缺少标签,人工标记成本高,可操作性低;

  3. 攻击模式不确定:为了规避检测,攻击者可能会将其恶意的行为隐藏在正常的行为中,不易发现; 攻击策略没有固定模式,无法事先预知。

       有监督的方法依赖于准确标注好的数据集进行模型训练,需要充足的正、负样本,然而由于存在如前所述的”三大挑战“,有监督的方法无法发挥作用。因此,我们探索了一些无监督方法在UEBA中进行落地尝试,即VAE和GAN。相比于以往的异常检测方法,这些方法能捕捉用户的动态行为变化,能提高实际应用中的检测准确性。将样本的多维度特征进行评定,可以批量分析账户的异常行为,有助于自适应的持续算法优化。

       实际场景中多数是一些时序数据,需要通过算法的设计自动识别出海量日志数据中的异常样本。此外,场景中往往要检测实体的异常行为,并按其偏离程度排序,便于企业安全管理人员按优先级核实跟踪处理这些异常行为。在UEBA中,很多场景都会用到无监督方法的预测、检测的相关技术,例如:

  • 针对主机安全、VPN、OA等日志,检测某个账号在主机或服务器的操作异常,如文件传输数据量是否异常、登录或访问行为等是否异常

  • 针对数据库审计日志,检测已授权用户对数据库访问是否异常,如越权访问、已授权数据的恶意更改、滥用或泄露行为

  • 针对堡垒机、WEB应用防护等日志,测某个用户或账号访问的内网资源、API数量等是否有行为异常

        因此,我们在UEBA用户实体行为分析的落地实践中,对一些无监督方法做了一些探索与尝试。本文主要介绍VAEGAN两种无监督学习的方法,由于其强大的能力成为异常检测任务的新秀,在学术和工业界受到广泛应用。

二、算法介绍

2.1 整体思路

       首先我们对数据进行基本分析,使用协方差矩阵得到特征相关度并进行特征构造,并使用孤立森林从5w多无标签数据中挑选正常样本。其次,将筛选出的50%正常样本分别用以GanomalyVAE模型的训练,以构建用户实体行为基线行为评价模型。然后,将其余数据或者测试集合输入至收敛后的评价模型进行异常分数的计算,得到用户或账号行为与基线距离的偏离程度,即异常程度。

        VAE和GANonaly这两个模型做异常检测的假设都是一样的,即假定正常数据是服从某一种分布的,而异常数据是不能够拟合进这个分布,因此我们可以用VAE和GANomaly找到正常数据的分布,从而用这个分布来做异常检测。

2.2 正样本筛选

       无监督学习是为了直接学习数据的分布,而不需要使用结果或者标签,其学习的是特征之间的关系,因此常被用于降维和聚类。由3.1节可知, 我们首先需要筛选一些靠谱的正样本,这里选择孤立森林进行区分。其次,为更好的了解特征间的关系,读者可以使用协方差矩阵分析特征之间的相关度,并通过热力图可视化查看,关联度低的特征可以屏蔽掉。如有需要可额外自行构造一些有效特征。

        热力图反映了数据本身的特征与其他构造特征的相关系数。颜色越深代表两个特征间呈强负相关,颜色越浅(淡白色)则两个特征之间呈强正相关。   

2.2.1  特征构造

        特征构造需要结合相应的安全场景进行分析,最好能明确企业的网络拓扑结构,办公网和生产网检测场景各有侧重点。针对账号登录、资源的访问等,根据时间,ip,部门等特征进行定义。比如可以人工定义一些基于时间的威胁等级特征

       在实际的业务场景中,员工ID在非工作时间段的行为本身存在一定危险系数,比如存在身份ID被盗用的可能。可以指定凌晨1点~凌晨5点为高危时段。其次,基于群组标签也可以进行相关统计,账号使用过程中常用登录设备、常用访问资源、常用登录地点等,这些特征可以很好的辅助用户实体画像的构建和异常行为的检测。

2.2.2  孤立森林

        孤立森林(Isolation Forest)基于 Ensemble 的异常检测方法,凭借其线性的时间复杂度且精准度较高,在处理大数据时速度快,所以被广泛应用于工业界中结构化数据的异常检测。常见的场景包括:网络安全中的攻击检测、金融交易欺诈检测、疾病侦测、噪声数据过滤(数据清洗)等。

孤立森林的使用需要有一些理论基础:

    1、异常数据占总样本量的比例很小;

    2、异常点的特征值与正常点的差异很大。

       由于算法的设计,孤立森林有以下优点。由于每棵树都是独立的,因此在分布式的系统中加速计算;此外不同于聚类算法找到异常点,它不需要计算点与点之间的距离或者簇的密度,模型为线性时间的复杂度,速度快,系统开销小。

Tips:

1、训练样本中异常样本的比例不宜过高,可能会导致最终结果不理想,因为这违背了该算法的理论基础。因此,其适用于UEBA中常用户行为的检测。

2、训练样本特征维度不宜过高,因为当树的样本量确定之后,树的高度确定了。当样本维度较高时,会存在建完树之后仍有大量的特征信息未被使用,从而导致了算法的准确性。并且高维样本空间中可能会存在一些无关的维度或者噪音维度,这些也会对树的构建产生影响。因此在使用孤立森林前,需要对业务数据中一些噪音或无效特征进行甄别和过滤

2.3 算法介绍

        2.2章节中我们使用孤立森林挑选出50%的正常数据供本章介绍的模型使用。用这两个模型做异常检测的假设都是一样的,即假定正常数据是服从某一种分布的,而异常数据是不能够拟合进这个分布,因此我们可以用VAE和GAN来找到正常数据的分布,从而用这个分布来做行为异常检测。

2.3.1  VAE(Variational Autoencoder)

       VAE是变分自编码器的简称,该模型最开始提出的目的是为了找到训练数据的分布,从而用这个分布来生成数据。从另一个角度而言,如果我们能够找到正常数据的分布,那么我们就可以用这个分布来做异常检测。

那么VAE是如何检测出异常点呢?这里先简单进行概括,对算法感兴趣的读者可以在本小节末尾查看详细内容。
  1. 先用正常样本去训练VAE模型

  2. 输入测试集给VAE,获得重构的测试集数据

  3. 计算重构的数据和原始数据的误差,若重构误差大于某个阈值,则认为样本异常   
其原理是:输入一个序列,得到一个隐变量(从隐变量的分布中采样得到),然后将隐变量重构成原始输入。其中,VAE学习到的是隐变量的分布(允许隐变量存在一定的噪声和随机性),因此可以具有类似正则化防止过拟合的作用。下图表示了VAE的整个过程。首先通过Encoder得到 x的隐变量分布参数;然后采样得到隐变量z。接下来利用 Decoder 求得x的分布参数,而实际中一般就直接利用隐变量恢复x。


VAE检测异常点的算法过程如下所示:
  • 使用正常数据进行训练,训练过程中 decoder 和 encoder 共同确定隐变量的参数(即多个正态分布的)。
  • 对于 个测试数据循环遍历,对于每个测试数据 操作如下:
    • 对于每个测试数据,通过训练好的 VAE 模型得到
    • 根据 得到关于 的正态分布,从中抽取样本
  • 对于抽取样本 中的每一个数据,关于 的循环:
    • 进行 decode 操作,得到,这里可能是为了表示 的关系,记作
    • 循环结束后得到多个. 其实就是多个;
  • 通过多个 与训练好的 VAE 模型生成原来的测试数据并计算重构概率(reconstruction probability)。这里计算的重构概率是对 的 蒙特卡罗估计(Monte Carloe stimate),当数据的重构概率很高时被归类为异常

2.3.2 GANomaly

        GAN做异常检测的原理和VAE是一样的,只不过这两者得到正常数据的分布的方式不同,VAE通过变分推断来得到训练数据的分布,而GAN直接使用生成器来模拟数据的分布,用判别器来判定生成器模拟的分布的好坏。本文使用GAN的变种即GANomaly模型进行训练。
       GANomaly 以编码器-解码器-编码器设计模型,通过对比编码得到的潜在变量和重构编码得到的潜在变量差异,从而判断是否为异常样本。其能够在无异常样本去训练模型的情况下实现异常的检测,对于很多场景都有很强的实际应用意义。模型结构图如下:

那么使用GANomaly如何检测异常样本呢?整体思路如下:

      在训练阶段,整个模型均是通过正常样本做训练。也就是编码器解码器和重构编码器都是适用于正常样本的。当模型在测试阶段接受到一个异常样本,此时模型的编码器,解码器将不适用于异常样本,此时得到的编码后潜在变量和重构编码器得到的潜在变量的差距较大。我们规定这个差距是一个分值,设定阈值为0.2,可根据实际项目进行调整。一旦模型就认定送入的样本是异常数据。对于最后结果分数的解析,我们使用了下式的方法,使用一阶范数对比了生成器和重构编码器之间的差异,再以进行归一化得到每个样本的异常得分。

2.3.3 经验杂谈

       GANomaly和VAE这两者都可以用来做行为异常检测,也都是基于训练数据的分布,但是原生的VAE的鲁棒性比原始的GAN更好,而GAN在调优之后效果比VAE更好。同时,对于模型解码得到的结果需要和初始数据进行相似度计算,得到数据的异常得分。

当然基于VAE模型在工业界使用中也面临着一些问题:

  • 运算资源的消耗。真实应用场景中存在机器的资源限制,由于引入了额外的复杂结构以面临数据中难以挖掘的局部异常无疑会造成训练和推理速度的提升。

  • 运行速度的效率。该类模型通常用于离线的行为检测,针对实时的检测还需要对模型选取和检测方法进一步优化。

  • 阈值的设定。设置异常阈值不符合真实场景中多种指标都需人工指定阈值这一无监督异常检测的通病。因为检测异常是通过对比重构后的结果与原始输入的差距,而这个差距多少就算是异常需要人为定义。

三、文末总结

       在UEBA的实践中,我们发现结合孤立森林+GANomaly的方法,在基于”数据库审计日志中用户越权访问、主机审计日志中账号的资源访问”等场景都取得了不错的效果。要注意的是,这些方法多用于离线检测模块。在某些场景中,我们也会采用集成学习、知识蒸馏等方法去降低误报和压缩模型,以提高模型的准确性、可解释性和稳定性。

     为帮助企业更好的应对内部威胁,腾讯安全运营中心(SOC)推出了UEBA分析能力,以帮助客户高效、准确、及时的检测风险,从而提升自身安全防护能力,有效降低内部威胁影响。想要了解更多UEBA技术,请关注腾讯SOC+UEBA相关介绍。

腾讯SOC-UEBA传送门:腾讯安全中心集成UEBA能力解决内部安全威胁

点个在看你最好看


文章来源: https://mp.weixin.qq.com/s?__biz=MzI2NDUyMjAyOA==&mid=2247488087&idx=1&sn=d4c955d251272f700da67ccbce41191f&chksm=eaaa0214dddd8b0289d741b51922796321e6beabbba6081084e5fdc51cd191f62ff1b960ce67&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh