基于高阶属性文法的电网智能终端协议漏洞检测方法与流程

文档序号:36431025发布日期:2023-12-21 05:50阅读:54来源:国知局
基于高阶属性文法的电网智能终端协议漏洞检测方法与流程

本发明涉及信息安全测试,尤其涉及一种基于高阶属性文法的电网智能终端协议漏洞检测方法。


背景技术:

1、现有测试工控协议安全与可靠性一般方法是利用抓包变异,回放与被测设备交互的报文来进行测试,但是对于iec61850等电网智能终端协议,该方法受限于协议模型的复杂性,回放的冗余报文过多,难以与设备进行实质性交互,同时回放的畸形报文导致被测设备瘫痪后,由于被测设备无法响应,往往会自动跳过后续畸形报文测试,因此无法开展深层次的测试。


技术实现思路

1、有鉴于此,针对现有技术存在的缺陷和不足,本发明的目的在于提供一种基于高阶属性文法的电网智能终端协议漏洞检测方法,提出基于高阶属性文法设计终端协议分析树,通过对上下文语义的关联分析和节点变异,并根据终端报文交互响应情况,实现对协议漏洞的深度挖掘,有效克服了传统不考虑语义的漏洞挖掘技术协议漏洞覆盖率和漏洞挖掘效率低的问题。

2、其具体包括以下技术内容:

3、一种基于高阶属性文法的电网智能终端协议漏洞检测方法,其特征在于,采用基于高阶属性文法设计终端协议分析树,通过对上下文语义的关联分析和节点变异,并根据终端报文交互响应情况,实现对协议漏洞的深度挖掘。

4、进一步地,采用模糊测试进行电力系统通信协议的漏洞挖掘;通过与被测对象之间的通信连接,向被测对象应用发送变异或包含错误的模糊报文,并监视被测对象的响应报文以发现错误;如果设备出现包括通信中断、显示出错、宕机的异常情况,则说明设备对异常报文的抵御能力较差。

5、进一步地,采用的测试模型包括:

6、1)用于测试的间隔层智能电子设备;

7、2)用于对智能电子设备进行日常运维的机器;

8、3)用于捕获数据报文的流量采集装置;

9、4)用于测试设备iec61850通信模块健壮性的测试系统;

10、5)用于实现以上设备互通的站控层交换机;

11、测试的流程为:

12、1)运维机器通过iec61850协议选择某个设备执行正常的运维操作,产生iec61850的数据报文;

13、2)由于所有数据报文都要通过交换机进行转发,流量采集机器从交换机捕获运维机器与智能电子设备之间通信的数据报文;

14、3)对采集到的报文进行预处理,除去非iec61850协议的冗余数据,形成测试报文样例,导入健壮性测试系统;

15、4)解析测试样例,对正常的数据报文中的某个或者某几个字段进行变异,选择某个被测设备,并向该设备发送变异之后的异常报文;整个测试过程中,对于每个正常报文,系统产生并向设备发送多个不同的异常报文,同时记录所发送报文以及设备状态的实时信息;

16、5)测试结束之后,系统根据记录的信息,提取设备出现异常时发送的异常报文,统计设备异常时间,发送测试报文数目的信息,根据报告模板生成测试报告;

17、6)根据测试报告中的异常报文,对问题进行排查,确认设备是否出现异常,验证测试结果的合理性,完善测试报告。

18、进一步地,采用的漏洞检测系统包括:

19、1)测试样例处理模块:获取测试样例报文并去除冗余信息,使用协议逆向分析技术,对样本文件进行分析,依据文法模型识别样本数据并构建文法分析树;

20、2)状态协商模块:判断协议类型,做好报文发送前准备工作;获取xml格式的配置文件,该文件中包括系统执行过程中需要使用的数据;

21、3)测试样例生成模块:结合异常报文的历史信息,采用基于高阶属性文法驱动的模糊测试技术,生成测试样例报文;

22、4)报文发送模块:与被测设备建立tcp连接,向被测设备发送异常报文开展模糊测试,通过判断设备的状态,检测模糊测试的效果,如果设备通信中断,则说明发现了协议的漏洞;

23、5)报告生成模块:从实时数据存储单元中读取测试产生的结果信息,根据预定义的html格式的报告模板,输出测试报告,报告中主要列举出设备信息和导致设备异常的异常报文;

24、6)核心调度器:协调上述各模块协同工作,调用各个模块的接口,在各个模块之间共享数据。

25、进一步地,所述测试样例处理模块的工作过程为:首先,将安装报文捕获工具的机器与被测协议进行连接,正常使用电网智能终端协议与设备进行通信时会产生交互报文,使用报文捕获工具进行数据包的抓取并保存,最后利用协议逆向技术提取电力协议文法格式;

