欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種Android系統(tǒng)內(nèi)置應用漏洞挖掘方法與流程

文檔序號:11156200閱讀:839來源:國知局
一種Android系統(tǒng)內(nèi)置應用漏洞挖掘方法與制造工藝

本發(fā)明屬于信息技術領域,具體涉及一種Android系統(tǒng)內(nèi)置應用漏洞挖掘方法。實現(xiàn)快速發(fā)現(xiàn)所開發(fā)的APK的安全性,對維護Android系統(tǒng)穩(wěn)定和業(yè)務安全具有重要的意義。



背景技術:

安卓目前已經(jīng)在全世界的手機操作系統(tǒng)的市場上,占有統(tǒng)治地位。安卓系統(tǒng)在智能手機的安裝率約為87%,而且還在繼續(xù)增長。安卓在不斷瘋漲的過程中面臨著一個嚴峻的問題——安全性,這個問題有可能會成為阻礙安卓發(fā)展的首要因素。國內(nèi)外多個安全組織及個人從事漏洞研究。兩個比較權威漏洞發(fā)布機構是CVE(Common Vulnerabilities and Exposures)和CERT(Computer Emergency Response Team)。此外國外eEye、LSD等組織也對最新的漏洞進行及時跟蹤分析,并給出相應的漏洞解決方案。綠盟科技、啟明星辰等單位是國內(nèi)安全研究組織的代表。近幾年,IEEE S&P、CCS、Usenix Security、NDSS、ESORICS等10個頂級安全會議的發(fā)表論文情況來看,超過百篇與Android安全相關,而在Android漏洞挖掘中強調(diào)了對海量APP的檢測,對擴展性和精確要求較高,所以APP漏洞挖掘是Android漏洞挖掘的一個重要部分。APP(應用程序,Application的縮寫)一般指手機軟件,APK文件是Android系統(tǒng)上應用軟件的主要表現(xiàn)形式。Android應用程序包含文件(Application Package File)是一種Android操作系統(tǒng)上的應用程序安裝文件格式。APK文件本質(zhì)為ZIP格式,但后綴被修改為APK,通過使用UnZip解壓,可以獲得META-INF文件夾、res文件夾、AndroidManifest.xml文件、classes.dex文件、resources.arsc文件、lib文件夾等。Android系統(tǒng)內(nèi)置應用程序的安全性在一定程度上決定了Android系統(tǒng)安全和系統(tǒng)業(yè)務的安全。



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

本發(fā)明公開了一種Android系統(tǒng)內(nèi)置應用漏洞挖掘方法,使用了動態(tài)分析和靜態(tài)分析混淆的漏洞挖掘技術,包括:

一種Android系統(tǒng)內(nèi)置應用漏洞挖掘方法,其特征在于:

S1,建立一個Android漏洞庫;將漏洞分為以下8類:拒絕服務漏洞,跨站腳本攻擊漏洞,輸入驗證漏洞,緩沖區(qū)溢出漏洞,敏感信息泄露漏洞,組件/權限暴露漏洞,SQL注入漏洞,其他;詳細分析每一類的漏洞的特點,為每一類的漏洞整理出該類漏洞規(guī)則,并根據(jù)每類漏洞的威脅度附以不同的權值;

S2,將目標APK文件進行反編譯,得到包括Manifest文件、資源文件和代碼文件的文件;將反編譯后的Manifest文件和資源文件進行解析,獲取應用的權限申請、組件聲明和類函數(shù)調(diào)用等信息;再對相應的可執(zhí)行文件進行反匯編,對反匯編代碼進行切片并進行匯集;

S3,將匯集后的反匯編代碼通過語法詞法分析、危險API分析、控制流、數(shù)據(jù)流分析,得到目標APK文件的行為特性,生成特征數(shù)據(jù);對反編譯后得到的smali代碼進行詞法分析和語法分析,獲取危險函數(shù)調(diào)用信息;

