收藏 分销(赏)

基于主动交互式学习的工控协议逆向分析.pdf

上传人:自信****多点 文档编号:642366 上传时间:2024-01-22 格式:PDF 页数:12 大小:1.66MB
下载 相关 举报
基于主动交互式学习的工控协议逆向分析.pdf_第1页
第1页 / 共12页
基于主动交互式学习的工控协议逆向分析.pdf_第2页
第2页 / 共12页
基于主动交互式学习的工控协议逆向分析.pdf_第3页
第3页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、收稿日期:网络出版时间:基金项目:国家重点研发计划(Y F B );国家自然科学基金();江苏省重点研发计划(B E );未来网络科研基金(F N S R F P Z D )作者简介:付安民(),男,教授,E m a i l:f u a mn j u s t e d u c n毛安(),男,南京理工大学硕士研究生,E m a i l:n j u s t e d u c n黄涛(),男,南京理工大学博士研究生,E m a i l:n u i s t h u a n g t a o c o m胡超(),男,副教授,E m a i l:h u c h a o a e u e d u c n刘莹(),

2、女,讲师,E m a i l:l i u y i n g_s e v e n c o m张晓明(),男,高级工程师,E m a i l:z h a n g x i a o m i n g c e r t o r g c n王占丰(),男,博士后,E m a i l:h e h e n g wh o t m a i l c o m网络出版地址:h t t p s:/k n s c n k i n e t/k c m s/d e t a i l/T N h t m ld o i 敭 j 敭i s s n 敭 敭 敭 基于主动交互式学习的工控协议逆向分析付 安 民,毛安,黄涛,胡超,刘莹,张 晓 明

3、,王 占 丰(南京理工大学 计算机科学与工程学院,江苏 南京 ;中国人民解放军陆军工程大学 指挥控制工程学院,江苏 南京 ;国家计算机网络与信息安全管理中心,北京 ;南京莱克贝尔信息技术有限公司,江苏 南京 )摘要:作为工业控制系统信息交互的重要基础,工控协议在设计和实现上的规范与完备直接关系到整个工业控制系统的安全运行.针对未知工业控制协议逆向,基于流量样本的协议逆向方法因其无需分析系统固件等优点而受到越来越多的关注.但是该类方法也存在过于依赖样本多样性等缺点,特别是样本多样性不足容易导致字段划分错误、状态识别错误、分析只得到协议规范子集等问题.为此提出一种基于主动交互式学习的工控协议逆向分

4、析方法,在流量样本逆向结果的基础上,依据初始逆向结果构建数据包集合,与真实设备进行交互学习,探测未知协议字段与状态机.与工控模拟软件的交互学习仿真实验结果显示,该方法能有效地验证字段语义、扩充字段取值、扩充异常样本类型,并解决因样本多样性不足而导致的伪长静态字段问题,同时还能有效探测新的状态和状态变迁,极大提高了未知协议逆向的准确性.关键词:工控协议;协议逆向;交互式学习;协议状态机中图分类号:T P 文献标识码:A文章编号:()I n d u s t r i a l c o n t r o l p r o t o c o l r e v e r s ea n a l y s i sb a s

5、 e do na c t i v e i n t e r a c t i v e l e a r n i n gF UA n m i n MA OA n HU ANGT a o HUC h a o L I UY i n g ZHANGX i a o m i n g WANGZ h a n f e n g 敭 S c h o o l o fC o m p u t e rS c i e n c ea n dE n g i n e e r i n g N a n j i n gU n i v e r s i t yo fS c i e n c ea n dT e c h n o l o g y N

6、a n j i n g C h i n a 敭 C o l l e g eo fC o mm a n dC o n t r o lE n g i n e e r i n g A r m yE n g i n e e r i n gU n i v e r s i t yo fP L A N a n j i n g C h i n a 敭 N a t i o n a lC o m p u t e rN e t w o r ka n dI n f o r m a t i o nS e c u r i t yM a n a g e m e n tC e n t e r B e i j i n g C

