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

安卓惡意代碼及軟件檢測方法研究

2022-04-09 12:56:40王晨光宋繼紅
電腦知識與技術 2022年6期

王晨光 宋繼紅

摘要:Android系統作為現階段社會廣泛使用的移動端操作系統,雖然給社會帶來了很多便利,但是隨著Android系統上惡意軟件的滋生和傳播,也給用戶造成了巨大的安全威脅。文章從安卓的安全機制進行分析,針對各種可能對Android操作系統造成安全威脅的漏洞進行提煉和分析,通過靜態分析的方式對反編譯后的smali文件中的信息進行提煉和總結,根據組件、權限、url和所對應的敏感api進行語義分析,總結App可能對用戶產生的安全威脅。

關鍵詞:靜態分析;惡意軟件檢測;敏感API;Smali;Soot

中圖分類號:TP393? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)06-0031-03

開放科學(資源服務)標識碼(OSID):

Android是由Google公司與開放手機聯盟開發的一款基于Linux內核的操作系統,已經過多年,至今Android應用市場已形成較大的規模,例如官方的Google應用市場,第三方安卓應用市場應用寶等,雖然大量的移動應用的出現給人們的生活帶來了很多便利,但與此同時,由于其系統的開源性也導致很多惡意應用乘虛而入,破壞Android系統的安全性,根據360烽火實驗室2019年報告[1]指出,中國平均每天都會攔截手機的惡意程序攻擊259.2萬次,其中在移動金融行業,移動流量產業和移動社交領域都出現了對于經濟效益的攻擊。根據奇安信 2020年報告[2]指出,現在黑色產業鏈仍然活躍并相比2019年的攻擊方式,又多了很多新型攻擊手段,對于用戶隱私和財產安全威脅嚴重,其中山寨網貸、刷量廣告、棋牌私彩等黑色產業鏈最為突出,對于用戶的隱私信息和經濟利益會造成巨大的威脅,所以對于Android的安全性治理應該隨著現代的發展進行進一步的更新以及深入。

1 Android安全機制

Android系統在Linux原有的安全機制的基礎上結合移動端特性,設計了進程沙箱隔離機制、應用程序簽名機制和權限機制等安全機制,保證應用程序的安全性[3]。

1.1 進程沙箱隔離機制

Android應用程序移植Linux操作系統的多用戶隔離機制,讓應用程序在安裝時被賦予獨特的用戶標識(UID),并永久保持;應用程序及其運行的Dalvik虛擬機運行于獨立的Linux進程空間,與UID不同的應用程序完全隔離。雖然是隔離的,但在用戶要共享資源時,同時提供共享資源的方式,保證資源的共享順利完成。這種安全機制,在發現惡意軟件的時候,可以將惡意軟件隔離在一個單獨的空間,保證其他應用程序的安全。

1.2 應用程序簽名機制

Android應用程序的簽名對每一個應用程序都必不可少。為了標志代碼作者和監測應用程序的改變,開發者需要擁有私有密鑰,從而可以在應用程序之間安全地共享資源。不同的應用程序通過相同的簽名可以相互授權訪問API[4]。

1.3 權限機制

Android權限機制是指在應用程序成功運行時所需要的權限,在Android 6.0之后,具體權限在AndroidManifest.xml文件中<uses-permisson>標簽中通過android:protectionLevel屬性進行設置分為4類,Normal類:低風險權限,任何應用都可以申請,在安裝應用時系統默認授權;Dangerous類:高風險權限,在安裝時需要用戶確認才可以使用;Signature類:僅當申請該權限的應用程序與聲明該權限的程序使用相同的簽名時,才能賦予該權限;SignatureOrSystem類:僅當申請該權限的應用程序位于相同的Android系統鏡像中,或申請該權限的應用程序與聲明該權限的程序使用相同的簽名時,才賦予該權限。

2 Android漏洞分析

2.1 惡意軟件

