国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種應用安全性分析方法及裝置與流程

      文檔序號:12064138閱讀:190來源:國知局
      一種應用安全性分析方法及裝置與流程

      本發(fā)明涉及軟件安全領域,具體涉及一種應用安全性分析及裝置。



      背景技術:

      隨著智能手機的普及,移動應用也呈現(xiàn)出爆炸式地發(fā)展,隨之而來的便是移動應用的安全問題越來越受到大眾的關注,尤其是涉及到用戶個人信息以及私人財產的安全問題。

      因為安卓平臺的開放性和安卓應用獲取渠道的廣泛性,使得安卓平臺的智能手機所受到的安全威脅尤為嚴重,于是針對應用的安全性分析就變得尤為重要。

      發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),現(xiàn)有技術中的方式至少存在下述問題:現(xiàn)有技術一般是對應用的全部代碼進行安全性分析,分析方法一般有靜態(tài)分析、動態(tài)分析和人工分析等,這樣的分析方法工作量巨大、針對性不強、效率較低。



      技術實現(xiàn)要素:

      鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的應用安全性分析方法和相應的裝置。

      根據本發(fā)明的一個方面,提供了一種應用安全性分析方法,包括:對應用的安裝包文件進行反編譯;當根據反編譯結果確定安裝包文件中包含與預設功能相匹配的功能模塊時,提取與預設功能相匹配的功能模塊;對提取的功能模塊進行靜態(tài)分析,得到提取的功能模塊對應的靜態(tài)分析結果;以及,對提取的功能模塊進行動態(tài)分析,得到提取的功能模塊對應的動態(tài)分析結果;根據靜態(tài)分析結果以及動態(tài)分析結果確定應用是否安全。

      根據本發(fā)明的另一方面,提供了一種應用安全性分析裝置,包括:反編譯模塊,用于對應用的安裝包文件進行反編譯;提取模塊,用于當根據反編譯結果確定安裝包文件中包含與預設功能相匹配的功能模塊時,提取與預設功能相匹配的功能模塊;分析模塊,用于對提取的功能模塊進行靜態(tài)分析,得到提取的功能模塊對應的靜態(tài)分析結果;以及,對提取的功能模塊進行動態(tài)分析,得到提取的功能模塊對應的動態(tài)分析結果;確定模塊,用于根據靜態(tài)分析結果以及動態(tài)分析結果確定應用是否安全。

      根據本發(fā)明的應用安全性分析方法及裝置通過提取應用中特定的功能模塊,并對提取出的功能模塊進行針對性的分析,由此解決了現(xiàn)有技術中工作量巨大、針對性不強、效率較低的問題,取得了對應用進行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關系到用戶隱私和財產的功能模塊,從而確保這些功能模塊的安全性,更好地保護用戶的隱私和財產。與此同時,通過該方法對應用進行篩選,可以有效防止惡意應用流入市場,避免用戶遭受損失。

      上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。

      附圖說明

      通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:

      圖1是本發(fā)明實施例一提供的一種應用安全性分析方法的流程圖;

      圖2是本發(fā)明實施例二提供的一種應用安全性分析方法的流程圖;

      圖3是本發(fā)明實施例三提供的一種應用安全性分析裝置的結構示意圖;

      圖4是本發(fā)明實施例四提供的一種應用安全性分析裝置的結構示意圖;

      圖5是本發(fā)明提供的應用安全性分析方法中采用機器學習算法提取功能模塊的工作流程圖;

      圖6是本發(fā)明提供的應用安全性分析方法中API序列表的一個樣例;

      圖7是本發(fā)明提供的應用安全性分析方法中靜態(tài)分析方法的工作流程圖;

      圖8是本發(fā)明提供的應用安全性分析方法中動態(tài)分析方法的工作流程圖;

      圖9是本發(fā)明提供的采用機器學習算法提取功能模塊時應用安全性分析方法的總體流程圖;

      圖10是本發(fā)明提供的不采用機器學習算法提取功能模塊時應用安全性分析方法的總體流程圖。

      具體實施方式

      下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。

      實施例一

      圖1示出了本發(fā)明實施例一提供的一種應用安全性分析方法,該方法包括:

      步驟S110:對應用的安裝包文件進行反編譯。

      因為本發(fā)明實施例需要對應用的功能模塊進行安全性分析,而應用的安裝包文件是通過代碼編譯生成的,無法通過安裝包文件直接獲取功能模塊的代碼,所以,在進行安全性分析之前需要先將安裝包文件進行反編譯,以便獲得該應用的安裝包文件在編譯前的代碼,從而從該代碼中提取出需要進行安全性分析的功能模塊代碼。

      步驟S120:當根據反編譯結果確定安裝包文件中包含與預設功能相匹配的功能模塊時,提取與預設功能相匹配的功能模塊。

      為了提高分析效率并且使得分析過程和結果更具有針對性,本發(fā)明實施例僅針對應用的特定功能模塊進行分析,而該特定功能模塊由本領域技術人員預先設定,該預設功能包括但不限于:支付功能、登錄功能、以及密碼輸入功能。上述功能都是與用戶的隱私和財產密切相關的功能,有極大的必要進行安全性分析。

      步驟S130:對提取的功能模塊進行安全性分析。

      在本發(fā)明實施例中,為了保證安全性分析的全面性和可靠性,本方法主要通過靜態(tài)分析方法與動態(tài)分析方法相結合的方式對提取到的功能模塊進行安全性分析。在對提取的功能模塊進行靜態(tài)分析后,得到該功能模塊對應的靜態(tài)分析結果;同時,對提取的功能模塊進行動態(tài)分析,并得到該功能模塊對應的動態(tài)分析結果。其中,靜態(tài)分析方法是指在不運行代碼的方式下,通過詞法分析、語法分析、控制流分析等技術對程序代碼進行掃描,驗證代碼是否滿足規(guī)范性、安全性、可靠性、可維護性等指標的一種代碼分析技術;動態(tài)分析方法則是指在真實或者虛擬處理器中運行程序的條件下,進行計算機軟件分析的方法,該方法是在程序運行時找到程序的安全錯誤,而不是反復地離線審查代碼。

      步驟S140:根據步驟S130的分析結果確定應用是否安全。

      在本發(fā)明實施例中,最后綜合考慮靜態(tài)分析結果和動態(tài)分析結果,從而確定該應用是否安全。

      綜上所述,本發(fā)明實施例提供的應用安全性分析方法通過提取應用中特定的功能模塊,并對提取出的功能模塊進行針對性的分析,由此解決了現(xiàn)有技術中工作量巨大、針對性不強、效率較低的問題,取得了對應用進行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關系到用戶隱私和財產的功能模塊,從而確保這些功能模塊的安全性,更好地保護用戶的隱私和財產。與此同時,通過該方法對應用進行篩選,可以有效防止惡意應用流入市場,避免用戶遭受損失。

      實施例二

      圖2示出了本發(fā)明實施例二提供的一種應用安全性分析方法,該方法可以適用于移動應用(例如安卓應用或IOS應用等)或非移動應用(例如windows桌面應用等)等各種類型的應用,本發(fā)明對具體的應用類型不做限定。該方法包括:

      步驟S210:對應用的安裝包文件進行反編譯。

      因為本發(fā)明實施例需要對應用的功能模塊進行安全性分析,而應用的安裝包文件是通過代碼編譯生成的,無法通過安裝包文件直接獲取功能模塊的代碼,所以,在進行安全性分析之前需要先將安裝包文件進行反編譯,以便獲得該應用的安裝包文件在編譯前的代碼,從而從該代碼中提取出需要進行安全性分析的功能模塊代碼。

      但是,市面上的應用安裝包一般有兩種,一種是被安全廠商加固過的,另一種是沒有被加固的。未被加固的應用安裝包可以直接進行反編譯操作,被加固過的應用安裝包則不能直接進行反編譯。所以,需要先判斷應用的安裝包文件是否加固過,當判斷結果為是時,先采用自動脫殼機對該安裝包文件進行脫殼處理,然后再對脫殼處理后的安裝包文件進行反編譯;當判斷結果為否時,則采用反編譯工具直接將安裝包文件進行反編譯,從而保證了絕大部分應用的安裝包文件都能被進行功能提取與安全性分析。

      步驟S220:當根據反編譯結果確定安裝包文件中包含與預設功能相匹配的功能模塊時,提取與預設功能相匹配的功能模塊。

      為了提高分析效率并且使得分析過程和結果更具有針對性,本發(fā)明實施例僅針對應用的特定功能模塊進行分析,而該特定功能模塊由本領域技術人員預先設定,該預設功能包括但不限于:支付功能、登錄功能、以及密碼輸入功能。上述功能都是與用戶的隱私和財產密切相關的功能,有極大的必要進行安全性分析。

      在本發(fā)明實施例中,通過機器學習算法確定并提取與預設功能相匹配的功能模塊,這樣可以比較準確且快速地找出包含預設功能的應用安裝包文件并從中提取出相匹配的功能模塊。為了方便理解,圖5示出了以應用安裝包為安卓應用APK為例,通過機器學習算法確定并提取與預設功能相匹配的功能模塊的工作流程圖。機器學習的流程是首先通過對訓練樣本的學習和分析,提取出各個樣本的特征值,進而通過提取到的特征值進行模型訓練,最后建立分類模塊。在完成機器學習后,當對一個APK進行功能模塊提取時,首先需要提取該APK的特征值,進而將提取到的特征值提供給上述分類模塊,從而確定APK中所包含的與預設功能相匹配的功能模塊,最后生成預測結果并輸出指定功能的相關代碼。

      在其他實施例中,也可以不通過機器學習算法,而是根據預設的關鍵字匹配規(guī)則和/或模式匹配規(guī)則確定并提取與預設功能相匹配的功能模塊;還可以采用其他能夠達到確定并提取特定功能模塊這一目的的方法。本發(fā)明對此不作具體限定,本領域技術人員可以根據實際情況靈活設定。

      步驟S230:根據功能模塊包含的系統(tǒng)API序列確定需要進行安全性分析的功能模塊。

      步驟S230是一個可選步驟,因為在步驟S220中采用機器學習算法或根據預設的關鍵字匹配規(guī)則和/或模式匹配規(guī)則提取功能模塊的過程中,會出現(xiàn)不是指定的功能模塊卻被提取出來的情況。為了避免對這些功能模塊進行毫無意義的安全性分析,本發(fā)明實施例通過對提取出的功能模塊的系統(tǒng)API進行分析,從而過濾掉不符合預設功能的功能模塊。

      具體地,首先通過靜態(tài)分析技術確定提取出的功能模塊中包含的系統(tǒng)API序列,具體地,通過分析方法之間的調用關系,來獲取功能模塊中所有可能的運行路徑,在從這些路徑中提取系統(tǒng)API序列;然后查詢預設的API序列表,如果該功能模塊中包含的系統(tǒng)API序列未包含在API序列表中,說明該功能模塊并非預設功能對應的模塊,則丟棄該功能模塊。其中,預設的API序列表是一個映射表,用于存儲API序列與功能模塊的對應關系。在表格中,API序列與功能模塊是一對多的關系,即存在一個API序列對應多個功能模塊的情況。圖6就是該API序列表的一個樣例。

      在步驟S230的分析過程中,首先查詢提取到的API序列是否在該映射表中,若該API序列存在于該映射表中,則查詢在表格中該API序列對應的功能模塊,并將查詢結果與提取到的包含該API序列的功能模塊進行比較,若該功能模塊在查詢結果范圍內,則說明提取到的功能模塊無誤,繼續(xù)用于后續(xù)的安全性分析步驟;反之,則過濾該功能模塊,避免不必要的多余分析工作量。

      步驟S240:對步驟S230確定的功能模塊進行安全性分析。

      本發(fā)明實施例為了保證安全性分析的全面性和可靠性,本方法主要通過靜態(tài)分析方法與動態(tài)分析方法相結合的方式對提取到的功能模塊進行安全性分析。

      靜態(tài)分析主要是在不運行代碼的方式下,驗證代碼是否滿足規(guī)范性、安全性、可靠性、可維護性等指標。圖7是靜態(tài)分析方法的工作流程圖,在靜態(tài)分析過程中,首先對提取出的功能模塊進行AST(即抽象語法樹)的構建,然后采用污點分析的技術對該功能模塊的安全性進行分析,最后生成靜態(tài)分析報告。

      動態(tài)分析則是指在真實或者虛擬處理器中運行程序的條件下,找到程序的安全錯誤,而不是反復地離線審查代碼。動態(tài)分析常用的方法有插樁分析方式、插入掛鉤方式以及動態(tài)污點分析方式。圖8是以安卓應用APK為例的動態(tài)分析方法的工作流程圖,在動態(tài)分析過程中,首先對相應的APK進行插樁操作,用于識別指定的功能模塊,然后使用預先制定的沙箱對指定的功能模塊進行安全性分析,沙箱中會采用動態(tài)污點分析技術和Hook(即插入掛鉤)技術等進行多方面的檢測,最后生成動態(tài)分析報告。

      步驟S250:根據步驟S240的分析結果確定應用是否安全。

      在本發(fā)明實施例中,最后綜合考慮靜態(tài)分析結果和動態(tài)分析結果,從而確定該應用是否安全。

      為了方便進一步理解本發(fā)明實施例提供的安全性分析方法,圖9示出了采用機器學習算法提取功能模塊時本安全性分析方法的總體工作流程,圖10示出了不采用機器學習算法提取功能模塊時本安全性分析方法的總體工作流程。在上述兩幅流程圖中,各個步驟的工作流程與上述方法實施例的描述一致,在此不再贅述。

      綜上所述,本發(fā)明實施例提供的應用安全性分析方法通過提取應用中特定的功能模塊,并對提取出的功能模塊進行針對性的分析,由此解決了現(xiàn)有技術中工作量巨大、針對性不強、效率較低的問題,取得了對應用進行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關系到用戶隱私和財產的功能模塊,從而確保這些功能模塊的安全性,更好地保護用戶的隱私和財產。與此同時,通過該方法對應用進行篩選,可以有效防止惡意應用流入市場,避免用戶遭受損失。

      實施例三

      圖3示出了本發(fā)明實施例三提供的一種應用安全性分析裝置,該裝置包括:反編譯模塊310、提取模塊320、分析模塊330和確定模塊340。

      反編譯模塊310,用于對應用的安裝包文件進行反編譯。

      因為本發(fā)明實施例需要對應用的功能模塊進行安全性分析,而應用的安裝包文件是通過代碼編譯生成的,無法通過安裝包文件直接獲取功能模塊的代碼,所以,在進行安全性分析之前,反編譯模塊310需要先將安裝包文件進行反編譯,以便獲得該應用的安裝包文件在編譯前的代碼,從而從該代碼中提取出需要進行安全性分析的功能模塊代碼。

      提取模塊320,用于當根據反編譯結果確定安裝包文件中包含與預設功能相匹配的功能模塊時,提取與預設功能相匹配的功能模塊。

      為了提高分析效率并且使得分析過程和結果更具有針對性,本發(fā)明實施例僅針對應用的特定功能模塊進行分析,因此,提取模塊320需要從反編譯結果中提取出特定功能模塊,而這些特定功能由本領域技術人員預先設定,該預設功能包括但不限于:支付功能、登錄功能、以及密碼輸入功能。上述功能都是與用戶的隱私和財產密切相關的功能,有極大的必要進行安全性分析。

      分析模塊330,用于對提取的功能模塊進行安全性分析。

      在本發(fā)明實施例中,為了保證安全性分析的全面性和可靠性,分析模塊330主要通過靜態(tài)分析方法與動態(tài)分析方法相結合的方式對提取到的功能模塊進行安全性分析。具體地,對提取的功能模塊進行靜態(tài)分析,得到該功能模塊對應的靜態(tài)分析結果;同時,對提取的功能模塊進行動態(tài)分析,并得到該功能模塊對應的動態(tài)分析結果。其中,靜態(tài)分析方法是指是指在不運行代碼的方式下,通過詞法分析、語法分析、控制流分析等技術對程序代碼進行掃描,驗證代碼是否滿足規(guī)范性、安全性、可靠性、可維護性等指標的一種代碼分析技術;動態(tài)分析方法則是指在真實或者虛擬處理器中運行程序的條件下,進行計算機軟件分析的方法,該方法是在程序運行時找到程序的安全錯誤,而不是反復地離線審查代碼。

      確定模塊340,用于根據分析結果確定應用是否安全。

      在本發(fā)明實施例中,確定模塊340需要綜合考慮靜態(tài)分析結果和動態(tài)分析結果,從而確定該應用是否安全。

      上述各個模塊的具體工作原理可參照方法實施例中相應步驟的描述,此處不再贅述。

      綜上所述,本發(fā)明實施例提供的應用安全性分析裝置通過提取應用中特定的功能模塊,并對提取出的功能模塊進行針對性的分析,由此解決了現(xiàn)有技術中工作量巨大、針對性不強、效率較低的問題,取得了對應用進行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關系到用戶隱私和財產的功能模塊,從而確保這些功能模塊的安全性,更好地保護用戶的隱私和財產。與此同時,通過該方法對應用進行篩選,可以有效防止惡意應用流入市場,避免用戶遭受損失。

      實施例四

      圖4示出了本發(fā)明實施例四提供的一種應用安全性分析裝置,該裝置可以適用于移動應用(例如安卓應用或IOS應用等)或非移動應用(例如windows桌面應用等),該裝置包括:反編譯模塊410、提取模塊420、API序列模塊430、分析模塊440和確定模塊450,其中,分析模塊440進一步包括:靜態(tài)分析子模塊441和動態(tài)分析子模塊442。

      反編譯模塊410,用于對應用的安裝包文件進行反編譯。

      因為市面上的應用安裝包一般有兩種,一種是被安全廠商加固過的,另一種是沒有被加固的。未被加固的應用安裝包可以直接進行反編譯操作,被加固過的應用安裝包則不能直接進行反編譯。所以,反編譯模塊410需要先判斷應用的安裝包文件是否加固過,當判斷結果為是時,先采用自動脫殼機對該安裝包文件進行脫殼處理,然后再對脫殼處理后的安裝包文件進行反編譯;當判斷結果為否時,則采用反編譯工具直接將安裝包文件進行反編譯,從而保證了絕大部分應用的安裝包文件都能被進行功能提取與安全性分析。

      提取模塊420,用于當根據反編譯結果確定安裝包文件中包含與預設功能相匹配的功能模塊時,提取與預設功能相匹配的功能模塊。

      為了提高分析效率并且使得分析過程和結果更具有針對性,本發(fā)明實施例僅針對應用的特定功能模塊進行分析,因此,提取模塊420需要從反編譯模塊410生成的結果中提取特定功能對應的功能模塊,而這些特定功能由本領域技術人員預先設定,該預設功能包括但不限于:支付功能、登錄功能、以及密碼輸入功能。上述功能都是與用戶的隱私和財產密切相關的功能,有極大的必要進行安全性分析。

      在本發(fā)明實施例中,提取模塊420通過機器學習算法確定并提取與預設功能相匹配的功能模塊,這樣可以比較準確且快速地找出包含預設功能的應用安裝包文件并從中提取出相匹配的功能模塊。

      在其他實施例中,提取模塊420也可以不通過機器學習算法,而是根據預設的關鍵字匹配規(guī)則和/或模式匹配規(guī)則確定并提取與預設功能相匹配的功能模塊;還可以采用其他能夠達到確定并提取特定功能模塊這一目的的方法。本發(fā)明對此不作具體限定,本領域技術人員可以根據實際情況靈活設定。

      可選的,該裝置進一步包括API序列模塊430,用于根據功能模塊包含的系統(tǒng)API序列確定需要進行安全性分析的功能模塊。

      因為當提取模塊420通過機器學習算法或根據預設的關鍵字匹配規(guī)則和/或模式匹配規(guī)則提取功能模塊時,會出現(xiàn)不是指定的功能模塊卻被提取出來的情況。為了避免對這些功能模塊進行毫無意義的安全性分析,API序列模塊430通過對提取出的功能模塊的系統(tǒng)API進行分析,從而過濾掉不符合預設功能的功能模塊。具體地,API序列模塊430首先確定提取出的功能模塊中包含的系統(tǒng)API序列,具體地,通過分析方法之間的調用關系,來獲取功能模塊中所有可能的運行路徑,在從這些路徑中提取系統(tǒng)API序列;然后查詢預設的API序列表,如果該功能模塊中包含的系統(tǒng)API序列未包含在API序列表中,說明該功能模塊并非預設功能對應的模塊,則丟棄該功能模塊。其中,預設的API序列表是一個映射表,用于存儲API序列與功能模塊的對應關系。在表格中,API序列與功能模塊是一對多的關系,即存在一個API序列對應多個功能模塊的情況。圖6就是該API序列表的一個樣例。

      分析模塊440,用于對API序列模塊430確定的功能模塊進行安全性分析。

      本發(fā)明實施例為了保證安全性分析的全面性和可靠性,本裝置通過靜態(tài)分析方法與動態(tài)分析方法相結合的方式對提取到的功能模塊進行安全性分析,因此,分析模塊440進一步包括:靜態(tài)分析子模塊441和動態(tài)分析子模塊442。

      其中,靜態(tài)分析子模塊441,主要是在不運行代碼的方式下,驗證代碼是否滿足規(guī)范性、安全性、可靠性、可維護性等指標。該模塊對提取的功能模塊進行靜態(tài)分析,進而生成與提取的功能模塊對應的靜態(tài)分析結果。動態(tài)分析子模塊442,則是指在真實或者虛擬處理器中運行程序的條件下,找到程序的安全錯誤,而不是反復地離線審查代碼。動態(tài)分析常用的方法有插樁分析方式、插入掛鉤方式以及動態(tài)污點分析方式。該模塊對提取的功能模塊進行動態(tài)分析,從而生成與提取的功能模塊對應的動態(tài)分析結果。靜態(tài)分析子模塊441和動態(tài)分析子模塊442的具體工作流程與上述方法示例中的相應步驟的描述一致,在此不再贅述。

      確定模塊450,用于根據分析模塊440的分析結果確定應用是否安全。

      在本發(fā)明實施例中,確定模塊450最后將綜合考慮分析模塊440生成的靜態(tài)分析結果和動態(tài)分析結果,從而確定該應用是否安全。

      上述各個模塊的具體工作原理可參照方法實施例中相應步驟的描述,此處不再贅述。

      綜上所述,本發(fā)明實施例提供的安全性分析裝置通過提取應用中特定的功能模塊,并對提取出的功能模塊進行針對性的分析,由此解決了現(xiàn)有技術中工作量巨大、針對性不強、效率較低的問題,取得了對應用進行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關系到用戶隱私和財產的功能模塊,從而確保這些功能模塊的安全性,更好地保護用戶的隱私和財產。與此同時,通過該方法對應用進行篩選,可以有效防止惡意應用流入市場,避免用戶遭受損失。

      至此,本領域技術人員應認識到,雖然本文已詳盡示出和描述了本發(fā)明的多個示例性實施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據發(fā)明公開的內容直接確定或推導出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應該被理解和認定為覆蓋了所有這些其他變型或修改。

      本領域技術人員應當理解,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設備、方法或計算機程序產品。此外,本發(fā)明也不針對任何特定編程語言,應當明白,可以利用各種編程語言實現(xiàn)本發(fā)明描述的內容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。

      需要注意的是,盡管在上面的說明中詳細描述了應用安全性分析裝置的若干模塊,但是這種劃分僅僅是示例性的,并非是強制性的。本領域的技術人員可以理解,實際上,可以對實施例中的模塊進行自適應性地改變,將實施例中的多個模塊組合成一個模塊,也可將一個模塊劃分成多個模塊。

      此外,盡管在附圖中以特定順序描述了本發(fā)明實施操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結果??梢允÷阅承┎襟E,將多個步驟合并為一個步驟執(zhí)行,或者將一個步驟分成多個步驟執(zhí)行。

      綜上所述,應用本發(fā)明所述的應用安全性分析方法及裝置,通過提取應用中特定的功能模塊,并對提取出的功能模塊進行針對性的分析,由此解決了現(xiàn)有技術中工作量巨大、針對性不強、效率較低的問題,取得了對應用進行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關系到用戶隱私和財產的功能模塊,從而確保這些功能模塊的安全性,更好地保護用戶的隱私和財產。與此同時,通過該方法對應用進行篩選,可以有效防止惡意應用流入市場,避免用戶遭受損失。

      以上對本發(fā)明的方法和具體實施方法進行了詳細的介紹,并給出了相應的實施例。當然,除上述實施例外,本發(fā)明還可以有其它實施方式,凡采用等同替換或等效變換形成的技術方案,均落在本發(fā)明所要保護的范圍之內。

      本發(fā)明公開了:A1、一種應用安全性分析方法,其中,包括:

      對應用的安裝包文件進行反編譯;

      當根據反編譯結果確定所述安裝包文件中包含與預設功能相匹配的功能模塊時,提取所述與預設功能相匹配的功能模塊;

      對提取的功能模塊進行靜態(tài)分析,得到所述提取的功能模塊對應的靜態(tài)分析結果;以及,對所述提取的功能模塊進行動態(tài)分析,得到所述提取的功能模塊對應的動態(tài)分析結果;

      根據所述靜態(tài)分析結果以及所述動態(tài)分析結果確定所述應用是否安全。

      A2、根據A1所述的方法,其中,所述當根據反編譯結果確定所述安裝包文件中包含與預設功能相匹配的功能模塊時,提取所述與預設功能相匹配的功能模塊的步驟具體包括:通過機器學習算法確定并提取所述與預設功能相匹配的功能模塊。

      A3、根據A1所述的方法,其中,所述當根據反編譯結果確定所述安裝包文件中包含與預設功能相匹配的功能模塊時,提取所述與預設功能相匹配的功能模塊的步驟具體包括:根據預設的關鍵字匹配規(guī)則和/或模式匹配規(guī)則確定并提取所述與預設功能相匹配的功能模塊。

      A4、根據A2或A3所述的方法,其中,所述確定并提取所述與預設功能相匹配的功能模塊的步驟之后,進一步包括:

      確定提取出的功能模塊中包含的系統(tǒng)API序列;

      查詢預設的API序列表,若所述功能模塊中包含的系統(tǒng)API序列未包含在所述API序列表中,則丟棄該功能模塊;

      其中,所述API序列表中存儲了與所述預設功能相對應的系統(tǒng)API序列。

      A5、根據A1-A4任一所述的方法,其中,所述對提取的功能模塊進行靜態(tài)分析的步驟具體包括:

      構建與提取的功能模塊對應的抽象語法樹,根據所述抽象語法樹執(zhí)行靜態(tài)污點分析。

      A6、根據A1-A5任一所述的方法,其中,所述對提取的功能模塊進行動態(tài)分析具體包括以下方式中的至少一種:插樁分析方式、插入掛鉤方式以及動態(tài)污點分析方式。

      A7、根據A1-A6任一所述的方法,其中,所述對應用的安裝包文件進行反編譯的步驟具體包括:

      判斷所述應用的安裝包文件是否加固,當判斷結果為是時,對所述安裝包文件進行脫殼處理,并對脫殼處理后的安裝包文件進行反編譯。

      A8、根據A1-A7任一所述的方法,其中,所述預設功能包括以下中的至少一個:支付功能、登錄功能、以及密碼輸入功能。

      A9、根據A1-A8任一所述的方法,其中,所述應用包括:移動應用,或非移動應用。

      本發(fā)明還公開了:B10、一種應用安全性分析裝置,其中,包括:

      反編譯模塊,用于對應用的安裝包文件進行反編譯;

      提取模塊,用于當根據反編譯結果確定所述安裝包文件中包含與預設功能相匹配的功能模塊時,提取所述與預設功能相匹配的功能模塊;

      分析模塊,用于對提取的功能模塊進行靜態(tài)分析,得到所述提取的功能模塊對應的靜態(tài)分析結果;以及,對所述提取的功能模塊進行動態(tài)分析,得到所述提取的功能模塊對應的動態(tài)分析結果;

      確定模塊,用于根據所述靜態(tài)分析結果以及所述動態(tài)分析結果確定所述應用是否安全。

      B11、根據B10所述的裝置,其中,所述提取模塊具體用于:通過機器學習算法確定并提取所述與預設功能相匹配的功能模塊。

      B12、根據B10所述的裝置,其中,所述提取模塊具體用于:根據預設的關鍵字匹配規(guī)則和/或模式匹配規(guī)則確定并提取所述與預設功能相匹配的功能模塊。

      B13、根據B11或B12所述的裝置,其中,所述裝置進一步包括:

      API序列模塊,用于確定提取出的功能模塊中包含的系統(tǒng)API序列;查詢預設的API序列表,若所述功能模塊中包含的系統(tǒng)API序列未包含在所述API序列表中,則丟棄該功能模塊;

      其中,所述API序列表中存儲了與所述預設功能相對應的系統(tǒng)API序列。

      B14、根據B10-B13任一所述的裝置,其中,所述分析模塊進一步包括:靜態(tài)分析子模塊,具體用于構建與提取的功能模塊對應的抽象語法樹,根據所述抽象語法樹執(zhí)行靜態(tài)污點分析。

      B15、根據B10-B14任一所述的裝置,其中,所述分析模塊進一步包括:動態(tài)分析子模塊,具體采用以下方式中的至少一種方式進行動態(tài)分析:插樁分析方式、插入掛鉤方式以及動態(tài)污點分析方式。

      B16、根據B10-B15任一所述的裝置,其中,所述反編譯模塊具體用于判斷所述應用的安裝包文件是否加固,當判斷結果為是時,對所述安裝包文件進行脫殼處理,并對脫殼處理后的安裝包文件進行反編譯。

      B17、根據B10-B16任一所述的裝置,其中,所述預設功能包括以下中的至少一個:支付功能、登錄功能、以及密碼輸入功能。

      B18、根據B10-B17任一所述的裝置,其中,所述應用包括:移動應用,或非移動應用。

      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1