999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

安卓APP安全加固系統的分析與設計

2018-03-03 01:26:49趙躍華
計算機工程 2018年2期

趙躍華,劉 佳

(江蘇大學 計算機科學與通信工程學院,江蘇 鎮江 212013)

0 概述

隨著手機平臺技術的不斷發展,針對各類手機平臺的惡意軟件層出不窮,這些惡意軟件已經威脅到了手機用戶的隱私及財產安全[1]。據中科院最新調研報告顯示,當前68.6%的安卓手機用戶正面臨移動安全威脅[2]。

針對當前Android手機存在的安全威脅,文獻[3]提出了使用代碼混淆的方式對Dalvik字節碼程序進行保護的方法,該方法對代碼的靜態保護效果好,但不能防御攻擊者的動態篡改,其防御功能單一,綜合性不足。文獻[4]提出一種Android平臺代碼保護方案,該方案對加密算法的依賴性較強,若密鑰被泄露,則該保護手段能夠被輕松破解。文獻[5]提出一種利用Android本地代碼來產生自修改Dalvik字節碼的方法,該方法能夠使軟件的破解難度上升,但要是攻擊者直接破解本地代碼,那么仍然無法保證軟件的安全性。

隨著技術的發展,各種加固技術層出不窮,若僅使用一種加固技術難以抵御各種攻擊,難以保證Android應用的安全性。因此,本文考慮采用多種加固技術組合的方式對Android應用進行加固。但是加固技術多種多樣,不同Android應用的特點和加固需求各不相同,怎樣合理地選取加固技術,既能滿足APP的安全加固需求,又能最大限度保證APP的運行效率,這對開發者及使用者都具有較好的實際價值。

1 前期分析

1.1 攻擊及安全加固框架

未加固的原始APP易遭受逆向、篡改等各種攻擊,手機中用戶隱私數據(通訊錄、個人信息數據、電子郵件等)的泄露問題也更加突出[6]。在對當前APP面臨的攻擊、相應加固技術和文檔自動識別技術研究分析的基礎上,提出并實現一種自動化的、高效的安卓應用加固系統。該系統能夠自動識別APP說明文檔,確定APP加固安全需求,根據安全需求高效地組合加固技術,實現對APP的安全加固,攻擊及其安全加固示意圖如圖1所示。

1.2 攻擊及其加固技術分析

針對APP遭受的不同攻擊,分析其對應的加固技術,如表1所示。根據各加固技術的攻擊全覆蓋、安全性、效率等因素,以加固安全性高且加固后APP運行效率高為目標,對加固技術進行篩選、歸類,得到能覆蓋主要攻擊的加固技術最小集,即加殼、代碼混淆、軟件水印、調試狀態監測4種加固技術。

表1 攻擊及其對應的加固技術

加殼:將源程序嵌套到殼程序中,這樣源程序就很難被非法修改或反編譯。加殼技術能有效保護軟件版權,防止軟件被破解。

代碼混淆:通過插入與功能無關的代碼和使用晦澀名字重命名類、字段和方法,對代碼進行優化和混淆?;煜挥绊戃浖恼9δ?但是使源碼的可閱讀性大大下降,從而有效保護軟件源碼。

軟件水印:將版權保護信息和身份認證信息隱藏在軟件產品中,以鑒別出非法復制和盜用的軟件產品,達到有效保護軟件產品合法傳播的目的。軟件水印技術主要特點是秘密性、可復制性、隱藏信息量。

調試狀態檢測法:該技術原理是檢測當前APP的調試狀態是否開啟,是否有進程在監測程序的運行。其主要作用是防止動態分析、動態調試攻擊。

1.3 關鍵詞與加固技術對應關系的建立

APP的說明文檔中包含了豐富的信息,其中的關鍵詞能反映出該APP的加固需求,如:若有“支付”“購物”等關鍵詞,說明該APP與支付交易等業務相關,則該APP對安全性要求高,APP對加固強度的需求也高。本文將關鍵詞作為紐帶,連接攻擊與對應的加固技術,其關系如圖2所示。