7、h i n a 敭 N a n j i n gL e x b e l l I n f o r m a t i o nT e c h n o l o g yC o m p a n yL i m i t e d N a n j i n g C h i n a A b s t r a c t A sa n i m p o r t a n t b a s i s f o r i n f o r m a t i o ne x c h a n g e i n i n d u s t r i a l c o n t r o l s y s t e m s t h e s t a n d a r d i z

8、a t i o na n dc o m p l e t e n e s so f t h ed e s i g na n d i m p l e m e n t a t i o no f i n d u s t r i a l c o n t r o l p r o t o c o l s i n v o l v e t h es e c u r i t yo f t h ee n t i r ei n d u s t r i a lc o n t r o ls y s t e m敭 F o rt h er e v e r s eo fu n k n o w ni n d u s t r i

9、a lc o n t r o lp r o t o c o l s a l t h o u g ht h ep r o t o c o l r e v e r s em e t h o db a s e do nt r a f f i cs a m p l e sh a sa t t r a c t e dm o r ea n dm o r ea t t e n t i o nb e c a u s e i td o e sn o tn e e dt oa n a l y z e t h es y s t e mf i r mw a r ea n do t h e ra d v a n t a

10、 g e s t h i s t y p eo fm e t h o da l s oh a s t h ed i s a d v a n t a g eo f 年月第 卷第期西安电子科技大学学报J OURNA LO FX I D I ANUN I V ER S I TYA u g V o l N o h t t p:/j o u r n a l x i d i a n e d u c n/x d x br e l y i n gt o om u c ho ns a m p l ed i v e r s i t y 敭 E s p e c i a l l y i n s u f f i c i

11、 e n ts a m p l ed i v e r s i t yc a ne a s i l yl e a dt op r o b l e m ss u c ha s f i e l dd i v i s i o ne r r o r s s t a t ei d e n t i f i c a t i o ne r r o r s a n do n l yas u b s e to fp r o t o c o ls p e c i f i c a t i o n sc a nb eo b t a i n e df r o ma n a l y s i s 敭 F o rt h i sr

12、 e a s o n t h i sp a p e rp r o p o s e sa ni n d u s t r i a lc o n t r o lp r o t o c o lr e v e r s ea n a l y s i sm e t h o db a s e do na c t i v ei n t e r a c t i v el e a r n i n g 敭 O nt h eb a s i so ft h er e v e r s er e s u l t so ft r a f f i cs a m p l e s ad a t ap a c k e t s e t

13、i sc o n s t r u c t e da c c o r d i n gt ot h e i n i t i a l r e v e r s er e s u l t s a n di n t e r a c t i v e l e a r n i n gi sc a r r i e do u tw i t hr e a ld e v i c e st od e t e c tu n k n o w np r o t o c o lf i e l d sa n ds t a t e m a c h i n e s 敭 S i m u l a t i o ne x p e r i m

14、e n t a lr e s u l t so fi n t e r a c t i v e l e a r n i n gw i t hi n d u s t r i a l c o n t r o l s i m u l a t i o ns o f t w a r es h o wt h a t t h i sm e t h o dc a ne f f e c t i v e l yv e r i f yf i e l ds e m a n t i c s e x p a n df i e l dv a l u e s e x p a n da b n o r m a ls a m p

15、l et y p e s a n ds o l v et h ep r o b l e mo fp s e u d o l o n gs t a t i c f i e l d sc a u s e db yi n s u f f i c i e n ts a m p l ed i v e r s i t ya n dt h a t i tc a nd e t e c tn e ws t a t e sa n ds t a t et r a n s i t i o n s g r e a t l y i m p r o v i n gt h ea c c u r a c yo fu n k n

16、 o w np r o t o c o l r e v e r s e 敭K e yW o r d s i n d u s t r i a l c o n t r o lp r o t o c o l p r o t o c o l r e v e r s e i n t e r a c t i v e l e a r n i n g p r o t o c o l s t a t em a c h i n e 引言随着工业互联网的发展,越来越多的工业控制(简称工控)系统开始连接到网络,以实现对工控设备的远程操控.然而,基于商业性和安全性的考虑,部分工控设备厂商选择不公开工控协议文档,导致目前