Android的惡意軟件是各種各樣的,并且有很多種分類的方法。其中按照傳統進行分析,卿思漢[5]等人表示可以分為木馬類、病毒類、后門類、僵尸類、間諜軟件類、恐嚇軟件類、勒索軟件類、廣告軟件類和跟蹤軟件類等。另一種是按照惡意軟件特征進行分類,Zhou[6]等人認為可以分為惡意軟件安裝、惡意軟件運行、惡意負載、權限使用等。在其中360官方2020年報告[7]顯示指出,其中惡意軟件行為主要為惡意扣費、資源消耗、流氓行為,所以直接可以看出,惡意軟件的目的直接和經濟聯系到一起,為謀取利益而進行惡意行為。

2.2 Android敏感權限

Android 6.0 版本以后,Android官方加強了對權限的管理,其中Android的敏感權限都放在了Dangerous權限類中,在Dangerous權限的類中分為9個大類包含24個敏感權限,在Androidapp運行的時候對于安全級別為dangerous的服務進行授權時,需要用戶的授權同意,才可以獲得授權,其中還有與危險權限不同的特殊權限,SYSTEM_ALERT_WINDOW 和 WRITE_SETTINGS 特別敏感對系統進行操作,因此大多數應用不應該使用這兩個權限,如果某應用需要其中一種權限,必須在清單中聲明該權限,并且發送請求用戶授權的 intent。這樣可以通過用戶的操作,提高Android系統安全性。

2.3 第三方SDK漏洞

SDK全稱:Software Development Kit,通常是指專業公司提供的第三方服務,以jar包/so庫的形式集成到應用中,封裝了很多功能。對于開發者而言屬于黑盒,無法知曉其中是否安全。所以由于這個原因,很多第三方公司對此進行利用,導致很多漏洞的出現,包括繞過沙盒限制、訪問應用私有組件、推送惡意消息、誘導訪問釣魚網站、訪問用戶隱私數據等。

3 Android漏洞分析方法

3.1 惡意數據集收集

Android的惡意軟件檢測離不開數據集的支持,但是由于Android應用更新較快,所以數據集的收集也成為當前一個非常困難的事情,當前最常用的有兩類,一類是惡意樣本的共享網站,例如VirusShare[8]等;另一類是具有家族信息的數據集,例如Drebin[9]數據集、開源DroidBench[10]數據集等。

3.2 Androidapp介紹

Androidapp是一個被打包的Apk文件,而Apk文件同時也是一個壓縮文件,通過解壓可以看到每一個Apk文件的基本組成結構,如表1所示。

其中最為重要也是需要進行重點分析的是AndroidManifest.xml文件和classes.dex文件,AndroidManifest.xml文件中主要存儲Android四大組件,其中Activity是用戶操作的可視化頁面,它為用戶提供了一個完成操作指令的窗口。Service是用作后臺處理耗時的邏輯,Content Provider一個應用程序指定數據集提供給其他程序,實現數據共享。 BroadcastReceiver運用在應用程序之間的傳輸信息的機制,對發送出來的廣播進行過濾并響應。Androidapp的四大組件之間通過一個運行綁定機制——Intent機制將四大組件聯系起來,進行通信以及程序之間的交互。

3.3 Androidapp逆向工程

1) Apk反編譯

通過Apktool工具反編譯Apk得到以下文件結構,如表2所示。

其中最關鍵的是通過Smali文件夾中的以.smali文件結尾的文件獲取信息。在smali文件中,可以通過指定的讀取smali文件的方法提取文件的信息。

2) smali文件

Smali是用于Dalvik(Android虛擬機)的反匯編程序實現,一個smali文件相對應一個java的.class文件,如果java有內部類的格式,則寫為ClassName$InnerClassA表示,所以smali文件個數要比對應的class的文件個數數量多。

(1) 在smali文件中存放了很多和java文件所對應的指令代碼,在smali文件中的指令都是以“.”開始,對應java文件的常用指令如表3所示。

(2) smali文件中的也有屬于自己的數據類型,它的類型是和java文件中的數據類型一一對應的,例如smali文件中的“I”表示java文件中的int,具體常用的類型如表4所示。

通過對于smali文件的解析可以得到每個class的詳細信息,如下部分smali文件代碼所示:

.class public Lmiui/app/ActivityOptionsHelper;//指定包名和類名

.super Ljava/lang/Object;//父類名

.source "SourceFile"http:// 源文件名稱

.method private constructor <init>()V// 函數的名稱

.locals 0// 寄存器個數