圖2 常見攻擊、關鍵詞、加固技術對應關系

研究表明,不同種類的APP受到的攻擊及強度不同,因此加固需求也存在一定的差別[7]。首先根據APP的用途對APP進行分類,根據以往經驗,可將APP分為金融類、社交類、影音類、游戲類、信息類、其他類[8]。

使用具有公信力且加固技術已知的APP說明文檔,通過人工統計的方法,得到每種類型APP的關鍵詞與其所用的加固技術和加固強度的對應表,這也是本文在進行APP安全級別判斷及加固技術選擇時的依據。后期在使用的過程中,也將會根據新的APP說明文檔不斷完善和更新關鍵詞表。

需要設計關鍵詞提取算法,對不同種類的APP分別使用該種APP的說明文檔樣本進行訓練學習,訓練出針對不同APP種類的提取模型。在對APP進行加固時,首先使用該APP的提取模型提取出APP說明文檔中的關鍵詞,然后查詢上述關鍵詞表,最終確定APP的加固方案。

2 系統方案

系統方案如圖3所示,通過提取說明文檔中的關鍵詞,與1.3節中的關鍵詞表相匹配,進而得出APP的加固方案,本文的工作重點是APP說明文檔的關鍵詞提取。

圖3 系統方案圖

3 關鍵詞提取算法的設計

對當前流行的關鍵詞提取技術進行了分類研究,最終確定采用候選詞權重排序自學習的方法進行關鍵詞提取。首先選取APP說明文檔,進行分詞處理,之后進行關鍵詞提取算法的訓練,最終得出關鍵詞提取模型。關鍵詞提取步驟如圖4所示。

圖4 關鍵詞提取步驟

3.1 分詞預處理

經過分詞,將APP說明文檔原始樣本轉化為關鍵詞提取訓練樣本,過程如圖5所示。

圖5 分詞處理過程

3.2 關鍵詞提取

weighti=a×tfi+β×loci+γ×disi

(1)

其中,weighti表示候選詞sum的權重,α、β、γ為3個調節因子。

3.2.1 詞頻

3.2.2 區域位置

經研究發現[10],詞語出現在首段中比出現在其他段落更能反映文檔主題,摘要中的詞語比正文中的詞語對文檔主題的貢獻大,而標題中的詞語對文獻主題的貢獻最大。因此,對于區域位置loci的計算,設wi為根據分詞位置標記的位置值,本文將文本位置區別為3種情況:標題中wi設置為10.0;摘要或首個段落wi設為5.0;其他段落wi設置為3.0。若詞語在各個位置都出現,則取其最高值。在分詞處理時,就可標記詞語的位置值,然后使用規約化公式式(2)進行處理,歸約化是使數值在(0,1]范圍內,能夠消除指標之間的量綱影響,解決數據指標之間的可比性。位置值wi經過數據歸約化處理后,該指標處于同一數量級,適合進行綜合對比評價。

(2)

3.2.3 詞距

詞距disi是指文本中詞語首次出現的位置和最后一次出現的位置之間的距離。隨著文本長度的增加,局部關鍵詞可能影響文本整體關鍵詞。因此,為了濾除局部關鍵詞,將詞距引入關鍵詞的抽取算法中。根據以往的實驗分析,采用如下公式計算候選詞的詞距[11]:

(3)

其中,firi為該分詞第一次出現的位置序號,lasi為該分詞最后一次出現的位置序號,sum為經分詞后的文本中候選詞的總數。

3.2.4 調節因子的訓練

在確定了計算3個特征項值的公式后,需要考慮如何確定調節因子α、β、γ,使其更加合理地反映各個因素對權重的貢獻程度。對每種類型的APP分別進行訓練,能得出適合本類APP的調節因子。本研究采用機器學習最小均方誤差(Minimum Mean Square Error,LMS)訓練法訓練公式的調節因子[12],確定調節因子的學習過程如圖6所示。學習完成后,便得到合適的調節因子α、β、γ。

