一種漏洞檢測(cè)的方法及服務(wù)器的制造方法
【專利摘要】本發(fā)明涉及一種漏洞檢測(cè)的方法及服務(wù)器,公開了一種漏洞檢測(cè)的方法,包括:檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源;當(dāng)檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞;針對(duì)所述漏洞做出修復(fù)建議,并輸出所述漏洞的說明和所述修復(fù)建議。本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法,可以通過檢測(cè)檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的方法,快速檢測(cè)flash數(shù)據(jù)文件中的漏洞,提高了flash數(shù)據(jù)文件的檢測(cè)效率。
【專利說明】—種漏洞檢測(cè)的方法及服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,具體涉及一種漏洞檢測(cè)的方法及服務(wù)器。
【背景技術(shù)】
[0002]隨著Web2.0的興起,互聯(lián)網(wǎng)已離不開各式各樣的Web應(yīng)用,如網(wǎng)絡(luò)游戲、電子商城及各種社交應(yīng)用。Flash數(shù)據(jù)文件作為一款瀏覽器的第三方插件,在頁面展示時(shí)含有豐富的功能,已是Web必不可少的元素,也是眾多游戲的實(shí)現(xiàn)方式。
[0003]但與此同時(shí),flash數(shù)據(jù)文件也帶來不安全的因素,flash數(shù)據(jù)文件安全漏洞已成為當(dāng)如急需解決的問題。
[0004]在對(duì)現(xiàn)有技術(shù)的研究和實(shí)踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),目前檢測(cè)flash數(shù)據(jù)文件中的漏洞,通常只能逐個(gè)分析flash數(shù)據(jù)文件中的函數(shù),從flash數(shù)據(jù)文件的函數(shù)中找到漏洞,這種逐個(gè)函數(shù)分析的方案導(dǎo)致檢測(cè)效率低下,不能及時(shí)發(fā)現(xiàn)flash數(shù)據(jù)文件中的漏洞,導(dǎo)致flash數(shù)據(jù)文件存在著很大的安全隱患。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種漏洞檢測(cè)的方法,可以通過檢測(cè)檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的方法,快速檢測(cè)flash數(shù)據(jù)文件中的漏洞,提高了 flash數(shù)據(jù)文件的檢測(cè)效率。本發(fā)明實(shí)施例還提供了相應(yīng)的服務(wù)器。
[0006]本發(fā)明第一方面提供一種漏洞檢測(cè)的方法,包括:
[0007]檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源;
[0008]當(dāng)檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞;
[0009]針對(duì)所述漏洞做出修復(fù)建議,并輸出所述漏洞的說明和所述修復(fù)建議。
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源,包括:
[0011]檢測(cè)所述參數(shù)的取值是否隨外部輸入的變化而改變;
[0012]當(dāng)所述參數(shù)的取值隨外部輸入的變化而改變時(shí),確認(rèn)所述參數(shù)由外部輸入控制。
[0013]結(jié)合第一方面第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述針對(duì)所述漏洞做出修復(fù)建議,包括:
[0014]針對(duì)所述漏洞,從預(yù)先配置的修復(fù)建議中選擇對(duì)應(yīng)所述漏洞的修復(fù)建議。
[0015]結(jié)合第一方面、第一方面第一種或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源的步驟之前,所述方法還包括:
[0016]將所述flash數(shù)據(jù)文件中的函數(shù)與預(yù)先配置的高危函數(shù)集合中的每個(gè)函數(shù)進(jìn)行比對(duì);
[0017]當(dāng)比對(duì)出所述flash數(shù)據(jù)文件中的任一函數(shù)存在于所述高危函數(shù)集合時(shí),確認(rèn)所述任一函數(shù)為高危函數(shù)。
[0018]結(jié)合第一方面、第一方面第一種或第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0019]根據(jù)所述flash數(shù)據(jù)文件的網(wǎng)頁地址或包含所述flash數(shù)據(jù)文件鏈接的列表,獲取所述flash數(shù)據(jù)文件。
[0020]結(jié)合第一方面、第一方面第一種或第二種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0021]采用消息摘要算法,計(jì)算所述flash數(shù)據(jù)文件的摘要值;
[0022]當(dāng)所述摘要值發(fā)生變化時(shí),重新檢測(cè)所述flash數(shù)據(jù)文件中的高危函數(shù)的參數(shù)的控制源。
[0023]本發(fā)明第二方面提供一種服務(wù)器,包括:
[0024]檢測(cè)單元,用于檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源;
[0025]確定單元,用于當(dāng)所述檢測(cè)單元檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞;
[0026]處理單元,用于針對(duì)所述確定單元確定的漏洞做出修復(fù)建議;
[0027]輸出單元,用于輸出所述漏洞的說明和所述處理單元做出的修復(fù)建議。
[0028]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述檢測(cè)單元包括:
[0029]檢測(cè)子單元,用于檢測(cè)所述參數(shù)的取值是否隨外部輸入的變化而改變;
[0030]確認(rèn)子單元,用于當(dāng)所述檢測(cè)子單元檢測(cè)出所述參數(shù)的取值隨外部輸入的變化而改變時(shí),確認(rèn)所述參數(shù)由外部輸入控制。
[0031 ] 結(jié)合第二方面第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,
[0032]所述處理單元,用于針對(duì)所述漏洞,從預(yù)先配置的修復(fù)建議中選擇對(duì)應(yīng)所述漏洞的修復(fù)建議。
[0033]結(jié)合第二方面、第二方面第一種或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述服務(wù)器還包括:
[0034]比對(duì)單元,用于將所述flash數(shù)據(jù)文件中的函數(shù)與預(yù)先配置的高危函數(shù)集合中的每個(gè)函數(shù)進(jìn)行比對(duì);
[0035]確認(rèn)單元,用于當(dāng)所述比對(duì)單元比對(duì)出所述flash數(shù)據(jù)文件中的任一函數(shù)存在于所述高危函數(shù)集合時(shí),確認(rèn)所述任一函數(shù)為高危函數(shù)。
[0036]結(jié)合第二方面、第二方面第一種或第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述服務(wù)器還包括:
[0037]獲取單元,用于根據(jù)所述flash數(shù)據(jù)文件的網(wǎng)頁地址或包含所述flash數(shù)據(jù)文件鏈接的列表,獲取所述flash數(shù)據(jù)文件。
[0038]結(jié)合第二方面、第二方面第一種或第二種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述服務(wù)器還包括:
[0039]計(jì)算單元,用于采用消息摘要算法,計(jì)算所述flash數(shù)據(jù)文件的摘要值;
[0040]所述檢測(cè)單元,用于當(dāng)所述計(jì)算單元計(jì)算出的摘要值發(fā)生變化時(shí),重新檢測(cè)所述flash數(shù)據(jù)文件中的高危函數(shù)的參數(shù)的控制源。
[0041]本發(fā)明實(shí)施例檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源;當(dāng)檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞;針對(duì)所述漏洞做出修復(fù)建議,并輸出所述漏洞的說明和所述修復(fù)建議。與現(xiàn)有技術(shù)中逐個(gè)對(duì)flash數(shù)據(jù)文件中的函數(shù)進(jìn)行分析查找漏洞相比,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法,可以通過檢測(cè)檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的方法,快速檢測(cè)flash數(shù)據(jù)文件中的漏洞,提高了 flash數(shù)據(jù)文件的檢測(cè)效率。
【專利附圖】
【附圖說明】
[0042]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0043]圖1是本發(fā)明實(shí)施例中漏洞檢測(cè)的方法的一實(shí)施例示意圖;
[0044]圖2是本發(fā)明實(shí)施例中漏洞檢測(cè)的方法的另一實(shí)施例示意圖;
[0045]圖3是本發(fā)明實(shí)施例中漏洞檢測(cè)的方法的另一實(shí)施例示意圖;
[0046]圖4是本發(fā)明實(shí)施例中服務(wù)器的一實(shí)施例示意圖;
[0047]圖5是本發(fā)明實(shí)施例中服務(wù)器的另一實(shí)施例示意圖;
[0048]圖6是本發(fā)明實(shí)施例中服務(wù)器的另一實(shí)施例示意圖;
[0049]圖7是本發(fā)明實(shí)施例中服務(wù)器的另一實(shí)施例示意圖;
[0050]圖8是本發(fā)明實(shí)施例中服務(wù)器的另一實(shí)施例示意圖;
[0051]圖9是本發(fā)明實(shí)施例中服務(wù)器的另一實(shí)施例示意圖。
【具體實(shí)施方式】
[0052]本發(fā)明實(shí)施例提供一種漏洞檢測(cè)的方法,可以通過檢測(cè)檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的方法,快速檢測(cè)flash數(shù)據(jù)文件中的漏洞,提高了 flash數(shù)據(jù)文件的檢測(cè)效率。本發(fā)明實(shí)施例還提供了相應(yīng)的服務(wù)器。以下分別進(jìn)行詳細(xì)說明。
[0053]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0054]參閱圖1,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法的一實(shí)施例包括:
[0055]101、檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源。
[0056]Flash數(shù)據(jù)文件指瀏覽器的第三方插件程序,交互式矢量圖和Web動(dòng)畫,用于創(chuàng)建演示文稿、應(yīng)用程序和其他允許用戶交互的內(nèi)容,可包含簡(jiǎn)單的動(dòng)畫、視頻內(nèi)容、復(fù)雜演示文稿和應(yīng)用程序及介于它們之間的任何內(nèi)容。
[0057]本發(fā)明實(shí)施例中,高危函數(shù):即是危險(xiǎn)程度比較高的函數(shù)。在一個(gè)程序中,漏洞的觸發(fā)總是從惡意的輸入開始,當(dāng)運(yùn)行到某些函數(shù)時(shí),這些函數(shù)會(huì)執(zhí)行這些惡意的輸入,并造成一定的惡劣后果。這些函數(shù)就是危險(xiǎn)函數(shù)。其中可以造成比較重大后果的,就是高危函數(shù)。
[0058]程序執(zhí)行的數(shù)據(jù)來源可以分為兩類,一種是在程序里固定的數(shù)據(jù),一種是接收外部的輸入??刂圃纯梢园ü潭刂圃春屯獠枯斎肟刂圃?。
[0059]102、當(dāng)檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞。
[0060]103、針對(duì)所述漏洞做出修復(fù)建議,并輸出所述漏洞的說明和所述修復(fù)建議。
[0061]本發(fā)明實(shí)施例檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源;當(dāng)檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞;針對(duì)所述漏洞做出修復(fù)建議,并輸出所述漏洞的說明和所述修復(fù)建議。與現(xiàn)有技術(shù)中逐個(gè)對(duì)flash數(shù)據(jù)文件中的函數(shù)進(jìn)行分析查找漏洞相比,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法,可以通過檢測(cè)檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的方法,快速檢測(cè)flash數(shù)據(jù)文件中的漏洞,提高了 flash數(shù)據(jù)文件的檢測(cè)效率。
[0062]可選地,在上述圖1對(duì)應(yīng)的實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法的一可選實(shí)施例中,所述檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源,可以包括:
[0063]檢測(cè)所述參數(shù)的取值是否隨外部輸入的變化而改變;
[0064]當(dāng)所述參數(shù)的取值隨外部輸入的變化而改變時(shí),確認(rèn)所述參數(shù)由外部輸入控制。
[0065]外部輸入控制指的是可以由外部控制或者外部可以控制。如果一個(gè)參數(shù)的值取決于外部的輸入,那個(gè)該參數(shù)由外部輸入控制,該參數(shù)即是外部可控的參數(shù)。
[0066]當(dāng)所述參數(shù)是可以外部可控的,則認(rèn)為該處存在漏洞,該高危函數(shù)是漏洞的觸發(fā)點(diǎn)。
[0067]可選地,在上述圖1對(duì)應(yīng)的一可選實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法的另一可選實(shí)施例中,所述針對(duì)所述漏洞做出修復(fù)建議,包括:
[0068]針對(duì)所述漏洞,從預(yù)先配置的修復(fù)建議中選擇對(duì)應(yīng)所述漏洞的修復(fù)建議。
[0069]本發(fā)明實(shí)施例中,當(dāng)所述參數(shù)是可以外部可控的,則認(rèn)為該處存在漏洞,針對(duì)不同漏洞可以預(yù)先設(shè)置修復(fù)建議,這樣,在檢測(cè)出漏洞后,就可以找到對(duì)應(yīng)該漏洞的修復(fù)建議,然后輸出所述漏洞的說明和對(duì)應(yīng)所述漏洞的修復(fù)建議。
[0070]可選地,在上述圖1及圖1對(duì)應(yīng)的任一可選實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法的另一可選實(shí)施例中,所述檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源的步驟之前,所述方法還包括:
[0071]將所述flash數(shù)據(jù)文件中的函數(shù)與預(yù)先配置的高危函數(shù)集合中的每個(gè)函數(shù)進(jìn)行比對(duì);
[0072]當(dāng)比對(duì)出所述flash數(shù)據(jù)文件中的任一函數(shù)存在于所述高危函數(shù)集合時(shí),確認(rèn)所述任一函數(shù)為高危函數(shù)。
[0073]本發(fā)明實(shí)施例中,可以預(yù)先配置高危函數(shù)集合,該高危函數(shù)集合可以預(yù)先通過對(duì)多個(gè)函數(shù)的分析來建立,例如:高危函數(shù)集合中可以包括100個(gè)或者更多個(gè)高危函數(shù),當(dāng)要檢測(cè)一 flash數(shù)據(jù)文件時(shí),需要先將該flash數(shù)據(jù)文件種每個(gè)函數(shù)與高危函數(shù)集合中的函數(shù)進(jìn)行一一比對(duì),當(dāng)比對(duì)出所述flash數(shù)據(jù)文件中的任一函數(shù)存在于所述高危函數(shù)集合時(shí),就可以確認(rèn)該任一函數(shù)為高危函數(shù)。
[0074]可選地,在上述圖1及圖1對(duì)應(yīng)的任一可選實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法的一可選實(shí)施例中,所述方法還包括:
[0075]根據(jù)所述flash數(shù)據(jù)文件的網(wǎng)頁地址或包含所述flash數(shù)據(jù)文件鏈接的列表,獲取所述flash數(shù)據(jù)文件。
[0076]本發(fā)明實(shí)施例中,對(duì)于單個(gè)flash數(shù)據(jù)文件可以通過該flash數(shù)據(jù)文件的網(wǎng)頁地址進(jìn)行獲取,當(dāng)有批量flash數(shù)據(jù)文件要檢測(cè)時(shí),可以將所有要檢測(cè)的flash數(shù)據(jù)文件的鏈接寫在列表上,然后檢測(cè)該列表上每個(gè)鏈接對(duì)應(yīng)的flash數(shù)據(jù)文件。
[0077]可選地,在上述圖1及圖1對(duì)應(yīng)的任一可選實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法的一可選實(shí)施例中,所述方法還可以包括:
[0078]采用消息摘要算法,計(jì)算所述flash數(shù)據(jù)文件的摘要值;
[0079]當(dāng)所述摘要值發(fā)生變化時(shí),重新檢測(cè)所述flash數(shù)據(jù)文件中的高危函數(shù)的參數(shù)的控制源。
[0080]本發(fā)明實(shí)施例中,已經(jīng)被檢測(cè)過的flash數(shù)據(jù)文件在被修改后,還可能存在安全漏洞,可以通過采用消息摘要算法第五版(Message Digest Algorithm, md5)計(jì)算flash數(shù)據(jù)文件的摘要值,當(dāng)摘要值發(fā)生變化時(shí),說明該flash數(shù)據(jù)文件被修改,需要重新檢測(cè)flash數(shù)據(jù)文件中的高危函數(shù)的參數(shù)的控制源。
[0081]可選地,在上述圖1及圖1對(duì)應(yīng)的任一可選實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的漏洞檢測(cè)的方法的一可選實(shí)施例中,所述輸出所述檢測(cè)結(jié)果和修復(fù)建議,可以包括:
[0082]采用工單或郵件的形式輸出所述檢測(cè)結(jié)果和修復(fù)建議。
[0083]本發(fā)明實(shí)施例中,服務(wù)器可以向?qū)?yīng)的接口地址發(fā)送工單或郵件,在工單或郵件上說明檢測(cè)結(jié)果和修復(fù)建議,這樣,接口負(fù)責(zé)人在查看工單或郵件后,就可以按照檢測(cè)結(jié)果和修復(fù)建議及時(shí)修復(fù)該flash數(shù)據(jù)文件。
[0084]為了便于說明,下面以應(yīng)用場(chǎng)景為例,說明本發(fā)明實(shí)施例中數(shù)據(jù)處理的過程:
[0085]參閱圖2,整個(gè)審計(jì)方案可按flash生命周期分為開發(fā)測(cè)試、發(fā)布上線和運(yùn)營(yíng)維護(hù)三個(gè)階段。下面也按這三個(gè)方面分別闡述。
[0086]在開發(fā)測(cè)試階段,要確認(rèn)開發(fā)的flash數(shù)據(jù)文件是否符合安全規(guī)范要求,需要在測(cè)試環(huán)境中對(duì)該flash數(shù)據(jù)文件進(jìn)行安全測(cè)試。
[0087]在測(cè)試過程中,可直接以統(tǒng)一資源定位符(Uniform Resource Locator, url),也就是網(wǎng)頁地址,或本地flash數(shù)據(jù)文件的形式自由提交掃描,即時(shí)給出掃描結(jié)果。還可填上聯(lián)系人,掃描完即刻以郵件形式通知相關(guān)人員結(jié)果。
[0088]還可以通過一個(gè)統(tǒng)一接口及批量提交的腳本提交批量flash數(shù)據(jù)文件,檢測(cè)將直接返回給業(yè)務(wù)的處理端,并通過郵件或工單分發(fā)給相關(guān)負(fù)責(zé)人,推動(dòng)漏洞的修復(fù)。這整個(gè)過程,除了需開發(fā)排期確認(rèn)修復(fù)之外,不需其它人力資源。
[0089]結(jié)果:在發(fā)往負(fù)責(zé)人的郵件或工單上,附上詳細(xì)的漏洞說明、案例分析及修復(fù)方法,甚至附上一些常見的安全應(yīng)用程序編程接口(Applicat1n Programming Interface,API),如getUrl中鏈接參數(shù)的檢驗(yàn),externalEnterface.call函數(shù)的參數(shù)過濾等。保證大部分開發(fā)能自助且方便地完成修復(fù)工作一只需復(fù)制對(duì)應(yīng)安全API,加一行調(diào)用。也保證了修復(fù)工作的質(zhì)量,不至于過濾后仍輕易被繞過。修復(fù)后的flash又通過web端掃描或測(cè)試平臺(tái),再一次進(jìn)行修復(fù)驗(yàn)證。
[0090]當(dāng)安全評(píng)價(jià)人員處理漏洞的過程中發(fā)現(xiàn)該漏洞為誤報(bào),提取該誤報(bào)點(diǎn)特征,通過優(yōu)化系統(tǒng)邏輯或添加白名單,避免此誤報(bào)再次發(fā)生。如此經(jīng)過幾輪運(yùn)營(yíng),誤報(bào)率將逐漸降低。
[0091]在發(fā)布上線階段,針對(duì)線上海量的flash數(shù)據(jù)文件,可以由接口人整理一份已在線flash數(shù)據(jù)文件列表。針對(duì)列表上的flash數(shù)據(jù)文件進(jìn)行集中檢測(cè),并將結(jié)果一次性返回給業(yè)務(wù)接口人,由業(yè)務(wù)側(cè)排期處理。
[0092]對(duì)于未經(jīng)檢測(cè),或檢測(cè)過后又被修改的文件,則通過全量審計(jì)來進(jìn)行清查。
[0093]全量審計(jì)通過多種方式收集指定域名下所有flash的可用鏈接,通過md5計(jì)算該flash數(shù)據(jù)文件的摘要值,當(dāng)摘要值發(fā)生變化,確定該flash數(shù)據(jù)文件被修改。服務(wù)器每天對(duì)新增的或摘要值發(fā)生改變的flash數(shù)據(jù)文件進(jìn)行掃描,對(duì)flash數(shù)據(jù)文件的漏洞結(jié)果通過工單推動(dòng)開發(fā)修復(fù)。這一步之后與開發(fā)測(cè)試階段的處理一樣。
[0094]經(jīng)過前兩個(gè)階段掃描之后,基本上清除了大部分能檢測(cè)到的漏洞,并通過運(yùn)營(yíng)將誤報(bào)率控制在可接受范圍。
[0095]參閱圖3,服務(wù)器通過接口、web、專項(xiàng)及全量等模塊,下載將要檢查的flash文件,并記錄相關(guān)信息。對(duì)每個(gè)flash文件進(jìn)行反編譯,得到它的源碼或中間碼。
[0096]整個(gè)審計(jì)系統(tǒng)的核心在于規(guī)則的配置。所有規(guī)則都以配置形式存在,方便修改及快捷實(shí)時(shí)地添加。審計(jì)模塊以腳本黏合,可快速地滿足業(yè)務(wù)需求。既不失審計(jì)模塊本身的穩(wěn)定性,也不失系統(tǒng)的輕便性。同時(shí)可降低修復(fù)升級(jí)成本。
[0097]污點(diǎn)追蹤審計(jì)模塊,可以完成大部分flash數(shù)據(jù)文件漏洞的檢查。它對(duì)flash數(shù)據(jù)文件中使用的高危函數(shù)進(jìn)行參數(shù)追蹤,若參數(shù)是外部可控的參數(shù),則確認(rèn)為可利用漏洞。相關(guān)配置文件主要配置了高危函數(shù)及其需檢查的參數(shù)位置,安全應(yīng)用程序接口(Applicat1nProgramming Interface, API)列表等,當(dāng)出現(xiàn)新的危險(xiǎn)函數(shù)或安全API時(shí),只需對(duì)該配置文件進(jìn)行修改,不用改動(dòng)系統(tǒng)邏輯。
[0098]黑名單模塊主要是為了改善漏報(bào)情況。對(duì)污點(diǎn)追蹤模塊難以實(shí)現(xiàn)或不便于實(shí)現(xiàn)的漏洞點(diǎn),進(jìn)行輕量級(jí)的規(guī)則開發(fā)。
[0099]其它規(guī)則跟黑名單模塊相似,是利用腳本優(yōu)勢(shì),對(duì)某些規(guī)則進(jìn)行快速準(zhǔn)確定制。易于維護(hù)和增刪。
[0100]白名單模塊是系統(tǒng)自我學(xué)習(xí),降低誤報(bào)率的主要手段。誤報(bào)與漏報(bào)總是難以平衡的,有時(shí)誤報(bào)的修復(fù)勢(shì)必會(huì)造成漏報(bào)率的增加,反之亦然。對(duì)此情況才增加了黑名單與白名單。因它們的針對(duì)性強(qiáng),不會(huì)造成大量漏報(bào),并且改動(dòng)極小,只要增加漏洞點(diǎn)的特征代碼與所屬文件。因公司文件有很多是可重用的,所以一般強(qiáng)加一處白名單,可長(zhǎng)期避免多個(gè)文件漏洞的誤報(bào)。通過反復(fù)運(yùn)營(yíng),系統(tǒng)誤報(bào)率逐漸降低。
[0101]郵件模塊和工單模塊可根據(jù)用戶需要,將結(jié)果推送出去的方式??勺杂啥ㄖ仆扑头绞?。是自動(dòng)化流程中重要的一步。
[0102]在具體處理過程中,參閱下面常碰到的兩個(gè)應(yīng)用場(chǎng)景來進(jìn)行理解:
[0103]用戶A在發(fā)布新flash游戲前會(huì)把它放在測(cè)試平臺(tái)測(cè)試,平臺(tái)檢測(cè)到更新,自動(dòng)將其提交到檢測(cè)系統(tǒng),結(jié)果發(fā)現(xiàn)有幾個(gè)漏洞。于是系統(tǒng)給平臺(tái)提測(cè)時(shí)登記的文件負(fù)責(zé)人A發(fā)送漏洞結(jié)果信息。A收到工單,在查閱附帶的漏洞危害說明以后,根據(jù)工單中提供的修復(fù)方法,在代碼里增加一個(gè)安全函數(shù),對(duì)危險(xiǎn)點(diǎn)作了過濾。為了盡快確認(rèn)是否修改正確,再次提交了剛修改完的flash文件。結(jié)果發(fā)現(xiàn)已經(jīng)沒有漏洞了。于是A放心地發(fā)布了自己的游戲。
[0104]B業(yè)務(wù)下有很多flash文件,為了業(yè)務(wù)安全,負(fù)責(zé)人決定接入檢測(cè)系統(tǒng)。于是將旗下所有的在線flash數(shù)據(jù)文件鏈接整理了一份上傳檢測(cè)系統(tǒng)。檢測(cè)系統(tǒng)讀取列表,對(duì)列表里的文件做一次統(tǒng)一檢測(cè),然后將結(jié)果返回給負(fù)責(zé)人。根據(jù)修復(fù)建議及安全API進(jìn)行修復(fù),他在修復(fù)后又重新上線。全量模塊檢測(cè)到這一部分flash數(shù)據(jù)文件發(fā)生了改變,自動(dòng)對(duì)其進(jìn)行掃描,結(jié)果有些通過了,有些卻還修復(fù)不完全,依然有漏洞。對(duì)這部分有漏洞的文件,自動(dòng)發(fā)送工單,通知開發(fā)及時(shí)修復(fù)。
[0105]參閱圖4,本發(fā)明實(shí)施例提供的服務(wù)器的一實(shí)施例包括:
[0106]檢測(cè)單元201,用于檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源;
[0107]確定單元202,用于當(dāng)所述檢測(cè)單元201檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞;
[0108]處理單元203,用于針對(duì)所述確定單元202確定的漏洞做出修復(fù)建議;
[0109]輸出單元204,用于輸出所述漏洞的說明和所述處理單元203做出的修復(fù)建議。
[0110]本發(fā)明實(shí)施例中,檢測(cè)單元201檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源;確定單元202當(dāng)所述檢測(cè)單元201檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞;處理單元203針對(duì)所述確定單元202確定的漏洞做出修復(fù)建議;輸出單元204輸出所述漏洞的說明和所述處理單元203做出的修復(fù)建議。與現(xiàn)有技術(shù)中逐個(gè)對(duì)flash數(shù)據(jù)文件中的函數(shù)進(jìn)行分析查找漏洞相比,本發(fā)明實(shí)施例提供的服務(wù)器,可以通過檢測(cè)檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的方法,快速檢測(cè)flash數(shù)據(jù)文件中的漏洞,提高了flash數(shù)據(jù)文件的檢測(cè)效率。
[0111]在上述圖4對(duì)應(yīng)的實(shí)施例的基礎(chǔ)上,參閱圖5,本發(fā)明實(shí)施例提供的服務(wù)器的另一實(shí)施例中,
[0112]所述檢測(cè)單元201包括:
[0113]檢測(cè)子單元2011,用于檢測(cè)所述參數(shù)的取值是否隨外部輸入的變化而改變;
[0114]確認(rèn)子單元2012,用于當(dāng)所述檢測(cè)子單元2011檢測(cè)出所述參數(shù)的取值隨外部輸入的變化而改變時(shí),確認(rèn)所述參數(shù)由外部輸入控制。
[0115]在上述圖5對(duì)應(yīng)的實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的服務(wù)器的另一實(shí)施例中,
[0116]所述處理單元203,用于針對(duì)所述漏洞,從預(yù)先配置的修復(fù)建議中選擇對(duì)應(yīng)所述漏洞的修復(fù)建議。
[0117]在上述圖4對(duì)應(yīng)的實(shí)施例的基礎(chǔ)上,參閱圖6,本發(fā)明實(shí)施例提供的服務(wù)器的另一實(shí)施例中,所述服務(wù)器還包括:
[0118]比對(duì)單元205,用于將所述flash數(shù)據(jù)文件中的函數(shù)與預(yù)先配置的高危函數(shù)集合中的每個(gè)函數(shù)進(jìn)行比對(duì);
[0119]確認(rèn)單元206,用于當(dāng)所述比對(duì)單元205比對(duì)出所述flash數(shù)據(jù)文件中的任一函數(shù)存在于所述高危函數(shù)集合時(shí),確認(rèn)所述任一函數(shù)為高危函數(shù)。
[0120]在上述圖4對(duì)應(yīng)的實(shí)施例的基礎(chǔ)上,參閱圖7,本發(fā)明實(shí)施例提供的服務(wù)器的另一實(shí)施例中,所述服務(wù)器還包括:
[0121 ] 獲取單元207,用于根據(jù)所述flash數(shù)據(jù)文件的網(wǎng)頁地址或包含所述flash數(shù)據(jù)文件鏈接的列表,獲取所述flash數(shù)據(jù)文件。
[0122]在上述圖4對(duì)應(yīng)的實(shí)施例的基礎(chǔ)上,參閱圖8,本發(fā)明實(shí)施例提供的服務(wù)器的另一實(shí)施例中,所述服務(wù)器還包括:
[0123]計(jì)算單元208,用于采用消息摘要算法,計(jì)算所述flash數(shù)據(jù)文件的摘要值;
[0124]所述檢測(cè)單元201,用于當(dāng)所述計(jì)算單元208計(jì)算出的摘要值發(fā)生變化時(shí),重新檢測(cè)所述flash數(shù)據(jù)文件中的高危函數(shù)的參數(shù)的控制源。
[0125]本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)存儲(chǔ)有程序,該程序執(zhí)行時(shí)包括上述故障處理的方法的部分或者全部步驟。
[0126]參閱圖9,圖9是本發(fā)明實(shí)施例服務(wù)器20的結(jié)構(gòu)示意圖。服務(wù)器20可包括輸入設(shè)備210、輸出設(shè)備220、處理器230和存儲(chǔ)器240。
[0127]存儲(chǔ)器240可以包括只讀存儲(chǔ)器和隨機(jī)存取存儲(chǔ)器,并向處理器230提供指令和數(shù)據(jù)。存儲(chǔ)器240的一部分還可以包括非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)。
[0128]存儲(chǔ)器240存儲(chǔ)了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者它們的子集,或者它們的擴(kuò)展集:
[0129]操作指令:包括各種操作指令,用于實(shí)現(xiàn)各種操作。
[0130]操作系統(tǒng):包括各種系統(tǒng)程序,用于實(shí)現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù)。
[0131]在本發(fā)明實(shí)施例中,處理器230通過調(diào)用存儲(chǔ)器240存儲(chǔ)的操作指令(該操作指令可存儲(chǔ)在操作系統(tǒng)中),執(zhí)行如下操作:
[0132]檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源;
[0133]當(dāng)檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞;
[0134]針對(duì)所述漏洞做出修復(fù)建議,并輸出所述漏洞的說明和所述修復(fù)建議。
[0135]與現(xiàn)有技術(shù)中逐個(gè)對(duì)flash數(shù)據(jù)文件中的函數(shù)進(jìn)行分析查找漏洞相比,本發(fā)明實(shí)施例提供的服務(wù)器,可以通過檢測(cè)檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的方法,快速檢測(cè)flash數(shù)據(jù)文件中的漏洞,提高了 flash數(shù)據(jù)文件的檢測(cè)效率。
[0136]處理器230控制服務(wù)器20的操作,處理器230還可以稱為CPU (CentralProcessing Unit,中央處理單元)。存儲(chǔ)器240可以包括只讀存儲(chǔ)器和隨機(jī)存取存儲(chǔ)器,并向處理器230提供指令和數(shù)據(jù)。存儲(chǔ)器240的一部分還可以包括非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)0具體的應(yīng)用中,服務(wù)器20的各個(gè)組件通過總線系統(tǒng)250耦合在一起,其中總線系統(tǒng)250除包括數(shù)據(jù)總線之外,還可以包括電源總線、控制總線和狀態(tài)信號(hào)總線等。但是為了清楚說明起見,在圖中將各種總線都標(biāo)為總線系統(tǒng)250。
[0137]上述本發(fā)明實(shí)施例揭示的方法可以應(yīng)用于處理器230中,或者由處理器230實(shí)現(xiàn)。處理器230可能是一種集成電路芯片,具有信號(hào)的處理能力。在實(shí)現(xiàn)過程中,上述方法的各步驟可以通過處理器230中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器230可以是通用處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。可以實(shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實(shí)施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲(chǔ)器,閃存、只讀存儲(chǔ)器,可編程只讀存儲(chǔ)器或者電可擦寫可編程存儲(chǔ)器、寄存器等本領(lǐng)域成熟的存儲(chǔ)介質(zhì)中。該存儲(chǔ)介質(zhì)位于存儲(chǔ)器240,處理器230讀取存儲(chǔ)器240中的信息,結(jié)合其硬件完成上述方法的步驟。
[0138]可選地,處理器230具體可檢測(cè)所述參數(shù)的取值是否隨外部輸入的變化而改變;當(dāng)所述參數(shù)的取值隨外部輸入的變化而改變時(shí),確認(rèn)所述參數(shù)由外部輸入控制。
[0139]可選地,處理器230具體可針對(duì)所述漏洞,從預(yù)先配置的修復(fù)建議中選擇對(duì)應(yīng)所述漏洞的修復(fù)建議。
[0140]可選地,輸出設(shè)備220還可將所述flash數(shù)據(jù)文件中的函數(shù)與預(yù)先配置的高危函數(shù)集合中的每個(gè)函數(shù)進(jìn)行比對(duì);當(dāng)比對(duì)出所述flash數(shù)據(jù)文件中的任一函數(shù)存在于所述高危函數(shù)集合時(shí),確認(rèn)所述任一函數(shù)為高危函數(shù)。
[0141]可選地,處理器230還可根據(jù)所述flash數(shù)據(jù)文件的網(wǎng)頁地址或包含所述flash數(shù)據(jù)文件鏈接的列表,獲取所述flash數(shù)據(jù)文件。
[0142]可選地,處理器230還可采用消息摘要算法,計(jì)算所述flash數(shù)據(jù)文件的摘要值;當(dāng)所述摘要值發(fā)生變化時(shí),重新檢測(cè)所述flash數(shù)據(jù)文件中的高危函數(shù)的參數(shù)的控制源。
[0143]可選地,輸出設(shè)備220采用工單或郵件的形式輸出所述檢測(cè)結(jié)果和修復(fù)建議。
[0144]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
[0145]以上對(duì)本發(fā)明實(shí)施例所提供的漏洞檢測(cè)的方法以及服務(wù)器進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種漏洞檢測(cè)的方法,其特征在于,包括: 檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源; 當(dāng)檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞; 針對(duì)所述漏洞做出修復(fù)建議,并輸出所述漏洞的說明和所述修復(fù)建議。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源,包括: 檢測(cè)所述參數(shù)的取值是否隨外部輸入的變化而改變; 當(dāng)所述參數(shù)的取值隨外部輸入的變化而改變時(shí),確認(rèn)所述參數(shù)由外部輸入控制。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述針對(duì)所述漏洞做出修復(fù)建議,包括: 針對(duì)所述漏洞,從預(yù)先配置的修復(fù)建議中選擇對(duì)應(yīng)所述漏洞的修復(fù)建議。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源的步驟之前,所述方法還包括: 將所述flash數(shù)據(jù)文件中的函數(shù)與預(yù)先配置的高危函數(shù)集合中的每個(gè)函數(shù)進(jìn)行比對(duì);當(dāng)比對(duì)出所述flash數(shù)據(jù)文件中的任一函數(shù)存在于所述高危函數(shù)集合時(shí),確認(rèn)所述任一函數(shù)為高危函數(shù)。
5.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述方法還包括: 根據(jù)所述flash數(shù)據(jù)文件的網(wǎng)頁地址或包含所述flash數(shù)據(jù)文件鏈接的列表,獲取所述flash數(shù)據(jù)文件。
6.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述方法還包括: 采用消息摘要算法,計(jì)算所述flash數(shù)據(jù)文件的摘要值; 當(dāng)所述摘要值發(fā)生變化時(shí),重新檢測(cè)所述flash數(shù)據(jù)文件中的高危函數(shù)的參數(shù)的控制源。
7.一種服務(wù)器,其特征在于,包括: 檢測(cè)單元,用于檢測(cè)flash數(shù)據(jù)文件中高危函數(shù)的參數(shù)的控制源; 確定單元,用于當(dāng)所述檢測(cè)單元檢測(cè)出所述參數(shù)由外部輸入控制時(shí),確定所述高危函數(shù)中存在漏洞; 處理單元,用于針對(duì)所述確定單元確定的漏洞做出修復(fù)建議; 輸出單元,用于輸出所述漏洞的說明和所述處理單元做出的修復(fù)建議。
8.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述檢測(cè)單元包括: 檢測(cè)子單元,用于檢測(cè)所述參數(shù)的取值是否隨外部輸入的變化而改變; 確認(rèn)子單元,用于當(dāng)所述檢測(cè)子單元檢測(cè)出所述參數(shù)的取值隨外部輸入的變化而改變時(shí),確認(rèn)所述參數(shù)由外部輸入控制。
9.根據(jù)權(quán)利要求8所述的服務(wù)器,其特征在于, 所述處理單元,用于針對(duì)所述漏洞,從預(yù)先配置的修復(fù)建議中選擇對(duì)應(yīng)所述漏洞的修復(fù)建議。
10.根據(jù)權(quán)利要求7-9任一所述的服務(wù)器,其特征在于,所述服務(wù)器還包括: 比對(duì)單元,用于將所述flash數(shù)據(jù)文件中的函數(shù)與預(yù)先配置的高危函數(shù)集合中的每個(gè)函數(shù)進(jìn)行比對(duì); 確認(rèn)單元,用于當(dāng)所述比對(duì)單元比對(duì)出所述flash數(shù)據(jù)文件中的任一函數(shù)存在于所述高危函數(shù)集合時(shí),確認(rèn)所述任一函數(shù)為高危函數(shù)。
11.根據(jù)權(quán)利要求7-9任一所述的服務(wù)器,其特征在于,所述服務(wù)器還包括: 獲取單元,用于根據(jù)所述flash數(shù)據(jù)文件的網(wǎng)頁地址或包含所述flash數(shù)據(jù)文件鏈接的列表,獲取所述flash數(shù)據(jù)文件。
12.根據(jù)權(quán)利要求7-9任一所述的服務(wù)器,其特征在于,所述服務(wù)器還包括: 計(jì)算單元,用于采用消息摘要算法,計(jì)算所述flash數(shù)據(jù)文件的摘要值; 所述檢測(cè)單元,用于當(dāng)所述計(jì)算單元計(jì)算出的摘要值發(fā)生變化時(shí),重新檢測(cè)所述flash數(shù)據(jù)文件中的高危函數(shù)的參數(shù)的控制源。
【文檔編號(hào)】H04L29/06GK104519007SQ201310445045
【公開日】2015年4月15日 申請(qǐng)日期:2013年9月26日 優(yōu)先權(quán)日:2013年9月26日
【發(fā)明者】陳薇婷, 王金錠, 譚曉光, 王岳, 王培偉 申請(qǐng)人:深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司