科学中国人杂志入选论文范文
所属栏目:计算机应用论文
发布时间:2014-02-15 09:48:26 更新时间:2014-02-15 09:19:25
未知协议逆向工程是软件逆向工程的一个分支,是通过对通信链路中以二进制形式存在的未知内容报文进行分析,并借助报文聚类分析、字段特征谱分析、信息熵流量分析等手段,认定其中未知通信实体的属性和其交互关系,以及报文含义空间等信息,最终通过结构化抽象或其他形式来描述未知通信协议及其相关属性、字段含义的过程。
摘要:空间数据系统咨询委员会(CCSDS)标准协议是国际主流的空间天地链路通信协议,面向CCSDS协议的未知协议逆向工程,可以对卫星天地链路中的未知通信流进行行为分析,也有助于发现和分析针对空间站等国际联网实体的攻击。设计了一种CCSDS协议框架下的未知协议逆向工程分析系统,主要包括系统的架构设计和流程设计。针对该流程中未知协议会话报文字段的迭代式进化树聚类所导致的算法开销过大问题,提出了一种基于反馈型动态豫迟因子的仿射传播聚类算法。仿真实验结果表明,该算法相比通常的非权算术平均聚类算法可以有效提高针对未知协议的逆向工程效率。
关键词:空间数据系统咨询委员会(CCSDS)协议,协议逆向工程,未知协议,仿射传播聚类,天地链路
0引言
CCSDS(ConsultativeCommitteeforSpaceDataSystem)协议是国际主流的空间天地链路通信标准,由1982年美国航空航天局(NationalAeronauticsandSpaceAdministration,NASA)为解决天地通信和国际联网数据的异构设备互通、互联、互操作问题而制定,目前已经逐渐成为国际主流的空间信息交互模型标准,主要涉及数据处理、数据的分类与编码传输、通信实体体系结构、通信协议框架、通信业务等范围。由于CCSDS协议仅仅提供了规范框架,因而使用者对协议的具体实现方式是千差万别的,这为面向CCSDS的未知协议逆向工程带来一定困难。
开展面向CCSDS协议的未知协议逆向工程研究:一方面,可以帮助理解未知的二进制报文;另一方面,可以对上行至空间站和下行至国际联网地面站的数据进行检测以发现蠕虫、木马、分布式拒绝服务(DistributedDenialofService,DDoS)等恶意攻击,以保障我国空间站的国际化安全运管[1]。
协议逆向工程的研究在学术和工程层面都得到广泛重视。根据研究对象的不同,协议逆向工程可以分为两类:一类是针对未知软件的二进制可执行程序,又称为动态污点分析(tainteddata);另一类针对未知通信流量的二进制报文序列,又称为网络追踪(networktrace)。在实际的逆向工程问题中,代码和流量常常兼而有之,因此两类研究没有清晰的界限,本文研究主要针对后者。
在学术层面,2004年,Beddoe[2]首次提出使用生物信息学中DNA(Deoxyribonucleicacid)基因片段比对及世代恢复的方法自动挖掘大量Internet报文中的未知通信协议信息。Caballero等[3]则将生物信息学方法和语义推断技术结合起来解决僵尸网络控制协议的逆向工程问题。Pan等[4]指出Beddoe所用方法的局限性并针对特别复杂的网络协议提出一种基于层次化聚类的逆向方法。Luo等[5]则将报文关键字的支持频率和位置变化引入,从黑盒意义上逆向出DNS(DomainNameSystem)和NetBIOS(NetworkBasicInputOutputSystem)等非ASCII报文。Caballero等[6]同样针对未知的僵尸网络控制协议提出基于双向通道的逆向的方法。
在工程层面,针对未知二进制报文的协议逆向工程最早源于2004年由Beddoe启动的并被广泛引用的PI(ProtocolInformatics)项目[2],此后出现了很多类似的开源工程[7]。其中,GeorgesBossert团队丰富了PI项目的功能,并启动了开源项目Netzob[8],该软件由词汇推断器、语法推断器和未知协议模拟器组成,并将未知通信协议的理解、验证和测试功能集成到了一起;Netzob不仅可以逆向TCP(TransmissionControlProtocol)、IP(InternetProtocol)等固定字段协议,还可以逆向基于ASN.1的变字段协议,并且它还引入了机器人科学中的半随机状态模型和AngluinL算法用于自动推断。此外,刘彪等[9]针对国外某型号混合动力货车电控网络的协议逆向工程问题,提出并设计实现了结合实车道路实验和台架实验的CAN(ControllerAreaNetwork)网络协议逆向分析系统。
以上研究都是针对因特网协议或混合动力汽车电控网络协议展开,并在标准的因特网协议流量数据测试集或整车电控网络测试平台上完成仿真和测试。本文则针对CCSDS协议标准的特殊性展开研究,由于空间链路固有的不稳定性和较大延迟,造成基于CCSDS协议的报文流量存在较强的业务破碎性和流量混杂性,因而本文首先根据CCSDS协议的特点设计了一种CCSDS协议框架下的未知协议逆向工程分析系统,主要包括系统的架构设计和流程设计;然后针对协议逆向工程的算法效率瓶颈问题,提出了一种改进的基于仿射传播聚类的逆向分析算法。
空间通信链路的以下特殊性造成其通信协议与通用的组网协议之间存在较大差异:
1)信道稳定性差。空间信道受电离层窗口吸收率、太阳黑子活动、地表杂波、星蚀、日凌、卫星平台稳姿精度,以及天线指向机构稳定性的影响,表现为极强的不稳定性。一般卫星天地链路使用纠错码、级联抗干扰码,以及降低星座图的方法改善接收性能,但实际效果有限,空间链路仍表现为较差的信道稳定性。
2)传输延迟大。一般近地卫星天地链路延迟为数十毫秒量级,同步卫星可达数百毫秒量级。空间通信链路的以上特性通常造成发送端频繁重传、接收端多重接收和包序错乱等现象,因此基于CCSDS框架的通信协议在设计与实现时,一般会增加极强的容延、容断机制,以保证通信的可靠性[10]。
目前关于通信协议逆向工程的研究结论和逆向算法,通常建立在信道稳定性较好的基础上,因为这种情况下报文的次序性较好、协议运行稳定,因而语法分析的难度较低。然而,空间信道的不稳定性及其与容延容断协议的交互作用,使得天地链路的网络流量表现出很强的破碎性和多样性,这极大地增加了协议语法逆向分析的难度。
对策:
1)先用计算机仿真出各种信道状况下CCSDS协议的行为,建立起一个足够大的标准流量模板库,并通过半人工监督的机器学习来对其进行分类,从而构建分类器。
2)再将待逆向分析的未知二进制报文序列分解为2N个子集,并逐一输入分类器,这样可以将未知二进制报文的所有可能的会话分割情形进行覆盖式分类,从而达到对会话定界的目的。
3)最后采用迭代聚类的方法,不断与CCSDS协议标准语法模板进行匹配,直至获得足够的协议信息并完成状态机的构建。
以下通过系统设计,给出以上对策的一种实现方案。
2面向CCSDS协议的逆向工程系统设计
通常情况下,协议逆向工程由会话定界、报文语法分析、状态机构建三个步骤组成[2,11]。由于基于CCSDS协议的空间信道其流量具有复杂的分形特征,会导致逆向工程的运算量大大增加,因此在系统设计时考虑使用大型数据存储服务器和高速计算平台来解决这一问题。面向CCSDS协议二进制报文未知协议的逆向工程分析系统(CCSDSProtocolReversingEngineeringSystem,CPRES),其系统结构设计如图1所示。
如图1所示,首先根据未知二进制报文的发送时机,由人工推断所有可能的仿真场景,并使用STK(SatelliteToolKit)软件生成天地链路的空间拓扑变化情况,用OPNET软件的卫星通信模块仿真空间信道的不稳定性,用OPNET软件的有限状态机设计模式实现对CCSDS协议的编码层、传送层、包装层和系统管理层的协议的仿真。产生的仿真数据和仿真想定构成一个存储条目,将其存储于大型数据存储服务器中,以便择优搜索。然后将这些标准的流量模板逐一输入在高速计算平台上构建的半人工监督的机器学习分类器,以便训练这一智能分类器的内部模型参数。最后,将二进制报文序列所有可能的2N个组合可能逐一输入机器学习分类器进行分类,从而达到对未知二进制报文进行会话定界的目的。
完成会话定界后,逆向分析的复杂性就大大降低了,可以采用如图2所示的流程进行人工的或计算机辅助的报文逆向。
如图2所示,首先将会话中的报文按照已知的字段标志进行聚类分析,得到会话中的报文子集,在经过人工的协议格式分析后,在CCSDS协议语法库中搜索这些可能的分析结论:如果不匹配,则认为是加密报文或字段以及干扰报文或字段;如果匹配,则按照这种新识别的语法标记重新标记报文,并送入聚类器进行迭代聚类,重复这一过程最终直至完全剩下加密报文或字段以及干扰报文或字段。在以上迭代过程中,将标记后的报文进行整理,并人工进行状态机的冲突解决和再融合,可以最终得到未知协议的状态机。
3报文聚类改进算法
在未知协议的逆向工程中,报文聚类分析往往是影响逆向工程效率的瓶颈[11]。从图2的报文分析流程可以看到,该流程采用的迭代聚类方式与PI项目所采用的单向聚类相比,尽管能适应空间信道不稳定造成的会话定界误差从而进一步导致的干扰字段问题,但是,计算开销却成倍增大。另一方面,由于协议的未知性,该分析流程的迭代次数是不可预估的,极有可能导致未知协议的逆向工程成为NP难问题,因此,必须降低计算复杂度和计算开销才能使算法实用化。解决的方法之一便是提高报文聚类效率。
在PI项目中,采用生物信息学中常用的非权组对的算术平均聚类(UnweightedPairwiseMeanbyArithmeticAverages,UPGMA)算法用于多序列比对中的进化树生成问题[2,12]。但由于该算法在每一步比对报文的序列片段时采用了遍历法,因而计算开销较大[2,11]。
2007年Fery等在《Science》上提出仿射传播(AffinityPropagation,AP)聚类算法[2,13]。该算法不须在聚类前指定聚类数目,而是在初始化时将所有样本都视为类簇中心。首先建立反映所有样本点之间相互相似度的Similarity矩阵,然后对反映样本中心化倾向的Responsibility矩阵和边缘化倾向的Availability矩阵进行不断迭代,直至Exemplar矩阵收敛,最终的Exemplar矩阵中主对角线大于零的元素即对应类簇中心。
4结语
正如Beddoe所述[2],未知协议逆向工程的研究尚处于起步阶段,而将生物信息学中的DNA片段比对方法用于协议逆向具有很好的前景。本文首先设计了面向CCSDS协议的协议逆向工程系统的架构和流程,然后针对其中的支撑算法给出了基于反馈型动态豫迟因子的仿射传播聚类算法。下一步将继续研究抑制算法开销抖动的问题,以及该算法向并行计算平台的移植问题。
参考文献:
[1]ZHANGL,ANC,ZHANGQ,etal.MisbehaviordetectionalgorithminCCSDSspacetelecommandsystem[J].IEEECommunicationsLetters,2010,14(8):746-748.
[2]BEDDOEMA.Networkprotocolanalysisusingbioinformaticsalgorithms[EB/OL].[20120520].http://www.4tphi.net/~awalters/PI/PI.html.[3]CABALLEROJ,SONGD.Automaticprotocolreverseengineering:messageformatextractionandfieldsemanticsinference[J].ComputerNetworks,2013,57(2):451-474.
[4]PANF,HONGZ,DUY,etal.Efficientprotocolreversemethodbasedonnetworktraceanalysis[J].InternationalJournalofDigitalContentTechnologyanditsApplications,2012,20(6):201-210.
[5]LUOJZ,YUSZ.Positionbasedautomaticreverseengineeringofnetworkprotocols[J].JournalofNetworkandComputerApplications,2013,50(1):431-439.
[6]CABALLEROJ,POOSANKAMP,KREIBICHC,etal.Bidirectionalprotocolreverseengineering:messageformatextractionandfieldsemanticsinference[EB/OL].[20120612].http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS200957.pdf.