3.2.5 關鍵詞列表輸出

確定了α、β、γ后,使用式(1)進行計算而得出候選詞的權重,然后根據關鍵詞權重大小對詞語進行排序,根據文檔的具體需要選取其中的前若干個詞語作為文檔的關鍵詞即可。

3.3 加固方案的確定

當有新的APP需要進行加固時,首先確定APP的種類,用3.2節中的關鍵詞提取方法進行關鍵詞提取。之后查詢關鍵詞集,得到關鍵詞與其對應的加固技術強度。

最后分別得到每個關鍵詞對應的加固技術強度。對于同種技術有2個及以上的關鍵詞指向時,取其最大值。F(x)的值與加固技術的選擇具有直接關系,將加固強度分為3個等級(該強度等級可以根據APP類型的特點靈活調整)。加固強度與加固策略的對應關系如表2所示。

4 加固的實現

由加固技術介紹可知,本文所用的4種技術,基本覆蓋了所有的攻擊,并且互相獨立。在加固實現時,首先解壓APK,然后分別運用不同的加固技術進行加固,最后重打包成APK。下面介紹4種技術的實現方法。

調試狀態檢測法通過在源程序中嵌入檢測代碼的方法實現,該代碼會在APP啟動時對proc/xxx/status等進行檢測,預設情況下status中TracerPid值為0,若不為0,說明程序正處于被調試狀態,則立即終止程序運行。

對于加殼技術本文采用代碼碎片化加殼的方法實現[13],框架圖如圖7所示。該技術的實現主要分APK預處理階段和運行時處理階段2個階段。在APK預處理階段,主要是提取資源和處理dex文件。首先,按照dex文件的格式將其分為8個獨立的片斷,并用AES算法且使用不同的密鑰對片斷分別進行加密。而運行時處理階段完成加載工作和上下文切換工作。首先,會將dex文件片分別解密后映射入內存中,然后,為了確保正確的解釋并執行碎片化的dex文件,需要做一些修復工作,同時,資源的拷貝工作和Manifest配置工作也在此完成。接著,在分片運行中,當程序跨片時執行上下文切換工作,從而完整地運行整個dex文件。

圖7 碎片化加殼實現框架

通過加殼讓被保護dex文件在其整個生命周期中,始終以碎片化形式存在于進程內存中,這就大大降低了完整的dex文件被攻擊者竊取的可能性。

代碼混淆,通常通過打亂程序中數據的組織形式,變換程序中的數據信息,對函數名和變量名進行變換,盡可能地破壞見名知義的軟件工程設計原則等手段來保護源代碼,但不會影響程序的功能。本文采用DEX混淆重組的方式實現混淆[14],實現過程如圖8所示。

軟件水印技術,是基于大數分解難理論,對軟件加水印是將2個大數的乘積嵌入APP,不會涉及對軟件其他地方的修改,故將其放在最后一步。本文采用基于動態圖的軟件水印技術實現水印[15]。

圖8 混淆算法實現流程

5 驗證測試

運用本系統對APP加固是為了保證APP的安全性,但又不能對其本身的功能和效率造成影響,即要保證加固前后功能流程完全一致。運用本系統以金融類APP為例,從關鍵詞提取準確性、安全性和性能三方面對方案效果進行分析。

5.1 金融類APP關鍵詞與加固技術對應表的建立

用具有公信力且加固技術已知的APP說明文檔,通過人工統計,得到關鍵詞與其所用的加固技術的關聯關系,這也是本文在進行APP安全級別判斷及加固技術選擇時的依據。

由于統計出的關鍵詞數量較多,表3給出的是金融類APP部分關鍵詞與其對應的加固技術的示例。其中,0表示該關鍵詞與此加固技術不存在關聯關系,1表示該關鍵詞與此加固技術存在弱關聯關系,3表示該關鍵詞與此加固技術存在強關聯關系。