S4,引入IDA工具對.so文件靜態(tài)分析;通過一段python代碼,實現(xiàn)從指定APP中提取所有的.so文件;將提取的.so文件導入IDA,反匯編.so文件得到二進制代碼,通過二進制代碼中靜態(tài)分析的地址和.so文件在內(nèi)存中的基址來定位目標函數(shù);將二進制代碼轉(zhuǎn)換為C語言代碼,利用IDA的功能模塊Graph View查看目標APK的設計流程;

S5,漏洞匹配;針對不同種類的Android漏洞,通過編碼構建相應的漏洞檢測器,對靜態(tài)分析得到的特征數(shù)據(jù)進行匹配檢測,判斷應用是否存在相應的漏洞;

S6,將S5中得到的漏洞類別以及對應的權值和S4中.so文件分析結(jié)果,對目標APK進行整體風險評估,生成靜態(tài)分析報告;

S7,在開始動態(tài)檢測前,獲取指定APK文件靜態(tài)報告中的威脅,監(jiān)測應用程序API函數(shù)的調(diào)用;

S8,引入IDA對.so文件動態(tài)分析;使用IDA工具打開.so文件,找到指定的native層函數(shù);結(jié)合S4中APK的設計流程和IDA中的快捷鍵,得到函數(shù)的執(zhí)行流程;調(diào)試.so文件,將DA目錄中的android_server拷貝到設備的指定目錄下,修改android_server的運行權限,用Root身份運行android_server;使用adb forward進行端口轉(zhuǎn)發(fā),讓遠程調(diào)試端IDA可以連接到被調(diào)試端;使用IDA連接上轉(zhuǎn)發(fā)的端口,查看設備的所有進程,找到需要調(diào)試的進程;再次打開.so文件,找到需要調(diào)試的函數(shù)的相對地址,然后在調(diào)試頁面使用Ctrl+S找到.so文件的基地址,相加之后得到絕對地址,使用G鍵,跳轉(zhuǎn)到函數(shù)的地址處,下好斷點后運行;觸發(fā)native層的函數(shù),利用單步調(diào)試,查看寄存器中的值;

S9,過集成Drozer動態(tài)分析框架,在命令行中輸入各種測試命令,確定攻擊面;針對可攻擊的地方,運用滲透手段進行測試;

S10,結(jié)合靜態(tài)檢測和動態(tài)檢測結(jié)果,生成檢測報告。

進一步,步驟S3及S4之間還能存在以下步驟:

S31,生成目標APK調(diào)用可視化文件,具體到目標APK中類方法調(diào)用關系,將表示其調(diào)用關系的類調(diào)用圖采用YiFan Hu算法進行可視化美化;并在第三方軟件Gephi中Filters選項設置相應的Class_name,對實現(xiàn)可視化圖形進行篩選;在DataLabortatory對Nodes節(jié)點篩選包含指定類和方法調(diào)用;最終以gexf格式存儲;

S32,分析應用組件的生命周期函數(shù)和事件回調(diào)函數(shù);根據(jù)類調(diào)用圖模擬應用中函數(shù)調(diào)用的情況,得到控制流圖。

本發(fā)明綜合靜態(tài)檢測和動態(tài)檢測結(jié)果,生成檢測報告。報告中按照威脅級進行排列,有助于測試人員優(yōu)先處理威脅程度高的漏洞。

附圖說明

圖1為基于對APK文件反編譯進行靜態(tài)漏洞挖掘過程;

圖2為基于Drozer框架的動態(tài)漏洞挖掘過程;

圖3為整體方法框架;

具體實施方式

基于對APK文件反編譯進行漏洞挖掘

S1,建立一個Android漏洞庫;分析每一類的漏洞的特點,為每一類的漏洞整理出該類漏洞規(guī)則,并根據(jù)每類漏洞的威脅度附以不同的權值;

S2,將目標APK文件進行反編譯,得到包括Manifest文件、資源文件和代碼文件的文件;將反編譯后的Manifest文件和資源文件進行解析,獲取應用的權限申請、組件聲明和類函數(shù)調(diào)用等信息;再對相應的可執(zhí)行文件進行反匯編,對反匯編代碼進行切片并進行匯集;

S3,將匯集后的反匯編代碼通過語法詞法分析、危險API分析、控制流、數(shù)據(jù)流分析,得到目標APK文件的行為特性,生成特征數(shù)據(jù);對反編譯后得到的smali代碼進行詞法分析和語法分析,獲取危險函數(shù)調(diào)用信息;

