一种电力二次系统僵尸网络的检测方法

文档序号:10615994阅读:418来源:国知局
一种电力二次系统僵尸网络的检测方法
【专利摘要】本发明公开一种电力二次系统僵尸网络的检测方法,抓包模块抓包并时序化报文,协议识别模块解析报文协议并按预设的白名单匹配协议,组流模块对报文按五元组组流生成流记录,流序列拼装模块将流记录按规则序列化成流序列,流序列特征提取模块提取流序列特征并生成僵尸特征库,特征匹配模块判断待测流序列的特征是否符合僵尸特征库中的某种僵尸网络。此种检测方法可降低计算资源的消耗,具有良好的适应性和检测准确率。
【专利说明】
-种电力二次系统僵尸网络的检测方法
技术领域
[0001] 本发明属于电力系统自动化通信技术和网络安全技术领域,特别设及一种电力系 统网络分析仪和僵尸网络检测技术。
【背景技术】
[0002] 僵尸网络是指通过各种手段在多台设备中植入恶意程序,使僵尸控制者能相对方 便和集中地控制运些设备,向运些受控制的设备发布各种指令进行相应恶意活动的攻击网 络。随着全球电力系统和互联网技术的高速发展,电力二次系统的规模和复杂性越来越高, 智能化设备和W太网通信的普及在带来更加丰富功能的同时,也为僵尸网络的部署和传播 创造了有利的条件。
[0003] 僵尸网络检测方法主要分为两种,第一种基于分析可疑二进制可执行文件,运种 方法一般是通过蜜罐捕获可疑二进制文件,分析攻击记录和活动记录,发现并摧毁僵尸网 络,运种方法分析周期长,消耗资源大,实时性差;第二种基于分析网络流,通过深度包检测 方法分析网络报文的字段特征或者是分析流量的行为特征与关联特征,从而找出僵尸流量 与正常流量的差异性,W此发现僵尸网络,但由于网络流量的复杂性,运种方法的准确性相 对较低。
[0004] 现有的广域网中的僵尸网络检测方法对于电力二次网络的僵尸网络检测并没有 针对性,电力二次系统中使用的网络协议相对较为固定,W站控层网络为例,通常是103、 61850、DNP,少数情况下会有网络形式的101和104,除此之外的所有协议报文都可W认为是 非常规协议,都可能由僵尸程序产生,所W可W用协议识别的方法检测僵尸网络。但当僵尸 程序使用103、61850等规约进行传播和活动时,协议识别方法将失效,此时需要具有更广泛 的应用范围的流量行为分析方法补充检测,但流量行为分析方法设及大量的计算,需要消 耗相当大的CPU和内存资源。
[0005] 因此需要一种能针对电力二次系统的特点,将协议识别方法、流量行为分析方法 相结合,在大大降低计算资源消耗的基础上也拥有良好的适应性和检测准确率的僵尸网络 检测手段,本案由此产生。

【发明内容】