17、网络中存在大量私有、非标准的工控协议,为工控系统的网络安全行为管理、模糊测试、入侵检测等带来了巨大的挑战.未知工控协议逆向分析技术能够对未知工控协议的格式、语义和状态机等进行推断,进而提升工控系统的安全 .目前工控协议逆向方法主要包括基于程序执行的工控协议逆向方法和基于流量样本的工控协议逆向方法.前者虽然具有较高的准确性,但是非常依赖系统固件,通常难以实现,尤其针对一些大型的工控系统,几乎无法实现.而后者虽然准确性不及前者,但其仅通过工业协议流量样本就可以挖掘协议语法、语义和状态机等信息,非常易于实现,因而成为目前工业界主流的协议逆向方法.然而,基于流量样本的工控协议逆向方法通常存在该类方法固

18、有的局限性,即严重依赖于协议样本的多样性.特别是针对稳定性和可靠性相对较高的工控系统,捕获的工控协议流量样本往往会缺乏一些关键的字段取值、协议状态和状态变迁等信息,比如异常状态等,进而导致工控协议逆向分析结果与真实协议规范存在较大偏差,甚至只能得到协议规范的子集,无法提取完整的协议格式和状态机等信息.因此,如何针对原始流量样本中存在的信息量不足等问题,对工控协议逆向分析初始结果进行完善与优化,已经成为目前工业界与学术界关注的热点.为此,笔者提出了一种基于主动交互式学习的未知工控协议逆向分析方法(R e v e r s eA n a l y s i sm e t h o do fu n k n

19、o w nI n d u s t r i a l c o n t r o lP r o t o c o lb a s e do nA c t i v eI n t e r a c t i v eL e a r n i n g,R A I P A I L)在流量样本的逆向基础上,依据初始逆向结果构建字段探测和状态机探测数据包,与工控设备进行主动交互式通信,探测未知协议的字段与状态机,进而对工控协议格式、字段属性和状态机等分析结果进行深入挖掘与补充.论文的主要工作如下:()提出一种基于主动学习的工控协议逆向分析方法,为基于流量逆向方法的字段语义结果验证、字段取值范围进行扩充,并重点解决了传统基于流

20、量的协议逆向方法无法解决的伪静态长字段问题.()在流量样本字段分析静态分析结果的基础上,遵循协议逆向分析初始结果与工控设备进行主动交互式通信,以验证所推断的工控协议字段语义与取值范围的正确性.()根据协议逆向提取的状态机信息,组合多种顺序通信序列,通过与工控设备通信,实现对协议状态机的扩展分析,进而对工控协议格式、字段属性和状态机等分析结果进行深入挖掘与补充.()选取M o d b u s、I E C 、MQT T等主流工控协议对R A I P A I L的性能进行测试.实验结果表明,针对基于流量的工控协议逆向分析结果,R A I P A I L不仅可以有效验证字段语义的正确性,还能够进一步准

21、确探测字段的取值范围,并解决M o d b u s中存在的伪静态长字段问题.特别是,R A I P A I L还可以有效探测协议状态机中未被发现的新状态和状态转化序列等.第期付安民等:基于主动交互式学习的工控协议逆向分析h t t p:/j o u r n a l x i d i a n e d u c n/x d x b 相关工作协议逆向分析能够基于捕获的未知协议通信数据包或指令执行轨迹,对未知协议的格式、语义和状态机等进行推断.因此,它已经逐渐成为入侵检测、漏洞挖掘等安全分析技术的基础.协议逆向分析包括输入预处理、协议格式提取和协议状态机推断个阶段,其中,输入预处理分别以会话和报文为粒度对

