UEBA实践
玩玩
随便拿一个数据集跑跑
开始前的胡言乱语
https://www.datafountain.cn/competitions/580/datasets
https://www.datafountain.cn/competitions/520/datasets
训练出了 一个能用的 现在有几个问题要考虑
- 上哪弄这么多标好签的数据???
- 无监督???
训练过程中解决了几个小问题:
不收敛: 1. 模型简单 2. 激活函数没用对,,,3. 收敛太慢
神经网络训练过程中不收敛或者训练失败的原因 - 知乎 (zhihu.com)
当时是模型删了俩层 都加了leaky relu 学习率调回 0.001
如何在tensorflow中调整学习率请看这里
source:
https://github.com/variationalkk/User-and-Entity-Behavior-Analytics-UEBA
结果
怎么说呢 平均误差降到了 0.1 以下
也不能说好吧 再看看
架构
异常、威胁指标和威胁
系统平台检测首先异常,进一步基于异常形成威胁。还有一个名词是威胁指标,是指安全威胁的潜在中间级别,安全威胁指标又可分为底层威胁、威胁指标、顶级威胁。之所以这样逐步演进,目标是为了减少误报,降低噪音。
上图是威胁识别处理流程,为了减少误报,整个流程先处理大量事件检测异常,进一步处理得到威胁指标,最后处理多个威胁指标识别出真正的威胁。
评 : 我现在的任务就是做这最后一步,最后处理多个威胁指标识别出真正的威胁
异常表示预期行为发生了变化,变化不一定威胁,但表示了可能引起关注的事件,由于大型系统中异常是海量的,所以在这一步无法进行人工介入调查。例如传入了1亿个事件,产生了100个异常,进一步处理则得到10个威胁指示,再被进一步处理得到1-2个威胁。
这里考虑到异常模型
异常模型处理数据。异常模型包括模型处理逻辑,定义了给事件打分的过程,同时也定义模型状态。异常模型可以有多个类型,例如横向移动、黑名单、恶意软件、罕见事件等。
之后进行评分,评分也是异常模型的处理逻辑完成,将异常相关程度量化。打分是一定范围的值,例如0-10,0表示最小异常,10表示最大。
如果异常分数满足阈值,输出异常指示。阈值不是静态的,应该基于场景可变,所谓场景例如事件数据量、预定义事件是否存在、异常检测量等。