新四季網

Android平臺惡意軟體自動檢測方法

2023-05-20 12:21:06 3

Android平臺惡意軟體自動檢測方法
【專利摘要】本發明提供一種Android平臺惡意軟體自動檢測方法,該Android平臺惡意軟體自動檢測方法包括:S1.設定Android平臺的敏感API數據集;S2.對待檢測的應用程式進行逆向代碼還原,得到該應用程式的逆向代碼;S3.根據該敏感API數據集提取該逆向代碼中的敏感API和包含網絡地址信息的字符串;S4.根據該逆向代碼繪製函數調用關係有向圖,並根據該函數調用關係圖、該提取的敏感API和字符串判斷該應用程式是否為惡意軟體。本發明能夠自動的判斷應用程式是否為惡意軟體,並提高了Android平臺下惡意軟體的檢測效率。
【專利說明】Android平臺惡思軟體自動檢測方法
【技術領域】
[0001]本發明涉及計算機安全領域,尤其涉及一種Android平臺惡意軟體自動檢測方法。
【背景技術】
[0002]隨著中國移動網際網路爆發式的增長,行動網路開始從3G向4G升級,行動裝置用戶數超越桌上型電腦數,移動應用數量成倍增長,整個移動網際網路行業呈現蓬勃發展態勢。
[0003]移動智能終端指的是具有獨立作業系統,可以由用戶自行安裝軟體、遊戲等第三方應用程式,能夠使用移動網際網路訪問網絡的手機及平板電腦。目前,基於Android作業系統的移動智能終端呈現出蓬勃發展的狀態,已經佔領超過一半的用戶市場。
[0004]相比於早期的非智慧型手機,移動智能終端最大的特點是可以由用戶自行安裝APP以便擴展其功能和業務。其中,APP (Application),即網際網路應用與服務,就是可以在手機或平板電腦終端運行的軟體。類似與普通PC電腦上的軟體,安裝在移動智能終端桌面後,點擊一下桌面的軟體圖標即可進入查看內容,不需要登陸瀏覽器訪問網址這些複雜的步驟。
[0005]高速網絡技術的飛速發展使得網際網路已經成為全球信息發布、傳播和交流的主要平臺之一,而移動智慧型手機的普及則進一步極大的改善了人們信息獲取的方式,但是同時也給惡意軟體的傳播提供了土壤。目前,移動智能終端下的惡意軟體主要以用戶隱私竊取為核心目標,竊取內容包括用戶的通訊錄、簡訊、電話記錄、照片、日曆等用戶私人信息,竊取方式主要採用後臺隱秘上傳方法,在不驚動手機用戶的同時將用戶的個人隱私信息進行竊取,嚴重危害了用戶的個人信息安全。
[0006]但是,不同於普通PC終端上的惡意軟體分析方法,由於作業系統、編譯環境、硬體設備以及系統指令等方面的巨大差異,對移動智能終端下的惡意軟體的檢測還屬於難題,不能簡單的直接使用PC端下的惡意軟體分析和檢測技術以及思路。
[0007]目前,對Android下惡意軟體的分析主要依靠人工的方式進行,通過對惡意軟體進行逆向代碼還原後,採用人工的方式查找惡意代碼,分析惡意行為,提取檢測特徵。這種方法人工參與程度較大,並且所消耗時間較多,而且通常會嚴重依賴於分析人員的個人能力,無法做到快速、高效、全面的分析。因此,自動化的對Android平臺下的惡意軟體進行分析,儘可能的提取其中的惡意行為,並對軟體的惡意程度進行初步判斷迫在眉睫。

【發明內容】