[0006] 本发明的目的,在于提供一种电力二次系统僵尸网络的检测方法,其可降低计算 资源的消耗,具有良好的适应性和检测准确率。
[0007] 为了达成上述目的,本发明的解决方案是:
[000引一种电力二次系统僵尸网络的检测方法,包括如下步骤:
[0009] 步骤一:抓包模块将僵尸恶意代码产生的报文时序化后,输出至组流模块;
[0010] 步骤二:组流模块对输入报文按协议、源端口、目的端口、源IP和目的IP组流,得到 流记录集合,每条流记录至少包含该流的流开始时间、流结束时间、报文总数及字节总数, 流记录集合输出至流序列拼装模块;
[0011] 步骤=:流序列拼装模块将流记录集合中的每条流记录拼装成流序列,输出至流 序列特征提取模块;
[0012] 步骤四:流序列特征提取模块提取每个流序列的平均流时间间隔、平均流持续时 间和平均流字节数;
[0013] 步骤五:流序列特征提取模块对流序列进行Ol序列化,使用循环自相关方法计算 Ol序列的最显著频率,并计算Ol序列的能量谱密度函数的最显著频率;
[0014] 步骤六:流序列特征提取模块使用X-means聚类算法对平均流时间间隔、平均流持 续时间、平均流字节数、Ol序列的最显著频率和能量谱密度函数的最显著频率运五个流序 列特征分别聚类,并计算每个类别的均值、标准差和聚类质量;
[0015] 步骤屯:循环执行步骤一到步骤六,流序列特征提取模块输出各个僵尸恶意代码 的流量指纹,包含平均流时间间隔、平均流持续时间、平均流字节数、Ol序列的最显著频率、 能量谱密度函数的最显著频率运五个流序列特征的类别均值、类别标准差、聚类质量W及 特征匹配个数阔值和特征相似度得分阔值,使用预设步长自动调整特征匹配个数阔值和特 征相似度得分阔值,使总的误报率和漏报率在调整范围内达到最小值;
[0016] 步骤八:抓包模块接收待分析报文做为输入,时序化后输出至协议识别模块;
[0017] 步骤九:协议识别模块将待分析报文输出至组流模块组流,按照步骤二到步骤五 处理后,将生成的待分析流序列特征输入至特征匹配模块;
[0018] 步骤十:特征匹配模块比对待分析流序列特征与"流量指纹"库,若特征匹配个数 超过特征匹配个数阔值,且特征相似度得分超过特征相似度得分阔值,则将待分析流序列 处理为该僵尸网络流序列,若符合多条指纹,则将特征相似度得分最大的流序列处理为该 僵尸网络流序列,记录并产生告警。
[0019] 上述步骤一的详细内容是:收集已知僵尸恶意代码样本,在实验环境中逐个部署 恶意代码样本,实验环境模拟电力二次系统网络结构,提取特征时,每次部署一种,任由其 运行和传播,经过足够长时间后,记录网络中所有报文,并进行时序化后,输出至组流模块。
[0020] 上述步骤=中,将流记录拼装成流序列的方法是:将流记录按照协议、源IP、目的 IP及目的端口拼装成流序列,协议、源IP、目的IP及目的端口相同的流记录按时间顺序排列 成一条流序列。
[0021] 上述步骤五中,对流序列进行Ol序列化的过程是:指用一个较小的时间间隔t分割 一个流序列,设流序列总持续时间为T,T =化,N为正整数,在一个t内,若有流开始,则置为 1,否则置0,得到一个长度为N的Ol序列。
[0022] 上述步骤九中,在流序列特征检测之前,先用协议识别模块进行协议白名单的检 ,按照协议结构解析输入报文,与预定义白名单中的协议比较,若不属于白名单,则处理 为属于异常报文,记录并产生告警,若属于白名单,则将待分析报文输出至组流模块组流。
[0023] 采用上述方案后,本发明的有益效果是:
[0024] (1)针对电力二次网络的特点,即电力二次系统中使用的网络协议相对较为固定, W站控层网络为例,通常是103、61850、0胖,少数情况下会有网络形式101和104,除此之外 的所有协议报文都可W认为是非常规协议,都可能由僵尸程序产生,因此使用协议识别的 方法,在检测程序中预先配置协议白名单,可W有效的检测僵尸网络。
[0025] (2)当僵尸程序使用103、61850等规约进行传播和活动时,协议识别方法将失效, 所W流量行为分析方法具有更广泛的应用范围,但流量行为分析方法设及大量的计算,需 要消耗相当大的CPU和内存资源,针对电力二次系统的特点,本发明使用了协议识别方法和 基于流序列特征的行为分析方法相结合的手段,在大大降低计算资源的消耗的基础上也拥 有良好的适应性和检测准确率。
[0026] (3)本发明在描述流序列周期性时,使用循环自相关最显著频率和能量谱密度最 显著频率相结合的手段来描述,与其他方法如功率谱密度相比,具有计算量小,资源消耗低 的优点。
[0027] (4)本发明所述的检测程序集成于电力二次系统中已有设备网络分析仪中,不需 要添加新设备,也不需要改动现有网络架构,有利于具体实施。
【附图说明】
[0028] 图1是本发明各模块的整体架构图;
[0029] 图2是本发明中僵尸流序列特征指纹的建立过程示意图;
[0030] 图3是本发明对站控层报文镜像的检测过程示意图。
【具体实施方式】
[0031] W下将结合附图,对本发明的技术方案进行详细说明。
[0032] 本发明提供一种电力二次系统僵尸网络的检测方法,图1描述了本发明各模块的 整体架构,由六个模块组成,分别是抓包模块、协议识别模块、组流模块、流序列拼装模块、 流序列特征提取模块和特征匹配模块,其中,抓包模块抓包并时序化报文,协议识别模块解 析报文协议并按预设的白名单匹配协议,组流模块对报文按五元组组流生成流记录,流序 列拼装模块将流记录按规则序列化成流序列,流序列特征提取模块提取流序列特征并生成 僵尸特征库,特征匹配模块判断待测流序列的特征是否符合僵尸特征库中的某种僵尸网 络。
[0033] 图2描述了本发明的僵尸流序列特征指纹的建立过程,各个僵尸恶意代码的"流量 指纹"由平均流时间间隔、平均流持续时间、平均流字节数、循环自相关最显著频率fi、能量 谱密度最显著频率f2运五个流序列特征的类别均值、类别标准差、聚类质量W及特征匹配 个数阔值Olmax和特征相似度得分阔值组成,其中,特征匹配个数阔值是指,对于平均流 时间间隔、平均流持续时间、平均流字节数、循环自相关最显著频率、能量谱密度最显著频 率五个特征,待测流序列特征与已知僵尸流序列特征相匹配的特征的最小个数;特征相似 度得分阔值是指,待测流序列的每一个特征,与已知僵尸流序列特征的相匹配程度,用一个 值描述,所有特征的匹配值累加和的最小值;只有同时达到或超过特征匹配个数阔值和特 征相似度得分阔值时,待测流序列才会被认为是对应僵尸网络产生的流序列。
[0034] 图3描述了本发明对站控层报文镜像的检测过程,使用了协议识别方法和基于流 序列特征的行为分析方法相结合的手段,在大大降低计算资源的消耗的基础上也拥有良好 的适应性和检测准确率。
[0035] 本发明包含的步骤如下:
[0036] 步骤一:抓包模块将僵尸恶意代码产生的报文时序化,具体是收集已知僵尸恶意 代码样本,如Blac陆nergy、S抓Ot、Zbot等,但不局限于此,在实验环境中逐个部署恶意代码 样本,实验环境模拟电力二次系统网络结构,可W由多个虚拟机实现,也可W由实装置实 现,提取特征时,每次部署一种,任由其运行和传播,经过足够长时间后,记录网络中所有报 文,并进行时序化,记为G,并输出至组流模块;
[0037]步骤二:组流模块将G中的报文按协议、源端口、目的端口、源IP、目的IP组流,得到 流记录集合Gi,每条流记录至少应包含该流的流开始时间、流结束时间、报文总数及字节总 数,流记录集合输出至流序列拼装模块;其中,流是指在一段时间内,一个源地址和目的地 址间传输单向报文流,所有报文具有相同的传输层源、目的端口号、协议号和源端口、目的 地址,即五元组内容相同,流描述的是两个端系统之间一次特定的通信活动;
[00測步骤二:将Gi组成流序列,记流序列集合为G2;
[0039] 步骤流序列拼装模块将流记录集合Gi中的每条流记录按照协议、源IP、目的 IP、目的端口拼装成流序列,协议、源IP、目的IP、目的端口相同的流记录按时间顺序排列成 一条流序列,记流序列集合为G2,所有流序列输出至流序列特征提取模块;其中,流序列是 指在一段时间内,一个特定源地址与一个特定目的地址及特定目的端口之间通信所产生的 流的序列,流序列描述的是一段时间内两个端系统之间同种通信活动的整体特性,如端系 统A请求端系统B的80端口,一段时间内连续请求多次,AB产生多个流,则运些流按流开始时 间排序组成的序列为一个流序列;
[0040] 步骤四:对于G2中的每个流序列,流序列特征提取模块提取每个流序列的平均流 时间间隔、平均流持续时间和平均流字节数;
[0041] 步骤五:流序列特征提取模块对G2中的每个流序列进行Ol序列化,使用循环自相 关方法计算Ol序列的最显著频率,并计算Ol序列的能量谱密度函数的最显著频率,使用Ol 序列的能量谱密度函数的最显著频率描述Ol序列周期性;其中,Ol序列化是指用一个较小 的时间间隔t分割一个流序列,设流序列总持续时间为T,t取平均流时间间隔的1/4,T =化, N为正整数,在一个t内,若有流开始,则置为1,否则置0,得到一个长度为N的Ol序列。
[0042] 设Ol序列集合为S,使用循环自相关方法计算S中每个序列的最显著频率fi,计算 方法如W下公式:
[0043] 将Ol序列f的项数标准化为2的整数次幕,选取序列f的前P个元素构成的子序列, 满足:
[0044] P = 2n,P《M,2n+i>M nGQ
[0045] 其中,P为Ol序列f标准化后的元素个数,M为Ol序列f原始的元素个数,Q为自然数 集。
[0046] Ol序列f的离散自相关函数:
[0047]
[004引 [0049]
[(K)加 ]
[0化1 ]
[0化2]
[0053] 对于S中每个序列计算能量谱密度函数?,根据〇可W得到序列的能量谱密度函 数的最显著频率f2,计算方法如W下公式:
[0054] Ol序列f的离散傅里叶变换:
[0化5]
[0化6]
[0化7]
[0058] 将Ol序列f的项数标准化为2的整数次幕,选取序列f的前P个元素构成的子序列, 满足:
[0059] P = 2n,P《M,2n+i>M nGQ
[0060] 其中,P为Ol序列f标准化后的元素个数,M为Ol序列f原始的元素个数,Q为自然数 集。
[0061 ] 九化玄'哈b旦^並概#万.A化)后,选取巫最大的k化声0 ),计算得到频率f 2 :
[0062]
[0063] 步骤巧:上步骤甲包昔平均流时间间隔、平均流持续时间、平均流字节数、01序 列的最显著频率fi、能量谱密度函数的最显著频率f2共5个流序列特征,使用x-means聚类算 法,对每个特征分别聚类,每个特征可W得到数个聚类集,在实际站控层环境中采集正常流 量与步骤一中的僵尸流量混合,对于混合流量重复步骤二到步骤五,对于每一个流序列的 特征向量T[i],分别与每个特征的每个聚类集比较,若T[i]在[c-2sd,c+2sd]内,C为该聚类 集的均值,Sd为标准差,则特征匹配个数Ol增加1,特征相似度得分02增加 Qc*Qti,其中Qc为命 中类别的聚类质量,QTi是流序列T在i属性上的质量,即流序列特征质量,质量QTi = exp (-0* sd/c),0为2.5,表示调节参数,流序列的fi的质量由循环自相关最大比值代替,f2质量由平 均流时间间隔的质量代替,若Ol达到特征匹配个数阔值Olmax, 02达到特征相似度得分阔值 〇2max,则认为该流序列属于对应的僵尸流序列,自动调整Olmax和〇2max的值,Olmax从0~5逐个 实验,步长1,从0~5逐个实验,步长0.1,使误报率和漏报率均达到最低;
[0064] 步骤屯:重复步骤一到步骤六,可得到各个僵尸恶意代码的"流量指纹",由平均流 时间间隔、平均流持续时间、平均流字节数、频率fl、频率f2各个聚类类别的均值、标准差、聚 类质量W及Olmax和组成,使用预设步长自动调整特征匹配个数阔值和特征相似度得分 阔值,使总的误报率和漏报率在调整范围内达到最小值;其中,特征匹配个数阔值是指,对 于平均流时间间隔、平均流持续时间、平均流字节数、Ol序列的最显著频率、能量谱密度函 数的最显著频率五个特征,待测流序列特征与已知僵尸流序列特征相匹配的特征的最小个 数;特征相似度得分阔值是指,待测流序列的每一个特征,与已知僵尸流序列特征的相匹配 程度,用一个值描述,所有特征的匹配值累加和的最小值;只有同时达到或超过特征匹配个 数阔值和特征相似度得分阔值时,待测流序列才会被认为是对应僵尸网络产生的流序列;
[0065] 步骤八:步骤一到步骤屯为僵尸网络"流量指纹"的提取过程,将指纹库与检测程 序部署于站内网络分析仪中,网络分析仪需要连接核屯、交换机镜像口,采集全站报文镜像; 抓包模块接收待分析报文做为输入,时序化后输出至协议识别模块;
[0066] 步骤九:配置协议白名单,将现有站控层网络中可能出现的协议配置进检测程序, 如IEC60870-5-103、IEC61850、DNP等;协议识别模块按照协议结构解析输入报文,与预定义 白名单中的协议比较,若不属于白名单,则处理为属于异常报文,记录并产生告警,若属于 白名单,则将待分析报文输出至组流模块组流,按照步骤二到步骤五处理后,将生成的待分 析流序列特征输入至特征匹配模块;
[0067] 步骤十:对于每一条待分析的流序列,特征匹配模块比对待分析流序列特征与"流 量指纹"库,计算指纹库中每条指纹的特征匹配个数Oi和征相似度得分02,若Oi达到指纹中 的曰lmax,〇2达到指纹中的〇2max,则认为待分析的流序列属于该僵尸网络,处理为该僵尸网络 流序列,若符合多条指纹,则将02最大的流序列处理为僵尸网络流序列,记录并产生告警。
[0068] 综上所述,本发明使用了协议识别方法和基于流序列特征的行为分析方法相结合 的手段,在大大降低计算资源的消耗的基础上也拥有良好的适应性和检测准确率。本发明 针对电力二次系统协议单一、流序列模式相对固定的特点,一是检测网络中的异常协议报 文,二是检测网络中的流序列特征是否和事先已知的僵尸程序产生的流序列特征相匹配, W此判断电力二次网络中是否存在僵尸网络,两种手段相结合,在大大降低计算资源的消 耗的基础上也拥有良好的适应性和检测准确率,为电力二次系统的安全运行提供保障。
[0069] W上实施例仅为说明本发明的技术思想,不能W此限定本发明的保护范围,凡是 按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围 之内。
【主权项】
1. 一种电力二次系统僵尸网络的检测方法,其特征在于包括如下步骤: 步骤一:抓包模块将僵尸恶意代码产生的报文时序化后,输出至组流模块; 步骤二:组流模块对输入报文按协议、源端口、目的端口、源IP和目的IP组流,得到流记 录集合,每条流记录至少包含该流的流开始时间、流结束时间、报文总数及字节总数,流记 录集合输出至流序列拼装模块; 步骤三:流序列拼装模块将流记录集合中的每条流记录拼装成流序列,输出至流序列 特征提取模块; 步骤四:流序列特征提取模块提取每个流序列的平均流时间间隔、平均流持续时间和 平均流字节数; 步骤五:流序列特征提取模块对流序列进行01序列化,使用循环自相关方法计算01序 列的最显著频率,并计算01序列的能量谱密度函数的最显著频率; 步骤六:流序列特征提取模块使用X-means聚类算法对平均流时间间隔、平均流持续时 间、平均流字节数、01序列的最显著频率和能量谱密度函数的最显著频率这五个流序列特 征分别聚类,并计算每个类别的均值、标准差和聚类质量; 步骤七:循环执行步骤一到步骤六,流序列特征提取模块输出各个僵尸恶意代码的流 量指纹,包含平均流时间间隔、平均流持续时间、平均流字节数、01序列的最显著频率、能量 谱密度函数的最显著频率这五个流序列特征的类别均值、类别标准差、聚类质量以及特征 匹配个数阈值和特征相似度得分阈值,使用预设步长自动调整特征匹配个数阈值和特征相 似度得分阈值,使总的误报率和漏报率在调整范围内达到最小值; 步骤八:抓包模块接收待分析报文做为输入,时序化后输出至协议识别模块; 步骤九:协议识别模块将待分析报文输出至组流模块组流,按照步骤二到步骤五处理 后,将生成的待分析流序列特征输入至特征匹配模块; 步骤十:特征匹配模块比对待分析流序列特征与"流量指纹"库,若特征匹配个数超过 特征匹配个数阈值,且特征相似度得分超过特征相似度得分阈值,则将待分析流序列处理 为该僵尸网络流序列,若符合多条指纹,则将特征相似度得分最大的流序列处理为该僵尸 网络流序列,记录并产生告警。2. 如权利要求1所述的一种电力二次系统僵尸网络的检测方法,其特征在于所述步骤 一的详细内容是:收集已知僵尸恶意代码样本,在实验环境中逐个部署恶意代码样本,实验 环境模拟电力二次系统网络结构,提取特征时,每次部署一种,任由其运行和传播,经过足 够长时间后,记录网络中所有报文,并进行时序化后,输出至组流模块。3. 如权利要求1所述的一种电力二次系统僵尸网络的检测方法,其特征在于:所述步骤 三中,将流记录拼装成流序列的方法是:将流记录按照协议、源IP、目的IP及目的端口拼装 成流序列,协议、源IP、目的IP及目的端口相同的流记录按时间顺序排列成一条流序列。4. 如权利要求1所述的一种电力二次系统僵尸网络的检测方法,其特征在于:所述步骤 五中,对流序列进行01序列化的过程是:指用一个较小的时间间隔t分割一个流序列,设流 序列总持续时间为T,T=Nt,N为正整数,在一个t内,若有流开始,则置为1,否则置0,得到一 个长度为N的01序列。5. 如权利要求1所述的一种电力二次系统僵尸网络的检测方法,其特征在于:所述步骤 九中,在流序列特征检测之前,先用协议识别模块进行协议白名单的检测,按照协议结构解 析输入报文,与预定义白名单中的协议比较,若不属于白名单,则处理为属于异常报文,记 录并产生告警,若属于白名单,则将待分析报文输出至组流模块组流。
【文档编号】H04L29/06GK105978897SQ201610488613
【公开日】2016年9月28日
【申请日】2016年6月28日
【发明人】张阳, 胡绍谦, 汤震宇
【申请人】南京南瑞继保电气有限公司, 南京南瑞继保工程技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1