檢測移動智能終端的源代碼安全的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種檢測移動智能終端的源代碼安全的方法,包括:S1.抓取移動智能終端的源代碼;S2.對所述的源代碼進行語法和詞法解析,將所述的源代碼轉(zhuǎn)化為標(biāo)準(zhǔn)的AST樹;S3.調(diào)用源代碼規(guī)則數(shù)據(jù)庫,根據(jù)所述的規(guī)則,對所述的AST樹進行解析分析,獲取分析數(shù)據(jù);S4.輸出所述的分析數(shù)據(jù)。本發(fā)明還公開了一種檢測移動智能終端的源代碼安全的裝置以及系統(tǒng)。本發(fā)明提供的檢測移動智能終端的源代碼安全的方法、裝置以及系統(tǒng)能通過對源代碼的靜態(tài)分析,一方面可以找出潛在的風(fēng)險,從內(nèi)對軟件進行檢測,提高代碼的安全性,另一方面也可以進一步提高代碼的質(zhì)量可以使得軟件的安全性得到很大程度的提高。
【專利說明】檢測移動智能終端的源代碼安全的方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及源代碼安全的領(lǐng)域,特別涉及一種檢測移動智能終端的源代碼安全的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]目前,應(yīng)用軟件的自身的安全問題是我們信息安全領(lǐng)域最為關(guān)心的問題,也是我們面臨的一個新的領(lǐng)域,需要我們所有的在應(yīng)用軟件開發(fā)和管理的各個層面的成員共同的努力來完成。越來越多的安全產(chǎn)品廠商也已經(jīng)在考慮關(guān)注軟件開發(fā)的整個流程,將安全檢測與監(jiān)測融入需求分析、概要設(shè)計、詳細設(shè)計、編碼、測試等各個階段以全面的保證應(yīng)用安全。
[0003]對于應(yīng)用安全性的檢測目前大多數(shù)是通過測試的方式來實現(xiàn)。測試大體上分為黑盒測試和白盒測試兩種。黑盒測試一般使用的是滲透的方法,這種方法仍然帶有明顯的黑盒測試本身的不足,需要大量的測試用例來進行覆蓋,且測試完成后仍無法保證軟件是否仍然存在風(fēng)險。如何找到更有效的測移動智能終端的源代碼安全的方法、裝置以及系統(tǒng)成為人們的一道課題。
【發(fā)明內(nèi)容】
[0004]為解決以上的問題,本發(fā)明提供檢測移動智能終端的源代碼安全的方法、裝置及系統(tǒng)。
[0005]本發(fā)明公開了一種檢測移動智能終端的源代碼安全的方法,包括:
[0006]S1.抓取移動智能終端的源代碼;
[0007]S2.對所述的源代碼進行語法和詞法解析,將所述的源代碼轉(zhuǎn)化為標(biāo)準(zhǔn)的AST樹;
[0008]S3.調(diào)用源代碼規(guī)則數(shù)據(jù)庫,根據(jù)所述的規(guī)則,對所述的AST樹進行解析分析,獲取分析數(shù)據(jù);
[0009]S4.輸出所述的分析數(shù)據(jù)。
[0010]在本發(fā)明所述的檢測移動智能終端的源代碼安全的方法中,所述的步驟S3中對所述的解析分析包括對所述的AST樹進行數(shù)據(jù)流分析,具體是:通過遍歷所述的AST樹,提取出需要的數(shù)據(jù)信息,并根據(jù)所述的規(guī)則,對所述的數(shù)據(jù)信息進行篩選,向程序分析模塊提供接口以讀取所述的數(shù)據(jù)信息。
[0011]在本發(fā)明所述的檢測移動智能終端的源代碼安全的方法中,所述步驟S3對所述的解析分析包括:對所述的AST樹進行控制流分析,具體是:通過遍歷所述的AST樹,生成對應(yīng)的程序控制依賴圖,并向安全分析調(diào)度模塊提供接口以讀取這些信息。
[0012]在本發(fā)明所述的檢測移動智能終端的源代碼安全的方法中,所述步驟S3對所述的解析分析包括:對所述的AST樹進行結(jié)構(gòu)分析,具體是:提取所述的AST樹,根據(jù)所述的規(guī)則,提取程序的主要結(jié)構(gòu)信息,所述的主要結(jié)構(gòu)信息包括入口點信息、主要方法名、方法關(guān)系。[0013]在本發(fā)明所述的檢測移動智能終端的源代碼安全的方法中,所述步驟S3對所述的解析分析包括:對所述的AST樹進行安全分析,具體是:根據(jù)所述的規(guī)則,對所述的主要結(jié)構(gòu)信息進行安全性分析。
[0014]本發(fā)明公開了一種檢測移動智能終端的源代碼安全的裝置,包括:
[0015]源代碼抓取單元,用于抓取移動智能終端的源代碼;
[0016]源代碼轉(zhuǎn)化單元,用于對所述的源代碼進行語法和詞法解析,將所述的源代碼轉(zhuǎn)化為標(biāo)準(zhǔn)的AST樹;
[0017]AST樹分析單元,用于調(diào)用源代碼規(guī)則數(shù)據(jù)庫,根據(jù)所述的規(guī)則,對所述的AST樹進行解析分析,獲取分析數(shù)據(jù);
[0018]檢測結(jié)果輸出單元,用于輸出所述的分析數(shù)據(jù)。
[0019]在本發(fā)明所述的檢測移動智能終端的源代碼安全的裝置中,所述的AST樹分析單元包括以下子單元,具體是:
[0020]提取源代碼的數(shù)據(jù)流信息并分析的數(shù)據(jù)流分析器;
[0021]提取源代碼的控制流信息并分析的控制流分析器;
[0022]提取源代碼的主要結(jié)構(gòu)并分析的結(jié)構(gòu)分析器;
[0023]提取源代碼的主要結(jié)構(gòu)并進行安全分析的安全分析器。
[0024]本發(fā)明公開了一種檢測移動智能終端的源代碼安全的系統(tǒng),包括存放源代碼的服務(wù)器,與所述的服務(wù)器相連的用于存放源代碼規(guī)則的數(shù)據(jù)庫及客戶端,其特征在于,在所述的服務(wù)器上具有上述的通過對源代碼轉(zhuǎn)化而成的AST樹進行解析而輸出檢測結(jié)果的檢測移動智能終端的源代碼安全的裝置。
[0025]在本發(fā)明所述的檢測移動智能終端的源代碼安全的系統(tǒng)中,所述的客戶端通過網(wǎng)絡(luò)與所述的服務(wù)器相連,所述的網(wǎng)絡(luò)包括:WIF1、GPRS、藍牙、3G。
[0026]在本發(fā)明所述的檢測移動智能終端的源代碼安全的系統(tǒng)中,所述的客戶端包括電腦及智能手機。
[0027]本發(fā)明的一種檢測移動智能終端的源代碼安全的方法、裝置以及設(shè)備,具有以下有益效果:
[0028]本技術(shù)方案通過對源代碼的靜態(tài)分析,一方面可以找出潛在的風(fēng)險,從內(nèi)對軟件進行檢測,提高代碼的安全性,另一方面也可以進一步提高代碼的質(zhì)量可以使得軟件的安全性得到很大程度的提高。
【專利附圖】
【附圖說明】
[0029]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0030]圖1為本發(fā)明第一實施例一種檢測移動智能終端的源代碼安全的方法流程示意圖;
[0031]圖2為本發(fā)明第一實施例一種檢測移動智能終端的源代碼安全的裝置功能方框圖;[0032]圖3為本發(fā)明一種檢測移動智能終端的源代碼安全的系統(tǒng)示意圖。
【具體實施方式】
[0033]通過下面給出的本發(fā)明的具體實施例可以進一步了解本發(fā)明,但它們不是對本發(fā)明的限定。對于本領(lǐng)域的技術(shù)人員根據(jù)上述
【發(fā)明內(nèi)容】
所作的一些非本質(zhì)的改進與調(diào)整,也視為落在本發(fā)明的保護范圍內(nèi)。
[0034]請參閱圖1,本發(fā)明第一實施例,一種檢測移動智能終端的源代碼安全的方法,包括:
[0035]S1.抓取移動智能終端的源代碼;
[0036]S2.對所述的源代碼進行語法和詞法解析,將所述的源代碼轉(zhuǎn)化為標(biāo)準(zhǔn)的AST樹;
[0037]當(dāng)用戶選擇源代碼路徑后,系統(tǒng)首先對源代碼進行語法和詞法解析,將源代碼轉(zhuǎn)化為標(biāo)準(zhǔn)的AST樹,進而系統(tǒng)對AST樹進行數(shù)據(jù)流和控制流分析,得到相關(guān)項目的函數(shù)/方法信息(包括名稱,個數(shù),參數(shù),方法間的相互調(diào)用關(guān)系等)和變量信息(包括變量名,使用變量的函數(shù)、函數(shù)/方法以及變量在不同位置的值等)以及函數(shù)/方法間的控制依賴關(guān)系。
[0038]S3.調(diào)用源代碼規(guī)則數(shù)據(jù)庫,根據(jù)所述的規(guī)則,對所述的AST樹進行解析分析,獲取分析數(shù)據(jù);
[0039]在數(shù)據(jù)流和控制流分析的結(jié)果基礎(chǔ)上,系統(tǒng)根據(jù)定義的安全規(guī)則調(diào)用不同的解析器,解析器根據(jù)規(guī)則的類型可分為SQL注入解析器,密碼檢驗解析器等等。在調(diào)用解析器時,系統(tǒng)根據(jù)規(guī)則的內(nèi)容自動調(diào)用相應(yīng)類型的解析器,當(dāng)解析器分析完畢后,將結(jié)果存在結(jié)果緩沖池中,等待所有的解析器都工作完畢后,系統(tǒng)將分析結(jié)果統(tǒng)一輸出給用戶。
[0040]S4.輸出所述的分析數(shù)據(jù)。
[0041]報告生成器是對代碼分析的結(jié)果進行分析并提交給用戶,并生成相應(yīng)的審核報告,用戶接口模塊負責(zé)與用戶進行交互,一方面可以接受用戶掃描源代碼
[0042]的請求,另一方面則將掃描分析的結(jié)果輸出給用戶。結(jié)果包括問題類型,問題所處的位置,以及問題的具體跟蹤信息等。同時該系統(tǒng)還根據(jù)不同的問題類型給出了具體的參考解決方案。
[0043]進一步地,所述的步驟S3中對所述的解析分析包括對所述的AST樹進行數(shù)據(jù)流分析,具體是:通過遍歷所述的AST樹,提取出需要的數(shù)據(jù)信息,并根據(jù)所述的規(guī)則,對所述的數(shù)據(jù)信息進行篩選,向程序分析模塊提供接口以讀取所述的數(shù)據(jù)信息。
[0044]進一步地,所述步驟S3對所述的解析分析包括:對所述的AST樹進行控制流分析,具體是:通過遍歷所述的AST樹,生成對應(yīng)的程序控制依賴圖,并向安全分析調(diào)度模塊提供接口以讀取這些信息。
[0045]進一步地,所述步驟S3對所述的解析分析包括:對所述的AST樹進行結(jié)構(gòu)分析,具體是:提取所述的AST樹,根據(jù)所述的規(guī)則,提取程序的主要結(jié)構(gòu)信息,所述的主要結(jié)構(gòu)信息包括入口點信息、主要方法名、方法關(guān)系。
[0046]進一步地,所述步驟S3對所述的解析分析包括:對所述的AST樹進行安全分析,具體是:根據(jù)所述的規(guī)則,對所述的主要結(jié)構(gòu)信息進行安全性分析。
[0047]請參閱圖2、一種檢測移動智能終端的源代碼安全的裝置1,包括:
[0048]源代碼抓取單元10,用于抓取移動智能終端的源代碼;[0049]源代碼轉(zhuǎn)化單元20,用于對所述的源代碼進行語法和詞法解析,將所述的源代碼轉(zhuǎn)化為標(biāo)準(zhǔn)的AST樹;
[0050]AST樹分析單元30,用于調(diào)用源代碼規(guī)則數(shù)據(jù)庫,根據(jù)所述的規(guī)則,對所述的AST樹進行解析分析,獲取分析數(shù)據(jù);
[0051]規(guī)則庫負責(zé)為代碼分析引擎提供代碼分析規(guī)則支持。
[0052]檢測結(jié)果輸出單元40,用于輸出所述的分析數(shù)據(jù)。
[0053]進一步地,AST樹分析單元30包括以下子單元,具體是:
[0054]提取源代碼的數(shù)據(jù)流信息并分析的數(shù)據(jù)流分析器;
[0055]提取源代碼的控制流信息并分析的控制流分析器;
[0056]提取源代碼的主要結(jié)構(gòu)并分析的結(jié)構(gòu)分析器;
[0057]提取源代碼的主要結(jié)構(gòu)并進行安全分析的安全分析器。
[0058]具體來說,
[0059]各個子單元的主要功能設(shè)計如下:
[0060]代碼解析器是負責(zé)對源程序進行建模,通過詞法分析和語法分析,將源代碼轉(zhuǎn)換成中間表示,并根據(jù)后續(xù)分析模塊的需要,生成特定的語法樹和數(shù)據(jù)結(jié)構(gòu),為后繼分析提供便利。代碼解析器負責(zé)對源程序進行詞法和語法分析,抽出足夠多的信息并轉(zhuǎn)換成中間表示,根據(jù)后繼分析的需要生成特定的抽象語法樹結(jié)構(gòu)。
[0061]我們采用AST (抽象語法樹)作為中間表示,從源程序生成其相應(yīng)的AST形式是后續(xù)的程序分析的基礎(chǔ)。
[0062]抽象語法樹的具體形式的選擇,即抽象語法樹中包含的信息的多少,影響程序分析的效率。抽象語法樹中包含的信息在滿足程序后續(xù)靜態(tài)分析需要的同時,也需要注意包含的其他信息越少,算法分析的效率將會越高。抽象語法樹能否正確地生成,并包含足夠的信息將決定后續(xù)的程序分析的成敗。在本軟件的實現(xiàn)過程中,我們將選擇編譯器前端來生成抽象語法樹。
[0063]數(shù)據(jù)流分析器是在代碼解析的基礎(chǔ)上,提取程序的數(shù)據(jù)流信息。數(shù)據(jù)流分析通過遍歷AST (抽象語法樹),提取出需要的數(shù)據(jù)信息,并根據(jù)用戶規(guī)則,對這些信息進行刷選,向程序分析模塊提供接口以讀取這些信息。
[0064]設(shè)計原理
[0065]變量X的定值是一個語句,它賦值或可能賦值給X。
[0066]最普通的定值是對X的賦值或讀值到X的語句。這些語句真正對X定值,稱為X的無二義定值。還有一些語句,它們可能對X定值,稱為二義定值。
[0067]稱a定值d到達程序點P,若存在路徑從緊跟d的點到達P,且在這條路徑上d沒有被注銷。如果沿著這條路徑的某兩點間是讀a或?qū)的賦值,那么我們注銷變量a的那個定值。
[0068]直觀上,如果某個變量a的定值d到達點P,那么P引用a的最新定值可能在d點。只有a的無二義定值注銷a的其它定值。這樣,一個點可以由一條路徑上的無二義定值和同一個變量出現(xiàn)在無二義定值之后的二義定值到達。
[0069]控制流分析器主要是在代碼解析的基礎(chǔ)上,提取程序的控制流信息??刂屏鞣治龈鶕?jù)規(guī)則,通過遍歷AST (抽象語法樹),生成對應(yīng)的程序控制依賴圖,并向安全分析調(diào)度模塊提供接口以讀取這些信息。
[0070]程序控制流圖,是對程序中每個函數(shù)結(jié)構(gòu)的圖形化表示,它既表示了函數(shù)的控制結(jié)構(gòu)信息,也表示了程序語句執(zhí)行的流向。程序控制流圖是程序邏輯結(jié)構(gòu)的圖形表示,通過不同的實現(xiàn)算法,可得到各種形式的控制流圖,例如樹型圖和有向圖。程序的控制流,可以用控制流程圖來描述??刂屏鞒虉D由節(jié)點和邊組成,節(jié)點分為分支點和匯聚點,邊被稱作分支,對應(yīng)于程序中一段順序執(zhí)行的語句序列(或稱語句塊、語句段)。
[0071]為了定義程序的控制流程圖,首先需要針對程序語言中各種語句的結(jié)構(gòu)特點,定義分支及其相關(guān)概念,建立起分支與程序語句之間準(zhǔn)確簡明的對應(yīng)關(guān)系。針對常見的開發(fā)語言,給出以下常見概念的定義。
[0072](I)分支點
[0073]分支點是指程序判斷語句的判定部分,這些判斷語句根據(jù)判定結(jié)果的不同而執(zhí)行不同的分支。與判斷語句一樣,每個分支點有一個“流入”分支和多個“流出”分支;特殊的,當(dāng)分支點上的判定條件是一個常量時,分支點只有一個“流出”分支。分支點有五種類型,分別對應(yīng)各種判斷語句的判定部分:
[0074]I) if分支點:對應(yīng)if語句的if (exp)部分。
[0075]2)switch 分支點:對應(yīng) switch 語句的 switch (exp)部分。
[0076]3) for 分支點:對應(yīng) for 語句的 for (init ;exp ;inc)部分。
[0077]4) while分支點:對應(yīng)while語句的while (exp)部分。
[0078]5) do-while 分支點:對應(yīng) do-while 語句的 while (exp)部分。
[0079]分支點在圖中用菱形表示,并標(biāo)記判斷語句的關(guān)鍵字。
[0080](2)匯聚點
[0081]匯聚點是指程序中多于一條控制流匯聚到一起的位置。通常,這個位置不對應(yīng)任何語句或語句片斷,而是對應(yīng)于程序語句的一個抽象結(jié)束位置。匯聚點有多個“流入”分支,但只有一個或者沒有“流出”的分支。匯聚點可分為以下幾種類型:
[0082]I)判斷語句的匯聚點:每個判斷語句有一個匯聚點,位于判斷語句塊的“結(jié)束”位置。
[0083]2)標(biāo)號語句的匯聚點:每個標(biāo)號有一個匯聚點,位于標(biāo)號的“:”之后。
[0084]3) case和default的匯聚點:位于其“:”之后。
[0085]4)方法入口點:對應(yīng)于方法體的開括號“ {”。
[0086]5)方法結(jié)束點:對應(yīng)于方法體的閉括號
[0087]6)分支跳轉(zhuǎn)點:對應(yīng)于跳轉(zhuǎn)語句。
[0088]匯聚點在圖中用圓點表示。
[0089]分支點和匯聚點合稱控制流圖中的節(jié)點,在不嚴(yán)格區(qū)分的情況下,統(tǒng)稱分支點。
[0090](3)分支
[0091]程序中任意兩個節(jié)點之間如果存在一個直接的控制流,即從一個節(jié)點執(zhí)行O條或任意有限條順序語句可到達另一個節(jié)點,其間不再包含任何其它節(jié)點,則稱這兩個節(jié)點之間的直接的控制流為一條分支,這兩個節(jié)點稱作是相鄰節(jié)點。特殊地,相鄰節(jié)點之間的直接控制流,如果是由執(zhí)行O條順序語句而形成,這兩個節(jié)點之間的分支稱作虛分支
[0092]結(jié)構(gòu)分析器的目標(biāo)是在代碼分析引擎提取出的語法樹的基礎(chǔ)上,根據(jù)安全規(guī)則庫提供的代碼分析規(guī)則,提取程序的主要結(jié)構(gòu)(如入口點信息、主要方法名、方法關(guān)系等信息)。
[0093]當(dāng)結(jié)構(gòu)分析器被要求根據(jù)指定的安全規(guī)則對程序源代碼進行分析時,首先根據(jù)代碼解析模塊提供的語法樹,根據(jù)規(guī)則中的API集合,提取出特定的語法樹子集;此后根據(jù)規(guī)則將關(guān)鍵API需要檢測的參數(shù)提取出來,通過控制流分析器提取變量相關(guān)的結(jié)構(gòu)特征,并交給數(shù)據(jù)流分析器提取變量的數(shù)據(jù)流信息。最后,根據(jù)兩個模塊返回的結(jié)果,分析出安全問題,并將結(jié)果返回給調(diào)度模塊。
[0094]安全分析器可以根據(jù)安全規(guī)則庫提供的信息,調(diào)度結(jié)構(gòu)分析器進行安全性分析,并生成報告表,提供接口供報告生成器調(diào)用。
[0095]分析調(diào)度模塊作為常駐線程工作于系統(tǒng)中,當(dāng)用戶輸入源代碼后,首先經(jīng)過程序解析模塊將代碼解析成語法樹結(jié)構(gòu)。分析調(diào)度模塊開始工作后,其根據(jù)語法解析的結(jié)果和用戶輸入(如編程語言、安全分析的類別等)讀取特定類型的安全規(guī)則,交給結(jié)構(gòu)分析模塊進行分析;在結(jié)構(gòu)分析模塊得到分析結(jié)果后,分析調(diào)度模塊會將此結(jié)果交由評審報告產(chǎn)生模塊進行下一步處理。
[0096]請參閱圖3、一種檢測移動智能終端的源代碼安全的系統(tǒng),包括存放源代碼的服務(wù)器100,與服務(wù)器100相連的用于存放源代碼規(guī)則的數(shù)據(jù)庫200及客戶端300,在服務(wù)器100上具有上述的通過對源代碼轉(zhuǎn)化而成的AST樹進行解析而輸出檢測結(jié)果的檢測移動智能終端的源代碼安全的裝置I。
[0097]進一步地,客戶端300通過網(wǎng)絡(luò)與服務(wù)器100相連,網(wǎng)絡(luò)包括:WIF1、GPRS、藍牙、3G。
[0098]客戶端300包括電腦及智能手機。
[0099]本發(fā)明的一種檢測移動智能終端的源代碼安全的方法、裝置以及設(shè)備,具有以下有益效果:
[0100]本技術(shù)方案通過對源代碼的靜態(tài)分析,一方面可以找出潛在的風(fēng)險,從內(nèi)對軟件進行檢測,提高代碼的安全性,另一方面也可以進一步提高代碼的質(zhì)量可以使得軟件的安全性得到很大程度的提高。
[0101]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種檢測移動智能終端的源代碼安全的方法,其特征在于,包括: 51.抓取移動智能終端的源代碼; 52.對所述的源代碼進行語法和詞法解析,將所述的源代碼轉(zhuǎn)化為標(biāo)準(zhǔn)的AST樹; 53.調(diào)用源代碼規(guī)則數(shù)據(jù)庫,根據(jù)所述的規(guī)則,對所述的AST樹進行解析分析,獲取分析數(shù)據(jù); 54.輸出所述的分析數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的檢測移動智能終端的源代碼安全的方法,其特征在于,所述的步驟S3中對所述的解析分析包括對所述的AST樹進行數(shù)據(jù)流分析,具體是:通過遍歷所述的AST樹,提取出需要的數(shù)據(jù)信息,并根據(jù)所述的規(guī)則,對所述的數(shù)據(jù)信息進行篩選,向程序分析模塊提供接口以讀取所述的數(shù)據(jù)信息。
3.根據(jù)權(quán)利要求1或2任一項所述的檢測移動智能終端的源代碼安全的方法,其特征在于,所述步驟S3對所述的解析分析包括:對所述的AST樹進行控制流分析,具體是:通過遍歷所述的AST樹,生成對應(yīng)的程序控制依賴圖,并向安全分析調(diào)度模塊提供接口以讀取這些信息。
4.根據(jù)權(quán)利要求3所述的檢測移動智能終端的源代碼安全的方法,其特征在于,所述步驟S3對所述的解析分析包括:對所述的AST樹進行結(jié)構(gòu)分析,具體是:提取所述的AST樹,根據(jù)所述的規(guī)則,提取程序的主要結(jié)構(gòu)信息,所述的主要結(jié)構(gòu)信息包括入口點信息、主要方法名、方法關(guān)系。
5.根據(jù)權(quán)利要求4所述的檢測移動智能終端的源代碼安全的方法,其特征在于,所述步驟S3對所述的解析分析包括:對所述的AST樹進行安全分析,具體是:根據(jù)所述的規(guī)則,對所述的主要結(jié)構(gòu)信息進行安全性分析。
6.一種檢測移動智能終端的源代碼安全的裝置,其特征在于,包括: 源代碼抓取單元,用于抓取移動智能終端的源代碼; 源代碼轉(zhuǎn)化單元,用于對所述的源代碼進行語法和詞法解析,將所述的源代碼轉(zhuǎn)化為標(biāo)準(zhǔn)的AST樹; AST樹分析單元,用于調(diào)用源代碼規(guī)則數(shù)據(jù)庫,根據(jù)所述的規(guī)則,對所述的AST樹進行解析分析,獲取分析數(shù)據(jù); 檢測結(jié)果輸出單元,用于輸出所述的分析數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的檢測移動智能終端的源代碼安全的裝置,其特征在于,所述的AST樹分析單元包括以下子單元,具體是: 提取源代碼的數(shù)據(jù)流信息并分析的數(shù)據(jù)流分析器; 提取源代碼的控制流信息并分析的控制流分析器; 提取源代碼的主要結(jié)構(gòu)并分析的結(jié)構(gòu)分析器; 提取源代碼的主要結(jié)構(gòu)并進行安全分析的安全分析器。
8.—種檢測移動智能終端的源代碼安全的系統(tǒng),包括存放源代碼的服務(wù)器,與所述的服務(wù)器相連的用于存放源代碼規(guī)則的數(shù)據(jù)庫及客戶端,其特征在于,在所述的服務(wù)器上具有如權(quán)利要求6所述的通過對源代碼轉(zhuǎn)化而成的AST樹進行解析而輸出檢測結(jié)果的檢測移動智能終端的源代碼安全的裝置。
9.根據(jù)權(quán)利要求8所述的檢測移動智能終端的源代碼安全的系統(tǒng),其特征在于,所述的客戶端通過網(wǎng)絡(luò)與所述的服務(wù)器相連,所述的網(wǎng)絡(luò)包括:WIF1、GPRS、藍牙、3G。
10.根據(jù)權(quán)利要求8所述的檢測移動智能終端的源代碼安全的系統(tǒng),其特征在于,所述的客戶端包括電腦及智能手機。
【文檔編號】G06F21/50GK103927473SQ201310016830
【公開日】2014年7月16日 申請日期:2013年1月16日 優(yōu)先權(quán)日:2013年1月16日
【發(fā)明者】王甜, 魏理豪, 朱奕, 崔磊, 鄒洪, 艾解清, 周開東, 張超, 粱哲恒 申請人:廣東電網(wǎng)公司信息中心