一种工控漏洞挖掘方法及系统与流程

文档序号:16887488发布日期:2019-02-15 22:46阅读:410来源:国知局
一种工控漏洞挖掘方法及系统与流程

本发明涉及信息安全领域,具体地说是指一种工控漏洞挖掘方法及系统。



背景技术:

工业控制系统在工业信息化中有着举足轻重的位置,其广泛应用于工业、电力、能源、交通运输、水利、公用事业和生产企业,被控对象的范围包括生产过程、机械装置、交通工具、实验装置、仪器仪表、家庭生活设施、家用电器等。它通过对工作过程进行自动化监测、指挥、控制和调节,保证工业设施的正常运转,是国家关键基础设施和信息系统的重要组成部分。

同时,正因为这些关键基础设施在国计民生中的重要性,也往往成为国际敌对势力、敌对组织、黑客的攻击目标。ics-cert公布数据中,2017年全年的工控安全事件达305件,其中多集中国家关键基础设施行业,工控安全事件呈快速增长的趋势,通过对这些众多的工控安全事件深入分析可以看到,其有一个核心的关键环节就是利用了工业控制系统的“漏洞”,进而攻陷了整个工业控制系统。而工业控制系统公开的漏洞也是呈现出快速增长的趋势,且行业分布广泛。

综上所述,目前亟需研发一款针对工业控制设备和工业应用软件的漏洞挖掘设备,充分挖掘在运和上线前的未知工控漏洞,并提出相应的应对措施,可以在很大程度上减少针对工业控制系统的网络攻击。



技术实现要素:

本发明的目的在于提供一种工控漏洞挖掘方法及系统,通过对工控协议的深度解析,能够判断目标设备的实现与标准协议预期实现的一致性,能够从更深层次了解该协议的工作方式,更有可能从业务层面达到实现对被测设备安全漏洞的挖掘。

本发明的技术方案:

一种工控漏洞挖掘方法,包括以下具体步骤,

s1.将漏洞挖掘系统接入到工控设备上,采集工控设备与工业应用软件的工控协议数据;

s2.通过漏洞挖掘系统的web界面进行任务配置填写以及任务队列排列并将其存储到任务队列模块中以及向调动引擎发送新任务信号;

s3.漏洞挖掘系统的调动引擎根据web界面发送的新任务信号获取任务队列模块中的任务信息并启动客户端;

s4.客户端根据任务信息启动插件,插件运行依次完成数据装载、会话连接以及节点遍历;

s5.漏洞挖掘系统的数据分析模块接收插件运行产生的过程数据记录,并进行数据处理;

s6.数据分析模块进行数据处理并向客户端发送任务完成标识;

s7.客户端接收到任务完成标识后完成扫描并退出,web界面完成漏洞扫描并从数据分析模块获取扫描结果数据并进行扫描结果数据展示。

所述步骤s3中客户端启动后将任务概要信息发送到状态记录模块,所述步骤s4中插件将节点录入信息、会话录入信息以及过程录入信息发送到状态记录模块,所述客户端根据插件节点遍历完成信息得到任务进度更新信息并将其发送到状态记录模块,所述web界面从状态记录模块获取任务进度信息。

所述步骤s7中客户端将任务完成信息发送到状态记录模块中,web界面从状态记录模块中获取到任务完成信息结束漏洞扫描操作。

所述步骤s4中插件运行时web界面进行节点信息更新、会话信息展示以及运行队列展示并将节点信息更新、会话信息展示以及运行队列展示发送给状态记录模块。

一种工控漏洞挖掘系统,包括协议框架系统、web界面模块、客户端模块、插件运行模块、任务存储模块、数据分析模块以及状态记录模块,

所述web界面模块与协议框架系统相连接,用以提供原始数据输入,漏洞扫描任务信息配置、进行运行过程监控,任务启停;

所述客户端模块与协议框架系统相连接,用以根据web界面模块的任务启停信息实现驱动转换,插件运行,调用数据分析模块;

所述插件运行模块与协议框架系统相连接,用以根据客户端接收的任务信息实现节点初始化、字段填充、会话建立、节点变异、数据发送与接收、状态记录、日志记录以及异常记录,完成漏洞扫描,并将所有的漏洞扫描信息传送到状态记录模块;

所述任务存储模块与协议框架系统相连接,用以存储web界面模块配置的任务信息;

所述数据分析模块与协议框架系统相连接,用以对客户端模块、插件运行模块以及任务存储模块产生的数据进行分析并将分析结构回传给web界面模块;

所述状态记录模块与协议框架系统相连接,用以记录web界面模块、客户端模块以及插件运行模块产生的状态信息。