22、输入样本进行分割,并剔除样本中可能出现的重传、乱序、分片等冗余和干扰信息;协议格式 提取主要包括字段识别、结构提取、语义与取值约束判断个步骤,通过识别每个报文对应的格式,并对报文所有格式进行合并,进而提取协议报文格式、字段属性等信息;基于提取的协议格式,协议状态机 推断主要对通信双方的报文交互次序进行分析,以推断通信过程中协议实体的状态以及相应的状态变迁.根据分析对象的不同,目前工控协议逆向分析技术可以分为两类:基于执行轨迹的协议逆向分析 和基于流量样本的协议逆向分析.基于执行轨迹的协议逆向分析技术,通过跟踪并分析目标工控协议程序执行期间函数堆栈、指令序列、数据、寄存器等信息的变化情况,完成工

23、控协议的字段划分和语义推断.目前针对工控协议的逆向分析技术主要借助污点分析思想实现,分为静态污点分析和动态污点分析,两者的区别为是否需要运行程序,基于静态污点分析的方法需要对程序源代码进行分析,如文献 将静态污点分析思想运用于静态二进制分析,提出一种基于静态二进制分析的工控协议分析方法.而基于动态污点分析的技术需要运行程序,通过调试、代码注入等方式对目标程序进行分析,如P o l y g l o t通过监视协议体对消息的处理过程以及各消息片段的使用方法,获得协议结构与字段语义.文献 根据“相同协议字段的字节在内存中通常具有相同传播轨迹”的原理,提出一种自动识别工控协议字段边界的方法.然而,由于

24、工控程序源代码通常较难获取,并且具有高稳定性和实时性要求的工控系统不利于反复调试.因此,基于执行轨迹的协议逆向分析技术通常都难以实现.基于流量样本的协议逆向分析技术 ,仅通过分析工控协议的流量数据包,就可以实现消息类型识别、协议格式提取与协议状态机推断等,进而提取工控协议的语法、语义和状态机信息.这类技术最早由B e d d o e在P I项目中 提出,该项目使用N e e d l e m a nWu n s c h序列比对算法进行同一簇内的流量数据比对,区分字段中的可变字段和不变字段值,提取公共部分,构建协议结果特征,但该方法只适用于结构简单的未知协议.之后的D i s c o v e r

25、e r 在P I基础上为完整协议格式提取提供算法和工具,主要包含标记和初始化、递归聚类、字段合并的个模块,进而实现自动挖掘协议格式.文献 提出一种基于语义的协议格式推断工具(N e t z o b),分为会话切分、噪音过滤、消息聚类、格式推断、合并、状态机重构等步骤,在聚类和字段划分阶段增加了语义的信息,使用基于语义的序列比对算法提取未知协议特征,它是目前较为完善的协议逆向工具,然而该方法比较依赖字段语义和聚类的准确度.文献 提出的基于概率性的协议逆向方法,将关键字识别问题表述为一个概率推理问题,深度挖掘关键字背后的各种约束关系,以概率量化约束关系的强弱,进而判断该字段是否为关键字字段.然而该

26、方法非常依赖真实的标记数据.在协议状态机推断阶段,文献 提出一种基于报文聚类的协议状态机推断工具,以报文格式相似性作为相似性度量标准,将会话序列进行聚类并标识结果,以获得数据流新的表示,最终实现协议状态机重构.然而该工具忽略部分场景存在协议格式相似但状态类型不同等情况.R e v e r X 和A u t o R e E n g i n e 都是基于协议关键字分析以重构有限状态机.R e v e r X通过泛化启发式构造图,通过传统的有限状态机(F i n i t eS t a t eM a c h i n e,F S M)最小化对其进行缩减;A u t o R e E n g i n e利用

27、A p r i o r i算法提取最频繁的字节串作为关键字段,并进一步构造F S M.但是A u t o R e E n g i n e模型通常包含大量状态,往往需要进一步化简.总之,当前基于流量的工控协议逆向技术主要集中于流量样本本身的特征分析和挖掘,但这类方法通常非常依赖协议样本的多样性.因此,如何在样本多样性不足的情况下,进一步完善协议逆向分析结果是未知工控协议逆向分析研究的难点.西安电子科技大学学报第 卷h t t p:/j o u r n a l x i d i a n e d u c n/x d x b R A I P A I L概述R A I P A I L能够在流量样本静态分析