26、获取报文后,对于iec61850报文,需要在测试过程中自适应被测设备的逻辑名称,处理过程如下;

27、1)完整解析测试报文;通过协议逆向对测试报文进行解析,分析提取设备交互报文,识别出报文的完整内容;

28、2)对测试报文样进行去冗余处理;去掉报文ip头信息,以字节数组的形式加载到内存中;

29、3)获取设备信息,重新封装测试报文;在处理报文时需根据不同的承载层信息,为其添加正确的承载层头部,以保证异常攻击报文发送后进入被测对象的内部处理,而不是被底层网络处理时直接丢弃;利用iec61850功能代码获取并解析被测设备的逻辑设备名;替换逻辑设备名,使用asn.1编码器对解析后的报文进行重新封装,实现样例报文自适应被测设备,确保在报文回放过程中能和被测设备建立正确的通信。

30、进一步地,所述状态协商模块用于异常报文发送前进行状态协商,即每个异常报文都是在协议状态机已经交互到最合适的状态下才向设备发送,针对不同的测试协议,测试工具需要实现基本的协议栈功能,包括各个协议的正常报文构造、协议状态机的维护;为支持更多协议的扩展,模块采用面向对象类的体系结构方式实现,基类提供公用的虚接口方法,各个协议派生类则通过重写相应的接口函数获得对某个具体协议的支持;

31、状态协商完毕后,获取xml格式的配置文件,该文件中包括了系统执行过程中需要使用的数据。

32、进一步地,所述测试样例生成模块依据文法模型识别样本数据并构建文法分析树,通过遍历文法分析树选择未被测试的节点进行变异生成测试用例,发送给被测设备进行测试;基于高阶属性文法驱动,依据文法模型识别样本数据并构建文法分析树,通过遍历文法分析树选择未被测试的节点进行变异,变异流程的执行分为3个循环:最外层循环遍历样本中的多个样例报文,中间层循环采用深度优先算法遍历构建的文法分析树,选择未被测试的节点进行变异,最内层循环遍历测试字段产生的畸形报文,并针对每个测试报文逐一开展测试。

33、进一步地,所述报文发送模块用于模拟正常的通信过程,为异常报文的测试提供必要的正常环境,从而使异常报文能够达到检测设备异常及漏洞的效果;报文回放流程如下:

34、1)在准备阶段,读取测试报文样例文件,对样例报文进行设备名替换并解析重构报文,之后对模糊测试方式产生的异常报文进行回放,观察设备处理异常报文的能力,以及设备是否工作正常;

35、2)设备出现异常之后,暂停报文的发送工作直到设备恢复正常;

36、3)系统将测试过程中发生的异常现象以及原始报文、畸形报文在数据库中进行记录与保存,以方便回放异常情况,分析异常发生的整个过程,为漏洞修复完善提供直观的客观的现实的真实的数据资料;

37、4)对异常进行验证;通过原始报文和畸形报文所改变还原得到畸形报文,再向设备发送该报文,并检测设备的通信状态,验证该报文的有效性;异常验证的目的在于排除误报;

38、使用函数调用方法检测设备通信异常状态;利用socket技术结合select模型进行报文的发送和异常的判断,当发送报文的时候把套接字调节成阻塞模式,确保函数返回时报文发送完毕,确保流程的正确性完整性,当需要判断异常状态的时候将套接字动态调节成非阻塞式,利用超时返回的属性确保程序能够正确的返回,继续后续的任务,而不会由于网络异常而使程序长时间处于未响应状态;为避免tcp连接正常,但设备内的通信服务不再响应任何用户命令的情况,添加协议正常与否的检测。

39、进一步地,所述报告生成模块用于从实时数据存储单元中读取测试产生的结果信息,根据预定义的html格式的报告模板,输出测试报告,并列举出设备信息和导致设备异常的异常报文,对设备安全状况及设备漏洞具体情况进行分析,为评估设备安全性、设备可靠性改善提供必要的依据;根据模板生成单个测试步骤报告,并最终合成完整报告;并提供可视化界面,生成漏洞分布情况图表,显示每层协议的漏洞数量统计、漏洞字段取值分布情况、每个漏洞的具体报文情况以及通信报文情况。

40、相比于现有技术,本发明及其优选方案构建了电网智能终端协议漏洞检测框架,提出电网智能终端协议基准报文变异回放安全测试技术;动态记忆与回放测试过程,提高了电力通信协议测试深度与未知漏洞识别能力,可快速定位与问题重现。具有自动化程度高、协议针对性强的特点,在此基础上进一步设计了电力协议健壮性测试软件,为面向电力系统通信协议的安全测试和漏洞挖掘提供有力的技术支撑。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1