.line 1// 行數

invoke-direct {p0}, Ljava/lang/Object;→<init>()V// 方法調用一個參數

return-void// 返回值

.end method// 結束任務

在上述代碼中可以通過前三行代碼判斷這個文件的類關系,“.method”為函數的開始,隨后可知函數的名稱,在函數中“invoke”的字符,后面也會有調用函數的名稱,可以得到調用函數的關系,在搜索到“.end method”中,代表此函數的結束,通過遍歷文件的這個方法可以提取所有Apk信息中所調用的api,經過以上步驟可以通過這種方式獲取所有靜態特征。

在得到想要的信息后,可以和Virustutal[11]提供的官方分析工具給出分析信息并比較,查看是否存在問題,從而增加得到數據的準確性。

3.4 Android靜態分析

靜態分析法通過對惡意軟件本身二進制文件、可執行文件或者通過反編譯文件提取到的應用程序組件、權限、API等靜態特征進行分析[12],對比惡意軟件與正常軟件的靜態特征的異同來發現惡意軟件。靜態檢測的優點是檢測速度快、可以上傳Apk到服務端進行檢測,缺點是無法有效識別利用Android系統漏洞和靜態檢測對抗技術的惡意應用識別[3]。

1) Soot框架

Soot[13]是Mc Gill大學的Sable研究小組所研發的一種Java優化框架,現在被世界各地的研究人員用來對Java工程和Android應用進行分析。其中最關鍵的是其中定義的五種數據結構,分別是Scene、SootClass、SootMethod、SootField、Body。這些數據結構使用面向對象技術來實現,所以可以被輕易使用。通過Soot對于Apk的靜態分析可以得到Apk的詳細信息例如權限,Android四大組件信息以及Intent的調用信息。

通過Soot框架進行的某app調用權限以及組件部分信息的情況圖,可以通得出結果,如圖1所示。

在將權限收集完成后,與官方所給出的風險提示相比較,得出所含有的風險類型以及風險詳細描述,如發現第三方所需要的權限與數據庫內容不相符,則加入數據庫中并產生提示,在后續的維護中,進行第三方權限的補充收集工作。在通過代碼獲取四大組件的部分信息如圖2所示。

通過簡單的邏輯代碼可以提取在權限文件中所屬的四大組件使用Intent-filter便簽的信息,例如<action name="miui.intent.calculator.FLOAT_WINDOW_SERVICE">,屬于service組件中使用intent-filter進行標注的組件,其他三大組件和此方法的提取方式一致,通過算法實現對intent-filter中action和category信息進行提取。

通過對Android中四大組件信息的收集,可以分析出 exported 屬性是否為私有或者公有,通過判斷是否存在intent filter 和 android:exported的設置,對于結果進行收集,通過權限的設置和上述屬性的配置,判斷在四大組件中是否存在組件暴露的風險特征,如果出現了風險,則進行組件判斷,判斷是由哪個組件的產生的風險,跟蹤組件信息,從而定位準確位置。

2) 語義分析

通過在各大應用市場的Apk收集和上文所提到的惡意軟件數據集的提取,將其中的權限作為語義分析的特征之一,其中提取第三方權限和官方權限信息1800余條并分類。再通過Psout所提供的數據集,將其中敏感的權限取出保存至txt文件中。依據所提取到的權限與已提取到的數據進行數據匹配得到敏感Api,作為語義分析的第二特征。將所有提取到的特征利用集合進行存儲,再將所得到結果的集合組合,生成最終的數據集文件,利用weka進行所得到特征的數據集分析,通過決策樹,貝葉斯分類器算法進行訓練,根據訓練所得的比率,設定閾值從而預測App是否屬于惡意軟件。

4 結論

通過對于Androidapp的逆向工程以及反編譯知識,了解到在Androidapp背后所產生的種種安全。在對于權限分析和第三方SDK的分析中,可能會因為版本的變換以及權限對應Api的改變導致分析的不正確產生偏差,所以在后續的研究中要加強對于出現問題的解決能力。隨著5G時代的到來,安全的信息化建設更是重中之重,在對于移動端的安全保證方面,還需要更加努力地繼續深入研究。

參考文獻:

[1] 2019年Android惡意軟件專題報告 - 360 核心安全技術博客[EB/OL]. [2021/12/1]. https://blogs.360.cn/post/review_android_malware_of_2019.html.

[2] 2020Android平臺安全亂象:超230萬惡意程序被截獲[EB/OL].[2021/12/1].https://baijiahao.baidu.com/s?id=169519861 2017629671.

[3] 王思遠,張仰森,曾健榮,等.Android惡意軟件檢測方法綜述[J].計算機應用與軟件,2021,38(9):1-9.

[4] 張琳.Android安全技術分析[J].電子技術與軟件工程,2016(18):211.

[5] 卿斯漢.Android安全研究進展[J].軟件學報,2016,27(1):45-71.

[6] Zhou Y J,Jiang X X.Dissectingandroid malware:characterization and evolution[J].2012 IEEE Symposium on Security andPrivacy,2012:95-109.

[7] 你的Android手機安全嗎?這份報告驚呆你!-安全資訊-360官網[EB/OL]. [2021/12/1]. https://www.360.cn/n/11558.html.

[8] VirusShare.com. https://virusshare.com/.

[9] The Drebin Dataset. https://www.sec.tu-bs.de/~danarp/drebin/.

[10] DroidBench. https://github.com/secure-software-engineering/DroidBench/.

[11] VirusTotal. https://www.virustotal.com/gui/.

[12] 蔣煦,張長勝,戴大蒙,等.Android平臺惡意應用程序靜態檢測方法[J].計算機系統應用,2016,25(4):1-7.

[13] Soot - A Java optimization framework. https://github.com/soot-oss/soot.

【通聯編輯:代影】

主站蜘蛛池模板: 国产精品久久自在自线观看| 亚洲色中色| 亚洲V日韩V无码一区二区| 欧美在线国产| 99热这里都是国产精品| 亚洲人精品亚洲人成在线| 扒开粉嫩的小缝隙喷白浆视频| 久热99这里只有精品视频6| 精品一区二区三区视频免费观看| 亚洲三级视频在线观看| 色综合婷婷| 日本在线亚洲| 综合色亚洲| 99视频精品全国免费品| 欧美国产日韩在线| 欧美午夜理伦三级在线观看| 国产精品露脸视频| 丁香五月亚洲综合在线| 美女毛片在线| 免费久久一级欧美特大黄| 香蕉eeww99国产精选播放| 色天天综合| 国产99热| 免费无码一区二区| 99在线观看免费视频| 国产特级毛片| 无码久看视频| 久久精品无码中文字幕| 日本一区二区三区精品视频| 亚洲国产欧美目韩成人综合| 婷婷色狠狠干| 老熟妇喷水一区二区三区| 国内毛片视频| 亚洲三级影院| 视频一区亚洲| 在线观看av永久| 国产一区亚洲一区| www.国产福利| 国产亚洲欧美在线中文bt天堂| 99在线视频网站| 亚洲综合欧美在线一区在线播放| 亚洲aⅴ天堂| 久无码久无码av无码| 国产69囗曝护士吞精在线视频| 美女被操91视频| 久久不卡精品| 精品国产网| 亚洲综合经典在线一区二区| 国产一级在线播放| 国产免费久久精品99re丫丫一| 97se亚洲综合| 久久久精品无码一二三区| 人与鲁专区| 国产欧美日韩资源在线观看| 免费a级毛片18以上观看精品| 成人一区在线| 国产h视频免费观看| 亚洲黄色激情网站| 呦视频在线一区二区三区| 久久亚洲日本不卡一区二区| 国产中文一区二区苍井空| 婷婷午夜天| 亚洲国产精品久久久久秋霞影院| 国产精品亚洲天堂| 亚洲国产精品久久久久秋霞影院| 无码人妻免费| 久久公开视频| 激情综合五月网| 日韩精品欧美国产在线| 国产成人亚洲精品无码电影| 中文字幕久久亚洲一区| 在线看片国产| 亚洲三级片在线看| 中国特黄美女一级视频| 欧美A级V片在线观看| 丝袜国产一区| 538国产视频| 亚洲日本韩在线观看| 日韩福利在线观看| 一本大道在线一本久道| 欧美成人综合视频| 精品国产一区91在线|