28、结果的基础上,按照协议逆向分析初始结果与工控设备进行主动交互式通信,以验证所推断的工控协议字段语义与取值范围的正确性,并根据协议逆向提取的状态机信息,组合多种顺序通信序列,通过与工控设备通信,实现对协议状态机的扩展分析,进而对工控协议格式、字段属性和状态机等分析结果进行深入挖掘与补充.R A I P A I L的总体框架如图所示,该框架主要包括预处理、交互和验证个模块.图面向未知工控协议逆向分析的新型探测框架图 预处理模块针对初始协议逆向结果,提取工控协议的字段语义、字段取值和状态机序列等信息,这些信息将既作为交互模块中字段探测和状态机探测的输入数据,又作为验证模块的验证参照数据.交互模块交互

29、模块作为R A I P A I L方法的核心模块,包括字段探测和状态机探测两个功能.字段探测主要包括字段语义验证、字段取值范围探测和伪静态长字段划分.()字段语义验证.针对前期工控协议逆向分析结果中的字段语义,设计相应字段变异器,重组原有流量并发送给目标系统,结合相应反馈信息,对字段语义的正确性进行验证.()字段取值范围探测.针对前期工控协议逆向分析结果中的字段取值集合,通过对字段赋予不同取值,重组原有流量并与目标系统主动交互,以验证字段取值范围的正确性.()伪静态长字段划分.针对前期工控协议逆向分析结果中字段长度大于一定阈值的静态字段进行探测,通过伪静态长字段变异器,重组原有流量并与目标系统

30、主动交互,探测该字段是否可划分.状态机探测主要包含新状态与状态转化探测和状态依赖挖掘.()新状态与状态转化探测.针对前期工控协议逆向分析结果,获得报文格式集合,提取对应的流量样本,使用全排列算法构建交互流量序列集合,并与目标系统主动交互,获得交互流量集.()新状态依赖挖掘.针对包含不同状态功能码的报文流量进行组合排列,形成基于状态码的状态机探测序列,并与目标系统主动交互,获得通信合集.总之,该模块主要根据工控协议字段和状态机的探测结果,生成变异样本,与工控设备或工控模拟工具进行主动式交互,并收集交互报文集,该报文集也将作为验证模块的验证参照数据.需要提及的是,大部分的工控协议针对错误的验证报文

31、都会有其对应的反馈信息,少数健壮性不强的协议只对正确的报文才应答.第期付安民等:基于主动交互式学习的工控协议逆向分析h t t p:/j o u r n a l x i d i a n e d u c n/x d x b针对少数只对正确报文才反馈的协议,需要对变异样本进行人工修正后,再进行探测.验证模块对比初始逆向分析结果和交互报文集,对字段探测和状态机探测结果进行验证.需要说明的是,这些验证操作目前大都需要依赖人工分析完成.()字段验证.通过对比字段语义验证、字段取值范围探测、伪长静态长字段划分的交互流量集与初始流量样本的区别,获取字段语义验证、取值范围探测和伪静态长字段的分析结果.()状态

32、机验证.通过分析与目标系统交互的流量集合与初始逆向分析的状态机,进行状态机补充和状态依赖判断,从而进一步实现对协议状态机的扩展分析.总之,该模块根据初始流量集的会话信息,对比字段探测、状态机探测结果与初始报文结果,验证是否有新报文格式或状态转化结果,完成字段验证和状态机验证.主动交互式学习的协议逆向过程这里重点针对R A I P A I L的交互模块所涉及的关键技术和算法进行详细介绍,主要包括字段探测和状态机探测.字段探测字段探测主要包括字段语义验证、字段取值范围探测和伪静态长字段划分.()字段语义验证.R A I P A I L依次针对每个协议字段进行变异和验证,主要根据所推断的各字段语义信

