智能威胁检测:基于SOC时间序列算法的可疑外网IP周期连接检测
2020-6-8 10:59:59 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

导语  基于Spark的SOC ML检测平台是为企业安全运营人员打造的一站式机器学习检测服务平台,为用户提供从数据预处理、特征转换、特征提取、模型训练、模型预测、异常结果可视化到用户实时反馈的全流程可配置(无需编写代码)可直接运用于生产环境的智能威胁检测服务。

本篇主要介绍基于SOC机器学习检测框架的时间序列建模的一个场景:可疑外网IP周期连接检测。

一、SOC机器学习检测框架及时间序列建模简述

企业里的威胁检测主要针对细分安全场景进行检测,场景多且不同企业关注场景可能不同。我们针对于企业威胁检测的特点构建了统一的SOC机器学习检测框架,框架的目的有两个:

  • 支撑SOC内置场景检测,丰富UEBA模块,增强SOC安全检测能力。

  • 提供客户自定义场景功能,以满足客户自定义场景发现未知威胁的能力。

基于SOC机器学习检测框架的内置检测场景:

时间序列异常检测:

时间序列分析是将历史数据在时间维度上按先后顺序构建时间序列,并通过一系列相关模型进行建模识别潜在模式,以便对后续数据进行预测或者异常检测。

根据时间序列本身的特点,我们将时间序列分为周期性的时间序列和非周期性的时间序列。对不同类型的时间序列应用不同的算法建模。


例如:周期性的时间序列应用STL, Holt-Winters等算法建模;非周期性的时间序列应用小波变换等算法建模。

本文将介绍SOC机器学习框架支撑的一个内置场景检测:可疑外网IP周期连接在该检测场景中,受感染/受控机器会定时访问外网IP,基于这种周期性较强的特征,我们主要基于结合历史数据和安全策略来检测可疑行为。

二、可疑外网IP周期连接(RecurringRare IP Access)

可疑外网IP周期连接(RecurringRare IP Access)是指在特定的局域网内部(如企业内网),存在某个主机,在某段历史时间中有周期性地访问外部的稀有IP,且内网的其他主机几乎没有或者从不访问该IP。则该主机访问该外网IP的行为便是可疑外网IP周期连接行为。

可疑外网IP周期性连接行为属于Command&Control攻击阶段,可覆盖的场景包括但不仅限于特定的恶意软件定期与外网C&C服务器通信;定时脚本执行等。

业界相关场景检测方法:

目前对于时间序列的周期性检测方式主要包含传统的统计分析以及心跳检测方式。

传统的统计分析方式主要以人为设定周期采样分段,然后计算每段的均值方差,基于统计规则来判断是否包含周期分量。传统的心跳检测主要以判断TCP心跳包的情况,在设定的时间段内判断连接是否存在,从而推断心跳周期。

同时也有基于信号处理的心跳检测方法,如单独使用FFT计算时间序列的幅频关系,从而验证时间序列的周期性进行心跳检测。

而现有技术方案存在的缺陷主要有如下几点:

  • 基于数学统计和传统心跳检测的检测方法需要经验知识来人为设定周期阈值,容易被绕过。对于时间序列的周期相似性缺少校验,无法有效地判断周期是否合理,周期结果会与实际时间序列不符。

  • 而单独使用FFT方法对于时变信号的时间序列检测效果较差,无法有效验证周期的合理性。

基于SOC ML检测框架的方法如下图所示:

三、检测方法

针对可疑外网IP周期性访问场景,检测的整体流程如下图所示。

3.1 特征预处理

以内网源IP和外网目的IP作为主要观察对象进行特征提取。提取的特征值为TCP的传输数据大小,并以n分钟为时间粒度进行累加统计,作为最终特征。

以源IP,目的IP,时间戳(分钟为粒度),传输数据大小的特征值形式构成时间序列数据模型。再利用平滑滤波器对时间序列进行降噪平滑处理。特别地,当时间序列为稀疏时间序列时,不做降噪平滑处理。

3.2 FFT_DTW时间序列相似性周期检测

相似性周期检测算法主要分为两步,首先利用FFTFastFourier Transform,快速傅里叶变换)对时间序列进行周期检测。获取时间序列的周期值T。其次,以获取的周期T对时间序列进行分段,利用DTWDynamicTime Warping,动态时间规整)分析各周期片段的相似性。并根据相似性结果来判断最终整个时间序列是否为周期相似的。

1) 利用FFT将时间序列转换到频域。并计算获取幅频关系。对于周期时不变时间序列,即我们主要的检出对象,基于FFT的周期检测将会是准确高效的,如下图所示。左图中的周期为1440min

 原时间序列 FFT变换幅频图

然而FFT对于时变信号以及非周期时间序列的周期检测结果需要作进一步验证进行排除。

2) 利用DWT算法对时间序列的周期片段进行相似性检测。

假设有两个时间序列x(t1),y(t2),他们的时间长度分别为n和m,则可以构成一个n*m的矩阵D(i,j),其中每个矩阵的值d(i,j)为x(i)与y(j)的欧氏距离,如下图所示。DTW的目的是找到从D(0,0)到D(n,m)之间的路径。且该最小值为这两个时间序列的相似度值。

利用计算出来的T周期,对原始数据进行切片分段。如果输入序列为N,则可以分成N/T个片段。特别地,由于DTW对于稀疏时间序列的相似性检测的参考性较低。因此为了确保检测的有效性,对于稀疏时间序列进行单独的统计对比。而对于非稀疏时间序列进行DTW相似度计算。

比较两个相邻时间单元的相似度,也就是求相邻单元的DTW距离。假如有N个时间单元的话,就需要求N-1次距离。将所有的距离值保存到列表中,根据设置的阈值,就可以判断出是否具有周期性。

当阈值大于相似度值时,说明两个片段相似,否则不相似;而对于整体的时间序列周期而言,我们会得到N-1个相似度值的结果列表,其中超过一定占比的结果为相似时,则判定整个时间序列为周期性相似序列;否则只判定为周期性序列

3.3 策略制定

FFT_DTW相似性周期检测算法的结果进行规则过滤。针对可疑外网IP周期连接的规则策略具体如下:

  • 获取可疑结果中所有的外网目的IP记录;

  • 统计固定时间内正常流量访问这些外网目的IP的内网IP去重计数normal_count

  • 设置策略阈值normal_th,当normal_count>normal_th时,判定该外网IP被访问次数较多,排除可疑性。

最终输出策略过滤后的可疑外网IP周期连接检测结果。

四、检测效果

检测结果示例:

示例一:检测到某内网IP一周内定时与外网某稀有IP通信

描述:内网某IP每天下午15:14:00通过TCP定时与外网某IP发生通信。最近一次通信时间为2019-11-18 15:14:00

示例二:检测到某内网IP两周内保持与外网某稀有IP的通信连接,传输数据呈周期性。

描述:内网某IP自2019-11-06开始通过TCP定时与外网某IP保持两周时间的通信,且传输数据大小呈周期相似性。周期为1440分钟,即1天。

示例三:检测到某内网IP在一天内每隔6小时向外网某稀有IP发送一次数据。

描述:内网某IP2019-11-0721:40:00起,每隔6小时定时向外网某稀有IP发送一次大小为175byte的数据。

该账号主要围绕智能化技术如何帮助企业提升网络安全水平展开,内容涉及机器学习、大数据处理等智能化技术在安全领域的实践经验分享,业界领先的产品和前沿趋势的解读分析等。通过分享、交流,推动安全智能的落地、应用。欢迎关注~


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