[0008](一)要解決的技術問題
[0009]本發明要解決的技術問題是:提供一種Android平臺惡意軟體自動檢測方法,能夠自動檢測應用程式是否為惡意軟體。
[0010](二)技術方案
[0011]為解決上述技術問題,本發明提供了一種Android平臺惡意軟體自動檢測方法,包括:
[0012]S1.設定Android平臺的敏感API數據集;
[0013]S2.對待檢測的應用程式進行逆向代碼還原,得到所述應用程式的逆向代碼;
[0014]S3.根據所述敏感API數據集提取所述逆向代碼中的敏感API和包含網絡地址信息的字符串;
[0015]S4.根據所述逆向代碼繪製函數調用關係有向圖,並根據所述函數調用關係圖、所述提取的敏感API和字符串判斷所述應用程式是否為惡意軟體。
[0016]進一步地,步驟SI包括:
[0017]Sll.根據Android開發工具包查找與惡意軟體相關的敏感API ;
[0018]S12.將Sll獲取的敏感API按照其功能類別進行整理和分類,得到敏感API數據集。
[0019]進一步地,步驟Sll中與惡意軟體相關的敏感API包括Android開發工具包中跟電話、簡訊、照片、攝像頭、GPRS、通訊錄相關的API函數及所屬類。
[0020]進一步地,所述敏感API數據集包括敏感API函數名、敏感API參數、敏感API類名。
[0021]進一步地,步驟S2包括:
[0022]S21.利用解壓縮工具將待檢測應用程式安裝包進行解壓縮,獲得dex文件;
[0023]S22.將S21步驟解壓縮獲得的dex文件轉換為Java語言的字節碼格式,並生成jar文件;
[0024]S23.利用解壓縮工具將S22步驟所獲得的jar文件進行解壓縮,然後將解壓縮獲得每個class文件反編譯成java格式文件。
[0025]進一步地,步驟S3包括:
[0026]S31.根據步驟SI所設定的敏感API數據集,採用字符串匹配算法對在步驟S2中所獲得的java格式文件進行逐行匹配,判斷是否調用了敏感API函數,如果調用,則進一步記錄調用的敏感API函數的所屬自建函數名和所屬文件名;匹配結束後,如果存在敏感API函數調用情況,則執行步驟S32,否則結束;
[0027]S32.利用正則匹配算法,對在步驟S2中所獲得的java格式文件進行逐行匹配,判斷所述java格式文件中是否包含網絡地址信息的字符串,如果包含,則進一步記錄包含所述字符串的所屬自建函數名和所屬文件名;匹配結束後,如果存在內置網絡地址信息情況,則執行步驟S4,否則結束。
[0028]進一步地,步驟S4包括:
[0029]S41.分析S2步驟中所得到的java格式的逆向代碼,並繪製函數調用關係有向圖;
[0030]S42.在所述函數調用關係有向圖中標註步驟S3中記錄的敏感API函數的所屬自建函數以及包含所述字符串的所屬自建函數;
[0031]S43.在所述標註後的函數調用關係有向圖中,以任意一個包含敏感API函數的所屬自建函數為起點,以任意一個包含所述字符串的所屬自建函數為終點,以函數調用關係有向圖中的方向為路徑,追蹤並判斷起點與終點之間是否存在調用關係,若是,則判斷所述應用程式為惡意軟體,否則,則判定所述應用程式為正常軟體。[0032](三)有益效果
[0033]本發明首先從Android開發工具包中找尋所有涉及隱私竊取行為的敏感API,並整理成數據集;之後,對待檢測的惡意軟體進行逆向代碼還原,反編譯出java代碼;然後,利用敏感API數據集在代碼中搜索使用了敏感API的函數名,同時,搜索內置URL/IP字符串的自建函數名;將待檢測軟體的函數調用關係繪製成調用關係有向圖,並在其中標註出全部使用敏感API的自建函數以及包含內置URL/IP的自建函數,最後,判斷兩類自建函數之間是否存在路徑,即是否存在調用關係,如果存在任意一條路徑,則判定該應用程式為惡意軟體,從而實現了自動的判斷應用程式是否為惡意軟體,並提高了 Android平臺下惡意軟體的檢測效率。
【專利附圖】