33、息,设计相应的字段变异器,如数据字段变异器(T e x t M u t a t o r)、长度字段变异器(L e n M u t a t o r)、序列号字段变异器(S e q M u t a t o r)等,基于这些字段变异器能够生成各种类型的测试样本,通过与目标工控设备或系统进行主动式交互,以验证相应字段语义信息的正确性.若字段语义信息正确,则保持原有分析结果;反之,则判定该字段语义分析错误,并修正初始逆向中该字段的分析结果.其中,以T e x t M u t a t o r为例,R A I P A I L采取字段内容填充等变异方法,如重复字段插入、特殊符号插入、随机删除部分数据、文本内容

34、打乱重组等,并且考虑到文本字段的内容长度通常与长度字段相关,R A I P A I L将同步更新长度字段数值,使两者达到一致,以验证当前字段是否为文本字段.详细的协议字段语义验证过程如算法所示.算法字段语义验证与扩展算法.输入:逆向分析的样本结果Mm,m,mn(初始逆向过的流量样本).输出:与真实设备交互的数据流量集合R.对于每一个样本结果mi,按顺序遍历所有字段mif i e l d和其对应的变异器mim u t a t o r.根据mim u t a t o r生成种子序列集合sm if i e l d,若没有标注的m u t a t o r,则不生成.加入到交互流量集合S里面.重复上述步

35、,直到遍历完M.使用目标系统采取的通信方式c,进行数据交互.每个种子序列sm if i e l d会话流量R.R e t u r nR.()字段取值范围探测.字段取值范围探测主要对长度固定且取值变化的字段的取值范围进行探测,如功能码等.以功能码字段变异器(F u n c M u t a t o r)为例,由于捕获到的流量通常无法包含所有的功能报文,通常只能提取出对应协议功能码的子集.然而,针对各类协议功能码字段的深入分析,发现功能码的有效取值范围通常都比较接近,特别是工控协议,如MO D B U S等.因此,R A I P A I L针对目标协议的功能码数值进行递增或递减,并向目标工控设备或系

36、统发送重新组合后的测试报文,最终根据目标设备或系统的反馈报文,实现对功能码取值范围的探测.()伪静态长字段变异.伪静态字段是目前大多数协议逆向分析方法难以解决的问题.由于收集的部分字段样本存在多样性不足等问题,导致多序列比对算法提取的部分相邻字段同时出现固定值的现象,进而导致这两个不相关的相邻字段被错误地识别为一个伪静态长字段.因此,针对这一现象,R A I P A I L采取对西安电子科技大学学报第 卷h t t p:/j o u r n a l x i d i a n e d u c n/x d x b于伪静态长字段按单字节进行变异,通过对每个单字节取值进行递增或递减,以生成新样例与目标系

37、统进行主动式交互,最终实现对当前字段是否为静态字段的验证.而针对字段长度超过三字节的长字段验证划分,R A I P A I L采取逐字节变异策略:通过计算当前字节与 x f f之间的差值,填充当前字节取值,并发送给目标工控设备或系统,对比不同变异字节的反馈信息,以判断当前长字段是否包含多个短字段.状态机探测协议状态机是对协议实体间信息交互过程的描述,定义了不同格式类型报文的传送顺序.通常使用F S M模型描述协议状态机,以体现通信过程中协议实体所处的状态以及状态之间的转换关系,一个F S M可以用五元组M(Q,SI,SO,l)表示,其中,Q表示有限状态集合,SI表示有限输入符号集合,SO表示有

38、限输出符号集合,:QSIQ表示状态转换函数,l:QSISO表示输出函数.针对捕获的协议流量集进行逆向分析,并结合状态字段和会话顺序构建和化简协议状态机.然而,由于流量样本多样性不足,导致推测的协议状态机通常不完整,比如缺少部分协议状态和状态转化关系等.因此,针对这一不足,R A I P A I L分别从以下两个角度进行扩充.详细的协议状态机探测过程如算法所示.()新状态与状态转化探测.先根据协议逆向初始结果,对每种报文流量进行全排列组合,以获得新报文序列集合,再根据集合中每条流量序列与目标工控设备进行主动式交互,分析报文反馈信息,填充新状态与转化序列.()新状态依赖探测.针对包含不同状态功能码