表3 金融類APP部分關鍵詞與其對應的加固技術關系

5.2 關鍵詞提取方法的驗證

以金融類APP為例進行說明,其他種類的APP與此類似。選用60份金融類APP的說明文檔,選取其中50個說明文檔作為訓練樣本,選取其中10個說明文檔作為測試樣本。使用訓練樣本,通過機器學習最小均方誤差(Least Mean Square,LMS)訓練法訓練式(1)中的調節因子,然后使用測試樣本來驗證本關鍵詞提取方法的正確性。

將訓練樣本輸入,通過學習系統訓練出一組適合金融類APP的調節因子,如表4所示。

表4 金融類APP的調節因子

然后將測試樣本輸入,使用上述調節因子,提取出關鍵詞。并將提取出的關鍵詞與其文檔已知的關鍵詞進行比較,得出提取準確率,如表5所示,平均準確率為84%。由于說明文檔篇幅過短,“值得買”APP的識別準確率偏低。

表5 關鍵詞提取準確率

關鍵詞提取完后,可通過查詢金融類APP關鍵詞與其對應的加固技術關系表,獲得每個APP的加固技術方案。通過本系統得出的加固方案與APP已知的加固方案比較而得基本相符,這也進一步驗證了本文方案的可行性。

5.3 性能分析

由于關鍵詞提取操作是一個預處理過程,因此,只需分析APP加固前后功能和運行效率的變化。運用本文設計的系統對10個APP樣本進行加固,在魅藍3s真機上進行測試,對比加固前后APP的大小、啟動時間和運行正確性,對照表如表6所示。APP大小通過直接查詢的方式獲得,APP啟動所需的時間通過adb logcat抓取APP啟動時的log而獲取。加固后APP平均增加5.07%,啟動時間增加32.78%。

表6 加固前后系統性對照

由表6中數據可以看出,在保證APP正確運行的情況下,加固后APP的大小增加在5%左右,這是Android系統可以接受的范圍;啟動時間平均增加了32%左右,這對用戶的使用體驗來說,影響不大。

6 結束語

本文設計了一種加固系統,在保證APP運行效率的基礎上,高效地實現了APP的安全加固。本文方法能夠較準確地把握APP的加固需求,綜合了各種技術的優點,相對于使用單一的技術來說,更加靈活和安全。APP加固后能夠抵御靜態分析、反編譯等各種攻擊,對軟件作者及用戶來說都具有較好的實際價值。未來可將詞語的均勻度也作為一個量化指標用在關鍵詞提取中,這樣能夠進一步提高關鍵詞提取的準確性,進而更加精確地確定APP的加固需求。

[1] 劉瀟逸,崔 翔,鄭東華,等.一種基于Android系統的手機僵尸網絡[J].計算機工程,2011,37(22):1-4.

[2] 鮑可進,彭 釗.一種擴展的Android應用權限管理模型[J].計算機工程,2012,38(18):57-64.

[3] KOVACHEVA A.Efficient Code Obfuscation for Android[C]//Proceedings of International Conference on Advances in Information Technology.Berlin,Germany:Springer,2013:104-119.

[4] 張 鵬.增強本地代碼安全性的Android軟件保護方法[J].北京郵電大學學報,2015,38(1):21-25.

[5] SCHULZ P.Android Security Analysis Challenge Tamper-ing Dalvik Byte Code During Run-time [EB/OL].(2013-04-24).https://goo.gl/07QBou.

[6] 楊廣亮,龔曉銳,姚 剛,等.一個面向Android的隱私泄露檢測系統[J].計算機工程,2012,38(23):2-6.

[7] 張 震,張 龍.Android平臺的Native層加固技術研究與實現[J].計算機與現代化,2016(10):88-91.

[8] 蘭 焱.基于應用分類的Android隱私保護模型的設計與實現[D].西安:西安電子科技大學,2014.

