本發明專利技術是關于一種基于隨機性檢驗的Android軟件加固檢測方法,其特征在于包括以下步驟:步驟S1,將訓練樣本集進行預處理后,再通過隨機性檢測計算確定閾值;步驟S2,將待測apk文件進行預處理后,再通過隨機性檢測計算得到測試數據;步驟S3,將該測試數據與該閾值進行比對,若該測試數據屬于該閾值的范圍內,則該待測apk文件為加固的文件,若該測試數據不屬于該閾值的范圍內,則該待測apk文件不是加固的文件。本發明專利技術提出的檢測方法對于加固軟件的檢測是有效的并有較高的準確率和較低的誤報率,有助于發現潛在的惡意軟件。
【技術實現步驟摘要】
本專利技術有關于一種軟件檢測方法,尤其是有關于一種基于隨機性檢驗的Android 軟件加固檢測方法。
技術介紹
隨著軟件的迅速發展和快速傳播,軟件面臨的威脅日益增多,其安全保護問題受 到人們越來越多的關注。目前,針對軟件的惡意攻擊方法主要有軟件盜版、逆向工程技術和 軟件代碼篡改,軟件加固是保護軟件抵抗威脅的重要手段。常見的軟件加固手段有代碼混 淆技術、防調試追蹤技術、完整性校驗、軟件水印技術、白盒加密技術和軟件加殼技術等。但 是,相比于傳統的PC平臺,Android是開源的系統,開發者可以根據需求定制并開發各種各 樣的操作系統;而且比起其他操作系統,Android應用程序使用的開發語言主要是java,由 于其二進制文件中包含了更多的類型信息,使得編譯后的二進制代碼classes, dex文件極 易被攻擊者反編譯從而繞開Android的安全保護機制。總之,由于Android自身的體系結 構和安全保護機制的特性,無法直接將傳統PC端的軟件保護技術應用到Android平臺。 Android平臺現有的軟件保護技術有代碼混淆、軟件水印、反跟蹤調試、軟件加殼、 白盒加密等。其中,軟件加殼是防止軟件被靜態反編譯或者非法篡改的常用手段,殼對可執 行文件進行壓縮或者加密,先于原始程序獲得控制權,殼在執行過程中對原始程序進行解 壓縮或者解密,還原后再把程序控制權交還給原始程序。加殼軟件根據加殼目的和作用可 以分為兩類:一是壓縮殼,二是加密殼。PC平臺現已有大量標準的加殼和脫殼工具,但是目 前Android平臺市場上針對apk的保護主要是基于dex,公開的加殼工具有DexGuarddI^ 擲、愛加密、ApkProtect等。軟件加殼效果評估標準之一是成功效率,即檢驗待保護軟件是 否成功被加密。但是當前檢驗軟件是否加殼一般使用人工分析,并沒有有效的大批量自動 化檢驗方法。 對于使用加密算法進行加殼的移動平臺,檢驗當前軟件是否加殼,即檢驗當前應 用軟件中是否使用了針對整體文件的加密算法。隨機性測試可以檢測密碼算法的輸出序列 是否符合隨機性要求,為算法能夠安全運行提供保證。因此,通過隨機性測試是保證加密算 法安全性的前提和基礎。 人們研究了多種隨機序列應該滿足的性質,并以此為準對所產生的序列的隨機程 度進行度量。目前,已公開的隨機性測試方法不下數百種。不同的隨機性測試方法針對不 同特性的測試序列,原理并沒有顯著差別。迄今為止,國內外相關研究人員提出了許多種隨 機數生成方法,如平方取中法、同余法、斐波那契數列變形法、混沌序列法、利用系統時間和 熱噪聲等等,同時對生成的隨機數的隨機性測試方法也是在不斷地發展。DIEHARD測試方法 和美國國家技術標準局提出的密碼模塊所使用的隨機數發生器性能統計檢測方法是比較 常用的測試方法。 基于以上的分析,以隨機性作為移動軟件加固前后的指標是可行的。但是,以隨機 性作為檢驗軟件加固的標準目前并沒有學者涉及。 由此可見,上述現有的軟件加固的檢測方法在使用上,顯然仍存在有不便與缺陷, 而亟待加以進一步改進。為了解決上述存在的問題,相關廠商莫不費盡心思來謀求解決之 道,但長久以來一直未見適用的設計被發展完成,而一般產品又沒有適切結構能夠解決上 述問題,此顯然是相關業者急欲解決的問題。
技術實現思路
本專利技術的目的在于克服現有的軟件加固檢測方法存在的不足,而提供一種基于隨 機性檢驗的Android軟件加固檢測方法。 本專利技術的目的是采用以下技術方案來實現的。本專利技術提出一種基于隨機性檢驗的 Android軟件加固檢測方法,其包括以下步驟:步驟S1,將訓練樣本集進行預處理后,再通 過隨機性檢測計算確定閾值;步驟S2,將待測apk文件進行預處理后,再通過隨機性檢測計 算得到測試數據;步驟S3,將該測試數據與該閾值進行比對,若該測試數據屬于該閾值的 范圍內,則該待測apk文件為加固的文件,若該測試數據不屬于該閾值的范圍內,則該待測 apk文件不是加固的文件。 本專利技術的目的還可采用以下技術措施進一步實現。 較佳的,前述的,其中所述步驟Sl 中的訓練樣本集包括:未加固的apk文件和加固過的同樣的apk文件。 較佳的,前述的,其中所述步驟Sl 中的將訓練樣本集進行預處理包括:步驟S11,將訓練樣本集中的各個apk文件解壓,提取 apk序列的classes, dex文件;步驟S12,將所述的classes, dex文件輸入隨機性測試工具, 進行二進制分塊。 較佳的,前述的,其中所述步驟Sl 包括:將通過二進制分塊所得的各個模塊進行隨機性檢測計算,從而確定閾值。 較佳的,前述的,其中所述步驟S2 中的將待測apk文件進行預處理包括:步驟S21,將待測apk文件解壓,提取apk序列的 classes, dex文件;步驟S22,將所述的classes, dex文件輸入隨機性測試工具,進行二進制 分塊。 較佳的,前述的,其中所述步驟S2 包括:將通過二進制分塊所得的各個模塊進行隨機性檢測計算,從而得到測試數據。 較佳的,前述的,其中所述步驟Sl 中的隨機性檢測計算包括:頻率檢驗、塊內頻數檢驗、游程檢驗、塊內最長游程檢驗、二元 矩陣秩檢驗、離散傅里葉變換檢驗、非重疊模塊匹配檢驗、重疊模塊匹配檢驗、Maurer的通 用統計檢驗、Lempel-ZiV壓縮檢驗、線性復雜度檢驗、序列檢驗、近似熵檢驗、累加和檢驗、 隨機游動檢驗、隨機游動狀態頻數檢驗中的至少一種。 較佳的,前述的,其中所述步驟S2 中的隨機性檢測計算包括:頻率檢驗、塊內頻數檢驗、游程檢驗、塊內最長游程檢驗、二元 矩陣秩檢驗、離散傅里葉變換檢驗、非重疊模塊匹配檢驗、重疊模塊匹配檢驗、Maurer的通 用統計檢驗、Lempel-ZiV壓縮檢驗、線性復雜度檢驗、序列檢驗、近似熵檢驗、累加和檢驗、 隨機游動檢驗、隨機游動狀態頻數檢驗中的至少一種。 借由上述技術方案,本專利技術至少具 有下列優點及有益效果:本專利技術提出的檢驗方法對于加固軟件的檢測是有效的并有較高的 準確率和較低的誤報率,有助于發現潛在的惡意軟件。 上述說明僅是本專利技術技術方案的概述,為了能夠更清楚了解本專利技術的技術手段, 而可依照說明書的內容予以實施,并且為了讓本專利技術的上述和其他目的、特征和優點能夠 更明顯易懂,以下特舉較佳實施例,并配合附圖,詳細說明如下。【附圖說明】 圖1是本專利技術的Android加固軟件檢測方法的示意圖。 圖2是樣本集B的線性復雜度檢驗的結果示意圖。 圖3是樣本集B的非重疊模塊匹配檢驗的結果示意圖。 圖4是樣本集B的重疊模塊匹配檢驗的結果示意圖。 【主要元件符號說明】 A、B、Q:樣本集 TPR :準確率 TP :成功被檢測出的軟件個數 FN :被誤檢測為未加固軟件的加固軟件個數 FPR :誤報率 FP :被誤報為加固軟件的未加固軟件個數 TN :正確分類的未加固軟件個數 R :判斷結果 P-value :隨機概率/通過數【具體實施方式】 為更進一步闡述本專利技術為達成預定專利技術目的所采取的技術手段及功效,以下結 合附圖及較佳實施例,對依據本專利技術提出的一種基于隨機性檢驗的Android軟件加固檢測 方法的【具體實施方式】、結構、特當前第1頁1 2 3 本文檔來自技高網...

【技術保護點】
一種基于隨機性檢驗的Android軟件加固檢測方法,其特征在于包括以下步驟:步驟S1,將訓練樣本集進行預處理后,再通過隨機性檢測計算確定閾值;步驟S2,將待測apk文件進行預處理后,再通過隨機性檢測計算得到測試數據;步驟S3,將該測試數據與該閾值進行比對,若該測試數據屬于該閾值的范圍內,則該待測apk文件為加固的文件,若該測試數據不屬于該閾值的范圍內,則該待測apk文件不是加固的文件。
【技術特征摘要】
【專利技術屬性】
技術研發人員:何能強,嚴寒冰,李佳,紀玉春,王新鎮,馬宏謀,李挺,李世淙,張淼,胡鴿,李承澤,何世平,
申請(專利權)人:國家計算機網絡與信息安全管理中心,
類型:發明
國別省市:北京;11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。