未知協(xié)議逆向工程是軟件逆向工程的一個(gè)分支,是通過(guò)對(duì)通信鏈路中以二進(jìn)制形式存在的未知內(nèi)容報(bào)文進(jìn)行分析,并借助報(bào)文聚類(lèi)分析、字段特征譜分析、信息熵流量分析等手段,認(rèn)定其中未知通信實(shí)體的屬性和其交互關(guān)系,以及報(bào)文含義空間等信息,最終通過(guò)結(jié)構(gòu)化抽象或其他形式來(lái)描述未知通信協(xié)議及其相關(guān)屬性、字段含義的過(guò)程。
摘要:空間數(shù)據(jù)系統(tǒng)咨詢(xún)委員會(huì)(CCSDS)標(biāo)準(zhǔn)協(xié)議是國(guó)際主流的空間天地鏈路通信協(xié)議,面向CCSDS協(xié)議的未知協(xié)議逆向工程,可以對(duì)衛(wèi)星天地鏈路中的未知通信流進(jìn)行行為分析,也有助于發(fā)現(xiàn)和分析針對(duì)空間站等國(guó)際聯(lián)網(wǎng)實(shí)體的攻擊。設(shè)計(jì)了一種CCSDS協(xié)議框架下的未知協(xié)議逆向工程分析系統(tǒng),主要包括系統(tǒng)的架構(gòu)設(shè)計(jì)和流程設(shè)計(jì)。針對(duì)該流程中未知協(xié)議會(huì)話(huà)報(bào)文字段的迭代式進(jìn)化樹(shù)聚類(lèi)所導(dǎo)致的算法開(kāi)銷(xiāo)過(guò)大問(wèn)題,提出了一種基于反饋型動(dòng)態(tài)豫遲因子的仿射傳播聚類(lèi)算法。仿真實(shí)驗(yàn)結(jié)果表明,該算法相比通常的非權(quán)算術(shù)平均聚類(lèi)算法可以有效提高針對(duì)未知協(xié)議的逆向工程效率。
關(guān)鍵詞:空間數(shù)據(jù)系統(tǒng)咨詢(xún)委員會(huì)(CCSDS)協(xié)議,協(xié)議逆向工程,未知協(xié)議,仿射傳播聚類(lèi),天地鏈路
0引言
CCSDS(ConsultativeCommitteeforSpaceDataSystem)協(xié)議是國(guó)際主流的空間天地鏈路通信標(biāo)準(zhǔn),由1982年美國(guó)航空航天局(NationalAeronauticsandSpaceAdministration,NASA)為解決天地通信和國(guó)際聯(lián)網(wǎng)數(shù)據(jù)的異構(gòu)設(shè)備互通、互聯(lián)、互操作問(wèn)題而制定,目前已經(jīng)逐漸成為國(guó)際主流的空間信息交互模型標(biāo)準(zhǔn),主要涉及數(shù)據(jù)處理、數(shù)據(jù)的分類(lèi)與編碼傳輸、通信實(shí)體體系結(jié)構(gòu)、通信協(xié)議框架、通信業(yè)務(wù)等范圍。由于CCSDS協(xié)議僅僅提供了規(guī)范框架,因而使用者對(duì)協(xié)議的具體實(shí)現(xiàn)方式是千差萬(wàn)別的,這為面向CCSDS的未知協(xié)議逆向工程帶來(lái)一定困難。
開(kāi)展面向CCSDS協(xié)議的未知協(xié)議逆向工程研究:一方面,可以幫助理解未知的二進(jìn)制報(bào)文;另一方面,可以對(duì)上行至空間站和下行至國(guó)際聯(lián)網(wǎng)地面站的數(shù)據(jù)進(jìn)行檢測(cè)以發(fā)現(xiàn)蠕蟲(chóng)、木馬、分布式拒絕服務(wù)(DistributedDenialofService,DDoS)等惡意攻擊,以保障我國(guó)空間站的國(guó)際化安全運(yùn)管[1]。
協(xié)議逆向工程的研究在學(xué)術(shù)和工程層面都得到廣泛重視。根據(jù)研究對(duì)象的不同,協(xié)議逆向工程可以分為兩類(lèi):一類(lèi)是針對(duì)未知軟件的二進(jìn)制可執(zhí)行程序,又稱(chēng)為動(dòng)態(tài)污點(diǎn)分析(tainteddata);另一類(lèi)針對(duì)未知通信流量的二進(jìn)制報(bào)文序列,又稱(chēng)為網(wǎng)絡(luò)追蹤(networktrace)。在實(shí)際的逆向工程問(wèn)題中,代碼和流量常常兼而有之,因此兩類(lèi)研究沒(méi)有清晰的界限,本文研究主要針對(duì)后者。
在學(xué)術(shù)層面,2004年,Beddoe[2]首次提出使用生物信息學(xué)中DNA(Deoxyribonucleicacid)基因片段比對(duì)及世代恢復(fù)的方法自動(dòng)挖掘大量Internet報(bào)文中的未知通信協(xié)議信息。Caballero等[3]則將生物信息學(xué)方法和語(yǔ)義推斷技術(shù)結(jié)合起來(lái)解決僵尸網(wǎng)絡(luò)控制協(xié)議的逆向工程問(wèn)題。Pan等[4]指出Beddoe所用方法的局限性并針對(duì)特別復(fù)雜的網(wǎng)絡(luò)協(xié)議提出一種基于層次化聚類(lèi)的逆向方法。Luo等[5]則將報(bào)文關(guān)鍵字的支持頻率和位置變化引入,從黑盒意義上逆向出DNS(DomainNameSystem)和NetBIOS(NetworkBasicInputOutputSystem)等非ASCII報(bào)文。Caballero等[6]同樣針對(duì)未知的僵尸網(wǎng)絡(luò)控制協(xié)議提出基于雙向通道的逆向的方法。
在工程層面,針對(duì)未知二進(jìn)制報(bào)文的協(xié)議逆向工程最早源于2004年由Beddoe啟動(dòng)的并被廣泛引用的PI(ProtocolInformatics)項(xiàng)目[2],此后出現(xiàn)了很多類(lèi)似的開(kāi)源工程[7]。其中,GeorgesBossert團(tuán)隊(duì)豐富了PI項(xiàng)目的功能,并啟動(dòng)了開(kāi)源項(xiàng)目Netzob[8],該軟件由詞匯推斷器、語(yǔ)法推斷器和未知協(xié)議模擬器組成,并將未知通信協(xié)議的理解、驗(yàn)證和測(cè)試功能集成到了一起;Netzob不僅可以逆向TCP(TransmissionControlProtocol)、IP(InternetProtocol)等固定字段協(xié)議,還可以逆向基于ASN.1的變字段協(xié)議,并且它還引入了機(jī)器人科學(xué)中的半隨機(jī)狀態(tài)模型和AngluinL算法用于自動(dòng)推斷。此外,劉彪等[9]針對(duì)國(guó)外某型號(hào)混合動(dòng)力貨車(chē)電控網(wǎng)絡(luò)的協(xié)議逆向工程問(wèn)題,提出并設(shè)計(jì)實(shí)現(xiàn)了結(jié)合實(shí)車(chē)道路實(shí)驗(yàn)和臺(tái)架實(shí)驗(yàn)的CAN(ControllerAreaNetwork)網(wǎng)絡(luò)協(xié)議逆向分析系統(tǒng)。
以上研究都是針對(duì)因特網(wǎng)協(xié)議或混合動(dòng)力汽車(chē)電控網(wǎng)絡(luò)協(xié)議展開(kāi),并在標(biāo)準(zhǔn)的因特網(wǎng)協(xié)議流量數(shù)據(jù)測(cè)試集或整車(chē)電控網(wǎng)絡(luò)測(cè)試平臺(tái)上完成仿真和測(cè)試。本文則針對(duì)CCSDS協(xié)議標(biāo)準(zhǔn)的特殊性展開(kāi)研究,由于空間鏈路固有的不穩(wěn)定性和較大延遲,造成基于CCSDS協(xié)議的報(bào)文流量存在較強(qiáng)的業(yè)務(wù)破碎性和流量混雜性,因而本文首先根據(jù)CCSDS協(xié)議的特點(diǎn)設(shè)計(jì)了一種CCSDS協(xié)議框架下的未知協(xié)議逆向工程分析系統(tǒng),主要包括系統(tǒng)的架構(gòu)設(shè)計(jì)和流程設(shè)計(jì);然后針對(duì)協(xié)議逆向工程的算法效率瓶頸問(wèn)題,提出了一種改進(jìn)的基于仿射傳播聚類(lèi)的逆向分析算法。
空間通信鏈路的以下特殊性造成其通信協(xié)議與通用的組網(wǎng)協(xié)議之間存在較大差異:
1)信道穩(wěn)定性差?臻g信道受電離層窗口吸收率、太陽(yáng)黑子活動(dòng)、地表雜波、星蝕、日凌、衛(wèi)星平臺(tái)穩(wěn)姿精度,以及天線(xiàn)指向機(jī)構(gòu)穩(wěn)定性的影響,表現(xiàn)為極強(qiáng)的不穩(wěn)定性。一般衛(wèi)星天地鏈路使用糾錯(cuò)碼、級(jí)聯(lián)抗干擾碼,以及降低星座圖的方法改善接收性能,但實(shí)際效果有限,空間鏈路仍表現(xiàn)為較差的信道穩(wěn)定性。
2)傳輸延遲大。一般近地衛(wèi)星天地鏈路延遲為數(shù)十毫秒量級(jí),同步衛(wèi)星可達(dá)數(shù)百毫秒量級(jí)?臻g通信鏈路的以上特性通常造成發(fā)送端頻繁重傳、接收端多重接收和包序錯(cuò)亂等現(xiàn)象,因此基于CCSDS框架的通信協(xié)議在設(shè)計(jì)與實(shí)現(xiàn)時(shí),一般會(huì)增加極強(qiáng)的容延、容斷機(jī)制,以保證通信的可靠性[10]。
目前關(guān)于通信協(xié)議逆向工程的研究結(jié)論和逆向算法,通常建立在信道穩(wěn)定性較好的基礎(chǔ)上,因?yàn)檫@種情況下報(bào)文的次序性較好、協(xié)議運(yùn)行穩(wěn)定,因而語(yǔ)法分析的難度較低。然而,空間信道的不穩(wěn)定性及其與容延容斷協(xié)議的交互作用,使得天地鏈路的網(wǎng)絡(luò)流量表現(xiàn)出很強(qiáng)的破碎性和多樣性,這極大地增加了協(xié)議語(yǔ)法逆向分析的難度。
對(duì)策:
1)先用計(jì)算機(jī)仿真出各種信道狀況下CCSDS協(xié)議的行為,建立起一個(gè)足夠大的標(biāo)準(zhǔn)流量模板庫(kù),并通過(guò)半人工監(jiān)督的機(jī)器學(xué)習(xí)來(lái)對(duì)其進(jìn)行分類(lèi),從而構(gòu)建分類(lèi)器。
2)再將待逆向分析的未知二進(jìn)制報(bào)文序列分解為2N個(gè)子集,并逐一輸入分類(lèi)器,這樣可以將未知二進(jìn)制報(bào)文的所有可能的會(huì)話(huà)分割情形進(jìn)行覆蓋式分類(lèi),從而達(dá)到對(duì)會(huì)話(huà)定界的目的。
3)最后采用迭代聚類(lèi)的方法,不斷與CCSDS協(xié)議標(biāo)準(zhǔn)語(yǔ)法模板進(jìn)行匹配,直至獲得足夠的協(xié)議信息并完成狀態(tài)機(jī)的構(gòu)建。
以下通過(guò)系統(tǒng)設(shè)計(jì),給出以上對(duì)策的一種實(shí)現(xiàn)方案。
2面向CCSDS協(xié)議的逆向工程系統(tǒng)設(shè)計(jì)
通常情況下,協(xié)議逆向工程由會(huì)話(huà)定界、報(bào)文語(yǔ)法分析、狀態(tài)機(jī)構(gòu)建三個(gè)步驟組成[2,11]。由于基于CCSDS協(xié)議的空間信道其流量具有復(fù)雜的分形特征,會(huì)導(dǎo)致逆向工程的運(yùn)算量大大增加,因此在系統(tǒng)設(shè)計(jì)時(shí)考慮使用大型數(shù)據(jù)存儲(chǔ)服務(wù)器和高速計(jì)算平臺(tái)來(lái)解決這一問(wèn)題。面向CCSDS協(xié)議二進(jìn)制報(bào)文未知協(xié)議的逆向工程分析系統(tǒng)(CCSDSProtocolReversingEngineeringSystem,CPRES),其系統(tǒng)結(jié)構(gòu)設(shè)計(jì)如圖1所示。
如圖1所示,首先根據(jù)未知二進(jìn)制報(bào)文的發(fā)送時(shí)機(jī),由人工推斷所有可能的仿真場(chǎng)景,并使用STK(SatelliteToolKit)軟件生成天地鏈路的空間拓?fù)渥兓闆r,用OPNET軟件的衛(wèi)星通信模塊仿真空間信道的不穩(wěn)定性,用OPNET軟件的有限狀態(tài)機(jī)設(shè)計(jì)模式實(shí)現(xiàn)對(duì)CCSDS協(xié)議的編碼層、傳送層、包裝層和系統(tǒng)管理層的協(xié)議的仿真。產(chǎn)生的仿真數(shù)據(jù)和仿真想定構(gòu)成一個(gè)存儲(chǔ)條目,將其存儲(chǔ)于大型數(shù)據(jù)存儲(chǔ)服務(wù)器中,以便擇優(yōu)搜索。然后將這些標(biāo)準(zhǔn)的流量模板逐一輸入在高速計(jì)算平臺(tái)上構(gòu)建的半人工監(jiān)督的機(jī)器學(xué)習(xí)分類(lèi)器,以便訓(xùn)練這一智能分類(lèi)器的內(nèi)部模型參數(shù)。最后,將二進(jìn)制報(bào)文序列所有可能的2N個(gè)組合可能逐一輸入機(jī)器學(xué)習(xí)分類(lèi)器進(jìn)行分類(lèi),從而達(dá)到對(duì)未知二進(jìn)制報(bào)文進(jìn)行會(huì)話(huà)定界的目的。
完成會(huì)話(huà)定界后,逆向分析的復(fù)雜性就大大降低了,可以采用如圖2所示的流程進(jìn)行人工的或計(jì)算機(jī)輔助的報(bào)文逆向。
如圖2所示,首先將會(huì)話(huà)中的報(bào)文按照已知的字段標(biāo)志進(jìn)行聚類(lèi)分析,得到會(huì)話(huà)中的報(bào)文子集,在經(jīng)過(guò)人工的協(xié)議格式分析后,在CCSDS協(xié)議語(yǔ)法庫(kù)中搜索這些可能的分析結(jié)論:如果不匹配,則認(rèn)為是加密報(bào)文或字段以及干擾報(bào)文或字段;如果匹配,則按照這種新識(shí)別的語(yǔ)法標(biāo)記重新標(biāo)記報(bào)文,并送入聚類(lèi)器進(jìn)行迭代聚類(lèi),重復(fù)這一過(guò)程最終直至完全剩下加密報(bào)文或字段以及干擾報(bào)文或字段。在以上迭代過(guò)程中,將標(biāo)記后的報(bào)文進(jìn)行整理,并人工進(jìn)行狀態(tài)機(jī)的沖突解決和再融合,可以最終得到未知協(xié)議的狀態(tài)機(jī)。
3報(bào)文聚類(lèi)改進(jìn)算法
在未知協(xié)議的逆向工程中,報(bào)文聚類(lèi)分析往往是影響逆向工程效率的瓶頸[11]。從圖2的報(bào)文分析流程可以看到,該流程采用的迭代聚類(lèi)方式與PI項(xiàng)目所采用的單向聚類(lèi)相比,盡管能適應(yīng)空間信道不穩(wěn)定造成的會(huì)話(huà)定界誤差從而進(jìn)一步導(dǎo)致的干擾字段問(wèn)題,但是,計(jì)算開(kāi)銷(xiāo)卻成倍增大。另一方面,由于協(xié)議的未知性,該分析流程的迭代次數(shù)是不可預(yù)估的,極有可能導(dǎo)致未知協(xié)議的逆向工程成為NP難問(wèn)題,因此,必須降低計(jì)算復(fù)雜度和計(jì)算開(kāi)銷(xiāo)才能使算法實(shí)用化。解決的方法之一便是提高報(bào)文聚類(lèi)效率。
在PI項(xiàng)目中,采用生物信息學(xué)中常用的非權(quán)組對(duì)的算術(shù)平均聚類(lèi)(UnweightedPairwiseMeanbyArithmeticAverages,UPGMA)算法用于多序列比對(duì)中的進(jìn)化樹(shù)生成問(wèn)題[2,12]。但由于該算法在每一步比對(duì)報(bào)文的序列片段時(shí)采用了遍歷法,因而計(jì)算開(kāi)銷(xiāo)較大[2,11]。
2007年Fery等在《Science》上提出仿射傳播(AffinityPropagation,AP)聚類(lèi)算法[2,13]。該算法不須在聚類(lèi)前指定聚類(lèi)數(shù)目,而是在初始化時(shí)將所有樣本都視為類(lèi)簇中心。首先建立反映所有樣本點(diǎn)之間相互相似度的Similarity矩陣,然后對(duì)反映樣本中心化傾向的Responsibility矩陣和邊緣化傾向的Availability矩陣進(jìn)行不斷迭代,直至Exemplar矩陣收斂,最終的Exemplar矩陣中主對(duì)角線(xiàn)大于零的元素即對(duì)應(yīng)類(lèi)簇中心。
4結(jié)語(yǔ)
正如Beddoe所述[2],未知協(xié)議逆向工程的研究尚處于起步階段,而將生物信息學(xué)中的DNA片段比對(duì)方法用于協(xié)議逆向具有很好的前景。本文首先設(shè)計(jì)了面向CCSDS協(xié)議的協(xié)議逆向工程系統(tǒng)的架構(gòu)和流程,然后針對(duì)其中的支撐算法給出了基于反饋型動(dòng)態(tài)豫遲因子的仿射傳播聚類(lèi)算法。下一步將繼續(xù)研究抑制算法開(kāi)銷(xiāo)抖動(dòng)的問(wèn)題,以及該算法向并行計(jì)算平臺(tái)的移植問(wèn)題。
參考文獻(xiàn):
[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.
轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.jinnzone.com/jisuanjiyingyonglw/31061.html