用于防護(hù)web漏洞的方法和設(shè)備的制作方法
【專利摘要】本發(fā)明公開了用于防護(hù)WEB漏洞的方法和設(shè)備。一種用于防護(hù)WEB漏洞的方法,所述方法包括:收集WEB漏洞;重現(xiàn)所述WEB漏洞;分析所述WEB漏洞;基于重現(xiàn)和分析所述WEB漏洞的結(jié)果來利用所述WEB漏洞;基于重現(xiàn)、分析和利用所述WEB漏洞的結(jié)果來防護(hù)WEB漏洞。
【專利說明】用于防護(hù)WEB漏洞的方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明總體上涉及網(wǎng)絡(luò)安全,具體地涉及一種用于防護(hù)WEB漏洞的方法和設(shè)備。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)和計(jì)算機(jī)技術(shù)的日益發(fā)展,使用網(wǎng)絡(luò)的人員增多,網(wǎng)絡(luò)安全環(huán)境日益惡 化。網(wǎng)絡(luò)和軟件技術(shù)的逐漸復(fù)雜化為各種網(wǎng)絡(luò)攻擊和黑客行為提供了肥沃的土壤。網(wǎng)絡(luò) 上層出不窮的攻擊和不停產(chǎn)生的漏洞使網(wǎng)絡(luò)使用者不勝其煩,尤其是其中與網(wǎng)絡(luò)接觸頻繁 WEB開發(fā)者、各種網(wǎng)站的管理員等深受其害。
[0003] 在各種網(wǎng)絡(luò)危害中,WEB漏洞的危害程度很大。具體而言,WEB漏洞是指WEB應(yīng)用、 WEB框架、WEB語(yǔ)言和WEB服務(wù)器等存在的安全隱患。常見的WEB漏洞有SQL注入漏洞、XSS 漏洞、文件包含漏洞、代碼執(zhí)行漏洞和文件解析漏洞等。攻擊者利用WEB漏洞可以實(shí)現(xiàn)以下 惡意操作:獲取網(wǎng)站數(shù)據(jù)庫(kù)數(shù)據(jù)、網(wǎng)站上傳后門、網(wǎng)頁(yè)掛馬和植入暗鏈等。WEB漏洞的危害 之所以嚴(yán)重是因?yàn)閃EB應(yīng)用使用的操作系統(tǒng)和第三方應(yīng)用程序中的所有程序錯(cuò)誤或者可 以被利用的漏洞都是WEB漏洞的來源。甚至錯(cuò)誤配置也可產(chǎn)生漏洞,并且包含有不安全的 默認(rèn)設(shè)置或管理員沒有進(jìn)行安全配置的應(yīng)用程序也會(huì)產(chǎn)生漏洞。例如,WEB服務(wù)器被配置 成可以讓任何用戶從系統(tǒng)上的任何目錄路徑通過,這樣可能會(huì)導(dǎo)致泄露存儲(chǔ)在WEB服務(wù)器 上的一些敏感信息,如口令、源代碼或客戶信息等。
[0004] 針對(duì)上述WEB漏洞,常用的檢測(cè)和防御工具是WEB安全掃描器和WEB安全防火墻。 WEB安全掃描器是指針對(duì)WEB服務(wù)器進(jìn)行掃描檢測(cè),以發(fā)現(xiàn)其存在安全隱患的設(shè)備。WEB安 全防火墻是指為WEB服務(wù)器提供安全防護(hù)的設(shè)備。
[0005] 然而,雖然具有檢測(cè)和防御工具,但是如果不能有效地為其設(shè)置掃描和防御規(guī)則, 往往對(duì)于WEB漏洞的防護(hù)還是無能為力。而設(shè)置檢測(cè)和防御規(guī)則必須在對(duì)漏洞進(jìn)行分析并 得到其原理之后才能得到更新。這就使規(guī)則的更新和對(duì)漏洞的防護(hù)嚴(yán)重依賴于對(duì)漏洞的研 究分析結(jié)果。只有分析結(jié)果越細(xì)致、越快速以及越全面才能為WEB漏洞的防護(hù)提供越有利 的條件?,F(xiàn)在為了防護(hù)WEB漏洞而進(jìn)行的WEB安全研究包括WEB漏洞收集、WEB漏洞重現(xiàn)、 WEB漏洞分析和WEB漏洞利用,最終形成對(duì)WEB漏洞的描述信息:WEB漏洞名稱、WEB漏洞適 用版本、WEB漏洞描述和WEB漏洞利用方法等。而通過這個(gè)流程產(chǎn)生的WEB漏洞防護(hù)是不 夠全面的,因?yàn)楝F(xiàn)有的WEB安全研究方案缺少了對(duì)WEB漏洞的研究的綜合利用,也就是不能 將對(duì)WEB漏洞的重現(xiàn)、分析和利用的結(jié)果轉(zhuǎn)換成用于防護(hù)漏洞的最終方案。換言之,在現(xiàn)有 技術(shù)中,對(duì)WEB漏洞做出的重現(xiàn)、分析以及利用僅僅是為了研究該WEB漏洞的特性,而得到 的結(jié)果并沒有被充分利用,這是不利于WEB漏洞防護(hù)的。并且在現(xiàn)有技術(shù)中,WEB漏洞分析 環(huán)節(jié)不夠深入透徹,只形成對(duì)漏洞的一個(gè)簡(jiǎn)單描述。
[0006] 因此,在現(xiàn)有WEB漏洞防護(hù)方法中,對(duì)漏洞的分析研究?jī)H僅停留在表面,對(duì)漏洞成 因的描述也只有片言只語(yǔ),僅僅是表面上的分析,不夠深入,不能指出漏洞的根源所在,這 樣簡(jiǎn)單的漏洞分析對(duì)后續(xù)的防護(hù)起不到任何的作用。對(duì)比之下,在根據(jù)本發(fā)明的WEB漏洞 防護(hù)方法中,對(duì)WEB漏洞的分析更加透徹,能夠指出漏洞產(chǎn)生的根源所在,分析出漏洞觸發(fā) 的整個(gè)過程;通過深入詳細(xì)的漏洞分析,最終給出針對(duì)性的修復(fù)方案、掃描方法以及防御方 法,這對(duì)WEB漏洞防護(hù)具有積極的意義。
[0007] 此外,現(xiàn)有的WEB漏洞防護(hù)方法缺少對(duì)WEB漏洞的綜合分析和轉(zhuǎn)換環(huán)節(jié),僅僅是對(duì) 單個(gè)WEB漏洞的分析研究,不能將WEB安全研究分析的成果轉(zhuǎn)化為WEB安全掃描器和WEB 安全防火墻的規(guī)則。在根據(jù)本發(fā)明的WEB漏洞防護(hù)方法中,可以及時(shí)地將針對(duì)WEB漏洞的 重現(xiàn)、分析和利用成果轉(zhuǎn)換成WEB漏洞掃描規(guī)則和WEB漏洞防御規(guī)則,供WEB安全掃描器和 WEB安全防火墻使用,這極大的提高了 WEB安全掃描和WEB安全防御的及時(shí)性和準(zhǔn)確性。換 言之,根據(jù)本發(fā)明的技術(shù)方案充分利用了對(duì)WEB漏洞的分析、重現(xiàn)和利用的成果,其成果的 基礎(chǔ)上發(fā)展出WEB漏洞防護(hù)的有效方案并能夠全方位地覆蓋WEB漏洞從產(chǎn)生到危害的各個(gè) 環(huán)節(jié)。
【發(fā)明內(nèi)容】
[0008] 因此,本發(fā)明的目的在于針對(duì)日益惡化的網(wǎng)絡(luò)安全環(huán)境提供一種用于及時(shí)、準(zhǔn)確 以及全面地防護(hù)WEB漏洞的方法和設(shè)備。
[0009] 在本發(fā)明的第一方面中,本發(fā)明提供一種用于防護(hù)WEB漏洞的方法。所述方法包 括:收集WEB漏洞;重現(xiàn)所述WEB漏洞;分析所述WEB漏洞;基于重現(xiàn)和分析所述WEB漏洞 的結(jié)果來利用所述WEB漏洞;基于重現(xiàn)、分析和利用所述WEB漏洞的結(jié)果來防護(hù)WEB漏洞。 [0010] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,所述方法進(jìn)一步包括在收集所述WEB漏洞之后基 于篩選標(biāo)準(zhǔn)對(duì)所收集的所述WEB漏洞進(jìn)行篩選。
[0011] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述方法中,所述篩選標(biāo)準(zhǔn)包括以下至少一個(gè): 所述WEB漏洞的新舊程度、所述WEB漏洞的影響范圍、利用所述WEB漏洞的難易程度、所述 WEB漏洞的危害程度。
[0012] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述方法中,所述收集所述WEB漏洞進(jìn)一步包 括通過網(wǎng)絡(luò)從WEB漏洞源收集所述WEB漏洞。
[0013] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述方法中,所述WEB漏洞源包括以下至少一 個(gè):WEB漏洞公布網(wǎng)站和數(shù)據(jù)庫(kù)、社區(qū)交互網(wǎng)站、新聞門戶網(wǎng)站。
[0014] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述方法中,所述重現(xiàn)所述WEB漏洞進(jìn)一步包 括利用虛擬機(jī)和相關(guān)程序構(gòu)建靶場(chǎng)環(huán)境來重新所述WEB漏洞。
[0015] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述方法中,所述分析所述WEB漏洞進(jìn)一步包 括根據(jù)所述WEB漏洞觸發(fā)點(diǎn)通過源代碼審計(jì)技術(shù)、分析參數(shù)傳遞過程來獲取所述WEB漏洞 的根源和所述WEB的形成原理。
[0016] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述方法中,所述利用所述WEB漏洞進(jìn)一步包 括生成概念驗(yàn)證P0C程序來實(shí)現(xiàn)WEB漏洞利用。
[0017] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述方法中,WEB漏洞利用包括以下至少一個(gè): 讀取數(shù)據(jù)庫(kù)內(nèi)容、讀取文件內(nèi)容、上傳后門、代碼執(zhí)行。
[0018] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述方法中,所述防護(hù)WEB漏洞進(jìn)一步包括以 下至少一個(gè):形成對(duì)所述WEB漏洞的根源的描述、生成針對(duì)所述WEB漏洞的修復(fù)方案、生成 針對(duì)所述WEB漏洞的檢測(cè)方法、生成針對(duì)所述WEB漏洞的防御方法。
[0019] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,所述方法進(jìn)一步包括將針對(duì)所述WEB漏洞的檢測(cè) 方法轉(zhuǎn)換為用于安全掃描器的掃描規(guī)則、將針對(duì)所述WEB漏洞的防御方法轉(zhuǎn)換為用于安全 防火墻的防御規(guī)則。
[0020] 在本發(fā)明的第二方面中,提供一種用于防護(hù)WEB漏洞的設(shè)備。所述設(shè)備包括:收集 裝置,用于收集WEB漏洞;重現(xiàn)裝置,用于重現(xiàn)所述WEB漏洞;分析裝置,用于分析所述WEB 漏洞;利用裝置,用于基于重現(xiàn)和分析所述WEB漏洞的結(jié)果來利用所述WEB漏洞;防護(hù)裝 置,用于基于重現(xiàn)、分析和利用所述WEB漏洞的結(jié)果來防護(hù)WEB漏洞。
[0021] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,所述設(shè)備進(jìn)一步包括篩選裝置,用于在收集所述 WEB漏洞之后基于篩選標(biāo)準(zhǔn)對(duì)所收集的所述WEB漏洞進(jìn)行篩選。
[0022] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述設(shè)備中,所述篩選標(biāo)準(zhǔn)包括以下至少一個(gè): 所述WEB漏洞的新舊程度、所述WEB漏洞的影響范圍、利用所述WEB漏洞的難易程度、所述 WEB漏洞的危害程度。
[0023] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述設(shè)備中,所述收集裝置進(jìn)一步包括網(wǎng)絡(luò)收 集裝置,用于通過網(wǎng)絡(luò)從WEB漏洞源收集所述WEB漏洞。
[0024] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述設(shè)備中,所述WEB漏洞源包括以下至少一 個(gè):WEB漏洞公布網(wǎng)站和數(shù)據(jù)庫(kù)、社區(qū)交互網(wǎng)站、新聞門戶網(wǎng)站。
[0025] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述設(shè)備中,所述重現(xiàn)裝置進(jìn)一步包括構(gòu)建裝 置,用于利用虛擬機(jī)和相關(guān)程序構(gòu)建靶場(chǎng)環(huán)境來重現(xiàn)所述WEB漏洞。
[0026] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述設(shè)備中,所述分析裝置進(jìn)一步包括審計(jì)裝 置,用于根據(jù)所述WEB漏洞觸發(fā)點(diǎn)通過源代碼審計(jì)技術(shù)、分析參數(shù)傳遞過程來獲取所述WEB 漏洞的根源和所述WEB的形成原理。
[0027] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述設(shè)備中,所述利用裝置進(jìn)一步包括生成裝 置,用于生成概念驗(yàn)證P0C程序來實(shí)現(xiàn)WEB漏洞利用。
[0028] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述設(shè)備中,所述WEB漏洞利用包括以下至少 一個(gè):讀取數(shù)據(jù)庫(kù)內(nèi)容、讀取文件內(nèi)容、上傳后門、代碼執(zhí)行。
[0029] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在所述設(shè)備中,所述防護(hù)裝置進(jìn)一步包括以下至 少一個(gè):形成裝置,用于形成對(duì)所述WEB漏洞的根源的描述;修復(fù)方案生成裝置,用于生成 針對(duì)所述WEB漏洞的修復(fù)方案;檢測(cè)方法生成裝置,生成針對(duì)所述WEB漏洞的檢測(cè)方法;防 御方法生成裝置,用于生成針對(duì)所述WEB漏洞的防御方法。
[0030] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,所述設(shè)備進(jìn)一步包括轉(zhuǎn)換裝置,用于將針對(duì)所述 WEB漏洞的檢測(cè)方法轉(zhuǎn)換為用于安全掃描器的掃描規(guī)則、將針對(duì)所述WEB漏洞的防御方法 轉(zhuǎn)換為用于安全防火墻的防御規(guī)則。
[0031] 從以上本發(fā)明的各個(gè)方面可以看出,根據(jù)本發(fā)明的方法和設(shè)備相對(duì)于現(xiàn)有技術(shù)具 有以下優(yōu)勢(shì): 根據(jù)本發(fā)明的用于防護(hù)WEB漏洞的方法和設(shè)備實(shí)現(xiàn)了對(duì)WEB漏洞的直觀重現(xiàn)和本質(zhì)分 析,提供了修復(fù)方案,并為WEB安全掃描器和WEB安全防火墻提供了規(guī)則,極大的提高了掃 描和防御的及時(shí)性和準(zhǔn)確性。并且,在根據(jù)本發(fā)明的方法和設(shè)備中,對(duì)于WEB漏洞的分析更 加透徹,能夠指出漏洞產(chǎn)生的根源所在,分析出漏洞觸發(fā)的整個(gè)過程;通過深入詳細(xì)的漏洞 分析,可以方便的給出針對(duì)性的修復(fù)方案、掃描方法以及防御方法,由此極大地增強(qiáng)了 WEB 安全性。
【專利附圖】
【附圖說明】
[0032] 下面參考結(jié)合附圖所進(jìn)行的下列描述,以便更透徹地理解本公開內(nèi)容,在附圖 中: 圖1是根據(jù)本發(fā)明實(shí)施例的用于防護(hù)WEB漏洞的方法的流程圖。
[0033] 圖2是詳細(xì)示出了利用WEB漏洞重現(xiàn)、WEB漏洞分析和WEB漏洞利用的結(jié)果來進(jìn) 行WEB漏洞防護(hù)的框圖。
[0034] 圖3是根據(jù)本發(fā)明實(shí)施例的用于防護(hù)WEB漏洞的設(shè)備的框圖。
【具體實(shí)施方式】
[0035] 下面將詳細(xì)描述本發(fā)明的具體實(shí)施例,在附圖中示出了本發(fā)明的實(shí)施例。然而,可 以以許多不同形式來體現(xiàn)本發(fā)明,并且不應(yīng)將其理解為局限于本文闡述的實(shí)施例。相反,提 供這些實(shí)施例使得本公開將是透徹和完整的,并將向本領(lǐng)域的技術(shù)人員全面?zhèn)鬟_(dá)本發(fā)明的 范圍。相同的附圖標(biāo)記自始至終指示相同的元素。
[0036] 應(yīng)理解的是,雖然術(shù)語(yǔ)"第一"、"第二"等在本文中可以用來描述各種元素,但這 些元素不應(yīng)受到這些術(shù)語(yǔ)的限制。這些術(shù)語(yǔ)僅用來將一個(gè)元素與另一個(gè)區(qū)別開。
[0037] 本文所使用的術(shù)語(yǔ)僅僅是出于描述特定實(shí)施例的目的,并且并不意圖限制本發(fā) 明。除非上下文明確指明,本文所使用的單數(shù)形式"一個(gè)"、"一種"和"該"意圖也包括復(fù)數(shù) 形式。還應(yīng)理解的是當(dāng)在本文中使用時(shí),術(shù)語(yǔ)"包括"和/或"包含"指定所述特征、整體、 步驟、操作、元素和/或組件的存在,但是不排除一個(gè)或多個(gè)其他特征、整體、步驟、操作、元 素、組件和/或其群組的存在或添加。
[0038] 除非另外定義,本文所使用的所有術(shù)語(yǔ)(包括技術(shù)和科學(xué)術(shù)語(yǔ))具有與本發(fā)明所屬 領(lǐng)域的普通技術(shù)人員一般理解的相同的意義。還應(yīng)理解的是應(yīng)將本文所使用的術(shù)語(yǔ)解釋為 具有與其在本說明書和相關(guān)領(lǐng)域的上下文中的意義一致的意義,并且不應(yīng)以理想化或過度 形式化的意義來進(jìn)行解釋,除非在本文中明確地這樣定義。
[0039] 在以下描述中,除非明確指出,術(shù)語(yǔ)"WEB漏洞"和"漏洞"可以互換使用,它們都表 示W(wǎng)EB漏洞這個(gè)含義。
[0040] 下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行描述。
[0041] 在附圖1中,示出根據(jù)本發(fā)明實(shí)施例的用于防護(hù)WEB漏洞的方法的流程圖。
[0042] 在該流程圖中,步驟S101是收集WEB漏洞的步驟。對(duì)WEB漏洞的收集是實(shí)現(xiàn)整個(gè) WEB漏洞防護(hù)方法的基礎(chǔ)。只有掌握了 WEB漏洞的整體情況,才能有針對(duì)性的進(jìn)行防護(hù)。收 集過程本身就是對(duì)WEB漏洞流行的內(nèi)在規(guī)律進(jìn)行了解的過程。例如,在根據(jù)本發(fā)明的收集 過程中,發(fā)現(xiàn)某種漏洞的數(shù)量近期突然呈現(xiàn)爆炸式增長(zhǎng),那么就此可以得出近期需要重點(diǎn) 防護(hù)該種漏洞且產(chǎn)生該種漏洞的條件可能最近被披露或被發(fā)現(xiàn)、甚至于得到WEB漏洞發(fā)展 的某種宏觀趨勢(shì)的結(jié)論。這個(gè)結(jié)論看似簡(jiǎn)單,但是可以為后續(xù)步驟給出指導(dǎo)性方向。所以 收集WEB漏洞的步驟非常重要。
[0043] 根據(jù)本發(fā)明,收集WEB漏洞可以采用自動(dòng)方式和人工方式。在采取自動(dòng)方式時(shí),可 以利用WEB漏洞自動(dòng)收集程序、基于WEB漏洞特征庫(kù)來從可以獲得或者檢測(cè)到漏洞的各種 漏洞源來收集漏洞。自動(dòng)收集程序可以利用內(nèi)建的收集模型(例如,斯坦福大學(xué)提出的對(duì)象 交換模型)來收集WEB漏洞。自動(dòng)收集方式毫無疑問是高效率和準(zhǔn)確的,采用自動(dòng)收集方式 可以應(yīng)對(duì)大的漏洞收集工作量,所以一般而言對(duì)于WEB漏洞的收集都采用自動(dòng)收集方式。
[0044] 然而,自動(dòng)收集方式也有可能存在某些缺點(diǎn),例如程序有可能不能有針對(duì)性地收 集某類漏洞,對(duì)新漏洞的出現(xiàn)情況無法了解等等。這時(shí)候就可以采用人工收集的方式,而且 人工收集可以更加靈活地應(yīng)對(duì)漏洞發(fā)生情況。例如,在對(duì)某類突然爆發(fā)的漏洞初步分析后, 有針對(duì)性的收集某個(gè)或某些漏洞來進(jìn)一步分析,而不是像自動(dòng)收集程序那樣不予區(qū)分地?zé)o 差別收集。這在某些情況下無疑也可以提高漏洞收集的效率、及時(shí)性和準(zhǔn)確性。
[0045] 在一個(gè)實(shí)施例中,在收集WEB漏洞之后或者在收集WEB漏洞過程之中,還可以包括 基于篩選標(biāo)準(zhǔn)對(duì)所收集的WEB漏洞進(jìn)行篩選的步驟。這一篩選步驟也可以采用自動(dòng)方式和 人工方式。添加篩選所收集的WEB漏洞的步驟具有的最重要優(yōu)點(diǎn)就是加強(qiáng)針對(duì)性。因?yàn)閷?duì) 一些WEB應(yīng)用的開發(fā)者和網(wǎng)站管理員而言,防護(hù)最近流行程度高、危害程度嚴(yán)重的WEB漏洞 顯然要比僅僅是常規(guī)地防護(hù)一些常見的WEB漏洞更加重要。
[0046] 因此,在一個(gè)實(shí)施例中,在篩選過程中,篩選標(biāo)準(zhǔn)可以包括以下至少一個(gè):WEB漏 洞的新舊程度、WEB漏洞的影響范圍、利用WEB漏洞的難易程度、WEB漏洞的危害程度。
[0047] 很顯然,在同一類WEB漏洞中,新產(chǎn)生的WEB漏洞往往要比之前產(chǎn)生的WEB漏洞更 具有分析價(jià)值,也更需要防護(hù)。所以在篩選時(shí),可以按照WEB漏洞的新舊程度來進(jìn)行篩選。 當(dāng)然,也許很久以前的WEB漏洞在新的環(huán)境中產(chǎn)生了新的危害,那么它對(duì)于分析程序和人 員來說也可能具有比新產(chǎn)生的WEB漏洞更大的價(jià)值,那么也可以將其篩選出來。總而言之, 可以將WEB漏洞的新舊程度作為篩選標(biāo)準(zhǔn)之一而加以利用。類似地,利用篩選標(biāo)準(zhǔn)-WEB漏 洞的影響范圍可以篩選出不同影響范圍的WEB漏洞。例如,對(duì)全球產(chǎn)生影響、只影響國(guó)內(nèi)、 甚至只影響某個(gè)局域網(wǎng)或某個(gè)WEB應(yīng)用等。同樣,篩選標(biāo)準(zhǔn)-利用WEB漏洞的難易程度可 以篩選出利用難易程度不同的WEB漏洞。例如,某些WEB漏洞更容易被利用,那么就可以優(yōu) 先加以分析和防護(hù),而不易利用的WEB漏洞就可以放在后面再行分析。此外,較為重要的篩 選標(biāo)準(zhǔn)就是WEB漏洞的危害程度。這一篩選標(biāo)準(zhǔn)可以篩選出危害程度不同的WEB漏洞。例 如,僅僅破壞某個(gè)WEB應(yīng)用的WEB漏洞顯然要比動(dòng)輒就破壞整個(gè)系統(tǒng)、甚至于破壞整個(gè)網(wǎng)絡(luò) 的WEB漏洞危害程度低。
[0048] 通過使用上述這些篩選標(biāo)準(zhǔn)來收集或者指導(dǎo)后續(xù)的分析步驟,可以使WEB漏洞防 護(hù)方法以某種優(yōu)先級(jí)來分析處理符合不同標(biāo)準(zhǔn)的WEB漏洞,進(jìn)而實(shí)現(xiàn)高效、準(zhǔn)確的WEB漏洞 防護(hù)。
[0049] 在一個(gè)實(shí)施例中,在收集方式上,自動(dòng)收集程序和人工收集都可以通過網(wǎng)絡(luò)從WEB 漏洞源收集所述WEB漏洞。但是這兩種收集方式也可以使用其他途徑來收集漏洞。例如, 負(fù)責(zé)人工收集的人員可以聽取或者閱讀某些WEB漏洞描述來實(shí)現(xiàn)對(duì)WEB漏洞的收集,在這 種情況下可以使用各種通信交流手段來收集WEB漏洞。
[0050] 然而,在一個(gè)實(shí)施例中,通過網(wǎng)絡(luò)來收集WEB漏洞顯然是一種高效的方式,而且網(wǎng) 絡(luò)上的WEB漏洞源也更加豐富和準(zhǔn)確。WEB漏洞源可以包括以下至少一個(gè):WEB漏洞公布 網(wǎng)站和數(shù)據(jù)庫(kù)、社區(qū)交互網(wǎng)站、新聞門戶網(wǎng)站。例如,漏洞收集人員或者自動(dòng)收集程序可以 瀏覽、搜索WEB漏洞發(fā)布網(wǎng)站和數(shù)據(jù)庫(kù),其包括但不限于國(guó)家信息安全漏洞共享平臺(tái)1胃. cnvd. org. cn、中國(guó)國(guó)家信息安全漏洞庫(kù)-WWW. cnnvd. org. cn、著名的烏云網(wǎng)站-www. wooyun. org、www. securityfocus. com、www. exploit-db. com 等。漏洞收集人員或者自動(dòng)收 集程序還可以通過新浪微博、騰訊微博、twitter等社交網(wǎng)站來收集WEB漏洞。甚至還可以 通過一些新聞門戶網(wǎng)站(例如,www. sohu. com、www. 163. com等)、任意其他網(wǎng)上站點(diǎn)、甚至于 一些獨(dú)立的服務(wù)器來收集WEB漏洞。
[0051] 在一個(gè)實(shí)施例中,在從這些漏洞源收集WEB漏洞的過程中,可以采用SQL語(yǔ)言查詢 漏洞數(shù)據(jù)庫(kù)的方式、可以采取解析XML語(yǔ)言獲取其中數(shù)據(jù)的方式、可以采取網(wǎng)絡(luò)爬蟲的方 式、甚至于可以采取人工閱讀某些信息的方式來收集WEB漏洞??偠灾梢圆捎靡磺蝎@ 取信息的手段來收集WEB漏洞。
[0052] 在完成了收集WEB漏洞的步驟之后,就要對(duì)所收集的WEB漏洞進(jìn)行重現(xiàn)。如圖1 中的步驟S102所示。在一個(gè)實(shí)施例中,重現(xiàn)WEB漏洞可以包括利用虛擬機(jī)和相關(guān)程序構(gòu)建 靶場(chǎng)環(huán)境來重現(xiàn)所述WEB漏洞。重現(xiàn)WEB漏洞的意義在于可以弄清和復(fù)查觸發(fā)該WEB漏洞 的各種條件,其包括WEB漏洞的產(chǎn)生環(huán)境和直接觸發(fā)條件。
[0053] 為了重現(xiàn)WEB漏洞,需要搭建靶場(chǎng)環(huán)境,通常為虛擬機(jī)環(huán)境。可以參考漏洞公布信 息,針對(duì)不同的WEB漏洞,在靶場(chǎng)環(huán)境中使用特定的WEB服務(wù)器操作系統(tǒng)、WEB容器、WEB語(yǔ) 言、數(shù)據(jù)庫(kù)、WEB應(yīng)用、WEB框架、WEB插件或者WEB瀏覽器。最后可以再次參考漏洞公布信 息,構(gòu)建漏洞觸發(fā)的特定條件,重現(xiàn)該WEB漏洞。在搭建靶場(chǎng)環(huán)境的過程中,要特別注意的 是需要使用存在漏洞的版本,并且確保其沒有被打補(bǔ)丁。若根據(jù)漏洞公布信息中的方法來 重現(xiàn)漏洞沒有成功,則可以考慮該漏洞的觸發(fā)是否依賴于其他特定的條件。
[0054] 針對(duì)每個(gè)WEB安全漏洞,例如可以創(chuàng)建一個(gè)vmware虛擬機(jī),在該虛擬機(jī)中安裝觸 發(fā)該漏洞所需要的各特定的操作系統(tǒng)和WEB程序。例如,操作系統(tǒng)(windows、linux等)、 WEB 容器(iis、apache、tomcat 等)、WEB 語(yǔ)言(asp、php、jsp 等)、數(shù)據(jù)庫(kù)(mysql、oracle、 mssql 等)、WEB 應(yīng)用(Discuz、Wordpress 等)、WEB 框架(django、thinkphp 等)、WEB 插件 (Buddypress、TimThumb 等)、WEB 瀏覽器(IE、firefox、chrome 等)。
[0055] 在搭建靶場(chǎng)環(huán)境的基礎(chǔ)上,參考漏洞發(fā)布信息,獲取觸發(fā)該漏洞所需要的特定條 件和觸發(fā)流程,例如訪問某個(gè)url,或者上傳某個(gè)文件等。結(jié)合vmware虛擬機(jī)和漏洞觸發(fā)條 件,我們可以重現(xiàn)該WEB漏洞。
[0056] 例如,在從網(wǎng)上收集了公布的一個(gè)針對(duì)Discuz論壇程序(版本2. 0)的SQL注入漏 洞之后如下重現(xiàn)該漏洞。首先新建一個(gè)vmware虛擬機(jī),在該虛擬機(jī)中安裝linux操作系統(tǒng)、 apache服務(wù)器、php語(yǔ)言、mysql數(shù)據(jù)庫(kù)、Discuz論壇程序(版本2. 0,未打補(bǔ)丁)。安裝完成 之后,執(zhí)行使用任意瀏覽器訪問這個(gè)Discuz論壇的一個(gè)特定url的操作,該操作的結(jié)果是 顯示出該論壇數(shù)據(jù)庫(kù)的內(nèi)容。這就實(shí)現(xiàn)了該SQL注入漏洞的重現(xiàn)。
[0057] 在重現(xiàn)WEB漏洞的步驟中,可以得知WEB漏洞的觸發(fā)點(diǎn),進(jìn)而進(jìn)入漏洞WEB漏洞的 分析步驟。如圖1中的步驟S103所示。漏洞分析環(huán)節(jié)是整個(gè)WEB漏洞防護(hù)方法的核心步 驟。通過該WEB漏洞分析環(huán)節(jié),可以獲得WEB漏洞的產(chǎn)生根源。漏洞重現(xiàn)步驟僅僅重現(xiàn)了 WEB漏洞的表面現(xiàn)象,但是漏洞分析步驟是一個(gè)由表到里進(jìn)行分析的步驟,是一個(gè)追根究 底、推本溯源的步驟。
[0058] 在一個(gè)實(shí)施例中,分析WEB漏洞可以包括根據(jù)WEB漏洞觸發(fā)點(diǎn)通過源代碼審計(jì)技 術(shù)、分析參數(shù)傳遞過程來獲取所述WEB漏洞的根源和所述WEB的形成原理。一般而言,漏洞 分析方法一般可以包括補(bǔ)丁對(duì)比、端點(diǎn)調(diào)試、程序關(guān)聯(lián)關(guān)系、數(shù)據(jù)傳遞跟蹤、程序流程跟蹤 等等。WEB漏洞的根源可以包括輸入未驗(yàn)證、輸出未驗(yàn)證、權(quán)限未驗(yàn)證、邏輯錯(cuò)誤等等。
[0059] 例如,在這個(gè)WEB漏洞分析步驟中,可以在源碼層次上對(duì)WEB漏洞進(jìn)行分析:若有 官方補(bǔ)丁發(fā)布,則可以對(duì)比補(bǔ)丁,定位到漏洞點(diǎn),并根據(jù)數(shù)據(jù)傳遞流程和程序執(zhí)行流程,找 到漏洞的觸發(fā)點(diǎn);若沒有官方補(bǔ)丁,參考漏洞公布的相關(guān)信息,分析程序間的文件關(guān)聯(lián)關(guān) 系,追蹤程序的執(zhí)行流程和數(shù)據(jù)的傳遞過程,結(jié)合給程序下斷點(diǎn)進(jìn)行調(diào)試的方法,找出漏洞 的根源所在,并說明在何種條件下,程序在何種運(yùn)行流程時(shí),會(huì)導(dǎo)致漏洞的觸發(fā)。
[0060] 以下面的WEB漏洞分析示例來進(jìn)行進(jìn)一步的說明。仍就某個(gè)針對(duì)Discuz論壇程序 (版本2.0)的SQL注入漏洞進(jìn)行說明。該漏洞觸發(fā)點(diǎn)是訪問某個(gè)特定url。我們針對(duì)版本 2. 0的Discuz論壇程序進(jìn)行源代碼審計(jì),分析該特定url中的特殊輸入?yún)?shù),分析過程接收 該參數(shù)后,如何經(jīng)過多次的參數(shù)傳遞和參數(shù)處理流程,將用戶的輸入放進(jìn)SQL查詢語(yǔ)句中, 并將SQL查詢語(yǔ)句的結(jié)果展現(xiàn)在輸出頁(yè)面上。至此,輸出頁(yè)面上呈現(xiàn)的結(jié)果提供了漏洞根 源所在以及漏洞形成原理。
[0061] 在進(jìn)行了上述的漏洞分析和漏洞重現(xiàn)步驟之后,基于重現(xiàn)和分析WEB漏洞的結(jié)果 來利用所述漏洞。如圖1的步驟S104所示。具體而言,漏洞利用步驟可以在得到WEB漏洞 根源的所在以及該WEB漏洞的觸發(fā)流程的基礎(chǔ)上,具體且詳細(xì)地利用某種手段來更透徹地 分析漏洞,也即漏洞利用步驟是更深入了解WEB漏洞的一個(gè)必不可少的步驟。利用WEB漏 洞的目的在于更進(jìn)一步地了解該WEB漏洞的運(yùn)行原理,驗(yàn)證在分析步驟中得到的漏洞根源 是否正確以及其危害程度的大小,從而可以更有針對(duì)性地來進(jìn)行防護(hù)。
[0062] 在一個(gè)實(shí)施例中,利用WEB漏洞的步驟可以包括生成概念驗(yàn)證P0C程序來實(shí)現(xiàn)WEB 漏洞利用。POC (Proof of Concept)程序、即P0C驗(yàn)證程序的主要功能就是針對(duì)漏洞的形 成原理和觸發(fā)方法來進(jìn)行程序驗(yàn)證,從而在重現(xiàn)WEB漏洞的靶場(chǎng)環(huán)境中利用分析結(jié)果真實(shí) 具體地看到該漏洞產(chǎn)生的結(jié)果和可能產(chǎn)生的危害。簡(jiǎn)言之,就是針對(duì)特定的漏洞原理,編寫 特定的P0C程序,實(shí)現(xiàn)特定的目標(biāo)。
[0063] 在一個(gè)實(shí)施例中,WEB漏洞利用可以包括以下至少一個(gè):讀取數(shù)據(jù)庫(kù)內(nèi)容、讀取文 件內(nèi)容、上傳后門、代碼執(zhí)行等。這些手段通常都是用于針對(duì)WEB漏洞進(jìn)行攻擊的手段。換 言之,就是惡意攻擊者利用WEB漏洞所能實(shí)現(xiàn)的功能。所以,只有通過P0C程序?qū)崿F(xiàn)了這些 針對(duì)WEB漏洞的既定目標(biāo),才能具體且真實(shí)地了解該漏洞的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)或方法,從而為 防護(hù)提供多方面的信息。
[0064] 現(xiàn)仍以上述論壇SQL注入漏洞來簡(jiǎn)要解釋W(xué)EB漏洞利用的過程。例如,針對(duì)該SQL 注入漏洞,編寫P0C程序。結(jié)合Vmware虛擬機(jī)的靶場(chǎng)環(huán)境,利用P0C程序可以獲取該網(wǎng)站 的數(shù)據(jù)庫(kù)內(nèi)容。針對(duì)代碼執(zhí)行漏洞,編寫P0C程序。結(jié)合Vmware虛擬機(jī)的靶場(chǎng)環(huán)境,利用 該P(yáng)0C程序可以獲取網(wǎng)站的Web she 11后門。
[0065] 以上對(duì)WEB漏洞的重現(xiàn)、分析和利用目的都在于尋求對(duì)WEB漏洞的透徹理解,以便 為防護(hù)該WEB漏洞提供必要的信息。在掌握了這些信息之后,根據(jù)本發(fā)明的方法可以基于 重現(xiàn)、分析和利用所述WEB漏洞的結(jié)果來防護(hù)WEB漏洞,如圖1的步驟S105所示。
[0066] 如圖1所示的本發(fā)明的WEB漏洞防護(hù)方法,本領(lǐng)域技術(shù)人員應(yīng)該理解,其中所示步 驟的為示例性的,實(shí)際中也可以不按照所示順序執(zhí)行。或者,可以添加或者省略步驟。例如, 在已有WEB漏洞基礎(chǔ)上執(zhí)行本發(fā)明就可以省略收集步驟。
[0067] 現(xiàn)在,將結(jié)合圖2詳細(xì)描述WEB漏洞的防護(hù)方法。圖2是詳細(xì)示出了利用WEB漏 洞重現(xiàn)、WEB漏洞分析和WEB漏洞利用的結(jié)果來進(jìn)行WEB漏洞防護(hù)的框圖。
[0068] 在根據(jù)本發(fā)明的方法的實(shí)施例中并如圖2所示,對(duì)WEB漏洞的方法200可以包括 以下至少一個(gè):如框201所示,形成對(duì)WEB漏洞的根源的描述、如框202所示,生成針對(duì)WEB 漏洞的修復(fù)方案、如框203所示,生成針對(duì)WEB漏洞的檢測(cè)方案、如框204所示,生成針對(duì) WEB漏洞的防御方案。
[0069] 上述這些WEB漏洞防護(hù)方面可以單獨(dú)使用也可以組合使用,并且這些方面可以提 供對(duì)WEB漏洞全方位的防護(hù),S卩,為WEB漏洞的產(chǎn)生源頭-開發(fā)人員開始一直到WEB漏洞的 受害者-可能包括網(wǎng)站管理員(站長(zhǎng))、WEB應(yīng)用人員等、直至為防護(hù)WEB漏洞的防火墻和掃 描器提供全面的應(yīng)對(duì)方案。這在現(xiàn)有技術(shù)的WEB漏洞防護(hù)方法中是沒有的。因?yàn)楝F(xiàn)有技術(shù) 的方法僅僅是對(duì)單個(gè)WEB漏洞的分析研究,且不能將WEB分析研究的成果應(yīng)用于WEB漏洞 的產(chǎn)生-傳播-封堵的整個(gè)鏈條。根據(jù)本發(fā)明的方法因此相對(duì)于現(xiàn)有技術(shù)的方法具有防護(hù) 全面、具有更好的及時(shí)性和準(zhǔn)確性的優(yōu)勢(shì)。
[0070] 下面,具體地闡述這些防護(hù)步驟。之所以采用這四個(gè)防護(hù)方面,是因?yàn)榭梢詾閃EB 漏洞危害鏈條上的所有人員和程序提供全面的應(yīng)對(duì)方案。如圖所示,其最終可以應(yīng)用于WEB 開發(fā)人員210、網(wǎng)站站長(zhǎng)、管理員220、WEB安全掃描器230以及WEB安全防火墻240。本領(lǐng) 域技術(shù)人員應(yīng)該理解,該附圖僅為示例性而非限制性的。并且,所產(chǎn)生的最終防護(hù)方案可以 以各種形式提供給需要的各種人員或設(shè)備,而不限于圖中所示的210至240這四個(gè)方面。
[0071] 在經(jīng)過WEB漏洞重現(xiàn)、分析和利用之后,對(duì)WEB漏洞的根源或觸發(fā)流程等都有了很 透徹的了解。但是這些了解僅僅停留在程序運(yùn)行結(jié)果方面,例如上述在網(wǎng)頁(yè)上呈現(xiàn)的數(shù)據(jù) 庫(kù)內(nèi)容、P0C程序的運(yùn)行結(jié)果等。而WEB開發(fā)人員對(duì)此可能并不了解,也就無法在程序設(shè)計(jì) 和開發(fā)的階段來預(yù)防WEB漏洞的形成。所以,根據(jù)本發(fā)明的WEB漏洞防護(hù)方法在獲得WEB 漏洞的根源等信息之后,可以形成對(duì)WEB漏洞的根源的各種有用描述。這些描述所采用的 方式包括但不限于:人員能夠以自然閱讀方式獲取的自然語(yǔ)言描述方式、以各種格式形成 的機(jī)器可讀格式,例如XML語(yǔ)言形成的描述以及可以由WEB漏洞防護(hù)人員或機(jī)器可獲得的 任何其他描述方式。而且,提供這些描述的方式也可以多種多樣。例如,通過網(wǎng)頁(yè)提供、通 過各種通信軟件或硬件以消息形式提供、以語(yǔ)音方式的自然語(yǔ)言提供以及以可以使人員或 機(jī)器獲得信息的任何其他方式提供。
[0072] 這種描述顯然可以使WEB開發(fā)者在設(shè)計(jì)開發(fā)WEB應(yīng)用時(shí),不要再犯類似的錯(cuò)誤,也 就是從源頭防止了 WEB漏洞的產(chǎn)生。這種方式顯然是效率最高的方式,也是本發(fā)明的優(yōu)勢(shì) 之一。而且這些根源描述也并非只有WEB開發(fā)者可以利用,任何程序或硬件的開發(fā)者都可 以從中獲取自己需要的信息以防止漏洞的發(fā)生。
[0073] 其次,根據(jù)本發(fā)明的WEB漏洞防護(hù)方法可以形成生成針對(duì)WEB漏洞的修復(fù)方案。
[0074] 當(dāng)WEB漏洞開始在網(wǎng)絡(luò)上蔓延時(shí),各種防護(hù)軟件有可能還未針對(duì)該漏洞進(jìn)行更 新。所以,在WEB漏洞發(fā)展的初期進(jìn)行防護(hù)也具有重大意義。而在這種突然出現(xiàn)的威脅面 前,各種網(wǎng)站的管理員、站長(zhǎng)等往往束手無策。因?yàn)樗麄儗?duì)造成危害的WEB漏洞一無所知, 并且因此也就沒有任何防護(hù)措施。然而,根據(jù)本發(fā)明的防護(hù)方法在WEB漏洞危害的初期階 段就可以提供針對(duì)該WEB漏洞的修復(fù)方案以便向受到危害的各種人員迅速提供支援,也有 可能將WEB漏洞的危害性降至最低。例如,該修復(fù)方案可以是對(duì)WEB漏洞進(jìn)行手工操作修 復(fù)的描述,也可以是一個(gè)程序補(bǔ)丁等。這種修復(fù)方案有可能可以快速地被網(wǎng)站站長(zhǎng)、管理員 加以利用而不必等待防火墻等軟件的更新。但是,出于應(yīng)急的目的,此類修復(fù)方式有可能僅 針對(duì)當(dāng)前流行的主要危害方式提供修復(fù)。換言之,修復(fù)方案可能無法提供全面的防御。因 此,根據(jù)本發(fā)明的方法還提供后續(xù)的方案來進(jìn)一步完善防護(hù)步驟。
[0075] 以上兩個(gè)方面可以為各種人員提供針對(duì)WEB漏洞的緊急應(yīng)對(duì)方式,適合在WEB威 脅出現(xiàn)之后的短時(shí)間內(nèi)進(jìn)行及時(shí)地防護(hù)。
[0076] 此外,根據(jù)本發(fā)明的方法還可以生成針對(duì)WEB漏洞的檢測(cè)方案和針對(duì)WEB漏洞的 防御方案。這兩種方案可以針對(duì)WEB漏洞提供更全面的防護(hù)。針對(duì)WEB漏洞生成檢測(cè)方案 的目的在于提供全面檢測(cè)存在的WEB漏洞的方案。由于有些WEB漏洞在沒有被觸發(fā)之前處 于潛伏狀態(tài)并且因此暫時(shí)沒有表現(xiàn)出危害性,這時(shí)如果不將其檢測(cè)出來,那么其就有可能 成為潛在的威脅并且在意想不到的時(shí)候爆發(fā)。所以,提供對(duì)WEB漏洞的全面檢測(cè)方案是十 分有必要的。
[0077] 類似地,提供針對(duì)WEB漏洞的全面防御方案也是有必要的。因?yàn)椋缟纤?,修?fù) 方案可能僅提供針對(duì)某種具體觸發(fā)方式的修復(fù),而無法全面防御。所以可能稍后提供的全 面防御方案將可以提供對(duì)WEB漏洞的全面防御以防止利用該WEB漏洞所能實(shí)現(xiàn)的任何攻擊 和危#后果。
[0078] 在一個(gè)實(shí)施例中,根據(jù)本發(fā)明的方法還可以包括將針對(duì)WEB漏洞的檢測(cè)方案轉(zhuǎn)換 為用于安全掃描器的掃描規(guī)則、將針對(duì)WEB漏洞的防御方案轉(zhuǎn)換為用于安全防火墻的防御 規(guī)則。
[0079] 畢竟,對(duì)于WEB漏洞的防護(hù)僅僅依靠人工方式是不夠的,WEB安全防火墻和掃描器 可以提供更加快捷、自動(dòng)和全面的防護(hù)。所以將檢測(cè)方案和防御方案轉(zhuǎn)換為WEB安全防火 墻和掃描器的掃描和防御規(guī)則是更有效率地防護(hù)WEB漏洞的方式。
[0080] 下面以具體示例來說明根據(jù)本發(fā)明的WEB漏洞防護(hù)方法。本領(lǐng)域技術(shù)人員應(yīng)該明 白,本發(fā)明所示示例均是說明性而非限制性的。
[0081] 例如,針對(duì)某個(gè)WEB應(yīng)用程序的SQL注入漏洞,經(jīng)過WEB漏洞重現(xiàn)、分析和利用,發(fā) 現(xiàn)漏洞根源在于程序?qū)τ谟脩糨斎氲膇d參數(shù)沒有進(jìn)行有效過濾。程序中的SQL查詢語(yǔ)句 例如為"select title, content from paper where id = $id",其中需要限制$id參數(shù)的輸入 為數(shù)字型參數(shù)。但是由于程序員的粗心,并沒有對(duì)$id參數(shù)進(jìn)行限制,導(dǎo)致用戶可以對(duì)$id 參數(shù)任意賦值,從而導(dǎo)致了 SQL注入漏洞的產(chǎn)生。當(dāng)惡意用戶訪問形如"http://www.xxx. com/xxx. php?id=l union select username, password from admin,'的 url 鏈接時(shí),程序中接 收到的 $id 參數(shù)為 " 1 union select username, password from admin",其不是數(shù)字型的,從 而導(dǎo)致返回頁(yè)面中將會(huì)出現(xiàn)網(wǎng)站管理員的用戶名和密碼。
[0082] 針對(duì)這個(gè)SQL注入漏洞進(jìn)行防護(hù)體現(xiàn)在以下四個(gè)方面: 1.形成對(duì)漏洞根源的描述并提供給該WEB應(yīng)用的程序員:沒有對(duì)$id參數(shù)進(jìn)行有效過 濾和限制,從而導(dǎo)致了惡意用戶可以對(duì)$id參數(shù)任意賦值。WEB應(yīng)用開發(fā)者在收到該描述之 后,可以從該案例中吸取經(jīng)驗(yàn)教訓(xùn),避免出現(xiàn)對(duì)用戶輸入不加以限制的錯(cuò)誤。
[0083] 2.針對(duì)漏洞根源,提出漏洞修復(fù)方案:在程序中對(duì)$id參數(shù)進(jìn)行過濾限制,僅允許 為數(shù)字型的$id參數(shù)進(jìn)入到程序中。該修復(fù)方案可以供網(wǎng)站站長(zhǎng)使用,從而避免網(wǎng)站遭受 攻擊。
[0084] 3.從漏洞檢測(cè)的角度對(duì)漏洞提出檢測(cè)方案并轉(zhuǎn)換為安全掃描器規(guī)則??梢栽趻呙?器中加入以下的檢測(cè)規(guī)則:分別訪問"xxx.php?id=l and 1=1"和"xxx.php?id=l and 1=2" 兩個(gè)url,兩個(gè)返回頁(yè)面內(nèi)容不一樣,則說明該網(wǎng)站存在SQL注入漏洞。
[0085] 4.從漏洞防御的角度對(duì)漏洞提出防御方案并轉(zhuǎn)換為安全防火墻規(guī)則??梢?在防火墻中加入以下的防御規(guī)則:當(dāng)用戶提交url形如" XXX. php?id=l union select name, password from admin"時(shí),判斷id參數(shù)為非數(shù)字型,且包含了 union/select等關(guān)鍵 字符串,則阻止用戶的該次請(qǐng)求。
[0086] 綜上所述,根據(jù)本發(fā)明的用于防護(hù)WEB漏洞的方法可以對(duì)WEB漏洞形成全面、及時(shí) 和準(zhǔn)確的防護(hù)。并且,本領(lǐng)域技術(shù)人員應(yīng)該理解,本發(fā)明的方法不僅可以用于防護(hù)WEB漏 洞,也可以用于防護(hù)網(wǎng)絡(luò)上的其他漏洞和危害。而且,在描述本發(fā)明的方法中所述的步驟順 序也不是限制性的,某些步驟可以不以描述的順序進(jìn)行或者省略某些步驟。例如,如果預(yù)先 對(duì)某個(gè)WEB漏洞的原理有一定的了解,那么可以不進(jìn)行漏洞重現(xiàn)步驟而直接跳到分析和利 用步驟以節(jié)約時(shí)間。
[0087] 下面結(jié)合圖3描述根據(jù)本發(fā)明的用于防護(hù)WEB漏洞的設(shè)備。圖3是根據(jù)本發(fā)明實(shí) 施例的用于防護(hù)WEB漏洞的設(shè)備的框圖。
[0088] 在圖3中,所述設(shè)備300可以包括:收集裝置301,可以用于收集WEB漏洞;重現(xiàn)裝 置302,可以用于重現(xiàn)所述WEB漏洞;分析裝置303,可以用于分析所述WEB漏洞;利用裝置 304,可以用于基于重現(xiàn)和分析所述WEB漏洞的結(jié)果來利用所述WEB漏洞;防護(hù)裝置305,可 以用于基于重現(xiàn)、分析和利用所述WEB漏洞的結(jié)果來防護(hù)WEB漏洞。
[0089] 優(yōu)選地,該設(shè)備可以進(jìn)一步包括篩選裝置,用于在收集所述WEB漏洞之后基于篩 選標(biāo)準(zhǔn)對(duì)所收集的所述WEB漏洞進(jìn)行篩選。
[0090] 并且,優(yōu)選地,所述篩選標(biāo)準(zhǔn)可以包括以下至少一個(gè):所述WEB漏洞的新舊程度、 所述WEB漏洞的影響范圍、利用所述WEB漏洞的難易程度、所述WEB漏洞的危害程度。
[0091] 優(yōu)選地,在該設(shè)備中,所述收集裝置可以進(jìn)一步包括網(wǎng)絡(luò)收集裝置,用于通過網(wǎng)絡(luò) 從WEB漏洞源收集所述WEB漏洞。
[0092] 優(yōu)選地,在該設(shè)備中,所述WEB漏洞源可以包括以下至少一個(gè):WEB漏洞公布網(wǎng)站 和數(shù)據(jù)庫(kù)、社區(qū)交互網(wǎng)站、新聞門戶網(wǎng)站。
[0093] 優(yōu)選地,在該設(shè)備中,所述重現(xiàn)裝置可以進(jìn)一步包括構(gòu)建裝置,用于利用虛擬機(jī)和 相關(guān)程序構(gòu)建靶場(chǎng)環(huán)境來重現(xiàn)所述WEB漏洞。
[0094] 優(yōu)選地,在該設(shè)備中,所述分析裝置可以進(jìn)一步包括審計(jì)裝置,用于根據(jù)所述WEB 漏洞觸發(fā)點(diǎn)通過源代碼審計(jì)技術(shù)、分析參數(shù)傳遞過程來獲取對(duì)所述WEB漏洞的根源的描述 和所述WEB的形成原理。
[0095] 優(yōu)選地,在該設(shè)備中,所述利用裝置可以進(jìn)一步包括生成裝置,用于生成概念驗(yàn)證 P0C程序來實(shí)現(xiàn)WEB漏洞利用。
[0096] 優(yōu)選地,在該設(shè)備中,所述WEB漏洞可以利用包括以下至少一個(gè):讀取數(shù)據(jù)庫(kù)內(nèi) 容、讀取文件內(nèi)容、上傳后門、代碼執(zhí)行。
[0097] 優(yōu)選地,在該設(shè)備中,所述防護(hù)裝置可以進(jìn)一步包括以下至少一個(gè):形成裝置,用 于形成對(duì)所述WEB漏洞的根源的描述;修復(fù)方案生成裝置,用于生成針對(duì)所述WEB漏洞的修 復(fù)方案;檢測(cè)方法生成裝置,生成針對(duì)所述WEB漏洞的檢測(cè)方案;防御方法生成裝置,用于 生成針對(duì)所述WEB漏洞的防御方案。
[0098] 優(yōu)選地,該設(shè)備可以進(jìn)一步包括轉(zhuǎn)換裝置,用于將針對(duì)所述WEB漏洞的檢測(cè)方案 轉(zhuǎn)換為用于安全掃描器的掃描規(guī)則、將針對(duì)所述WEB漏洞的防御方案轉(zhuǎn)換為用于安全防火 墻的防御規(guī)則。
[0099] 綜上所示,根據(jù)本發(fā)明的用于防護(hù)WEB漏洞的方法可以針對(duì)WEB漏洞形成發(fā)展的 整個(gè)鏈條進(jìn)行全面的防護(hù)。并且可以為涉及WEB漏洞的各種人員和程序都提供應(yīng)對(duì)防護(hù)方 案,使對(duì)WEB漏洞的防護(hù)變得及時(shí)、全面、高效和準(zhǔn)確。
[〇1〇〇] 雖然上述已經(jīng)結(jié)合附圖描述了本發(fā)明的具體實(shí)施例,但是本領(lǐng)域技術(shù)人員在不脫 離本發(fā)明的精神和范圍的情況下,可以對(duì)本發(fā)明進(jìn)行各種改變、修改和等效替代。這些改 變、修改和等效替代都意為落入隨附的權(quán)利要求所限定的精神和范圍之內(nèi)。
【權(quán)利要求】
1. 一種用于防護(hù)WEB漏洞的方法,所述方法包括: 收集WEB漏洞; 重現(xiàn)所述WEB漏洞; 分析所述WEB漏洞; 基于重現(xiàn)和分析所述WEB漏洞的結(jié)果來利用所述WEB漏洞;以及 基于重現(xiàn)、分析和利用所述WEB漏洞的結(jié)果來防護(hù)WEB漏洞。
2. 根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在收集所述WEB漏洞之后基于篩選標(biāo)準(zhǔn)對(duì) 所收集的所述WEB漏洞進(jìn)行篩選。
3. 根據(jù)權(quán)利要求2所述的方法,其中所述篩選標(biāo)準(zhǔn)包括以下至少一個(gè):所述WEB漏洞 的新舊程度、所述WEB漏洞的影響范圍、利用所述WEB漏洞的難易程度、所述WEB漏洞的危 害程度。
4. 根據(jù)權(quán)利要求1所述的方法,其中所述收集所述WEB漏洞進(jìn)一步包括通過網(wǎng)絡(luò)從 WEB漏洞源收集所述WEB漏洞。
5. 根據(jù)權(quán)利要求4所述的方法,其中所述WEB漏洞源包括以下至少一個(gè):WEB漏洞公布 網(wǎng)站和數(shù)據(jù)庫(kù)、社區(qū)交互網(wǎng)站、新聞門戶網(wǎng)站。
6. 根據(jù)權(quán)利要求1所述的方法,其中所述重現(xiàn)所述WEB漏洞進(jìn)一步包括利用虛擬機(jī)和 相關(guān)程序構(gòu)建靶場(chǎng)環(huán)境來重新所述WEB漏洞。
7. 根據(jù)權(quán)利要求1所述的方法,其中所述分析所述WEB漏洞進(jìn)一步包括根據(jù)所述WEB 漏洞觸發(fā)點(diǎn)通過源代碼審計(jì)技術(shù)、分析參數(shù)傳遞過程來獲取對(duì)所述WEB漏洞的根源的描述 和所述WEB的形成原理。
8. 根據(jù)權(quán)利要求1所述的方法,其中所述利用所述WEB漏洞進(jìn)一步包括生成概念驗(yàn)證 POC程序來實(shí)現(xiàn)WEB漏洞利用。
9. 根據(jù)權(quán)利要求8所述的方法,其中所述WEB漏洞利用包括以下至少一個(gè):讀取數(shù)據(jù) 庫(kù)內(nèi)容、讀取文件內(nèi)容、上傳后門、代碼執(zhí)行。
10. 根據(jù)權(quán)利要求1至9中任一項(xiàng)所述的方法,其中所述防護(hù)WEB漏洞進(jìn)一步包括以下 至少一個(gè):形成對(duì)所述WEB漏洞的根源的描述、生成針對(duì)所述WEB漏洞的修復(fù)方案、生成針 對(duì)所述WEB漏洞的檢測(cè)方案、生成針對(duì)所述WEB漏洞的防御方案。
11. 根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括將針對(duì)所述WEB漏洞的檢測(cè)方案轉(zhuǎn)換為 用于安全掃描器的掃描規(guī)則、將針對(duì)所述WEB漏洞的防御方案轉(zhuǎn)換為用于安全防火墻的防 御規(guī)則。
12. -種用于防護(hù)WEB漏洞的設(shè)備,所述設(shè)備包括: 收集裝置,用于收集WEB漏洞; 重現(xiàn)裝置,用于重現(xiàn)所述WEB漏洞; 分析裝置,用于分析所述WEB漏洞; 利用裝置,用于基于重現(xiàn)和分析所述WEB漏洞的結(jié)果來利用所述WEB漏洞; 防護(hù)裝置,用于基于重現(xiàn)、分析和利用所述WEB漏洞的結(jié)果來防護(hù)WEB漏洞。
13. 根據(jù)權(quán)利要求12所述的設(shè)備,進(jìn)一步包括篩選裝置,用于在收集所述WEB漏洞之后 基于篩選標(biāo)準(zhǔn)對(duì)所收集的所述WEB漏洞進(jìn)行篩選。
14. 根據(jù)權(quán)利要求13所述的設(shè)備,其中所述篩選標(biāo)準(zhǔn)包括以下至少一個(gè):所述WEB漏 洞的新舊程度、所述WEB漏洞的影響范圍、利用所述WEB漏洞的難易程度、所述WEB漏洞的 危害程度。
15. 根據(jù)權(quán)利要求12所述的設(shè)備,其中所述收集裝置進(jìn)一步包括網(wǎng)絡(luò)收集裝置,用于 通過網(wǎng)絡(luò)從WEB漏洞源收集所述WEB漏洞。
16. 根據(jù)權(quán)利要求15所述的設(shè)備,其中所述WEB漏洞源包括以下至少一個(gè):WEB漏洞公 布網(wǎng)站和數(shù)據(jù)庫(kù)、社區(qū)交互網(wǎng)站、新聞門戶網(wǎng)站。
17. 根據(jù)權(quán)利要求12所述的設(shè)備,其中所述重現(xiàn)裝置進(jìn)一步包括構(gòu)建裝置,用于利用 虛擬機(jī)和相關(guān)程序構(gòu)建靶場(chǎng)環(huán)境來重現(xiàn)所述WEB漏洞。
18. 根據(jù)權(quán)利要求12所述的設(shè)備,其中所述分析裝置進(jìn)一步包括審計(jì)裝置,用于根據(jù) 所述WEB漏洞觸發(fā)點(diǎn)通過源代碼審計(jì)技術(shù)、分析參數(shù)傳遞過程來獲取對(duì)所述WEB漏洞的根 源的描述和所述WEB的形成原理。
19. 根據(jù)權(quán)利要求12所述的設(shè)備,其中所述利用裝置進(jìn)一步包括生成裝置,用于生成 概念驗(yàn)證POC程序來實(shí)現(xiàn)WEB漏洞利用。
20. 根據(jù)權(quán)利要求19所述的設(shè)備,其中所述WEB漏洞利用包括以下至少一個(gè):讀取數(shù) 據(jù)庫(kù)內(nèi)容、讀取文件內(nèi)容、上傳后門、代碼執(zhí)行。
21. 根據(jù)權(quán)利要求12至20中任一項(xiàng)所述的設(shè)備,其中所述防護(hù)裝置進(jìn)一步包括以下至 少一個(gè):形成裝置,用于形成對(duì)所述WEB漏洞的根源的描述;修復(fù)方案生成裝置,用于生成 針對(duì)所述WEB漏洞的修復(fù)方案;檢測(cè)方法生成裝置,生成針對(duì)所述WEB漏洞的檢測(cè)方案;防 御方法生成裝置,用于生成針對(duì)所述WEB漏洞的防御方案。
22. 根據(jù)權(quán)利要求21所述的設(shè)備,進(jìn)一步包括轉(zhuǎn)換裝置,用于將針對(duì)所述WEB漏洞的檢 測(cè)方案轉(zhuǎn)換為用于安全掃描器的掃描規(guī)則、將針對(duì)所述WEB漏洞的防御方案轉(zhuǎn)換為用于安 全防火墻的防御規(guī)則。
【文檔編號(hào)】H04L29/06GK104065645SQ201410230520
【公開日】2014年9月24日 申請(qǐng)日期:2014年5月28日 優(yōu)先權(quán)日:2014年5月28日
【發(fā)明者】練曉謙 申請(qǐng)人:北京知道創(chuàng)宇信息技術(shù)有限公司