39、的报文类型进行全排列组合,形成基于状态码的状态机探测序列,依次发送给目标工控设备,分析报文反馈信息,探测是否存在新状态依赖.算法状态机探测算法.输入:逆向分析的样本结果Mm,m,mn(初始逆向过的流量样本),具有类似功能码能决定消息格式的样本结果Ss,s,sn.输出:与真实设备交互的数据流量集合R.对于M,状态转化变异器s t a t e M u t a t o r 新状态序列集合SMi.使用通信方式c,进行序列交互.新会话ti加入R.对于S,功能码依赖变异器F u n c M a c h i n e M u t a t o r 新状态依赖序列集合F Si.使用通信方式c,进行序列交互.新会话

40、ti加入R.R e t u r nR.实验分析为了验证R A I P A I L的性能,选取了目前最常用的M o d b u s、I E C 和MQT T这种工控协议进行测试.由于M o d b u s是无状态的协议,因此协议状态机实验只针对I E C 和MQT T两种工控协议.系统测试环境系统运行的硬件环境为两台运行W i n d o w s操作系统的 b i tP C,一台作为构建包和传输包的机器,另一台用于搭建协议模拟器以模拟真实工控设备.测试的协议模拟器在字段验证推测采用M o d b u s、I E C 的协议模拟器和MQ T T服务器,状态机推测采用I E C 协议模拟器和MQ T

41、 T服务器,具体配置如表所示.表系统测试环境测试机I n t e l(R)C o r e(TM)i C P U GH z MB MH W i n d o w s p r o f e s s i o n a l目标机I n t e l(R)C o r e(TM)i C P U GH z MB MH W i n d o w s p r o f e s s i o n a lM o d b u s模拟器M o d S i m I E C 模拟器S i m u l a t e A n a l y z e rMQ T T服务器b r o k e r e m q x i o第期付安民等:基于主动交互式学习

42、的工控协议逆向分析h t t p:/j o u r n a l x i d i a n e d u c n/x d x b 协议字段验证与扩充分析 M o d b u s协议字段验证针对M o d b u s协议逆向分析结果,R A I P A I L进行多次主动式交互测试.实验结果如表所示.表M o d b u s字段实验结果序号字段变异器策略原有样本描述实验结果功能码F u n c M u t a t o r 请求数目G e t NM u t a t o r验证字段语义语义分析正确请求地址P o s M u t a t o r验证字段语义语义分析正确长静态字段F i e l d S p l

43、 i t M u t a t o r长静态字段划分静态字段动态字段动态字段结合表中的实验结果,分别从功能码取值范围探测、请求数目字段语义验证、请求地址字段语义验证和长静态字段划分等个角度进行分析:()功能码取值范围探测.根据初始协议逆向分析结果,收集的M o d b u s样本只有、协议功能码,而R A I P A I L通过对功能码字段进行变异,并与服务器主动交互,验证返回的报文信息来探测有效功能码.验证表明有效功能码区间为,而超过 以后则返回未知功能码错误.R A I P A I L探测出的功能码区间为,明显超出初始协议逆向分析结果中的功能码取值范围,并且获得两种非法数据地址和非法功能流量

44、样本种类.()请求数目字段语义验证.针对初始协议逆向分析结果中的请求线圈数目字段语义进行验证,交互反馈报文中寄存器状态数完全符合请求线圈的寄存器数目总和,表明该字段语义分析正确.()请求地址字段语义验证.针对初始协议逆向分析结果中的原有地址和变异地址进行验证,交互反馈报文中数据值变化均能够对应地址变化情况,表明该字段是请求地址字段.()长静态字段划分.对比M o d b u s协议规范和初始协议逆向分析结果,可发现M o d b u s协议经逆向分析后,协议标识符、长度和设备地址等字段被划分为一个长静态字段.因此,R A I P A I L分别对“协议标识符”、“长度”和“设备地址”等字段采用

