亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法和裝置的制作方法

文檔序號:6444949閱讀:226來源:國知局
專利名稱:一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及源代碼檢測領(lǐng)域,更具體地說,涉及一種Androi平臺下應(yīng)用軟件的安全漏洞挖掘方法和裝置。
背景技術(shù)
Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于便攜設(shè)備。目前尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用安卓(非官方)或安致(官方)。Android 操作系統(tǒng)最初由Andy Rubin開發(fā),最初主要支持手機。2005年由Google收購注資,并聯(lián)合多家制造商組成開放手機聯(lián)盟開發(fā)改良,逐漸擴展到平板電腦及其他領(lǐng)域上。2010年末數(shù)據(jù)顯示,僅正式推出兩年的Android操作系統(tǒng)已經(jīng)超越稱霸十年的諾基亞Symbian系統(tǒng),躍居全球最受歡迎的智能手機平臺。Android的主要競爭對手是蘋果的I0S,微軟的WP7以及 RIM 的 Blackberry OS。面對移動智能終端市場日新月異的發(fā)展,隨之而來的移動智能終端信息安全問題卻日益凸顯,給國家安全、社會穩(wěn)定和用戶隱私保護等帶來新的安全隱患。Android是目前最流行的智能終端開發(fā)平臺,依靠Google的強大開發(fā)和媒體資源,Android成為眾多移動智能終端廠商競相追逐的對象。隨著Android平臺在智能終端操作系統(tǒng)市場份額的日益增加,Android平臺下應(yīng)用軟件的安全性成為了智能終端安全研究的緊要任務(wù)。由于受到移動智能終端較低的硬件處理能力的限制,移動智能終端上的應(yīng)用有著體積小、升級快、功能專一等特點,移動智能終端與傳統(tǒng)終端如PC機存在較大區(qū)別,PC機上的安全漏洞挖掘技術(shù)不能直接應(yīng)用于智能終端上。目前,Android平臺下應(yīng)用軟件的漏洞發(fā)掘還是個新的領(lǐng)域,開發(fā)者一般基于JUnit框架和Android SDK中android, test等命名空間下對Android平臺下的程序進行測試,專門針對Android平臺下應(yīng)用軟件的安全漏洞發(fā)掘自動化工具還很少。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,提供一種針對Android平臺下應(yīng)用軟件的安全漏洞挖掘自動化方法和裝置。本發(fā)明公開了一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法,包括Si.提取多種Android平臺下應(yīng)用軟件源代碼的漏洞規(guī)則,形成漏洞規(guī)則庫;S2.針對Android平臺下應(yīng)用軟件的源代碼構(gòu)建ant腳本,對所述的源代碼進行編譯,形成字節(jié)碼文件;S3.控制流分析引擎負責(zé)解析經(jīng)過所述的字節(jié)碼文件,根據(jù)所述的字節(jié)碼文件中的指令信息構(gòu)建控制流圖,為不安全方法的定位提供基礎(chǔ);S4.數(shù)據(jù)流分析引擎是在所述的控制流圖的基礎(chǔ)上,分析變量中數(shù)據(jù)的傳遞過程, 構(gòu)建數(shù)據(jù)流圖,為逆向動態(tài)追蹤數(shù)據(jù)提供基礎(chǔ);S5.根據(jù)所述漏洞規(guī)則庫中的規(guī)則,調(diào)用所述的控制流引擎和數(shù)據(jù)流引擎,分析不安全方法的調(diào)用位置,逆向追蹤變量中數(shù)據(jù)的傳遞過程,進行漏洞檢測;S6.將挖掘的安全漏洞過程及相關(guān)數(shù)據(jù)信息生成報告。在本發(fā)明所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘方法中,步驟S2及步驟 S3之間還存在以下步驟S21.判斷編譯是否成功,若是,進入步驟S22,將編譯后的字節(jié)碼文件存放在與源代碼同級目錄下,為后續(xù)的分析、檢測提供便利;若否,進入步驟S23,通過漏洞報告部件報告編譯不成功原因。在本發(fā)明所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘方法中,步驟S5及步驟 S6之間還存在以下步驟S51.判斷逆向追蹤變量中的數(shù)據(jù)是否進行過安全驗證操作,如果是,進入步驟 S52 放棄追蹤,如果否,進入步驟S53 判斷該數(shù)據(jù)的方法調(diào)用處存在安全漏洞,進入步驟 S6。在本發(fā)明所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘方法中,其特征在于, 所述的控制流分析引擎具有多個。在本發(fā)明所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘方法中,所述的數(shù)據(jù)流分析引擎具有多個。本發(fā)明還公開了一種Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置,用于實現(xiàn)上述的方法,包括漏洞規(guī)則庫生成單元提取多種Android平臺下應(yīng)用軟件源代碼的漏洞規(guī)則,形成漏洞規(guī)則庫;字節(jié)碼生成文件單元針對Android平臺下應(yīng)用軟件的源代碼構(gòu)建ant腳本,對所述的源代碼進行編譯,形成字節(jié)碼文件;控制流圖構(gòu)建單元與所述的字節(jié)碼生成文件單元相連,用于控制流分析引擎負責(zé)解析經(jīng)過所述的字節(jié)碼文件,根據(jù)所述的字節(jié)碼文件中的指令信息構(gòu)建控制流圖,為不安全方法的定位提供基礎(chǔ);數(shù)據(jù)流圖構(gòu)建單元數(shù)據(jù)流分析引擎是在所述的控制流圖的基礎(chǔ)上,分析變量中數(shù)據(jù)的傳遞過程,構(gòu)建數(shù)據(jù)流圖,為逆向動態(tài)追蹤數(shù)據(jù)提供基礎(chǔ);漏洞檢測單元與所述的數(shù)據(jù)流圖構(gòu)建單元相連,用于根據(jù)所述漏洞規(guī)則庫中的規(guī)則,調(diào)用所述的控制流引擎和數(shù)據(jù)流引擎,分析不安全方法的調(diào)用位置,逆向追蹤變量中數(shù)據(jù)的傳遞過程,進行漏洞檢測;漏洞報告生成單元將挖掘的安全漏洞過程及相關(guān)數(shù)據(jù)信息生成報告。在本發(fā)明所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置中,還包括設(shè)置于字節(jié)碼生成文件單元與控制流圖構(gòu)建單元間的用于判斷編譯是否成功的編譯判斷單元。在本發(fā)明所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置中,還包括設(shè)置于漏洞檢測單元與漏洞報告生成單元間的安全驗證單元。在本發(fā)明所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置中,所述的控制流分析引擎具有多個。在本發(fā)明所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置中,所述的數(shù)據(jù)流分析引擎具有多個。
實施本發(fā)明的一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法和裝置,具有以下有益的技術(shù)效果從問題的源頭開始關(guān)注Android平臺下應(yīng)用軟件的安全,及早發(fā)現(xiàn)軟件中存在的安全漏洞,有利于Android平臺下應(yīng)用軟件的安全開發(fā)。


