木马检测方法及系统的制作方法
【技术领域】
[0001] 本发明涉及网络安全领域,尤其涉及一种木马检测方法及系统。
【背景技术】
[0002] 木马是一种威胁网络安全的常见病毒,目前存在很多检测木马的方法,但是这些 方法在界定木马心跳特征通常使用的是经验值,评判标准比较单一,不具有足够的说服力, 不能有效地进行自动化处理,并且检测木马的精度容易受到噪音影响,难以适应复杂的网 络环境,容易出现误判。
【发明内容】
[0003] 本发明要解决的技术问题是为了克服现有技术中木马检测不准确的缺陷,提供一 种能够准确检测出木马序列和木马ip的木马检测方法及系统。
[0004] 本发明是通过以下技术方案解决上述技术问题的:
[0005] 本发明提供一种木马检测方法,其特点是,所述木马检测方法包括:
[0006] S!、采集网络流量数据;
[0007] S2、将所述网络流量数据按照ip对分组;
[0008] S3、将同一组ip对的数据包分别聚为一个或多个簇;
[0009] S4、将由同一组ip对的数据包聚成的簇聚为一个或多个类;
[0010] S5、将每一类对应的时间序列标准化,所述时间序列由类中的簇间隔构成;
[0011] S6、分别计算标准化后的时间序列的时序统计量;
[0012] S7、筛选出时序统计量不在第一阈值范围内的时间序列作为木马序列,输出木马 ip〇
[0013] 其中,所述网络流量数据通常包括网络流量信息的基本五元组(源ip地址、源ip 端口、目的ip地址、目的ip端口和数据包的长度)以及时间戳和协议号等信息。
[0014] 所述时间序列可以通过以下过程生成:每一个簇如上所述会拥有多个数据包,将 这些数据包按时间戳的大小从小到大排序,选出最小值最为簇的开始时间戳,选出最大值 作为簇的截止时间戳;然后按照每个簇的开始时间戳从小到大进行排序,由于前部分分簇 的操作,所以此处不会出现簇与簇的重叠;再对排好序的簇的序列,计算相邻两个簇间,前 簇的截止时间和后簇的开始时间的差值。这样会产生一个差值的序列。该差值的序列即为 一个类对应的时间序列。
[0015] 本技术方案结合了分簇和时序分析等多种技术方法,对网络流量中可能存在的周 期性的木马心跳行为进行有效地识别,不容易受到噪音影响,适应复杂的网络环境,客观 准确地检测出木马序列,在筛选出木马序列后,木马序列对应的ip对中一个ip为已知的 ip (如客户端的ip),另一个即为木马ip。本技术方案中分簇操作后,大大降低了单个零碎 的包对整体判断的影响,有效地降低了误报率。时序分析中各个指标参量则准确地刻画了 每个类对应的序列为木马序列的可能。
[0016] 较佳地,S3包括分别对同一组ip对的数据包执行以下步骤:
[0017] S31、设定一分隔阈值,将相邻的两个时间间隔小于所述分隔阈值的数据包聚为一 个簇。
[0018] 通过上述步骤,通信流中互相间隔小于分隔阈值的数据包聚为一个簇,即簇与簇 之间的时间间隔均大于分隔阈值。分簇后以簇为最小分析单元,特征包括簇大小(即簇中 数据包的个数)、簇长度(即簇中数据包长度的总和)、簇跨度(即簇中首包到末包的时间 间隔)、簇间隔(即与前一个簇之间的时间间隔)、簇中最小时间戳(即簇开始时间)以及 簇中最大时间戳(即簇结尾时间)。其中,分隔阈值可以采用固定常量,即根据网络环境设 定某一个固定的值作为分隔阈值,也可以通过下一技术方案动态生成分隔阈值。
[0019] 较佳地,S31的分隔阈值通过以下步骤设定:
[0020] S311、获取该组ip对的前N个数据包中相邻的两个数据包的时间间隔,N为小于或 等于该组ip对的数据包的总数的正整数;
[0021 ] S312、计算该些时间间隔的平均时间间隔以及时间间隔标准差;
[0022] S313、从该些时间间隔中,去除大于平均时间间隔加Μ倍的时间间隔标准差的时间 间隔,Μ为正数;
[0023] S314、计算剩余的时间间隔的平均时间间隔以及时间间隔标准差;
[0024] S315、计算分隔阈值,分隔阈值等于S314中计算出的平均时间间隔加S 314中计算出的 时间间隔标准差。
[0025] 其中,N和Μ可以根据实际情况自由设定,如设定N等于20,设定Μ等于3。
[0026] 本技术方案能够根据网络环境自动动态生成分隔阈值,进一步降低了单个零碎的 包对整体判断的影响,有效地降低了误报率。
[0027] 较佳地,S6中计算的时序统计量包括方差,S 7中若方差小于方差阈值,则时间序列 为木马序列;
[0028] 或,S6中计算的时序统计量包括不稳定度instability,S 7中若不稳定度 instability小于不稳定度阈值,则时间序列为木马序列,不稳定度的计算公式如下:
[0030] 式中nk为类k中簇的个数,T kil为类k中簇按时间先后顺序排序后第i个簇的到 达时间;
[0031] 或,S6中计算的时序统计量包括方差和不稳定度instability,S 7*若方差小于方 差阈值且不稳定度instability小于不稳定度阈值,则时间序列为木马序列。
[0032] 本技术方案可以将方差、不稳定度或者方差和不稳定度的结合作为指标衡量序列 的稳定性,进而判断一个序列是否存为木马序列。如果通信流具有心跳行为,那么类中的簇 间隔应该趋于稳定,即各个簇间隔相差甚小。标准化后的时间序列的方差越小,稳定度越 高,序列周期性更明显,更有可能是木马序列。不稳定度是在方差的基础上提升了对序列长 度(即类中簇数量)的权值,使序列长度更长的序列可以得到更小的不稳定度,以排除序列 长度短的序列带来的干扰。在上述不稳定度的计算公式中,第一项表示的是样本方差,通常 在样本方差的定义中,使用的除数(即第一项的分母)应为总样本个数减1,即(nk_l),而 本技术方案中计算样本方差所使用的分母为nk,这样不稳定度的值相较于样本方差在~越 大的情况下,不稳定度越小。即长度更长的序列拥有相对更低的不稳定度,不稳定度越小的 序列稳定度越高,序列周期性更明显,更有可能是木马序列。将方差和不稳定度的结合作为 衡量序列的稳定性的指标时,本技术方案即采用了多种变量来判断是否存在木马序列,使 得判断结果更准确。
[0033] 较佳地,S7还包括:
[0034] S71、计算标准化后的时间序列的频域统计量;
[0035] S72、筛选出时序统计量在第一阈值范围内且频域统计量不在第二阈值范围内的时 间序列作为木马序列,输出木马ip。
[0036] 其中,在时序统计量为方差时,所述计算出的时序统计量在第一阈值范围内是指 计算出的方差大于或等于方差阈值;在时序统计量为不稳定度时,所述计算出的时序统计 量在第一阈值范围内是指计算出的不稳定度大于或等于不稳定度阈值;在时序统计量为方 差和不稳定度时,所述计算出的时序统计量在第一阈值范围内是指计算出的方差大于或等 于方差阈值且计算出的不稳定度大于或等于不稳定度阈值。
[0037] 考虑到心跳间隙随时间推移的伪随机特点会增加判断通信是否为木马通信的难 度,本技术方案在分簇和时序分析的基础上,进一步结合了频域分析,大大降低木马的识别 难度,通过多维度多变量的方式客观地评判是否存在木马序列。对于已经通过时域分析判 定为木马序列的时间序列(即时序统计量不在第一阈值范围内的时间序列),可以通过S71进一步确定判定木马序列的准确性;对于通过时域分析并没有判定为木马序列的时间序列 (即时序统计量在第一阈值范围内的时间序列),可以通过S71进一步防止木马序列被遗漏。
[0038] 较佳地,S71包括:
[0039] S711、对标准化后的时间序列进行离散傅立叶变换,得到一组傅立叶系数;
[0040] s712、分别用相位和振幅计算模值,形成一个新的序列;
[0041] S713、计算所述新的序列对应的自相关系数;
[0042] S714、剔除0阶的自相关系数,计算剩余的自相关系数的绝对值的均值;
[0043] S72包括筛选出时序统计量在第一阈值范围内且S714计算的均值小于均值阈值的 时间序列作为木马序列,输出木马ip。
[0044] 所述均值即为频域统计量,小于均值阈值即为不在第二阈值范围内。如果形成的 新的序列越平稳,该序列对应的自相关系数就会随阶数增大会迅速降低至〇,因此基于自相 关系数序列的大小可以作为平稳性判断的指标。为