国产精品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>

      漏洞檢測(cè)方法及裝置與流程

      文檔序號(hào):12595919閱讀:465來源:國(guó)知局
      漏洞檢測(cè)方法及裝置與流程
      本申請(qǐng)涉及信息安全領(lǐng)域,具體而言,涉及一種漏洞檢測(cè)方法及裝置。
      背景技術(shù)
      :近年來,隨著互聯(lián)網(wǎng)越來越多的應(yīng)用走向開源化,應(yīng)用程序出現(xiàn)漏洞機(jī)率也大大增加,廠商也會(huì)發(fā)布包含補(bǔ)丁的新版本來推出各種應(yīng)用程序的漏洞修復(fù)方案。在新版本發(fā)布的過程中,相關(guān)人員需要知曉新版本修復(fù)的漏洞位置以及參數(shù)等,以確定新版本的安全性。然而,目前的技術(shù)大多是通過簡(jiǎn)單監(jiān)測(cè)補(bǔ)丁頁面的消息,到相應(yīng)的頁面下載補(bǔ)丁,并且讀取漏洞說明文件,被動(dòng)地獲取關(guān)于漏洞的一些信息,并不能有效識(shí)別漏洞位置和修復(fù)的漏洞參數(shù),僅能通過人工進(jìn)行漏洞分析。針對(duì)上述的問題,目前尚未提出有效的解決方案。技術(shù)實(shí)現(xiàn)要素:本申請(qǐng)實(shí)施例提供了一種漏洞檢測(cè)方法及裝置,以至少解決由于現(xiàn)有技術(shù)不能有效識(shí)別漏洞位置和修復(fù)的漏洞參數(shù)造成的需消耗較多人力進(jìn)行漏洞分析技術(shù)問題。根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種漏洞檢測(cè)方法,包括:獲取目標(biāo)應(yīng)用的源碼文件,其中,所述源碼文件包含所述目標(biāo)應(yīng)用的標(biāo)識(shí)信息;查找所述標(biāo)識(shí)信息是否已存儲(chǔ)在數(shù)據(jù)庫中,并在所述標(biāo)識(shí)信息已存儲(chǔ)在所述數(shù)據(jù)庫的情況下,從所述數(shù)據(jù)庫中提取與所述標(biāo)識(shí)信息對(duì)應(yīng)的原始源碼文件;判斷所述源碼文件與所述原始源碼文件是否相同;若不相同,獲取所述源碼文件中的、與所述原始源碼文件不同的第一源碼;將所述第一源碼與預(yù)先建立的漏洞修復(fù)特征模型進(jìn)行匹配,確定所述第一源碼所修復(fù)的漏洞。根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了一種漏洞檢測(cè)裝置,包括:第一獲取單元,用于獲取目標(biāo)應(yīng)用的源碼文件,其中,所述源碼文件包含所述目標(biāo)應(yīng)用的標(biāo)識(shí)信息;查找單元,用于查找所述標(biāo)識(shí)信息是否已存儲(chǔ)在數(shù)據(jù)庫中,并在所述標(biāo)識(shí)信息已存儲(chǔ)在所述數(shù)據(jù)庫的情況下,從所述數(shù)據(jù)庫中提取與所述標(biāo)識(shí)信息對(duì)應(yīng)的原始源碼文 件;判斷單元,用于判斷所述源碼文件與所述原始源碼文件是否相同;第二獲取單元,用于若不相同,獲取所述源碼文件中的、與所述原始源碼文件不同的第一源碼;檢測(cè)單元,用于將所述第一源碼與預(yù)先建立的漏洞修復(fù)特征模型進(jìn)行匹配,確定所述第一源碼所修復(fù)的漏洞。在本申請(qǐng)實(shí)施例中,采用獲取目標(biāo)應(yīng)用的源碼文件,其中,源碼文件包含目標(biāo)應(yīng)用的標(biāo)識(shí)信息;查找標(biāo)識(shí)信息是否已存儲(chǔ)在數(shù)據(jù)庫中,并在標(biāo)識(shí)信息已存儲(chǔ)在數(shù)據(jù)庫的情況下,從數(shù)據(jù)庫中提取與標(biāo)識(shí)信息對(duì)應(yīng)的原始源碼文件;判斷源碼文件與原始源碼文件是否相同;若不相同,獲取源碼文件中的、與原始源碼文件不同的第一源碼;將第一源碼與預(yù)先建立的漏洞修復(fù)特征模型進(jìn)行匹配,確定第一源碼所修復(fù)的漏洞的方式,通過從應(yīng)用的源碼文件入手,通過將源碼文件與已存儲(chǔ)的原始源碼對(duì)比,找出發(fā)生變動(dòng)的第一源碼,進(jìn)而根據(jù)漏洞修復(fù)特征模型匹配第一源碼所修復(fù)的漏洞,達(dá)到了精確分析漏洞修復(fù)位置、類型以及參數(shù)的目的,從而實(shí)現(xiàn)了提高應(yīng)用安全性的技術(shù)效果,進(jìn)而解決了由于現(xiàn)有技術(shù)不能有效識(shí)別漏洞位置和修復(fù)的漏洞參數(shù)造成的需消耗較多人力進(jìn)行漏洞分析的技術(shù)問題。附圖說明此處所說明的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:圖1是根據(jù)本申請(qǐng)實(shí)施例的一種運(yùn)行漏洞檢測(cè)方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖;圖2是根據(jù)本申請(qǐng)實(shí)施例的一種可選的漏洞檢測(cè)方法的流程示意圖;圖3是根據(jù)本申請(qǐng)實(shí)施例的另一種可選的漏洞檢測(cè)方法的流程示意圖;圖4是根據(jù)本申請(qǐng)實(shí)施例的一種可選的漏洞檢測(cè)裝置的結(jié)構(gòu)示意圖;圖5是根據(jù)本申請(qǐng)實(shí)施例的一種可選的判斷單元的結(jié)構(gòu)示意圖;圖6是根據(jù)本申請(qǐng)實(shí)施例的一種可選的第一獲取單元的結(jié)構(gòu)示意圖;圖7是根據(jù)本申請(qǐng)實(shí)施例的一種可選的第二獲取單元的結(jié)構(gòu)示意圖;圖8是根據(jù)本申請(qǐng)實(shí)施例的另一種可選的漏洞檢測(cè)裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式為了使本
      技術(shù)領(lǐng)域
      的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。需要說明的是,本申請(qǐng)的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。實(shí)施例1根據(jù)本申請(qǐng)實(shí)施例,還提供了一種漏洞檢測(cè)方法的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。本申請(qǐng)實(shí)施例一所提供的方法實(shí)施例可以在移動(dòng)終端、計(jì)算機(jī)終端或者類似的運(yùn)算裝置中執(zhí)行。以運(yùn)行在計(jì)算機(jī)終端上為例,圖1是本申請(qǐng)實(shí)施例的一種漏洞檢測(cè)方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖。如圖1所示,計(jì)算機(jī)終端10可以包括一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器102(處理器102可以包括但不限于微處理器MCU或可編程邏輯器件FPGA等的處理裝置)、用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器104、以及用于通信功能的傳輸裝置106。本領(lǐng)域普通技術(shù)人員可以理解,圖1所示的結(jié)構(gòu)僅為示意,其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端10還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。存儲(chǔ)器104可用于存儲(chǔ)應(yīng)用軟件的軟件程序以及模塊,如本申請(qǐng)實(shí)施例中的漏洞檢測(cè)方法對(duì)應(yīng)的程序指令/模塊,處理器102通過運(yùn)行存儲(chǔ)在存儲(chǔ)器104內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的應(yīng)用程序的漏洞檢測(cè)方法。存儲(chǔ)器104可包括高速隨機(jī)存儲(chǔ)器,還可包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器104 可進(jìn)一步包括相對(duì)于處理器102遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至計(jì)算機(jī)終端10。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。傳輸裝置106用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實(shí)例可包括計(jì)算機(jī)終端10的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置106包括一個(gè)網(wǎng)絡(luò)適配器(NetworkInterfaceController,NIC),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置106可以為射頻(RadioFrequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。在上述運(yùn)行環(huán)境下,本申請(qǐng)?zhí)峁┝巳鐖D2所示的漏洞檢測(cè)方法。圖2是根據(jù)本申請(qǐng)實(shí)施例一的漏洞檢測(cè)方法的流程圖。步驟S202,獲取目標(biāo)應(yīng)用的源碼文件,其中,源碼文件包含目標(biāo)應(yīng)用的標(biāo)識(shí)信息。本申請(qǐng)步驟S202中,源碼文件是指源代碼的集合,源代碼則是一組具有特定意義的可以實(shí)現(xiàn)特定功能的字符,標(biāo)識(shí)信息可以為目標(biāo)應(yīng)用的名稱,本實(shí)施例對(duì)此不作限定??蛇x地,上述步驟S202,獲取目標(biāo)應(yīng)用的源碼文件的方法可以包括:爬取目標(biāo)應(yīng)用的下載地址;從下載地址中解析出目標(biāo)應(yīng)用的URL(UniformResourceLocator,統(tǒng)一定位標(biāo)識(shí)符);依據(jù)URL,下載源碼文件。具體地,定期爬取目標(biāo)應(yīng)用的下載地址,從下載地址中解析出目標(biāo)應(yīng)用的URL,并寫入數(shù)據(jù)庫以備后續(xù)使用。并且,可以根據(jù)該URL對(duì)資源可用性進(jìn)行判斷,排除資源不可用情況下對(duì)性能的影響,將可用資源進(jìn)行標(biāo)記寫入數(shù)據(jù)庫;在完成上述操作后,對(duì)依據(jù)URL,爬取目標(biāo)應(yīng)用的源碼文件。步驟S204,查找標(biāo)識(shí)信息是否已存儲(chǔ)在數(shù)據(jù)庫中,并在標(biāo)識(shí)信息已存儲(chǔ)在數(shù)據(jù)庫的情況下,從數(shù)據(jù)庫中提取與標(biāo)識(shí)信息對(duì)應(yīng)的原始源碼文件。本申請(qǐng)步驟S204中,判斷標(biāo)識(shí)信息是否已存儲(chǔ)在數(shù)據(jù)庫中,若未存儲(chǔ)在數(shù)據(jù)庫中,則新建文件、目錄,并記錄源碼文件的Hash(哈希)值;若已存儲(chǔ)在數(shù)據(jù)庫中,并且已經(jīng)記錄過Hash值,則執(zhí)行步驟S206。需要說明的是,數(shù)據(jù)庫中包含了定期爬取到的各個(gè)應(yīng)用的源碼文件,并記錄有對(duì)應(yīng)源碼文件的Hash值、版本號(hào)、名稱等。以數(shù)據(jù)庫中包含源碼文件的Hash值、版本號(hào)、名稱為例,具體內(nèi)容如表1所示:表1編號(hào)源碼文件名稱版本號(hào)Hash值1A支付寶3.5.1value12B淘寶5.4.5value23C淘點(diǎn)點(diǎn)1.2.0value34D阿里健康2.1.0value4步驟S206,判斷源碼文件與原始源碼文件是否相同。本申請(qǐng)步驟S206中,在標(biāo)識(shí)信息已存儲(chǔ)在數(shù)據(jù)庫的情況下,從數(shù)據(jù)庫中提取與標(biāo)識(shí)信息對(duì)應(yīng)的原始源碼文件,進(jìn)而判斷源碼文件與原始源碼文件是否相同,若不相同,則認(rèn)定存在文件變動(dòng)的情況。可選地,判斷源碼文件與原始源碼文件是否相同包括:步驟S10,讀取源碼文件中的Hash值以及原始源碼文件中的Hash值。以目標(biāo)應(yīng)用為淘點(diǎn)點(diǎn)為例,假設(shè)淘點(diǎn)點(diǎn)的源碼文件的Hash值為value5,從數(shù)據(jù)庫中(如表1所示)讀取出淘點(diǎn)點(diǎn)的原始源碼文件C的Hash值為value3。步驟S12,判斷源碼文件中的Hash值與原始源碼文件中的Hash值是否相同。仍以目標(biāo)應(yīng)用為淘點(diǎn)點(diǎn)為例,對(duì)比value5與value3是否相同。步驟S14,若源碼文件中的Hash值與原始源碼文件中的Hash值相同,則源碼文件與原始源碼文件相同;若源碼文件中的Hash值與原始源碼文件中的Hash值不相同,則源碼文件與原始源碼文件不相同。仍以目標(biāo)應(yīng)用為淘點(diǎn)點(diǎn)為例,假設(shè)value5與value3不相同,則說明上述淘點(diǎn)點(diǎn)的源碼文件與數(shù)據(jù)庫中存儲(chǔ)的淘點(diǎn)點(diǎn)的原始源碼文件不相同,假設(shè)value5與value3相同,則說明上述淘點(diǎn)點(diǎn)的源碼文件與數(shù)據(jù)庫中存儲(chǔ)的淘點(diǎn)點(diǎn)的原始源碼文件相同。本申請(qǐng)步驟S10至步驟S14中,可以通過判斷Hash值是否相同來確定源碼文件與原始源碼文件是否相同。源碼文件和原始源碼文件中均包含對(duì)應(yīng)的Hash值,若需判斷Hash值是否相同,首先需從源碼文件中讀取源碼文件的Hash值以及從原始源碼文件中讀取原始源碼文件的Hash值。進(jìn)而,判斷判斷源碼文件中的Hash值與原始源碼文件中的Hash值是否相同,若源碼文件中的Hash值與原始源碼文件中的Hash值相同,則說明源碼文件與原始源碼 文件相同;若源碼文件中的Hash值與原始源碼文件中的Hash值不相同,則說明源碼文件與原始源碼文件不相同,存在文件變動(dòng)的情況。步驟S208,若不相同,獲取源碼文件中的、與原始源碼文件不同的第一源碼。本申請(qǐng)步驟S208中,在源碼文件與原始源碼文件不相同的情況下,本實(shí)施例的漏洞檢測(cè)方法則需要去定位發(fā)生變動(dòng)的具體位置,確定源碼文件中到底哪些源碼發(fā)生了變動(dòng)??蛇x地,獲取源碼文件中的、與原始源碼文件不同的第一源碼包括步驟S20至步驟S22。步驟S20,分別對(duì)源碼文件及原始源碼文件進(jìn)行解壓。本申請(qǐng)步驟S20,若源碼文件與原始源碼文件不相同,則說明源碼文件與原始源碼文件是相同應(yīng)用的不同版本(即是目標(biāo)應(yīng)用的不同版本),為了精確分析漏洞修復(fù)位置、類型以及參數(shù),首先需要對(duì)源碼文件及原始源碼文件進(jìn)行解壓。步驟S22,遍歷解壓后的源碼文件及解壓后的原始源碼文件,對(duì)比解壓后的源碼文件中的每個(gè)子文件與解壓后的原始源碼文件的每個(gè)子文件是否相同,以獲得第一源碼并記錄第一源碼的行號(hào)。本申請(qǐng)步驟S22,解壓完成后,對(duì)遍歷解壓后的源碼文件及解壓后的原始源碼文件,對(duì)比解壓后的源碼文件中的每個(gè)子文件與解壓后的原始源碼文件的每個(gè)子文件是否相同,對(duì)比每個(gè)文件的變動(dòng),以獲得第一源碼,并記錄變動(dòng)的行號(hào)、內(nèi)容等。進(jìn)一步地,將發(fā)生變動(dòng)的第一源碼存儲(chǔ)至數(shù)據(jù)庫,備份原始源碼文件,將源碼文件覆蓋原始源碼文件,等待下一次爬行。步驟S210,將第一源碼與預(yù)先建立的漏洞修復(fù)特征模型進(jìn)行匹配,確定第一源碼所修復(fù)的漏洞。本申請(qǐng)步驟S210中,在對(duì)比到源碼文件及原始源碼文件存在的差異時(shí),根據(jù)預(yù)先對(duì)不同開發(fā)語言產(chǎn)生的漏洞庫,建立的漏洞修復(fù)特征模型,該漏洞修復(fù)特征模型包括:SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)注入、任意代碼執(zhí)行、變量覆蓋、文件包含等各種漏洞修復(fù)文件,然后將第一源碼分析至字符串,判斷第一源碼增加的是函數(shù)、賦值等操作,將第一源碼與漏洞修復(fù)特征模型進(jìn)行匹配,精確識(shí)別第一源碼所修復(fù)的漏洞,具體地,識(shí)別出所修復(fù)的漏洞的位置、類型以及參數(shù)。可選地,漏洞修復(fù)特征模型包含至少一個(gè)漏洞修復(fù)文件,漏洞修復(fù)文件至少用于修復(fù)以下一種或幾種漏洞:SQL注入、任意源碼執(zhí)行、變量覆蓋以及文件包含。由上可知,本申請(qǐng)上述實(shí)施例一所提供的方案,通過從應(yīng)用的源碼文件入手,通過將源碼文件與已存儲(chǔ)的原始源碼對(duì)比,找出發(fā)生變動(dòng)的第一源碼,進(jìn)而根據(jù)漏洞修復(fù)特征模型匹配第一源碼所修復(fù)的漏洞,達(dá)到了精確分析漏洞修復(fù)位置、類型以及參數(shù)的目的,從而實(shí)現(xiàn)了提高應(yīng)用安全性的技術(shù)效果,進(jìn)而解決了由于現(xiàn)有技術(shù)不能有效識(shí)別漏洞位置和修復(fù)的漏洞參數(shù)造成的需消耗較多人力進(jìn)行漏洞分析的技術(shù)問題??蛇x地,如圖3所示,在判斷源碼文件與原始源碼文件是否相同之后,方法還包括:步驟S302,若不相同,獲取原始源碼文件中的、與源碼文件不同的第二源碼。本申請(qǐng)步驟S302中,在源碼文件與原始源碼文件不相同的情況下,本實(shí)施例的漏洞檢測(cè)方法還可以將原始源碼文件中與源碼文件不同的第二源碼尋找出來。步驟S304,將第一源碼和第二源碼分別與預(yù)先建立的后門特征庫進(jìn)行匹配,確定第一源碼和第二源碼是否被惡意植入后門。本申請(qǐng)步驟S304中,通過將第一源碼與后門特征庫進(jìn)行匹配,以及將第二源碼與后門特征庫進(jìn)行匹配,確定第一源碼和第二源碼是否被惡意植入后門。其中,后門是指繞過安全性控制而獲取對(duì)程序或系統(tǒng)訪問權(quán)的方法。進(jìn)一步地,通過遍歷第一源碼和第二源碼,例如遍歷:php(HypertextPreprocessor,超文本處理器)、c、asp(ActiveServerPage,動(dòng)態(tài)服務(wù)器頁面)、aspx(開發(fā)web應(yīng)用程序的類庫)、java、ruby(腳本語言)、python(一種面型對(duì)象、解釋型計(jì)算機(jī)程序設(shè)計(jì)語言)等可編譯或者可解析的文件,通過difflib的SequenceMatcher(序列匹配)庫,判斷源碼文件相對(duì)于原始源碼文件是采用了增加、刪除還是修改操作。由此可知,現(xiàn)有技術(shù)存在的不能有效識(shí)別漏洞位置和修復(fù)的漏洞參數(shù)造成的應(yīng)用程序安全性較低的問題,本申請(qǐng)?zhí)岢鲆环N基于源碼文件的漏洞檢測(cè)方法,將源碼文件與已存儲(chǔ)的原始源碼對(duì)比,找出發(fā)生變動(dòng)的第一源碼,進(jìn)而根據(jù)漏洞修復(fù)特征模型匹配第一源碼所修復(fù)的漏洞,達(dá)到了精確分析漏洞修復(fù)位置、類型以及參數(shù)的目的,從而實(shí)現(xiàn)了提高應(yīng)用安全性的技術(shù)效果。需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng)所必須的。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述的方法。實(shí)施例2根據(jù)本申請(qǐng)實(shí)施例,還提供了一種用于實(shí)施上述方法實(shí)施例的裝置實(shí)施例,本申請(qǐng)上述實(shí)施例所提供的裝置可以在計(jì)算機(jī)終端上運(yùn)行。圖4是根據(jù)本申請(qǐng)實(shí)施例的漏洞檢測(cè)裝置的結(jié)構(gòu)示意圖。如圖4所示,該漏洞檢測(cè)裝置可以包括第一獲取單元402、查找單元404、判斷單元406、第二獲取單元408以及檢測(cè)單元410。其中,第一獲取單元402,用于獲取目標(biāo)應(yīng)用的源碼文件,其中,所述源碼文件包含所述目標(biāo)應(yīng)用的標(biāo)識(shí)信息;查找單元404,用于查找所述標(biāo)識(shí)信息是否已存儲(chǔ)在數(shù)據(jù)庫中,并在所述標(biāo)識(shí)信息已存儲(chǔ)在所述數(shù)據(jù)庫的情況下,從所述數(shù)據(jù)庫中提取與所述標(biāo)識(shí)信息對(duì)應(yīng)的原始源碼文件;判斷單元406,用于判斷所述源碼文件與所述原始源碼文件是否相同;第二獲取單元408,用于若不相同,獲取所述源碼文件中的、與所述原始源碼文件不同的第一源碼;檢測(cè)單元410,用于將所述第一源碼與預(yù)先建立的漏洞修復(fù)特征模型進(jìn)行匹配,確定所述第一源碼所修復(fù)的漏洞。由上可知,本申請(qǐng)上述實(shí)施例二所提供的方案,通過從應(yīng)用的源碼文件入手,通過將源碼文件與已存儲(chǔ)的原始源碼對(duì)比,找出發(fā)生變動(dòng)的第一源碼,進(jìn)而根據(jù)漏洞修復(fù)特征模型匹配第一源碼所修復(fù)的漏洞,達(dá)到了精確分析漏洞修復(fù)位置、類型以及參數(shù)的目的,從而實(shí)現(xiàn)了提高應(yīng)用安全性的技術(shù)效果,進(jìn)而解決了由于現(xiàn)有技術(shù)不能有效識(shí)別漏洞位置和修復(fù)的漏洞參數(shù)造成的需消耗較多人力進(jìn)行漏洞分析的技術(shù)問題。此處需要說明的是,上述第一獲取單元402、查找單元404、判斷單元406、第二獲取單元408以及檢測(cè)單元410對(duì)應(yīng)于實(shí)施例一中的步驟S202至步驟S210,五個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)??蛇x地,所述第二獲取單元408,還用于若不相同,獲取所述原始源碼文件中的、與所述源碼文件不同的第二源碼;所述檢測(cè)單元410,還用于將所述第一源碼和所述第二源碼分別與預(yù)先建立的后門特征庫進(jìn)行匹配,確定所述第一源碼和所述第二源碼是否被惡意植入后門??蛇x地,如圖5所示,所述判斷單元406包括:讀取模塊502和判斷模塊504。其中,讀取模塊502,用于讀取所述源碼文件中的哈希Hash值以及所述原始源碼文件中的Hash值;判斷模塊504,用于判斷所述源碼文件中的Hash值與所述原始源碼文件中的Hash值是否相同;若所述源碼文件中的Hash值與所述原始源碼文件中的Hash值相同,則所述源碼文件與所述原始源碼文件相同;若所述源碼文件中的Hash值與所述原始源碼文件中的Hash值不相同,則所述源碼文件與所述原始源碼文件不相同。此處需要說明的是,上述讀取模塊502和判斷模塊504對(duì)應(yīng)于實(shí)施例一中的步驟S10至步驟S14,兩個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)??蛇x地,如圖6所示,所述第一獲取單元402包括:爬取模塊602、解析模塊604以及下載模塊606。其中,爬取模塊602,用于爬取所述目標(biāo)應(yīng)用的下載地址;解析模塊604,用于從所述下載地址中解析出所述目標(biāo)應(yīng)用的統(tǒng)一定位標(biāo)識(shí)符URL;下載模塊606,用于依據(jù)所述URL,下載所述源碼文件??蛇x地,如圖7所示,所述第二獲取單元408包括:解壓模塊702和遍歷模塊704。其中,解壓模塊702,用于分別對(duì)所述源碼文件及所述原始源碼文件進(jìn)行解壓;遍歷模塊704,用于遍歷解壓后的所述源碼文件及解壓后的所述原始源碼文件,對(duì)比解壓后的所述源碼文件中的每個(gè)子文件與解壓后的所述原始源碼文件的每個(gè)子文件是否相同,以獲得所述第一源碼并記錄所述第一源碼的行號(hào)。此處需要說明的是,上述解壓模塊702和遍歷模塊704對(duì)應(yīng)于實(shí)施例一中的步驟S20至步驟S22,兩個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)??蛇x地,所述漏洞修復(fù)特征模型包含至少一個(gè)漏洞修復(fù)文件,所述漏洞修復(fù)文件 至少用于修復(fù)以下一種或幾種漏洞:結(jié)構(gòu)化查詢語言SQL注入、任意源碼執(zhí)行、變量覆蓋以及文件包含。由此可知,現(xiàn)有技術(shù)存在的不能有效識(shí)別漏洞位置和修復(fù)的漏洞參數(shù)造成的應(yīng)用程序安全性較低的問題,本申請(qǐng)?zhí)岢鲆环N基于源碼文件的漏洞檢測(cè)方法,將源碼文件與已存儲(chǔ)的原始源碼對(duì)比,找出發(fā)生變動(dòng)的第一源碼,進(jìn)而根據(jù)漏洞修復(fù)特征模型匹配第一源碼所修復(fù)的漏洞,達(dá)到了精確分析漏洞修復(fù)位置、類型以及參數(shù)的目的,從而實(shí)現(xiàn)了提高應(yīng)用安全性的技術(shù)效果。實(shí)施例3根據(jù)本申請(qǐng)實(shí)施例,還提供了一種用于實(shí)施上述方法實(shí)施例的裝置實(shí)施例,本申請(qǐng)上述實(shí)施例所提供的裝置可以在計(jì)算機(jī)終端上運(yùn)行。圖8是根據(jù)本申請(qǐng)實(shí)施例的漏洞檢測(cè)裝置的結(jié)構(gòu)示意圖。如圖8所示,該漏洞檢測(cè)裝置可以包括開源應(yīng)用地址爬蟲引擎802、資源可用性分析引擎804、下載引擎806、文件解壓引擎808、文件變動(dòng)分析引擎810、核心漏洞分析引擎812。第一部份,對(duì)源碼變動(dòng)的及時(shí)監(jiān)測(cè)及漏洞文件分析。針對(duì)大量的互聯(lián)網(wǎng)應(yīng)用程序在應(yīng)用發(fā)布時(shí)存在文件名稱隨機(jī)化、下載鏈接隨機(jī)化等特殊情況,開源應(yīng)用地址爬蟲引擎802以定期維護(hù)各應(yīng)用URL池的爬取更新,寫入數(shù)據(jù)庫以備后續(xù)使用;資源可用性分析引擎804從開源應(yīng)用地址爬蟲引擎802維護(hù)的URL池進(jìn)行讀取,對(duì)資源可用性進(jìn)行判斷,排除資源不可用情況下對(duì)性能的影響,將可用資源進(jìn)行標(biāo)記寫入數(shù)據(jù)庫;在完成上述操作后,下載引擎806依據(jù)URL爬取各個(gè)應(yīng)用對(duì)應(yīng)的源碼文件。判斷源碼文件是否已存儲(chǔ)在數(shù)據(jù)庫中文件資源池中,若未存儲(chǔ)則新建文件、目錄,并記錄該源碼文件的Hash值;若已存儲(chǔ)在文件資源池中,并且已經(jīng)記錄過Hash值,則判斷Hash值與數(shù)據(jù)庫中原始源碼文件的Hash值是否一致。當(dāng)兩個(gè)hash值不一致時(shí),則認(rèn)定存在文件變動(dòng)情況。當(dāng)源碼文件的Hash值與原始源碼文件的Hash值不一致時(shí),啟動(dòng)文件解壓引擎808,對(duì)同應(yīng)用的不同版本(即源碼文件及原始源碼文件)進(jìn)行解壓操作。完成解壓后,文件變動(dòng)分析引擎810開始工作,文件變動(dòng)分析引擎810對(duì)源碼文件及原始源碼文件進(jìn)行遍歷,對(duì)比每個(gè)文件的變動(dòng),記錄變動(dòng)的行號(hào)、內(nèi)容等。將具體的變動(dòng)文件內(nèi)容等寫入數(shù)據(jù)庫。備份老版本的應(yīng)用,將新版本應(yīng)用覆蓋老版本應(yīng)用,分析池結(jié)束,等待 下一次爬行。第二部份,核心自動(dòng)化漏洞識(shí)別分析、參數(shù)定位。在對(duì)比到文件差異時(shí),啟動(dòng)核心漏洞分析引擎812。通過遍歷第一源碼以及第二源碼,例如遍歷:php、c、asp、aspx、java、ruby、python等可編譯或者可解析的文件。分別將第一源碼以及第二源碼與后門特征庫進(jìn)行匹配,進(jìn)行可疑后門掃描識(shí)別,判斷第一源碼以及第二源碼中是否被惡意植入后門。通過difflib的SequenceMatcher庫,遍歷出所有不同的行,判斷文件是增加、刪除、修改操作。再次通過變動(dòng)后的文件使用SequenceMatcher庫,對(duì)第一源碼進(jìn)行遍歷。建立一個(gè)漏洞修復(fù)特征模型,漏洞修復(fù)特征模型包括:SQL注入、任意代碼執(zhí)行、變量覆蓋、文件包含等各種漏洞修復(fù)文件,然后將第一源碼分析至字符串,判斷第一源碼相比于第二源碼增加的是函數(shù)、賦值等操作,記錄變更的變量等,將內(nèi)容變動(dòng)與漏洞修復(fù)特征模型進(jìn)行匹配,精確識(shí)別第二源碼所修復(fù)的漏洞。通過以上兩個(gè)部分,可以精確識(shí)別源碼文件以及原始源碼文件是否被植入后門,分析源碼文件修復(fù)了的哪些漏洞,避免浪費(fèi)大量的人工進(jìn)行漏洞分析。實(shí)施例4本申請(qǐng)的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于保存上述實(shí)施例一所提供的漏洞檢測(cè)方法所執(zhí)行的程序代碼??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于計(jì)算機(jī)網(wǎng)絡(luò)中計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端中,或者位于移動(dòng)終端群中的任意一個(gè)移動(dòng)終端中??蛇x地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:獲取目標(biāo)應(yīng)用的源碼文件,其中,所述源碼文件包含所述目標(biāo)應(yīng)用的標(biāo)識(shí)信息;查找所述標(biāo)識(shí)信息是否已存儲(chǔ)在數(shù)據(jù)庫中,并在所述標(biāo)識(shí)信息已存儲(chǔ)在所述數(shù)據(jù)庫的情況下,從所述數(shù)據(jù)庫中提取與所述標(biāo)識(shí)信息對(duì)應(yīng)的原始源碼文件;判斷所述源碼文件與所述原始源碼文件是否相同;若不相同,獲取所述源碼文件中的、與所述原始源碼文件不同的第一源碼;將所述第一源碼與預(yù)先建立的漏洞修復(fù)特征模型進(jìn)行匹配,確定所述第一源碼所修復(fù)的漏洞??蛇x地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:若不相同,獲取所述原始源碼文件中的、與所述源碼文件不同的第二源碼;將所述第一源碼和所述第二源碼分別與預(yù)先建立的后門特征庫進(jìn)行匹配,確定所述第一源碼和所述第二源碼 是否被惡意植入后門。可選地,讀取所述源碼文件中的哈希Hash值以及所述原始源碼文件中的Hash值;判斷所述源碼文件中的Hash值與所述原始源碼文件中的Hash值是否相同;若所述源碼文件中的Hash值與所述原始源碼文件中的Hash值相同,則所述源碼文件與所述原始源碼文件相同;若所述源碼文件中的Hash值與所述原始源碼文件中的Hash值不相同,則所述源碼文件與所述原始源碼文件不相同??蛇x地,所述獲取目標(biāo)應(yīng)用的源碼文件包括:爬取所述目標(biāo)應(yīng)用的下載地址;從所述下載地址中解析出所述目標(biāo)應(yīng)用的統(tǒng)一定位標(biāo)識(shí)符URL;依據(jù)所述URL,下載所述源碼文件。可選地,分別對(duì)所述源碼文件及所述原始源碼文件進(jìn)行解壓;遍歷解壓后的所述源碼文件及解壓后的所述原始源碼文件,對(duì)比解壓后的所述源碼文件中的每個(gè)子文件與解壓后的所述原始源碼文件的每個(gè)子文件是否相同,以獲得所述第一源碼并記錄所述第一源碼的行號(hào)??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:U盤、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccessMemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)??蛇x地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1中所描述的示例,本實(shí)施例在此不再贅述。上述本申請(qǐng)實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。在本申請(qǐng)的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例 方案的目的。另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccessMemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序源碼的介質(zhì)。以上所述僅是本申請(qǐng)的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
      技術(shù)領(lǐng)域
      的普通技術(shù)人員來說,在不脫離本申請(qǐng)?jiān)淼那疤嵯拢€可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本申請(qǐng)的保護(hù)范圍。當(dāng)前第1頁1 2 3 
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1