圖1是本發(fā)明實施例一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法流程圖;圖2是本發(fā)明實施例一種Android平臺下應(yīng)用軟件的安全漏洞挖掘各部件結(jié)構(gòu)圖;圖3是本發(fā)明實施例一種Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置模塊方框圖。
具體實施例方式為詳細說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附圖詳予說明。本發(fā)明涉及一種Android平臺下應(yīng)用軟件的安全漏洞挖掘技術(shù),用于Android平臺下應(yīng)用軟件的安全漏洞挖掘,具體是基于源代碼靜態(tài)分析技術(shù)挖掘Android平臺下應(yīng)用軟件的安全漏洞,具體的技術(shù)方案如下請參閱圖1,本發(fā)明實施例一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法,包括Si.提取多種Android平臺下應(yīng)用軟件源代碼的漏洞方法,形成漏洞規(guī)則庫;漏洞規(guī)則庫部件本發(fā)明針對Android SDK進行深入研究,提取出大量可能產(chǎn)生漏洞的方法,進行整理最終形成漏洞規(guī)則庫,為檢測器部件進行漏洞分析提供基礎(chǔ)。S2.針對Android平臺下應(yīng)用軟件的源代碼構(gòu)建ant腳本,對所述的源代碼進行編譯,形成字節(jié)碼文件;S21.判斷編譯是否成功,若是,進入步驟S22,將編譯后的字節(jié)碼文件存放在與源代碼同級目錄下,為后續(xù)的分析、檢測提供便利;若否,進入步驟S23,通過漏洞報告部件報告編譯不成功原因。步驟S2及S21屬于安全漏洞挖掘的預(yù)處理部件完成的步驟。S3.控制流分析引擎負責(zé)解析經(jīng)過所述的字節(jié)碼文件,根據(jù)所述的字節(jié)碼文件中的指令信息構(gòu)建控制流圖,為不安全方法的定位提供基礎(chǔ);對Android平臺下應(yīng)用軟件的字節(jié)碼進行安全漏洞模式掃描,并確定代碼中不安全方法(如方法 rawQuery (String sql, String[] selectionArgs)調(diào)用的位置。S4.數(shù)據(jù)流分析引擎是在所述的控制流圖的基礎(chǔ)上,分析變量中數(shù)據(jù)的傳遞過程, 構(gòu)建數(shù)據(jù)流圖,為逆向動態(tài)追蹤數(shù)據(jù)提供基礎(chǔ);步驟S3及S4中控制流分析引擎及數(shù)據(jù)流分析引擎共同組成分析引擎部件。對掃描后不安全方法中的變量(如方法rawQuery (String sql,String [] selectionArgs 中的((String sql, String[] selectionArgs))進行逆向數(shù)據(jù)流分析。S5.根據(jù)所述漏洞規(guī)則庫中的規(guī)則,調(diào)用所述的控制流引擎和數(shù)據(jù)流引擎,分析不安全方法的調(diào)用位置,逆向追蹤變量中數(shù)據(jù)的傳遞過程,進行漏洞檢測;步驟S5為檢測器部件完成的動作。S51.判斷逆向追蹤變量中的數(shù)據(jù)是否進行過安全驗證操作,如果是,進入步驟 S52 放棄追蹤,如果否,進入步驟S53 該數(shù)據(jù)的方法調(diào)用處存在安全漏洞,進入步驟S6。S6.將挖掘的安全漏洞過程及相關(guān)數(shù)據(jù)信息生成報告。所述的控制流分析引擎具有多個。所述的數(shù)據(jù)流分析引擎具有多個。請參閱圖2,本發(fā)明實施例一種Android平臺下應(yīng)用軟件的安全漏洞挖掘各部件結(jié)構(gòu)圖。Android平臺下應(yīng)用軟件源代碼經(jīng)過預(yù)處理器處理后進入多個分析引擎及多個檢測器進行數(shù)據(jù)交換,以挖掘漏洞,并從Android平臺下應(yīng)用軟件漏洞規(guī)則庫調(diào)用規(guī)則,形成檢測結(jié)果加以顯示。請參閱圖3、一種Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置,用于實現(xiàn)上述的方法,包括漏洞規(guī)則庫生成單元10、字節(jié)碼生成文件單元20、編譯判斷單元25、控制流圖構(gòu)建單元30、數(shù)據(jù)流圖構(gòu)建單元40、漏洞檢測單元50、安全驗證單元55、漏洞報告生成單元 60。漏洞規(guī)則庫生成單元10 提取多種Android平臺下應(yīng)用軟件的漏洞規(guī)則,形成漏洞規(guī)則庫;字節(jié)碼生成文件單元20 針對Android平臺下應(yīng)用軟件的源代碼構(gòu)建ant腳本, 對所述的源代碼進行編譯,形成字節(jié)碼文件;控制流圖構(gòu)建單元30 與字節(jié)碼生成文件單元20相連,用于控制流分析引擎負責(zé)解析經(jīng)過所述的字節(jié)碼文件,根據(jù)所述的字節(jié)碼文件中的指令信息構(gòu)建控制流圖,為不安全方法的定位提供基礎(chǔ);數(shù)據(jù)流圖構(gòu)建單元40:數(shù)據(jù)流分析引擎是在所述的控制流圖的基礎(chǔ)上,分析變量中數(shù)據(jù)的傳遞過程,構(gòu)建數(shù)據(jù)流圖,為逆向動態(tài)追蹤數(shù)據(jù)提供基礎(chǔ);漏洞檢測單元50 與數(shù)據(jù)流圖構(gòu)建單元40相連,用于根據(jù)所述漏洞規(guī)則庫中的規(guī)則,調(diào)用所述的控制流引擎和數(shù)據(jù)流引擎,分析不安全方法的調(diào)用位置,逆向追蹤變量中數(shù)據(jù)的傳遞過程,進行漏洞檢測;漏洞報告生成單元60 將挖掘的安全漏洞過程及相關(guān)數(shù)據(jù)信息生成報告。還包括設(shè)置于字節(jié)碼生成文件單元與控制流圖構(gòu)建單元間的用于判斷編譯是否成功的編譯判斷單元25,還包括設(shè)置于漏洞檢測單元與漏洞報告生成單元間的安全驗證單
兀55ο進一步地,所述的數(shù)據(jù)流分析引擎及控制流分析引擎均具有多個,且安置于多個分析引擎中。由此,可以看出,本發(fā)明的目的是提供一種采用源代碼靜態(tài)分析技術(shù)挖掘Android 平臺下應(yīng)用軟件安全漏洞的技術(shù),該技術(shù)從Android平臺下應(yīng)用軟件的源代碼入手,分析安全漏洞產(chǎn)生的機理,挖掘軟件中存在的安全漏洞。本發(fā)明方法關(guān)注Android平臺下應(yīng)用軟件源代碼中的不安全方法的使用和程序外部輸入的數(shù)據(jù),通過構(gòu)建Android平臺下應(yīng)用軟件源代碼中方法的控制流圖、數(shù)據(jù)流圖,逆向追蹤程序外部數(shù)據(jù)的輸入,挖掘Android平臺下應(yīng)用軟件的安全漏洞。實施本發(fā)明的一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法和裝置,具有以下有益的技術(shù)效果從問題的源頭開始關(guān)注Android平臺下應(yīng)用軟件的安全,及早發(fā)現(xiàn)軟件中存在的安全漏洞,有利于Android平臺下應(yīng)用軟件的安全開發(fā)。上面結(jié)合附圖對本發(fā)明的實施例進行了描述,但是本發(fā)明并不局限于上述的具體實施方式
,上述的具體實施方式
僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨和權(quán)利要求所保護的范圍情況下,還可做出很多形式,這些均屬于本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法,其特征在于,包括51.提取多種Android平臺下應(yīng)用軟件源代碼的漏洞規(guī)則,形成漏洞規(guī)則庫;52.針對Android平臺下應(yīng)用軟件的源代碼構(gòu)建ant腳本,對所述的源代碼進行編譯, 形成字節(jié)碼文件;53.控制流分析引擎負責(zé)解析所述的字節(jié)碼文件,根據(jù)所述的字節(jié)碼文件中的指令信息構(gòu)建控制流圖,為不安全方法的定位提供基礎(chǔ);54.數(shù)據(jù)流分析引擎是在所述的控制流圖的基礎(chǔ)上,分析變量中數(shù)據(jù)的傳遞過程,構(gòu)建數(shù)據(jù)流圖,為逆向動態(tài)追蹤數(shù)據(jù)提供基礎(chǔ);55.根據(jù)所述漏洞規(guī)則庫中的規(guī)則,調(diào)用所述的控制流引擎和數(shù)據(jù)流引擎,分析不安全方法的調(diào)用位置,逆向動態(tài)追蹤變量中數(shù)據(jù)的傳遞過程,進行漏洞檢測;56.將挖掘的安全漏洞過程及相關(guān)數(shù)據(jù)信息生成報告。
2.如權(quán)利要求1所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘方法,其特征在于,步驟S2及步驟S3之間還存在以下步驟S21.判斷編譯是否成功,若是,進入步驟S22,將編譯后的字節(jié)碼文件存放在與源代碼同級目錄下,為后續(xù)的分析、檢測提供便利;若否,進入步驟S23,通過漏洞報告部件報告編譯不成功原因。
3.如權(quán)利要求1所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘方法,其特征在于,步驟S5及步驟S6之間還存在以下步驟S51.判斷逆向動態(tài)追蹤變量中的數(shù)據(jù)是否進行過安全驗證操作,如果是,進入步驟 S52 放棄追蹤,如果否,進入步驟S53 判斷該數(shù)據(jù)的方法調(diào)用處存在安全漏洞,進入步驟 S6。
4.如權(quán)利要求1所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘方法,其特征在于,所述的控制流分析引擎具有多個。
5.如權(quán)利要求1所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘方法,其特征在于,所述的數(shù)據(jù)流分析引擎具有多個。
6.一種Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置,用于實現(xiàn)權(quán)利要求1所述的方法,其特征在于,包括漏洞規(guī)則庫生成單元提取多種Android平臺下應(yīng)用軟件源代碼的漏洞規(guī)則,形成漏洞規(guī)則庫;字節(jié)碼生成文件單元針對Android平臺下應(yīng)用軟件的源代碼構(gòu)建ant腳本,對所述的源代碼進行編譯,形成字節(jié)碼文件;控制流圖構(gòu)建單元與所述的字節(jié)碼生成文件單元相連,用于控制流分析引擎負責(zé)解析經(jīng)過所述的字節(jié)碼文件,根據(jù)所述的字節(jié)碼文件中的指令信息構(gòu)建控制流圖,為不安全方法的定位提供基礎(chǔ);數(shù)據(jù)流圖構(gòu)建單元數(shù)據(jù)流分析引擎是在所述的控制流圖的基礎(chǔ)上,分析變量中數(shù)據(jù)的傳遞過程,構(gòu)建數(shù)據(jù)流圖,為逆向動態(tài)追蹤數(shù)據(jù)提供基礎(chǔ);漏洞檢測單元與所述的數(shù)據(jù)流圖構(gòu)建單元相連,用于根據(jù)所述漏洞規(guī)則庫中的規(guī)則, 調(diào)用所述的控制流引擎和數(shù)據(jù)流引擎,分析不安全方法的調(diào)用位置,逆向動態(tài)追蹤變量中數(shù)據(jù)的傳遞過程,進行漏洞檢測;漏洞報告生成單元將挖掘的安全漏洞過程及相關(guān)數(shù)據(jù)信息生成報告。
7.如權(quán)利要求6所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置,其特征在于,還包括設(shè)置于字節(jié)碼生成文件單元與控制流圖構(gòu)建單元間的用于判斷編譯是否成功的編譯判斷單元。
8.如權(quán)利要求6所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置,其特征在于,還包括設(shè)置于漏洞檢測單元與漏洞報告生成單元間的安全驗證單元。
9.如權(quán)利要求6所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置,其特征在于,所述的控制流分析引擎具有多個。
10.如權(quán)利要求6所述的Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置,其特征在于, 所述的數(shù)據(jù)流分析引擎具有多個。
全文摘要
本發(fā)明公開了一種Android平臺下應(yīng)用軟件的安全漏洞挖掘方法,包括S1.提取多種Android平臺下應(yīng)用軟件源代碼的漏洞規(guī)則,形成漏洞規(guī)則庫;S2.構(gòu)建ant腳本,對源代碼進行編譯,形成字節(jié)碼文件;S3.控制流分析引擎負責(zé)解析字節(jié)碼文件;S4.數(shù)據(jù)流分析引擎分析變量中數(shù)據(jù)的傳遞過程,構(gòu)建數(shù)據(jù)流圖,為逆向動態(tài)追蹤數(shù)據(jù)提供基礎(chǔ);S5.根據(jù)漏洞規(guī)則庫中的規(guī)則,進行漏洞檢測;S6.將挖掘的安全漏洞過程及相關(guān)數(shù)據(jù)信息生成報告。本發(fā)明還公開了一種Android平臺下應(yīng)用軟件的安全漏洞挖掘裝置。本發(fā)明及早發(fā)現(xiàn)軟件中存在的安全漏洞,有利于Android平臺下應(yīng)用軟件的安全開發(fā)。
文檔編號G06F21/00GK102411690SQ20111046051
公開日2012年4月11日 申請日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者吳世忠, 吳迪, 張*, 張普含, 時志偉, 韓建 申請人:中國信息安全測評中心
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1