所述协议框架系统还连接调度引擎模块,用以监听获取新任务信号以及启动客户端模块。

所述web界面模块包括用户界面模块、配置文件模块、过程监视模块以及crash还原模块,所述web界面模块通过用户界面模块对主机、端口以及协议进行信息配置,所述配置文件模块进行漏洞扫描任务名称输入、原始语言输入以及配置块输入并生成.xml文件进行保存,所述过程监视模块用以对路径包以及实时进程进行监视。

所述协议框架系统采用模糊测试框架协议进行构建。

所述调度引擎模块入口处接收信号自定义函数,负责接收,web界面模块传来的新任务信号,去任务存储模块的任务队列读取新任务id或者60s轮询任务队列。

与现有技术相比,本发明的有益效果是:支持多款串口总线协议;支持多款主流工业以太网协议;丰富细分的协议测试用例,协议格式细分用例、功能细分用例、应用数据细分用例等;完善的模糊测试框架支撑,配合外部dtu供电电源可支持自动化无人值守完成全部测试用例执行检测;dtu资产全局管理,快速端口扫描,指纹识别,类别划分,可视化分类展示;过程化记录,详细至会话及会话内容,精确定位问题位置;进度可视化,总体进度,单用例执行进度,以及实时漏洞展示;监听多样化,远程链路监听,网络监听,端口链接监听、tcpdump备份,多维度获取异常情况;拒绝服务异常时对dtu响应处理,单次响应时间、响应测试可配置,无响应断电重启配置;发包速率,监控发包速率可配置,更加适应多样化被测环境;协议分析参考国内、国际、行业内部规约标准进行数据分析,有法可依,有理有据;结果支持拒绝服务漏洞及协议实现不合规风险分析;漏洞展示详情内容丰富,触发用例名、会话id、风险类型、发包内容、收包内容、风险原因,问题风险一目了然;支持漏洞即时回放,快速验证、精确定位;支持漏洞收藏,实现客户自主产权,并对同批次设备快速漏洞验证,无须再次长时间扫描;支持前设备指纹特征提取,识别设备类型,进行归类整理;支持漏洞poc扫描插件生成,对线上产品快速扫描普查,无须漏洞触发,无损高效;支持在线报表查看及离线报表导出,内容丰富细致,报表模板内容标题可定义;支持报表自动生成邮件上传。

附图说明

图1为本发明整体结构示意图;

图2为本发明方法的时序图;

图3为本发明实施例目标任务配置图;

图4为本发明实施例协议配置图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1和图2,本发明提供一种技术方案:

如图2所示,一种工控漏洞挖掘方法,包括以下具体步骤,

s1.将漏洞挖掘系统接入到工控设备上,采集工控设备与工业应用软件的工控协议数据;

s2.通过漏洞挖掘系统的web界面进行任务配置填写以及任务队列排列并将其存储到任务队列模块中以及向调动引擎发送新任务信号;

s3.漏洞挖掘系统的调动引擎根据web界面发送的新任务信号获取任务队列模块中的任务信息并启动客户端;

s4.客户端根据任务信息启动插件,插件运行依次完成数据装载、会话连接以及节点遍历;

s5.漏洞挖掘系统的数据分析模块接收插件运行产生的过程数据记录,并进行数据处理;

s6.数据分析模块进行数据处理并向客户端发送任务完成标识;

s7.客户端接收到任务完成标识后完成扫描并退出,web界面完成漏洞扫描并从数据分析模块获取扫描结果数据并进行扫描结果数据展示。

所述步骤s3中客户端启动后将任务概要信息发送到状态记录模块,所述步骤s4中插件将节点录入信息、会话录入信息以及过程录入信息发送到状态记录模块,所述客户端根据插件节点遍历完成信息得到任务进度更新信息并将其发送到状态记录模块,所述web界面从状态记录模块获取任务进度信息。

所述步骤s7中客户端将任务完成信息发送到状态记录模块中,web界面从状态记录模块中获取到任务完成信息结束漏洞扫描操作。

所述步骤s4中插件运行时web界面进行节点信息更新、会话信息展示以及运行队列展示并将节点信息更新、会话信息展示以及运行队列展示发送给状态记录模块。

如图1所示,一种工控漏洞挖掘系统,包括协议框架系统、web界面模块、客户端模块、插件运行模块、任务存储模块、数据分析模块以及状态记录模块,

所述web界面模块与协议框架系统相连接,用以提供原始数据输入,漏洞扫描任务信息配置、进行运行过程监控,任务启停;

