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