• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Android應(yīng)用差異性檢測與分析

      2016-03-16 04:39:14馬德棚
      無線互聯(lián)科技 2016年2期

      馬德棚

      摘要:在中國,第三方Android應(yīng)用商店眾多。目前Android市場缺乏有效的監(jiān)管以及Android應(yīng)用開放的分發(fā)策略,引發(fā)了諸多安全問題。文章以Android系統(tǒng)數(shù)字簽名機制為研究方向,基于靜態(tài)分析的方法,以Android應(yīng)用程序逆向工程為基礎(chǔ),以Android應(yīng)用程序的數(shù)字簽名、運行權(quán)限、Dalvik可執(zhí)行文件作為靜態(tài)分析對比檢測的依據(jù),設(shè)計檢測方法,對第三方應(yīng)用商店中的APK文件和對應(yīng)的官方版本的APK文件進行差異性檢測并對造成各種差異的原因進行了詳細的分析。

      關(guān)鍵詞:Android;靜態(tài)分析;差異性檢測;差異性分析

      Google允許開發(fā)者通過不同途徑發(fā)布應(yīng)用,開發(fā)者可以通過應(yīng)用商店、個人網(wǎng)站、企業(yè)網(wǎng)站、郵件等發(fā)布自己開發(fā)的APK文件。這意味著Android開發(fā)者可以用任何方法自由地分發(fā)其開發(fā)的應(yīng)用程序。

      Android應(yīng)用開發(fā)者可以通過幾乎所有流行的應(yīng)用商店來發(fā)布其的APK文件以拓展市場,從而帶來更大的經(jīng)濟效益。然而,更新APK文件需要更多的相應(yīng)投入,非常消耗精力和時間。即使APK文件有微小的變化,更新上傳也要在一個在特定時間內(nèi)上傳到所有的應(yīng)用商店,實際中將有一些應(yīng)用商店沒收到開發(fā)者更新的APK文件。即使所有第三方應(yīng)用程序商店不被忽略,但是應(yīng)用商店是否會偷偷修改上傳的應(yīng)用程序或者其他人是否會上傳具有相同名稱的應(yīng)用程序,這仍然是值得質(zhì)疑的。

      文章在Yi Ying Ng等人的基礎(chǔ)上提出了一種靜態(tài)檢測方法,優(yōu)化了APK文件之間差異檢測的流程,提高了檢測效率,通過一次檢測即可統(tǒng)計出各種差異的數(shù)目以及差異文件的詳情,并分析了各種差異產(chǎn)生的原因。為了進行研究,文章使用JAVA語言開發(fā)了一個自動化分析工具,當(dāng)應(yīng)用商店中的一個APK文件下載完成后,使用工具將其和其對應(yīng)的官方版本進行檢測。最后對產(chǎn)生差異的原因進行了分析。

      1 相關(guān)研究

      惡意應(yīng)用檢測。Kirin提出了一個安全框架,在安裝時檢測潛在的不安全的應(yīng)用程序并且對識別出的包含不安全策略配置的應(yīng)用進行阻止。Virus Meter通過功耗的監(jiān)控討論了惡意軟件的檢測。Jiang等人實現(xiàn)了一個名為DroidRanger的系統(tǒng)來了解現(xiàn)有的Android市場的整體健康狀況。為了檢測官方和非官方市場的惡意軟件,其提出了基于權(quán)限的含有豐富的語義信息的行為足跡。為了發(fā)現(xiàn)惡意應(yīng)用,其依靠一些啟發(fā)法來區(qū)分潛在的風(fēng)險。 應(yīng)用商店的可信性分析。Zhen Xie等人分析了蘋果應(yīng)用商店中的“共謀組”成員的特征,然后依此建立了“共謀組”成員之間的關(guān)系圖,通過圖聚類檢測出“共謀組”,然后去除“共謀組”的不真實的評分和評論后估算應(yīng)用商店的可信性。Hengshu 2hu等人開發(fā)了一個檢測系統(tǒng),通過檢測蘋果應(yīng)用商店里應(yīng)用的排名、評分和評論的異常,通過統(tǒng)計,假設(shè)進行了應(yīng)用商店的可信性分析。

      2 APK文件差異性檢測方法設(shè)計與實現(xiàn)

      靜態(tài)分析(Static Analysis)是指在不運行代碼的情況下,采用詞法分析、語法分析等各種技術(shù)手段對程序文件進行掃描從而生成程序的反匯編代碼,然后閱讀反匯編代碼來掌握程序功能。靜態(tài)分析主要包括差異分析、特征匹配、權(quán)限檢測、函數(shù)檢測、類別檢測等5項內(nèi)容。

      本文采取靜態(tài)分析的第2種方法進行差異性檢測。差異性檢測從易到難有3個階段:第I個是對APK文件的包名稱、版本代碼和SHA256校驗值(SHA256是最強的哈希函數(shù),可用于檢查文件的一致性)的檢測。第2個是對包含permission的Android Manifest.xml文件的檢測。第3個是對存放數(shù)字簽名的META-INF文件夾的檢測。這幾種方法與文獻一致。在此基礎(chǔ)上,采用代碼靜態(tài)分析的方法,對代碼差異進行詳細分析。

      檢測框架,如圖1所示。

      3 實驗結(jié)果分析

      3.1 數(shù)據(jù)收集

      選取的15個市場是360手機助手、安智市場、百度手機助手、當(dāng)樂網(wǎng)、機鋒、安卓市場、應(yīng)用寶、搜狗市場、移動應(yīng)用商場、91應(yīng)用市場、應(yīng)用匯、樂商店、木螞蟻、豌豆莢、小米應(yīng)用商店。從15個市場中收集了717個APK文件,收集時間是2015年12月9日。收集的APK文件在15個商店里的分布如表1所示。從表1可以看出并不是所有的應(yīng)用商店都能下載下來選定的50個熱門應(yīng)用。因此,可以得出結(jié)論,幾乎沒有應(yīng)用商店擁有市場上的全套Android應(yīng)用。開發(fā)人員可能并不想加入競爭對手的應(yīng)用程序商店發(fā)布其應(yīng)用程序。

      3.2 APK文件差異性檢測結(jié)果分析

      檢測結(jié)果分為九種,包括完全相同、SHA256校驗值不匹配、更低版本、更高版本、由于是錯誤的返回導(dǎo)致包名稱不匹配、SHA256校驗值不匹配但是卻沒有修改、權(quán)限文件差異、源碼差異、資源相關(guān)文件差異。非資源相關(guān)內(nèi)容的修改包括Android Manifest.xml,classes.dex和lib/文件夾下的內(nèi)容的修改,相比于其他的差異這是屬于比較嚴重的,因為它可能會影響應(yīng)用程序的正常功能。資源相關(guān)內(nèi)容的修改包括存儲在res/.assets/文件夾下的文件以及resources.arsc文件內(nèi)容的修改。11.58%的APK文件不是最新版本,用戶可能并不知道APK文件的確切版本。事實上,下載一個過時的APK文件非常危險,因為其中可能有未被識別的漏洞,而這些漏洞在高版本中已經(jīng)得到修復(fù)。應(yīng)用商店中30.96%的APK文件的版本比它們對應(yīng)的官方APK文件的版本高。這意味著應(yīng)用的更新行為不太一致,并且不可靠,即所有類型的應(yīng)用商店,包括官方網(wǎng)站的版本管理處于一個比較混亂的狀態(tài)。通過分析差異性檢測的結(jié)果,得到如下結(jié)論:

      (l)包名稱不匹配:包名稱不匹配的平均百分比為0.28%。一種情況是因為網(wǎng)站標示的問題,當(dāng)搜索一個應(yīng)用時,可能會出現(xiàn)多個名字一樣的應(yīng)用。看似沒什么差別,但如果選擇了其中的一個,不一定是預(yù)期的那個。例如,搜索春雨醫(yī)生時,官方包名為me.chunyu.ChunyuDoctor,安智市場應(yīng)用的包名為me.chunyu.ChunyuDoctor HD,是PAD適用的版本,但網(wǎng)站卻沒有注明。另外一種是可能是因為,Android應(yīng)用開發(fā)者喜歡在不同的商店對同一個APK文件創(chuàng)造不同的包名稱。例如,UC瀏覽器官方包名稱為com.UCMobile在91市場中包名稱為com.UCMobile,ac。

      (2) SHA256校驗值不匹配:在這個評估標準下,大多數(shù)(55.09%)未能通過。這表明,這些APK文件雖然和官方版本擁有相同的包名稱和版本代碼,但其和官方APK文件是不一樣的。為了找到這些APK文件和官方APK文件之間的差異,需要進行APK差異性檢測。

      (3)從APK差異性檢測分析的結(jié)果來看,395個APK文件的SHA256校驗值是不匹配的,其中只有325個APK文件在內(nèi)容上有所不同。70個文件是零修改的,它們擁有的文件數(shù)量以及每個文件的SHA-I摘要值和官方版本是完全相同的。這證明,SHA256校驗值不匹配并不一定能確定APK文件之間有差異。

      (4)為了分析SHA256校驗值不匹配卻又是零修改的原因,查看APK文件解壓后的所有目錄,發(fā)現(xiàn)出現(xiàn)這種情況時META-INF文件夾下多了一個類似channel xxx或者vendor_xxx的空文件。原來每當(dāng)發(fā)布新版本時,APK文件會被分發(fā)到各個應(yīng)用市場。為了統(tǒng)計這些市場的效果(活躍數(shù)、下單數(shù)等),需要有一種方法來唯一標識它們。通過渠道號(channel)來區(qū)分不同的市場。比如,豌豆莢市場中美團應(yīng)用的渠道號是wandoujia,360手機助手中美團應(yīng)用的渠道號為qihu360??蛻舳嗽L問API時會在請求參數(shù)中帶上渠道號,以便后臺接下來計算不同渠道的效果。在META-INF目錄內(nèi)添加空文件,可以不用重新簽名應(yīng)用。這樣,每打開一個渠道包只需復(fù)制一個APK文件,在META-INF中添加一個使用渠道號命名的空文件即可。

      4 結(jié)語

      文章以15個時下流行的Android第三方應(yīng)用商店中的50個具有較高下載率的應(yīng)用為樣本,通過常見的逆向工程手段,采用靜態(tài)分析方法,采取多個特征值檢測方法,綜合幾個特征值對比分析結(jié)果,檢測了這些應(yīng)用與其對應(yīng)的官方版本之間的差異,提高了正確性,降低了誤報率和錯報率,并分析了這些差異產(chǎn)生的原因,為進一步研究打下了基礎(chǔ)。

      平安县| 淮滨县| 洪湖市| 石林| 宜兰县| 双城市| 重庆市| 余庆县| 翁牛特旗| 枣庄市| 湖北省| 宁强县| 来安县| 平定县| 岫岩| 定结县| 罗江县| 沂水县| 南郑县| 南投市| 皋兰县| 五大连池市| 闻喜县| 孝感市| 炎陵县| 云龙县| 勃利县| 边坝县| 武山县| 玛沁县| 大石桥市| 南江县| 新晃| 六盘水市| 年辖:市辖区| 华阴市| 定兴县| 云阳县| 会理县| 临朐县| 昂仁县|