网络异常行为检测

基于统计学习的网络异常行为检测技术(启明)

基于人工特征提取的异常检测技术的技术路线是:分析人员首先以某种方式从原始数据中提取特征参数,然后基于特征进行建模和异常检测。

人工特征提取的优点是(应用较多): * 特征提取建立在安全分析人员的认知基础之上,对异常行为有较强的针对性; * 对训练样本数量的依赖度低,较少的样本训练即可得到相对准确的模型; * 模型的可解释度高,容易确定异常检测结果的有效性。

人工特征提取的缺点: * 对安全分析人员的依赖度高,特征的选取方法会对异常检测结果的有效性产生直接影响。

深度学习优点: * 提出了一种让计算机自动学习产生特征的方法,并将特征学习融入建立模型的过程中,从而减少了人为设计特征引发的不完备。

深度学习方法局限性: * 需要有大量的训练样本进行训练,才能保证模型的准确度。 * 当训练样本数量不足时,深度学习算法将不能够对数据的规律进行无偏估计,模型的识别效果可能还不如传统基于人工特征提取的统计分析方法。 * 当前深度学习的成功应用大都集中在有大量训练样本的模式识别领域,如语音识别、图像识别、机器翻译等。

特征选择: * 命令与控制通道行为检测 * 反向连接特征(判断是不是一个流) * 心跳特征(检测数据传输的平稳度) * 获取行为检测 * 会话信息类指标。统计一台主机单位时间内不同协议类型的会话统计信息。如TCP连接次数、UDP连接次数、对应的流量、数据分组大小的均值和标准差等 * 应用分布类指标。统计一台主机单位时间内不同应用类型的访问统计信息。如访问不同应用的流量分布、次数、目标地址位置、国别分布等 * 指示位标识类指标。统计一台主机单位时间内收发的含特定协议标识位的数据分组数量及其比值。有TCP_SYN_send、TCP_SYN_ACK_receive、RST_send等标志位的会话数目;TCP_SYN_ACK_receive/TCP_SYN_send的比值;单位时间里的ICMP_T3、ICMP_Echo_Reply、ICMP_Echo_Request等报文数目 * 地址分布指标。统计一台主机单位时间内访问的IP地址网段分布、内外网分布等参数

特征值异常检测


基于主动学习的异常检测

运维人员会把自己的领域知识融入到异常检测中,针对初始的异常分数排名,给出排名靠前的样本的反馈之后,模型会根据这个反馈来重新调整参数,从而输出新的异常分数排名,目的是使运维人员感兴趣的异常排在靠前的位置,从而节约排查异常所需的时间。

损失函数: 异常样本被排在最前面,说明目前的模型是好的,损失函数的值需要减少,正常点排在前面,那么这个模型是有问题的,需要增大损失函数。

镜像下降学习算法


通过半监督学习为新KPI曲线快速部署异常检测

分析KPI曲线,尽管KPI曲线的数量众多,但是曲线的形状大体上只有少数的几类。这本质是由于,曲线的形状是由业务的类型(比如交易量,游戏在线人数,搜索)以及曲线的类型(CPU使用率,成功率)所决定的,而非集群的规模。除非是上线一个全新的业务,否则新的曲线的形状大概率会和旧曲线的形状相似。这启示作者,可以对曲线做聚类,属于同一类别的曲线,其特征空间也大致相似。属于同一类别的曲线形状相似,但是并不完全一致,在模型层面上需要有所区分。作者开始思考,是否可以用机器学习中的半监督算法来解决这个问题,既可以使用原有的label标注,提高准确率,又能够为每根新上线的曲线分配不同的模型。

ROCKA 分析曲线相似度


腾讯Metis

  1. 对于已知的故障:织云 Metis 能够综合故障数据和人工经验自动提取故障特征,以故障特征库的形式,自动匹配定位故障;
  2. 对于未知场景:织云 Metis 可根据故障特征推算出可能的原因,并在人工确认后加入故障特征库。

特征:提供三类时间序列的特征(统计特征、拟合特征、分类特征)用于对时序数据进行特征提取,在监督学习和训练中使用。支持增加自定义特征

算法: 提供常见的几种机器学习算法封装(统计判别算法、指数移动平均算法、多项式算法、GBDT和xgboost等)用于对序数据进行联合仲裁检测。


百度

  1. 阈值检测
  2. 突升突降类算法(检测均值漂移)
  3. 同比类算法(判断正态分布的均值与方差)
  4. 参数自动配置