摘要:隨著WEB應(yīng)用技術(shù)的發(fā)展,越來(lái)越多的企業(yè)或?qū)W校使用WEB應(yīng)用來(lái)進(jìn)行企業(yè)或?qū)W校信息開(kāi)放性管理,使機(jī)構(gòu)管理信息暴露在越來(lái)越多的威脅中。由于WEB應(yīng)用具有一定的運(yùn)行特點(diǎn),傳統(tǒng)防火墻對(duì)于其存在的安全問(wèn)題缺少針對(duì)性和有效性,新的防護(hù)工具——Web應(yīng)用防火墻應(yīng)運(yùn)而生。
關(guān)鍵詞:web應(yīng)用 開(kāi)放性 安全問(wèn)題 Web防火墻
隨著信息資源逐漸向數(shù)據(jù)高度集中的模式,Web成為一種普適平臺(tái),Web應(yīng)用成為了越來(lái)越多的企業(yè)或?qū)W校進(jìn)行核心業(yè)務(wù)及信息管理的承載者。Web應(yīng)用提供了豐富的開(kāi)放資源和高效率的新工作方式,但它的開(kāi)放性、易用性和易開(kāi)發(fā)性同樣也使Web應(yīng)用的安全問(wèn)題日益突出,已成為了網(wǎng)絡(luò)安全核心問(wèn)題之一。
1 Web應(yīng)用的工作原理和特點(diǎn)
Web應(yīng)用程序首先是“應(yīng)用程序”,和用標(biāo)準(zhǔn)的程序語(yǔ)言,如C、C++等編寫(xiě)出來(lái)的程序沒(méi)有什么本質(zhì)上的不同。然而Web應(yīng)用程序又有自己獨(dú)特的地方,就是它是基于Web的,而不是采用傳統(tǒng)方法運(yùn)行的。
目前廣泛使用的Web應(yīng)用程序一般是B/S模式,使用標(biāo)準(zhǔn)的三層架構(gòu)模型:第一層是客戶端;使用動(dòng)態(tài)Web內(nèi)容技術(shù)的部分屬于中間層;數(shù)據(jù)庫(kù)是第三層。在B/S模式中,客戶端運(yùn)行瀏覽器軟件。瀏覽器以超文本形式向Web服務(wù)器提出訪問(wèn)數(shù)據(jù)庫(kù)的要求,Web服務(wù)器接受客戶端請(qǐng)求后,將這個(gè)請(qǐng)求轉(zhuǎn)化為SQL 語(yǔ)法,并交給數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器得到請(qǐng)求后,驗(yàn)證其合法性,并進(jìn)行數(shù)據(jù)處理,然后將處理后的結(jié)果返回給Web服務(wù)器,Web服務(wù)器再一次將得到的所有結(jié)果進(jìn)行轉(zhuǎn)化,變成HTML文檔形式,轉(zhuǎn)發(fā)給客戶端瀏覽器以友好的Web頁(yè)面形式顯示出來(lái)。
因此,Web應(yīng)用具有以下特點(diǎn):
1.1 易用性
Web應(yīng)用所基于的Web瀏覽器的界面都很相似,對(duì)于無(wú)用戶交互功能的頁(yè)面,用戶接觸的界面都是一致的,因此Web應(yīng)用的操作簡(jiǎn)單易上手。
1.2 開(kāi)放性
在Web應(yīng)用的B/S模式下,除了內(nèi)部人員可以訪問(wèn),外部的用戶亦可通過(guò)通用的瀏覽器進(jìn)行訪問(wèn),并且不受瀏覽器的限制。
1.3 易擴(kuò)展性
由于Web的平臺(tái)無(wú)關(guān)性,B/S模式結(jié)構(gòu)可以任意擴(kuò)展,可以從一臺(tái)服務(wù)器、幾個(gè)用戶的工作組級(jí)擴(kuò)展成為擁有成千上萬(wàn)用戶的大型系統(tǒng)。
2 WEB應(yīng)用主要安全問(wèn)題
由于Web應(yīng)用的特點(diǎn),其受到的網(wǎng)絡(luò)安全問(wèn)題也與日俱增,根據(jù)統(tǒng)計(jì),主要的安全問(wèn)題有以下幾種:
2.1 Web平臺(tái)軟件的不安全性
Web平臺(tái)軟件包括Web應(yīng)用使用的操作系統(tǒng)、HTTP底層服務(wù)器軟件和第三方應(yīng)用程序等,這些軟件配置中往往存在很多安全問(wèn)題,攻擊者使用掃描工具檢測(cè)到漏洞并加以利用,導(dǎo)致后端系統(tǒng)的攻陷,包括數(shù)據(jù)庫(kù)和企業(yè)內(nèi)部網(wǎng)絡(luò)。
2.2 拒絕服務(wù)攻擊
因?yàn)镮P地址不能作為請(qǐng)求來(lái)源的判斷依據(jù),沒(méi)有可靠的辦法判斷出一個(gè)HTTP請(qǐng)求從哪里來(lái),難以過(guò)濾惡意的訪問(wèn),所以很容易受到拒絕服務(wù)攻擊,攻擊者發(fā)送多個(gè)類似請(qǐng)求,使數(shù)據(jù)庫(kù)鏈接池消耗,導(dǎo)致合法用戶不能使用服務(wù),也就是拒絕服務(wù)攻擊。
2.3 SQL注入
SQL注入,是指通過(guò)把SQL命令插入到Web表單遞交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。主要是針對(duì)Web應(yīng)用在數(shù)據(jù)被輸入程序前忽略對(duì)數(shù)據(jù)合法性的檢驗(yàn)這樣一個(gè)常見(jiàn)的編程漏洞,以此操縱SQL代碼來(lái)套取用戶的用戶名、密碼等信息,或?qū)笈_(tái)數(shù)據(jù)進(jìn)行竊取和破壞。
2.4 跨站腳本攻擊
跨站腳本,是指一種迫使Web站點(diǎn)回顯可執(zhí)行代碼的攻擊技術(shù),而這些可執(zhí)行代碼由攻擊者提供,最終為用戶瀏覽器加載。不同于大多數(shù)攻擊(一般攻擊只設(shè)計(jì)攻擊者和受害者),跨站腳本設(shè)計(jì)到三方,即攻擊者、客戶端與網(wǎng)站。主要是針對(duì)Web應(yīng)用服務(wù)器端的通用網(wǎng)關(guān)接口(CGI)程序沒(méi)有對(duì)用戶提交的變量中的HTML代碼進(jìn)行有效的過(guò)濾或轉(zhuǎn)換并允許往Web頁(yè)面插入HTML代碼這樣一個(gè)漏洞,從而盜取客戶端的cookie或者其他網(wǎng)站用于識(shí)別客戶端身份的敏感信息。
3 web應(yīng)用的防范
對(duì)于Web應(yīng)用常見(jiàn)的安全問(wèn)題,一般的防范方法主要是通過(guò)Web應(yīng)用的網(wǎng)站管理人員進(jìn)行設(shè)置。例如,設(shè)置對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行檢驗(yàn),通過(guò)正則表達(dá)式,限制數(shù)據(jù)提交長(zhǎng)度;或是對(duì)數(shù)據(jù)庫(kù)連接進(jìn)行權(quán)限分類設(shè)置,為每個(gè)應(yīng)用使用單獨(dú)的有限數(shù)據(jù)庫(kù)連接。
作為常用的網(wǎng)絡(luò)安全防護(hù)工具,傳統(tǒng)防火墻在Web應(yīng)用安全問(wèn)題中無(wú)法起到有效作用。因?yàn)閭鹘y(tǒng)防火墻的工作原理是,對(duì)于Web服務(wù)器對(duì)外部網(wǎng)絡(luò)開(kāi)放的HTTP應(yīng)用端口方式防護(hù)效果甚微。
同時(shí),隨著對(duì)Web應(yīng)用安全的日益關(guān)注,越來(lái)越多的廠商在進(jìn)行針對(duì)Web應(yīng)用安全問(wèn)題的專用防火墻——Web應(yīng)用防火墻(WAF)的研發(fā),市面上也已出現(xiàn)多種Web應(yīng)用防火墻產(chǎn)品,并投入使用檢驗(yàn)效果。
不同于傳統(tǒng)防火墻在網(wǎng)絡(luò)層通過(guò)地址轉(zhuǎn)換、訪問(wèn)控制以及狀態(tài)檢測(cè)等功能進(jìn)行防護(hù)的工作原理,WAF位于Web客戶端和Web服務(wù)器之間,分析應(yīng)用程序?qū)拥耐ㄐ牛瑥亩l(fā)現(xiàn)違反預(yù)先定義好的安全策略的行為,具備事前預(yù)防、事中防護(hù)及事后補(bǔ)償?shù)木C合能力。
Web應(yīng)用防火墻針對(duì)Web應(yīng)用安全問(wèn)題具有以下特點(diǎn):
3.1 異常檢測(cè)協(xié)議
Web應(yīng)用防火墻會(huì)對(duì)HTTP的請(qǐng)求進(jìn)行異常檢測(cè),拒絕不符合HTTP標(biāo)準(zhǔn)的請(qǐng)求,并且它也可以只允許HTTP協(xié)議的部分選項(xiàng)通過(guò),從而減少攻擊的影響范圍。甚至,一些Web應(yīng)用防火墻還可以嚴(yán)格限定HTTP協(xié)議中那些過(guò)于松散或未被完全制定的選項(xiàng)。
3.2 增強(qiáng)的輸入驗(yàn)證
增強(qiáng)輸入驗(yàn)證,可以有效防止網(wǎng)頁(yè)篡改、信息泄露、木馬植入等惡意網(wǎng)絡(luò)入侵行為,從而減小Web服務(wù)器被攻擊的可能性。
3.3 及時(shí)補(bǔ)丁
修補(bǔ)Web安全漏洞,是Web應(yīng)用開(kāi)發(fā)者最頭痛的問(wèn)題,沒(méi)人會(huì)知道下一秒有什么樣的漏洞出現(xiàn),會(huì)為Web應(yīng)用帶來(lái)什么樣的危害。現(xiàn)在WAF可以為我們做這項(xiàng)工作了——只要有全面的漏洞信息WAF能在不到一個(gè)小時(shí)的時(shí)間內(nèi)屏蔽掉這個(gè)漏洞。
3.4 基于規(guī)則的保護(hù)和基于異常的保護(hù)
基于規(guī)則的保護(hù)可以提供各種Web應(yīng)用的安全規(guī)則,WAF生產(chǎn)商會(huì)維護(hù)這個(gè)規(guī)則庫(kù),并時(shí)時(shí)為其更新。用戶可以按照這些規(guī)則對(duì)應(yīng)用進(jìn)行全方面檢測(cè)。還有的產(chǎn)品可以基于合法應(yīng)用數(shù)據(jù)建立模型,并以此為依據(jù)判斷應(yīng)用數(shù)據(jù)的異常。但這需要對(duì)用戶企業(yè)的應(yīng)用具有十分透徹的了解才可能做到,可現(xiàn)實(shí)中這是十分困難的一件事情。
3.5 狀態(tài)管理
WAF能夠判斷用戶是否是第一次訪問(wèn)并且將請(qǐng)求重定向到默認(rèn)登錄頁(yè)面并且記錄事件。通過(guò)檢測(cè)用戶的整個(gè)操作行為我們可以更容易識(shí)別攻擊。狀態(tài)管理模式還能檢測(cè)出異常事件(比如登陸失敗),并且在達(dá)到極限值時(shí)進(jìn)行處理。這對(duì)暴力攻擊的識(shí)別和響應(yīng)是十分有利的。
3.6 其他防護(hù)技術(shù)
WAF還有一些安全增強(qiáng)的功能,可以用來(lái)解決WEB程序員過(guò)分信任輸入數(shù)據(jù)帶來(lái)的問(wèn)題。比如:隱藏表單域保護(hù)、抗入侵規(guī)避技術(shù)、響應(yīng)監(jiān)視和信息泄露保護(hù)。
Web應(yīng)用防火墻的發(fā)展目前有兩個(gè)方向,其一向高性能專業(yè)設(shè)備的方面發(fā)展,其二是朝Web應(yīng)用綜合網(wǎng)關(guān)的方面發(fā)展。梭子魚(yú)公司技術(shù)總監(jiān)谷新給出了自己對(duì)傳統(tǒng)防火墻與Web應(yīng)用防火墻的解讀,他認(rèn)為傳統(tǒng)防火墻和WEB應(yīng)用防火墻的本質(zhì)區(qū)別在于,前者只是針對(duì)網(wǎng)絡(luò)協(xié)議的第三層網(wǎng)絡(luò)層、第四層傳輸層的訪問(wèn)控制和攻擊防御,而后者深入到應(yīng)用層對(duì)所有應(yīng)用信息進(jìn)行過(guò)濾,是專門(mén)為保護(hù)基于Web的應(yīng)用程序而設(shè)計(jì)的。
4 小結(jié)
Web應(yīng)用安全已是網(wǎng)絡(luò)時(shí)代給我們帶來(lái)的新的考驗(yàn),也是急待解決的問(wèn)題。目前,針對(duì)Web應(yīng)用安全問(wèn)題而研發(fā)的專用防火墻——WAF仍處于起步階段,防范技術(shù)尚未統(tǒng)一,但也取得了一定的防范效果。相信在日益完善的防護(hù)技術(shù)發(fā)展下,Web應(yīng)用安全問(wèn)題能夠取得更大的突破。
參考文獻(xiàn):
[1]戚永涵.Web應(yīng)用安全弱點(diǎn)的解析與防范[J]IT與網(wǎng)絡(luò),2010,07:119.
[2]吳海燕.高國(guó)柱.苗春雨.數(shù)字校園Web應(yīng)用安全問(wèn)題研究[J].中山大學(xué)學(xué)報(bào),2009,03(48):358-361.
[3]孫繼紅.Web應(yīng)用安全的研究[J].信息科學(xué),2009,12(10):94-96.
[4]陳廣成.拿什么拯救Web時(shí)代的安全危機(jī)[J].網(wǎng)絡(luò)與信息,2011(04).