【附圖說明】
[0034]圖1是本發明實施方式提供的一種Android平臺惡意軟體自動檢測方法的流程圖;
[0035]圖2是本發明實施方式提供的Android平臺惡意軟體自動檢測方法的示意圖。【具體實施方式】
[0036]下面結合附圖和實施例,對本發明的【具體實施方式】作進一步詳細描述。以下實施例用於說明本發明,但不用來限制本發明的範圍。
[0037]圖1是本發明實施方式提供的一種Android平臺惡意軟體自動檢測方法的流程圖,包括:
[0038]步驟S1.設定 Android 平臺的敏感 API (Application Programming Interface,應用程式編程接口)數據集;
[0039]其中,該敏感API數據集可以包括敏感API函數名、敏感API參數、敏感API類名。
[0040]步驟S2.對待檢測的應用程式進行逆向代碼還原,得到所述應用程式的逆向代碼;
[0041]步驟S3.根據所述敏感API數據集提取所述逆向代碼中的敏感API和包含網絡地址信息的字符串,該包括網絡地址信息的字符串可以為URL (UniformResourceLocator,統一資源定位符)字符串,也可以為IP (Internet Protocol,網絡之間互連的協議)字符串;
[0042]步驟S4.根據所述逆向代碼繪製函數調用關係有向圖,並根據所述函數調用關係圖、所述提取的敏感API和字符串判斷所述應用程式是否為惡意軟體。
[0043]其中,步驟SI進一步包括:
[0044]Sll.根據Android開發工具包查找與惡意軟體相關的敏感API ;
[0045]具體地,與惡意軟體相關的敏感API可以包括Android開發工具包中跟電話、簡訊、照片、攝像頭、GPRS (General Packet Radio Service,通用分組無線服務技術)、通訊錄相關的API函數及所屬類。例如,通訊錄類別的敏感API可以包括:android, costent.ContentResolver、android, database.Cursor、android, provider.ContactsContract、getContentResolver、coursor.getCoIumnIndexOrThrowΛ insert、ContentValue、updata 和 delete 等,簡訊類的敏感 API 可以包括:An droid, telephony.SmsManageλ SmsManagerΛSmsManager.getDefault、sendTextMessage、sendDataMessage 和sendMultipartTextMessage 等。
[0046]S12.將Sll獲取的敏感API按照其功能類別進行整理和分類,得到敏感API數據集。具體地,敏感API涉及隱私的信息內容主要有:網絡信息、設備信息、簡訊、通訊錄、GPRS信息、來電記錄、照片、瀏覽器歷史信息和筆記本信息,函數內容主要包括HTTP通信、數據加解密和線程。
[0047]其中,步驟S2進一步包括:
[0048]S21.利用解壓縮工具將待檢測應用程式安裝包進行解壓縮,獲得dex文件,具體地,利用解壓縮工具將待檢測的Android平臺的應用程式APK安裝包進行解壓縮,獲得classes, dex 文件;
[0049]S22.將S21步驟解壓縮獲得的dex文件轉換為Java語言的字節碼格式,並生成jar文件,具體地,將S21步驟解壓縮獲得的classes, dex文件從Dalvik虛擬機的字節碼格式轉換成Java語言的字節碼格式,並生成classes_dex2jar.jar文件;
[0050]S23.利用解壓縮工具將S22步驟所獲得的jar文件進行解壓縮,然後將解壓縮獲得每個class文件反編譯成java格式文件,具體地,利用解壓縮工具將S22步驟所獲得的classes_dex2jar.jar文件進行解壓縮,然後將解壓縮獲得每個class文件反編譯成java格式文件。
[0051]其中,步驟S3進一步包括:
[0052]S31.根據步驟SI所設定的敏感API數據集,採用字符串匹配算法對在步驟S2中所獲得的java格式文件進行逐行匹配,判斷是否調用了敏感API函數,如果調用,則進一步記錄調用的敏感API函數的所屬自建函數名和所屬文件名;匹配結束後,如果存在敏感API函數調用情況,則執行步驟S32,否則結束。例如,提取的電話類的敏感API為TelephonyManager_>getSystemService ("phone"),簡訊類的敏感 API 為 1calSmsManager.sendTextMessage,通訊錄類的敏感 API 具體包括有 getColumnlndex (〃display_name〃)以及 getColumnlndex(〃has_phone_number〃)。
[0053]S32.利用正則匹配算法,對在步驟S2中所獲得的java格式文件進行逐行匹配,判斷所述java格式文件中是否包含網絡地址信息的字符串,如果包含,則進一步記錄包含所述字符串的所屬自建函數名和所屬文件名;匹配結束後,如果存在內置網絡地址信息情況,則執行步驟S4,否則結束;
[0054]具體地,利用正則匹配算法對在步驟S2中所獲得的所有java文件進行逐行匹配,判斷文件中是否包含URL/IP字符串,如果包含,則進一步記錄包含URL/IP字符串的所屬自建函數名和所屬文件名,之後執行步驟S4,例如,提取的URL為:http://androids-market.ru/unregister/。
[0055]其中,步驟S4進一步包括:
[0056]S41.分析S2步驟中所得到的java格式的逆向代碼,並繪製函數調用關係有向圖;
[0057]S42.在所述函數調用關係有向圖中標註步驟S3中記錄的敏感API函數的所屬自建函數以及包含所述字符串的所屬自建函數;具體地,可以將函數按照其不同功能標註為不同的顏色,系統函數標註為綠色,包含敏感API的自建函數標註為藍色,不包含敏感API的自建函數標註為黃色,包含URL/IP的自建函數標註為紅色。[0058]S43.在所述標註後的函數調用關係有向圖中,以任意一個包含敏感API函數的所屬自建函數為起點,以任意一個包含所述字符串的所屬自建函數為終點,以函數調用關係有向圖中的方向為路徑,追蹤並判斷起點與終點之間是否存在調用關係,若是,則判斷所述應用程式為惡意軟體,否則,則判定所述應用程式為正常軟體。
[0059]具體地,以任意一個包含敏感API的自建函數為起點,以任意一個包含URL/IP的自建函數為終點,以函數調用關係有向圖中的方向為路徑,追蹤並判斷起點與終點之間是否存在調用關係,若存在一條從某一調用敏感API的自建函數到包含URL/IP的自建函數的路徑,則判斷該應用程式為惡意軟體。
[0060]參見圖2,本發明提供的Android平臺惡意軟體自動檢測方法,首先根據Android平臺下的惡意軟體的常見隱私竊取行為,分析其竊取的信息內容,並從Android開發工具包中找尋所有涉及隱私竊取行為的敏感API,並整理成數據集;之後,通過反編譯引擎對待檢測的惡意軟體進行逆向代碼還原,反編譯出java代碼;然後,通過敏感API分析引擎利用敏感API數據集在代碼中搜索使用了敏感API的自建函數名,同時,通過控制&命令伺服器分析引擎搜索內置URL/IP字符串的自建函數名;並通過圖分析引擎將待檢測軟體的函數調用關係繪製成調用關係有向圖,並在其中標註出全部使用敏感API的自建函數以及包含內置URL/IP的自建函數,最後,判斷兩類自建函數之間是否存在路徑,即是否存在調用關係,如果存在任意一條路徑,則證明此應用程式為惡意軟體,從而能夠自動的判斷應用程式是否為惡意軟體,進而提高了 Android平臺下惡意軟體的分析效率。
[0061]本發明實施方式提供的Android平臺惡意軟體自動檢測方法採用圖論理論自動的判斷Android平臺下的惡意軟體,改進了 Android惡意軟體檢測的方法,降低了人工參與程度,從而提高了 Android平臺下惡意軟體的檢測效率,能夠為普通用戶檢測其使用的Android平臺下的應用程式是否為惡意軟體,還可以提供豐富的運行信息給惡意軟體分析人員,方便其進行更深層次的分析。
[0062]以上實施方式僅用於說明本發明,而並非對本發明的限制,有關【技術領域】的普通技術人員,在不脫離本發明的精神和範圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬於本發明的範疇,本發明的專利保護範圍應由權利要求限定。
【權利要求】
1.一種Android平臺惡意軟體自動檢測方法,其特徵在於,包括: S1.設定Android平臺的敏感API數據集; S2.對待檢測的應用程式進行逆向代碼還原,得到所述應用程式的逆向代碼; S3.根據所述敏感API數據集提取所述逆向代碼中的敏感API和包含網絡地址信息的字符串; S4.根據所述逆向代碼繪製函數調用關係有向圖,並根據所述函數調用關係圖、所述提取的敏感API和字符串判斷所述應用程式是否為惡意軟體。
2.根據權利要求1所述的Android平臺惡意軟體自動檢測方法,其特徵在於,步驟SI包括: S11.根據Android開發工具包查找與惡意軟體相關的敏感API; S12.將Sll獲取的敏感API按照其功能類別進行整理和分類,得到敏感API數據集。
3.根據權利要求2所述的Android平臺惡意軟體自動檢測方法,其特徵在於,步驟Sll中與惡意軟體相關的敏感API包括Android開發工具包中跟電話、簡訊、照片、攝像頭、GPRS、通訊錄相關的API函數及所屬類。
4.根據權利要求1所述的Android平臺惡意軟體自動檢測方法,其特徵在於,所述敏感API數據集包括敏感API函數名、敏感API參數、敏感API類名。
5.根據權利要求4所述的Android平臺惡意軟體自動檢測方法,其特徵在於,步驟S2包括: S21.利用解壓縮工具將待檢測應用程式安裝包進行解壓縮,獲得dex文件; S22.將S21步驟解壓縮獲得的dex文件轉換為Java語言的字節碼格式,並生成jar文件; S23.利用解壓縮工具將S22步驟所獲得的jar文件進行解壓縮,然後將解壓縮獲得每個class文件反編譯成java格式文件。
6.根據權利要求5所述的Android平臺惡意軟體自動檢測方法,其特徵在於,步驟S3包括: S31.根據步驟SI所設定的敏感API數據集,採用字符串匹配算法對在步驟S2中所獲得的java格式文件進行逐行匹配,判斷是否調用了敏感API函數,如果調用,則進一步記錄調用的敏感API函數的所屬自建函數名和所屬文件名;匹配結束後,如果存在敏感API函數調用情況,則執行步驟S32,否則結束; S32.利用正則匹配算法,對在步驟S2中所獲得的java格式文件進行逐行匹配,判斷所述java格式文件中是否包含網絡地址信息的字符串,如果包含,則進一步記錄包含所述字符串的所屬自建函數名和所屬文件名;匹配結束後,如果存在內置網絡地址信息情況,則執行步驟S4,否則結束。
7. 根據權利要求6所述的Android平臺惡意軟體自動檢測方法,其特徵在於,步驟S4包括: S41.分析S2步驟中所得到的java格式的逆向代碼,並繪製函數調用關係有向圖; S42.在所述函數調用關係有向圖中標註步驟S3中記錄的敏感API函數的所屬自建函數以及包含所述字符串的所屬自建函數; S43.在所述標註後的函數調用關係有向圖中,以任意一個包含敏感API函數的所屬自建函數為起點,以任意一個包含所述字符串的所屬自建函數為終點,以函數調用關係有向圖中的方向為路徑,追蹤並判斷起點與終點之間是否存在調用關係,若是,則判斷所述應用程式為惡意軟體,否則,則.判定所述應用程式為正常軟體。
【文檔編號】G06F21/56GK103473509SQ201310462544
【公開日】2013年12月25日 申請日期:2013年9月30日 優先權日:2013年9月30日
【發明者】薛一波, 李城龍, 張洛什, 於賀威, 張慧, 王秀文, 李靜, 曹首峰, 王大偉, 賀龍濤, 賀欣 申請人:清華大學, 國家計算機網絡與信息安全管理中心

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