S31,生成目標APK調(diào)用可視化文件,具體到目標APK中類方法調(diào)用關系,將表示其調(diào)用關系的類調(diào)用圖采用YiFan Hu算法進行可視化美化。并在第三方軟件Gephi中Filters選項設置相應的Class_name,對實現(xiàn)可視化圖形進行篩選;在DataLabortatory對Nodes節(jié)點篩選包含指定類和方法調(diào)用;最終以gexf格式存儲。

S32,分析應用組件的生命周期函數(shù)和事件回調(diào)函數(shù)。根據(jù)類調(diào)用圖模擬應用中函數(shù)調(diào)用的情況,得到控制流圖。

S4,引入IDA工具對.so文件靜態(tài)分析。通過一段python代碼,實現(xiàn)從指定APP中提取所有的.so文件;將提取的.so文件導入IDA,反匯編.so文件得到二進制代碼,通過二進制代碼中靜態(tài)分析的地址和.so文件在內(nèi)存中的基址來定位目標函數(shù);將二進制代碼轉(zhuǎn)換為C語言代碼,利用IDA的功能模塊Graph View查看目標APK的設計流程;

S5,漏洞匹配。針對不同種類的Android漏洞,通過編碼構建相應的漏洞檢測器,對S3步驟的特征數(shù)據(jù)(例如:散列值、函數(shù)流程以及相關配置文件屬性值)與S1中的漏洞規(guī)則匹配,判斷目標APK文件存在的漏洞。將判斷的漏洞類別結(jié)果與S1中不同類別漏洞威脅度結(jié)合,得到最終漏洞權值;

S6,將S5中得到的漏洞類別以及對應的權值和S4中.so文件分析結(jié)果,對目標APK進行整體風險評估,生成靜態(tài)分析報告。

APK動態(tài)檢測

S7,在開始動態(tài)檢測前,獲取指定APK文件靜態(tài)報告中的威脅,監(jiān)測應用程序API函數(shù)的調(diào)用;

S8,引入IDA對.so文件動態(tài)分析。使用IDA工具打開.so文件,找到指定的native層函數(shù);結(jié)合S4中APK的設計流程和IDA中的快捷鍵,得到函數(shù)的執(zhí)行流程;調(diào)試.so文件,將DA目錄中的android_server拷貝到設備的指定目錄下,修改android_server的運行權限,用Root身份運行android_server;使用adb forward進行端口轉(zhuǎn)發(fā),讓遠程調(diào)試端IDA可以連接到被調(diào)試端;使用IDA連接上轉(zhuǎn)發(fā)的端口,查看設備的所有進程,找到需要調(diào)試的進程;再次打開.so文件,找到需要調(diào)試的函數(shù)的相對地址,然后在調(diào)試頁面使用Ctrl+S找到.so文件的基地址,相加之后得到絕對地址,使用G鍵,跳轉(zhuǎn)到函數(shù)的地址處,下好斷點后運行;觸發(fā)native層的函數(shù),利用單步調(diào)試,查看寄存器中的值。

S9,過集成Drozer動態(tài)分析框架,在命令行中輸入各種測試命令,確定攻擊面。針對可攻擊的地方,運用滲透手段進行測試。

S10,靜態(tài)檢測和動態(tài)檢測結(jié)果,生成檢測報告。報告中按照威脅級進行排列,有助于測試人員優(yōu)先處理威脅程度高的漏洞。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
广元市| 安康市| 平谷区| 盐山县| 阜新市| 炎陵县| 连州市| 句容市| 施秉县| 安西县| 萨迦县| 溆浦县| 会东县| 涞源县| 中江县| 凤台县| 凯里市| 侯马市| 柳江县| 同德县| 泽库县| 永仁县| 潼关县| 延边| 海淀区| 中西区| 新田县| 榆林市| 寿光市| 虎林市| 札达县| 呼和浩特市| 丹阳市| 洞口县| 金平| 永和县| 稻城县| 定结县| 珠海市| 阿瓦提县| 无锡市|