所述客户端模块与协议框架系统相连接,用以根据web界面模块的任务启停信息实现驱动转换,插件运行,调用数据分析模块;

所述插件运行模块与协议框架系统相连接,用以根据客户端接收的任务信息实现节点初始化、字段填充、会话建立、节点变异、数据发送与接收、状态记录、日志记录以及异常记录,完成漏洞扫描,并将所有的漏洞扫描信息传送到状态记录模块;

所述任务存储模块与协议框架系统相连接,用以存储web界面模块配置的任务信息;

所述数据分析模块与协议框架系统相连接,用以对客户端模块、插件运行模块以及任务存储模块产生的数据进行分析并将分析结构回传给web界面模块;

所述状态记录模块与协议框架系统相连接,用以记录web界面模块、客户端模块以及插件运行模块产生的状态信息。

所述协议框架系统还连接调度引擎模块,用以监听获取新任务信号以及启动客户端模块。

所述web界面模块包括用户界面模块、配置文件模块、过程监视模块以及crash还原模块,所述web界面模块通过用户界面模块对主机、端口以及协议进行信息配置,所述配置文件模块进行漏洞扫描任务名称输入、原始语言输入以及配置块输入并生成.xml文件进行保存,所述过程监视模块用以对路径包以及实时进程进行监视。

所述协议框架系统采用模糊测试框架协议进行构建。

所述调度引擎模块入口处接收信号自定义函数,负责接收,web界面模块传来的新任务信号,去任务存储模块的任务队列读取新任务id或者60s轮询任务队列。

实施例:

目标任务配置和协议配置分别见图3和图4,

web界面任务配置成功后,后台以xml结构保存信息,具体如下:

本系统以任务格式进行,为了向产品方向兼容靠拢,实现模块化web界面只负责生成任务配置,任务调度执行由调度中心执行

调度中心作为deamon进程后台运行,接收web界面的新任务到来信号,查询任务队列新任务。

新任务达到后,调度启动客户端驱动程序

将xml转换为fuzz插件

转换原则:

从xml从上往下逐行解析

root为根节点

plugins为一个任务单元

plugin为当前任务信息

从plugin的属性获取目标信息

requests为协议单元

request为协议的单一请求,可将多个交互式请求依次填入

s_initialize(“name”)

从上往下,block转化为s_block(“name”)

非block按照原语类型逐行解析

sessions为会话单元集合

session为某一个会话,需要指明会话路径,即request请求的路径(始末)

sess=session(“name”)

monitor为监视数据参数,默认是网络监听

根据上述规则,逐行解析生成最终的py脚本

fuzz脚本生成,按照fuzz框架详细运行

运行过程中实时记录变异总数、变异游标、fuzz路径

详细运行原理参考,sulley框架设计

调用数据处理模块,进行中间结果数据分析

详细参考数据处理模块文档

提供接口,使fuzz插件实时存储中间数据

状态使用statd引擎采用

{taskid:

{key:values}

}

数据结构存储

全任务共享

完成工控漏洞挖掘。

本发明的一种工控漏洞挖掘方法及系统,支持多款串口总线协议;支持多款主流工业以太网协议;丰富细分的协议测试用例,协议格式细分用例、功能细分用例、应用数据细分用例等;完善的模糊测试框架支撑,配合外部dtu供电电源可支持自动化无人值守完成全部测试用例执行检测;dtu资产全局管理,快速端口扫描,指纹识别,类别划分,可视化分类展示;过程化记录,详细至会话及会话内容,精确定位问题位置;进度可视化,总体进度,单用例执行进度,以及实时漏洞展示;监听多样化,远程链路监听,网络监听,端口链接监听、tcpdump备份,多维度获取异常情况;拒绝服务异常时对dtu响应处理,单次响应时间、响应测试可配置,无响应断电重启配置;发包速率,监控发包速率可配置,更加适应多样化被测环境;协议分析参考国内、国际、行业内部规约标准进行数据分析,有法可依,有理有据;结果支持拒绝服务漏洞及协议实现不合规风险分析;漏洞展示详情内容丰富,触发用例名、会话id、风险类型、发包内容、收包内容、风险原因,问题风险一目了然;支持漏洞即时回放,快速验证、精确定位;支持漏洞收藏,实现客户自主产权,并对同批次设备快速漏洞验证,无须再次长时间扫描;支持前设备指纹特征提取,识别设备类型,进行归类整理;支持漏洞poc扫描插件生成,对线上产品快速扫描普查,无须漏洞触发,无损高效;支持在线报表查看及离线报表导出,内容丰富细致,报表模板内容标题可定义;支持报表自动生成邮件上传。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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