1.一种面向未知工控协议的模糊测试系统,包括智能体、消息发送模块、工控网络系统、工控网络监控模块、解释器,其特征在于:所述智能体,用于利用基于分层强化学习的HRLFuzz模型,通过执行动作生成变异测试样例;用于接收工控网络系统、工控网络监控模块的回报、奖励,并结合从测试样例导出的新状态,选择下一动作,分层强化学习生成变异测试样例,直至奖励最大化;所述智能体包括头域变异模块、内容变异模块和序列变异模块,分别利用不同变异策略对消息变异;所述头域变异模块包括length、marker、version以及command四种类型变异策略;所述内容变异模块的变异策略包括利用位翻转策略发现新的路径;所述序列变异模块的变异策略是将当前选择的消息随机插入到正确消息序列的位置,以改变状态转移的方向;所述消息发送模块,用于将测试样例发送给工控网络系统;所述消息发送模块提取特定于协议的命令,并以每行一条消息的格式存储为文本文件,从本地pcap文件和文本文件读取数据并将其发送到工控网络服务器;所述工控网络系统,用于通过工控网络服务器对测试用例进行处理,得到回报和消息响应;所述解释器,用于将回报翻译成HRLFuzz框架可以访问的消息实体和消息状态序列后发送至智能体;所述工控网络监控模块,用于通过奖励函数得到奖励后发送至智能体,并对消息响应进行异常监控,在发现异常时,发出警报。
2.根据权利要求1所述的一种面向未知工控协议的模糊测试系统,其特征在于:所述工控网络系统,通过工业控制服务器接收测试样例并给出相应的响应,响应消息与目标进程的迹线一起返回给工控网络监控模块,用于后续奖励函数的分析以及智能体Q值更新。
3.根据权利要求1所述的一种面向未知工控协议的模糊测试系统,其特征在于:所述工控网络监控模块,对消息响应进行超时连接、超时返回和异常消息三种异常监控。
4.根据权利要求1-3任意一项所述的一种面向未知工控协议的模糊测试系统的一种面向未知工控协议的模糊测试方法,其特征在于:所述方法包括以下步骤:步骤1:在模糊测试过程中,智能体利用基于分层强化学习的HRLFuzz模型,通过执行动作生成变异测试样例;步骤2:消息发送模块将测试样例发送给工控网络系统;步骤3:工控网络系统的工控网络服务器对测试用例进行处理,得到回报和消息响应;步骤4:消息响应发送至工控网络监控模块,回报反馈至解释器;步骤5:解释器将回报翻译成HRLFuzz框架可以访问的消息实体和消息状态序列后发送至智能体;步骤6:工控网络监控模块通过奖励函数得到奖励后发送至智能体,并对消息响应进行异常监控,在发现异常时,发出警报;步骤7:智能体接收回报和奖励,并结合从测试样例导出的新状态,选择下一动作,返回步骤1,直至奖励最大化。