UEBA实践

玩玩

随便拿一个数据集跑跑

开始前的胡言乱语

https://www.datafountain.cn/competitions/580/datasets

https://www.datafountain.cn/competitions/520/datasets

训练出了 一个能用的 现在有几个问题要考虑

  • 上哪弄这么多标好签的数据???
  • 无监督???

训练过程中解决了几个小问题:

不收敛: 1. 模型简单 2. 激活函数没用对,,,3. 收敛太慢

神经网络训练过程中不收敛或者训练失败的原因 - 知乎 (zhihu.com)

当时是模型删了俩层 都加了leaky relu 学习率调回 0.001

image-20230312221323678

如何在tensorflow中调整学习率请看这里

https://towardsdatascience.com/how-to-optimize-learning-rate-with-tensorflow-its-easier-than-you-think-164f980a7c7b

source:

https://github.com/variationalkk/User-and-Entity-Behavior-Analytics-UEBA

结果

HCI_HW | Kaggle

怎么说呢 平均误差降到了 0.1 以下

也不能说好吧 再看看

架构

异常、威胁指标和威胁

系统平台检测首先异常,进一步基于异常形成威胁。还有一个名词是威胁指标,是指安全威胁的潜在中间级别,安全威胁指标又可分为底层威胁、威胁指标、顶级威胁。之所以这样逐步演进,目标是为了减少误报,降低噪音。

img

上图是威胁识别处理流程,为了减少误报,整个流程先处理大量事件检测异常,进一步处理得到威胁指标,最后处理多个威胁指标识别出真正的威胁。

评 : 我现在的任务就是做这最后一步,最后处理多个威胁指标识别出真正的威胁

异常表示预期行为发生了变化,变化不一定威胁,但表示了可能引起关注的事件,由于大型系统中异常是海量的,所以在这一步无法进行人工介入调查。例如传入了1亿个事件,产生了100个异常,进一步处理则得到10个威胁指示,再被进一步处理得到1-2个威胁。

img

这里考虑到异常模型

异常模型处理数据。异常模型包括模型处理逻辑,定义了给事件打分的过程,同时也定义模型状态。异常模型可以有多个类型,例如横向移动、黑名单、恶意软件、罕见事件等。

之后进行评分,评分也是异常模型的处理逻辑完成,将异常相关程度量化。打分是一定范围的值,例如0-10,0表示最小异常,10表示最大。

如果异常分数满足阈值,输出异常指示。阈值不是静态的,应该基于场景可变,所谓场景例如事件数据量、预定义事件是否存在、异常检测量等。