45、“单字节变异”.验证结果:针对“协议标识符”字段变异,模拟器都未响应,进而确定该字段不可修改,属于静态固定值字段;针对“长度”字段变异,模拟器反馈“畸形数据包错误”,进而确定该字段可修改,属于动态字段;针对“设备地址”字段变异,模拟器反馈“非法数据地址异常”,进而确定该字段可修改,属于动态字段.最终,确定该伪静态长字段可以进一步被细划分为“静态字段动态字段动态字段”.I E C 协议字段验证针对I E C 协议逆向分析结果,R A I P A I L进行多次主动式交互测试,实验结果如表所示.表 I E C 字段实验结果序号字段变异器策略原有样本描述实验结果控制字段F u n c M u t a

46、 t o r启动命令、启动命令确认、测试命令、测试命令确认字段额外探测到停止命令和停止命令确认的新控制域样本数据长度L e n M u t a t o r验证字段语义语义分析正确传送原因S e n d R e M u t a t o r,暂定 请求地址P o s M u t a t o r验证字段语义语义分析正确结合表中的实验结果,可分别从控制字段取值范围探测、数据长度字段语义验证、传送原因字段取值探测和请求地址字段验证等个角度进行分析:()控制字段取值范围探测.根据初始协议逆向分析结果,收集的I E C 样本中的控制字段主要包括启动命令、启动命令确认、测试命令、测试命令确认等功能,而R A

47、I P A I L可以额外探测到停止命令和停止命令确认等新控制功能.西安电子科技大学学报第 卷h t t p:/j o u r n a l x i d i a n e d u c n/x d x b()数据长度字段语义验证.针对初始协议逆向分析结果中的数据长度字段进行验证,R A I P A I L通过修改字段值并进行主动交互,仅当修改值与数据长度完全一致时,才能收到目标设备的正确报文;否则,I E C服务器将不返回错误报文信息,进而表明该字段确为数据长度字段.()传送原因字段取值探测.根据初始协议逆向分析结果,收集的I E C 样本中的传送原因字段取值为 和,而R A I P A I L可以

48、额外探测出新取值.然而,因传输多数为命令,且I E C 模拟器对错误报文不返回状态,因此,推测传输原因字段取值范围暂定为 .()请求地址字段验证.针对初始协议逆向分析结果中的原有地址和变异地址进行验证,交互反馈报文中数据值变化均能够对应地址变化情况,表明该字段是请求地址字段.MQT T协议字段验证针对MQT T协议逆向分析结果,R A I P A I L进行多次主动式交互测试.实验结果如表所示.表M Q T T字段实验结果序号字段变异器策略原有样本描述实验结果控制字段F u n c M u t a t o r,数据字段D a t a NM u t a t o r验证字段语义语义分析正确未知字段

49、P o s M u t a t o r探测字段语义语义探测成功长度字段L e n M u t a t o r验证字段语义语义分析正确结合表中的实验结果,分别从控制字段取值范围探测、数据长度字段语义验证、未知字段语义探测和长度字段语义验证等个角度进行分析:()控制字段取值范围探测.根据初始协议逆向分析结果,收集的MQT T样本中的控制字段仅有、等种取值,而R A I P A I L通过对控制字段进行变异,并与服务器主动交互,观察订阅者,服务器对错误报文均无响应结果,因此保持原有结果集.()数据长度字段语义验证.针对初始协议逆向分析结果中的数据长度字段进行验证,R A I P A I L通过修改字

50、段值并进行主动交互,经转义和对比订阅者的数据流量中的数据长度字段相同,验证该字段确为数据长度字段.()未知字段语义探测.根据初始协议逆向分析结果,R A I P A I L对初始字段转义获得m q t t/t e s t,并生成大量测试用例,通过与工控设备进行主动交互以获得反馈结果,对应字段转义为m q t t/w o r k,进而探测该未知字段是主题名字段.()长度字段语义验证.针对初始协议逆向分析结果中的数据长度字段进行验证,R A I P A I L通过修改字段值并进行主动交互,仅当修改值与数据长度完全一致时,才能收到目标设备的正确报文;否则,MQT T服务器将不返回错误报文信息,进而表

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服