[9] 管瑞霞.TFLD:一種中文文本關鍵詞自動提取方法[J].機電工程,2010,27(9):123-127.

[10] 謝 晉.基于詞語跨度的中文文本關鍵詞提取及在文本分類中的應用[D].杭州:浙江工業大學,2011.

[11] 丁卓冶.面向主題的關鍵詞抽取方法研究[D].上海:復旦大學,2013.

[12] MEHER P K,SANG Y P.Critical-path Analysis and Low-complexity Implementation of the LMS Adaptive Algorithm[J].IEEE Transactions on Circuits and Systems,2014,61(7):778-788.

[13] 樊如霞,房鼎益,湯戰勇,等.一種代碼碎片化的Android應用程序防二次打包方法[J].小型微型計算機系統,2016,37(9):1970-1972.

[14] 文偉平,張 漢,曹向磊.基于Android可執行文件重組的混淆方案的設計與實現[J].信息網絡安全,2016(5):71-77.

[15] 雷 敏,楊 榆,胡若翔,等.基于動態圖的軟件水印算法[J].成都信息工程大學學報,2015,30(2):173-175.

主站蜘蛛池模板: 亚洲精品人成网线在线| 22sihu国产精品视频影视资讯| 亚洲精品不卡午夜精品| 久久精品日日躁夜夜躁欧美| 美女一级免费毛片| 亚洲精品成人片在线播放| 久久婷婷色综合老司机| 91色爱欧美精品www| 秋霞国产在线| 亚洲精品卡2卡3卡4卡5卡区| 国产网友愉拍精品视频| 欧美成一级| 69av免费视频| 青青草久久伊人| 最近最新中文字幕在线第一页| 亚洲视频免费播放| 国产鲁鲁视频在线观看| 九九视频免费在线观看| 麻豆国产原创视频在线播放| 污污网站在线观看| 一边摸一边做爽的视频17国产| 日本国产在线| 亚洲男人的天堂视频| 97人人做人人爽香蕉精品| 国产精品无码作爱| 国产欧美在线观看精品一区污| 2048国产精品原创综合在线| 中文字幕伦视频| 色成人亚洲| 中文字幕欧美日韩高清| 亚洲欧美不卡中文字幕| 日韩AV无码免费一二三区| 沈阳少妇高潮在线| 午夜欧美在线| 国产拍在线| 77777亚洲午夜久久多人| 777午夜精品电影免费看| 人人妻人人澡人人爽欧美一区| 婷婷六月激情综合一区| 无码aaa视频| 日韩中文精品亚洲第三区| 在线不卡免费视频| 青青草原国产免费av观看| 婷婷久久综合九色综合88| 天堂岛国av无码免费无禁网站| 亚洲区视频在线观看| 精品一区二区三区自慰喷水| 精品国产一区二区三区在线观看 | 国产精品亚洲一区二区在线观看| 日韩精品欧美国产在线| 白浆视频在线观看| 国产午夜看片| 日韩欧美网址| 日本高清有码人妻| 精品无码一区二区三区电影| 国产成人精品高清不卡在线| 国产高清精品在线91| 久久综合色天堂av| 午夜精品久久久久久久无码软件| 久久青草免费91线频观看不卡| 激情综合网激情综合| 亚洲欧美另类中文字幕| 久久夜夜视频| 国产不卡网| 在线人成精品免费视频| 小13箩利洗澡无码视频免费网站| 欧美亚洲综合免费精品高清在线观看| 欧美日韩中文字幕在线| 亚洲av无码久久无遮挡| 国产青榴视频| 久久精品午夜视频| 91年精品国产福利线观看久久| 一级毛片免费观看久| 国产黄色视频综合| 欧美特黄一级大黄录像| 日本三级欧美三级| 久久国产亚洲欧美日韩精品| 国产黑人在线| 久草网视频在线| 国国产a国产片免费麻豆| 欧美a在线视频| 亚洲一级毛片在线播放|