亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ARM二進(jìn)制敏感性數(shù)據(jù)檢測方法研究

        2015-08-14 20:59:49余凱梁光明楊世德
        現(xiàn)代電子技術(shù) 2015年15期

        余凱+梁光明+楊世德

        摘 要: 相對(duì)于PC成熟的安全防護(hù)而言,嵌入式安全依舊處于薄弱狀態(tài)。以ARM為研究對(duì)象,結(jié)合ARM指令體系的結(jié)構(gòu)和特點(diǎn),為實(shí)現(xiàn)對(duì)二進(jìn)制可執(zhí)行文件BIN中是否存在對(duì)硬件模塊的操控,展開敏感性信息的匹配,預(yù)警惡意操作,并提出半定型建模匹配方式,加快了代碼定位分析效率。

        關(guān)鍵詞: 二進(jìn)制可執(zhí)行文件; ARM指令; 敏感信息; 半定型建模

        中圖分類號(hào): TN702?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)15?0050?03

        Research on detection method for ARM sensitive binary data

        YU Kai, LIANG Guangming, YANG Shide

        (School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

        Abstract: Compared with PC mature security protection, the embedded security remains in weaker state. To achieve whether the control to hardware module exists in BIN of binary executable file, ARM is taken as research object, and sensitive information matching is conducted, and malicious actions are forewarned in combination with the structure and characteristics of ARM instruction system. The matching way of semidefinite form modeling is presented, which speeds up the code positioning analysis efficiency.

        Keywords: binary executable file; ARM instruction; sensitive information; semidefinite form modeling

        0 引 言

        隨著現(xiàn)代電子技術(shù)的不斷發(fā)展,信息系統(tǒng)規(guī)模和復(fù)雜度逐步增加,隨之而來的信息安全問題的嚴(yán)重性也在不斷提高,軟件安全問題顯得尤為突出[1]。出于對(duì)自身商業(yè)利益和知識(shí)產(chǎn)權(quán)的保護(hù),大部分軟件廠商并不會(huì)提供源代碼,因此對(duì)二進(jìn)制程序進(jìn)行安全檢測是當(dāng)前研究的一大主流方向[2]。

        當(dāng)前隨著惡意代碼數(shù)量的增多,病毒庫越來越龐大,利用傳統(tǒng)的模式匹配算法導(dǎo)致耗費(fèi)的時(shí)間不斷增大,已經(jīng)不能滿足實(shí)際應(yīng)用。另外,隨著惡意代碼編寫技術(shù)的發(fā)展,當(dāng)前的惡意代碼大多采用加密等技術(shù)對(duì)自身進(jìn)行保護(hù),這樣就更進(jìn)一步降低了傳統(tǒng)檢測方法的準(zhǔn)確性[3]。為了解決這一問題,最有效的方法是歸納總結(jié)出一類惡意代碼的行為特征,將傳統(tǒng)的二進(jìn)制特征匹配提升到行為特征匹配,才能利用盡可能少的特征檢測出盡可能多的惡意代碼[4]。常見嵌入式設(shè)備控制模塊有處理器模式設(shè)置、看門狗開關(guān)、中斷開關(guān)、MMU控制、時(shí)鐘控制等,這些模塊的控制入口都是敏感信息,通過對(duì)BIN文件這些敏感信息的匹配可以有效地對(duì)代碼可能存在的惡意操作進(jìn)行預(yù)警。

        傳統(tǒng)的單模式匹配算法主要有BF,KMP,BM算法及Sunday算法。BF算法實(shí)現(xiàn)簡單,但匹配效率很低;KMP算法比BF算法有所改進(jìn);BM算法則比KMP算法的檢測速度快3~5倍[5];在短模式匹配中,Sunday是目前速度最快的算法[6]。這些傳統(tǒng)方法不適合于二進(jìn)制文件的信息匹配[7],也沒有重定位功能。因此,本文結(jié)合ARM指令架構(gòu)特點(diǎn),提出半定型匹配算法,通過實(shí)驗(yàn)證明了該算法的可靠性和高效性。

        1 半定型建模

        源代碼可能千差萬別,但經(jīng)過工具編譯成匯編語言時(shí),具有極大的相似性。一是主要體現(xiàn)在高級(jí)語言指令多樣,而且還在不斷擴(kuò)展,但匯編指令有限,單一的高級(jí)語言程序經(jīng)常由多條匯編語言組合而成,這些匯編指令很相似。二是體現(xiàn)在機(jī)器編譯的過程中會(huì)將代碼進(jìn)行優(yōu)化,使其符合標(biāo)準(zhǔn)編程格式,這樣使得編譯生成的匯編語言結(jié)構(gòu)相似。ARM數(shù)據(jù)類指令格式解析,如圖1所示。其中,cond表示執(zhí)行條件;I表示shifter_operand是立即數(shù)還是寄存器;Opcode是指令標(biāo)記碼;S表示執(zhí)行結(jié)果是否影響CPRS;Rn表示源寄存器;Rd表示目標(biāo)寄存器;shifter_operand表示源操作數(shù)。

        圖1 ARM機(jī)器碼指令格式

        由圖1明顯可以看出,同一型的指令如MOV和MVN的機(jī)器碼結(jié)構(gòu)幾乎一樣,不同型的指令如CMP和ADD的指令結(jié)構(gòu)差異較大,所以對(duì)于不同指令的匹配應(yīng)當(dāng)具有針對(duì)性。結(jié)合ARM 32/16位指令結(jié)構(gòu),本文提出半定型建模匹配方式。針對(duì)不同的指令進(jìn)行預(yù)匹配,即第一步僅匹配特征區(qū)域,對(duì)于不關(guān)心的區(qū)域進(jìn)行選擇性忽視,只有當(dāng)預(yù)匹配成功后對(duì)該指令進(jìn)行深層匹配。以32位指令為例,將單一32位二進(jìn)制碼拆分成若干位段,特征區(qū)域所在位段將其稱作子串,進(jìn)行信息匹配時(shí),僅需對(duì)子串進(jìn)行對(duì)比。其中數(shù)據(jù)類處理指令的半建模匹配位段如圖2所示。

        圖2 半定型匹配子串

        進(jìn)行二進(jìn)制信息匹配的過程中,對(duì)于這些機(jī)器碼可以采用半定型建模方式進(jìn)行匹配定位,即針對(duì)需要匹配的指令,只匹配有意義的位段,如第一步只匹配執(zhí)行條件、指令標(biāo)記碼等,而立即數(shù)或寄存器等信息根據(jù)需要進(jìn)行匹配,這樣可以極大地提高匹配效率。

        2 半定型匹配算法

        傳統(tǒng)的代碼檢測,使用各種模式匹配方法,實(shí)現(xiàn)方法歸結(jié)為字符串匹配問題。由BF算法從左向右的逐字節(jié)比較,到Sunday算法從右向左比較的演變,解決了盡可能跳過更多的字符,加速匹配的問題。但這種方式,對(duì)于嵌入式的二進(jìn)制代碼檢測而言并不高效。以ARM為例,其支持ARM和THUMB兩種指令模式,分別為32位和16位代碼格式。若干字節(jié)的跳轉(zhuǎn),在很多時(shí)候沒有意義。針對(duì)ARM的代碼檢測,其步長就應(yīng)當(dāng)固定為32或16,所以本文針對(duì)ARM二進(jìn)制文件的特殊性,提出半定型匹配算法HSM,如圖3所示。

        半定型算法分為兩種工作模式。第一種是全匹配模式,即匹配32位字符數(shù)據(jù);第二種是半定型匹配模式,即先匹配Char[0]和Char[1],判斷指令格式,稱之為預(yù)匹配,當(dāng)指令類型匹配成功后,對(duì)Char[2]和Char[3]進(jìn)行計(jì)算,得出偏移量,稱之為二次匹配。

        圖3 半定型匹配結(jié)構(gòu)

        (1) 全匹配模式

        HSM算法的匹配執(zhí)行方式采用自左向右的方式,每32位對(duì)齊,假設(shè)在發(fā)生不匹配時(shí)[S[i]≠T[j],][1≤i≤N,][1≤j≤M,]如圖4所示。

        圖4 算法不匹配

        ① 當(dāng)[S[i+4]=T[j],]移動(dòng)距離為4,即將[T]與下一組32位指令進(jìn)行比對(duì)。

        ② 當(dāng)[S[i+4]≠T[j]]時(shí),比對(duì)[S[i+8]]是否與[T[j]]相等,相等則移動(dòng)距離為8,不相等則繼續(xù)取下一組32位指令的前8位進(jìn)行對(duì)比。

        從Char[0]到Char[3]依次匹配,當(dāng)出現(xiàn)不匹配則繼續(xù)匹配下一組主串的Char[0],直至匹配文件結(jié)束。

        (2) 半定型匹配模式

        對(duì)于硬件地址的賦值有兩種指令,一種使用MOV指令,另一種使用LDR偽指令。MOV要求立即數(shù)必須可由8位立即數(shù)偏移得到,可使用全匹配方式搜尋定位;LDR指令采用地址調(diào)用方式,對(duì)于所需賦值的立即數(shù)只要滿足32位就可以。假設(shè)在文件某處發(fā)生匹配時(shí)[S[i~i+3]=T[j~j+3],][1≤i≤N,][1≤j≤M。]如圖5所示。

        圖5 在文件xxxH處匹配地址成功

        硬件地址存儲(chǔ)形式為dword,當(dāng)匹配了硬件地址后,需要進(jìn)行二次匹配,定位出調(diào)用代碼,流程如下所示:

        Step1:計(jì)算匹配文件總長度,記為file_len,匹配處地址P小于file_len一半,進(jìn)入step2,否則進(jìn)入step3。

        Step2:向上匹配E5 9F ** **,匹配成功時(shí),取當(dāng)前地址為PU。取出Char[2]第4位記為ror_num,將Char[3]轉(zhuǎn)換成32位無符號(hào)整形,并向右循環(huán)移位ror_num*2位,得到32位偏移值,記為offset。若offset大于file_len,則offset需改為Char[2]低4位與Char[3]拼接而成。計(jì)算PU+8+offset是否等于P,相等則返回PU并進(jìn)入step4,錯(cuò)誤則繼續(xù)向上匹配,直至文件首。向上匹配失敗,則進(jìn)入step3。

        Step3:向下匹配E5 1F ** **,匹配成功時(shí),取當(dāng)前地址為PD。使用step2中方法得出offset。計(jì)算PD+8?offset是否等于P,相等則返回PD并進(jìn)入step4,錯(cuò)誤則繼續(xù)向下匹配,直至文件結(jié)束。

        Step4:對(duì)兩處匹配結(jié)果進(jìn)行顯示,標(biāo)記匹配處在文件中的地址。

        3 敏感信息檢測模型

        裸機(jī)下的開發(fā)過程中,開發(fā)者可以采取匯編代碼與高級(jí)代碼混合編程,基于匯編的代碼在編譯后會(huì)進(jìn)行優(yōu)化,存在代碼結(jié)構(gòu)的微小改變;對(duì)于高級(jí)語言,開發(fā)人員只負(fù)責(zé)調(diào)用函數(shù)完成程序編寫,編譯器會(huì)自動(dòng)生成優(yōu)化后的匯編代碼?;诟呒?jí)語言的源代碼經(jīng)過工具編譯后首先生成了ELF文件,由于ELF文件中包含了調(diào)試信息,所以可以反匯編成ASM文件。在有OS的嵌入式ARM中,可以直接運(yùn)行ELF文件。但是在無OS的嵌入式ARM中,當(dāng)處理器取出ELF中包含的調(diào)試信息時(shí),將無法響應(yīng)。所以為了能在無OS條件下執(zhí)行,將ELF中的調(diào)試信息去除,生成BIN文件。這時(shí)的BIN文件無法反匯編,從而不能使用傳統(tǒng)方法進(jìn)行代碼分析。本文提出對(duì)BIN中的敏感信息進(jìn)行匹配定位,主要是針對(duì)硬件底層模塊的定位,其模型如圖6所示。

        圖6 敏感信息檢測模型

        4 實(shí)驗(yàn)與分析

        4.1 算法性能

        測試環(huán)境為VMware10下的Red Hat Enterprise Linux 6,內(nèi)核版本為2.6.39,內(nèi)存1.3 GB,宿主機(jī)為i5?4200M 2.5 GHz,測試樣本為U?boot 234 KB Bin文件,實(shí)驗(yàn)平臺(tái)為TQ2440。選取BM、Sunday算法以及每次移動(dòng)32 b的BF算法,與半定型算法HSM進(jìn)行匹配效率對(duì)比,對(duì)敏感信息,即關(guān)鍵寄存器地址進(jìn)行匹配定位,實(shí)驗(yàn)結(jié)果如表1所示。

        表1 匹配算法性能對(duì)比

        [算法對(duì)比\&BM\&Sunday\&32 b BF\&HSM\&8位:

        4c\&時(shí)間 /ns\&10 629 665\&6 377 799\&1 878 992\&1 253 660\&命中次數(shù)\&10 393\&10 393\&10 323\&10 323\&16位:

        4c 00\&時(shí)間 /ns\&5 866 039\&4 512 338\&1 270 442\&908 382\&命中次數(shù)\&70\&70\&11\&11\&24位:

        4c 00 00\&時(shí)間 /ns\&4 362 159\&3 231 229\&1 360 407\&786 552\&命中次數(shù)\&60\&60\&9\&9\&32位:

        4c 00 00 14\&時(shí)間 /ns\&3 276 683\&2 839 347\&1 955 354\&566 721\&命中次數(shù)\&3\&3\&3\&3\&32位:

        4c 00 00 00\&時(shí)間 /ns\&3 789 963\&3 216 407\&1 170 464\&486 563\&命中次數(shù)\&47\&47\&0\&0\&]

        由表1可以得出,傳統(tǒng)字符串匹配算法在ARM二進(jìn)制文件中的匹配效率明顯低于后兩種方法,主要原因在于匹配了大量不符合匯編規(guī)范的字符串以及移動(dòng)距離設(shè)置不適合32 b環(huán)境。同時(shí)使用傳統(tǒng)字符串匹配方法,也存在誤判的情況。實(shí)驗(yàn)證明HSM算法可靠,效率表現(xiàn)良好。

        4.2 外設(shè)模塊控制定位

        對(duì)U?boot代碼解析,僅發(fā)現(xiàn)一處使用MOV指令,為0x56000010 LED控制地址,剩余模塊一律采用LDR格式。MOV格式的外設(shè)模塊具體控制指令基本位于硬件地址之后,定位簡單;LDR格式涉及偏移,偏移范圍為+/-32 MB,當(dāng)定位到硬件地址或驅(qū)動(dòng)聲明時(shí),只能說明有對(duì)此模塊的控制,具體控制指令需要進(jìn)行二次搜索。

        以U?boot中時(shí)鐘頻率設(shè)置為例,第一次定位了4c 00 00 04MPLLCON地址,此處相對(duì)地址為814H,文件總長度為3AD3CH,優(yōu)先選擇向上定位。匹配指令為E5 9F ** **(LDR指令半定型),匹配方式為HSM匹配,具體流程如圖7所示。

        圖7 時(shí)鐘配置定位實(shí)例

        5 結(jié) 語

        本文對(duì)ARM的BIN文件是否存在對(duì)某硬件模塊的操控進(jìn)行信息匹配定位,從基礎(chǔ)信息的定位,到模塊地址入口兩個(gè)層次,實(shí)現(xiàn)對(duì)這些關(guān)鍵信息的定位。在第一時(shí)間就提示了是否存在惡意操作的可能。其次,在完成信息快速定位的基礎(chǔ)上,展開代碼局部分析,而不用對(duì)所有代碼全部解析,極大地縮減了代碼分析所耗時(shí)間。將HSM算法與BM、Sunday算法進(jìn)行對(duì)比,針對(duì)ARM的特殊結(jié)構(gòu),通過實(shí)驗(yàn)證明了該算法的高效可靠,從而驗(yàn)證了敏感信息匹配模型的實(shí)用性。

        參考文獻(xiàn)

        [1] 藺毅翀.軟件安全漏洞的自動(dòng)化探測方法研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2005.

        [2] 康凱,郭穎,崔寶江.基于XML的面向二進(jìn)制漏洞模式形式化描述研究[J].信息網(wǎng)絡(luò)安全,2012(12):21?24.

        [3] 張顯明.基于網(wǎng)絡(luò)的惡意代碼檢測技術(shù)探析[J].電腦開發(fā)與應(yīng)用,2013(7):27?29.

        [4] 雷遲駿.基于啟發(fā)式算法的惡意代碼檢測系統(tǒng)研究與實(shí)現(xiàn)[D].南京:南京郵電大學(xué),2012.

        [5] BOYER R S,MOORE J S.A fast string searching algorithm [J]. Communications of the ACM, 1977, 20(10): 762?772.

        [6] DANIEL M. A very fast substring search algorithm [J]. Communications of the ACM, 1990, 33(8): 132?142.

        [7] MU Yongmin, Ll Meigui, LIANG Qi.The survey of the pattern matching algorithm in intrusion detection system [J]. Aeta Electronica Sinica, 2006,34(12A): 2488?2490.

        亚洲一区二区三区亚洲| 97人人超碰国产精品最新o| 一本久道久久综合久久| 欧美中文字幕在线| 亚洲欧美性另类春色| 中日韩字幕中文字幕一区| 99久久婷婷国产精品网| 久久久中文久久久无码| 亚洲综合一区无码精品| 中文亚洲成a人片在线观看| 精品日本免费观看一区二区三区| 亚洲综合精品亚洲国产成人| 日韩av高清在线观看| 国产精品亚洲一区二区在线观看| 永久免费观看的毛片手机视频| 国产免费一级在线观看| 精品一区二区三区女同免费| 国产三a级三级日产三级野外 | 日韩免费精品在线观看| 色777狠狠狠综合| 人妻少妇邻居少妇好多水在线| 久久国产精99精产国高潮| 九九久久精品一区二区三区av| 亚洲精品中文字幕一区二区| 插b内射18免费视频| 亚洲精品无码av片| 日韩有码中文字幕第一页| 精品人妻中文av一区二区三区| 亚洲av无码专区首页| 亚洲天堂99| 91麻豆精品一区二区三区| 色哟哟亚洲色精一区二区 | 国产在线视频h| 杨幂一区二区系列在线| 国产欧美日韩一区二区三区| 日本不卡视频免费的| 超级碰碰人妻中文字幕| 一区二区三区在线乱码| 亚洲啪啪视频一区二区| 少妇人妻200篇白洁| 国产欧美亚洲另类第一页|