基于規(guī)則的保護(hù)和基于異常的保護(hù)

現(xiàn)在市場(chǎng)上大多數(shù)的產(chǎn)品是基于規(guī)則的WAF。其原理是每一個(gè)會(huì)話都要經(jīng)過(guò)一系列的測(cè)試,每一項(xiàng)測(cè)試都由一個(gè)過(guò)多個(gè)檢測(cè)規(guī)則組成,如果測(cè)試沒通過(guò),請(qǐng)求就會(huì)被認(rèn)為非法并拒絕。

基于規(guī)則的WAFs很容易構(gòu)建并且能有效的防范已知安全問(wèn)題。當(dāng)我們要制定自定義防御策略時(shí)使用它會(huì)更加便捷。但是因?yàn)樗鼈儽仨氁紫却_認(rèn)每一個(gè)威脅的特點(diǎn),所以要由一個(gè)強(qiáng)大的規(guī)則數(shù)據(jù)庫(kù)支持。WAF生產(chǎn)商維護(hù)這個(gè)數(shù)據(jù)庫(kù),并且他們要提供自動(dòng)更新的工具。

這個(gè)方法不能有效保護(hù)自己開發(fā)的WEB應(yīng)用或者零日漏洞(攻擊者使用的沒有公開的漏洞),這些威脅使用基于異常的WAF更加有效。

異常保護(hù)的基本觀念是建立一個(gè)保護(hù)層,這個(gè)保護(hù)層能夠根據(jù)檢測(cè)合法應(yīng)用數(shù)據(jù)建立統(tǒng)計(jì)模型,以此模型為依據(jù)判別實(shí)際通信數(shù)據(jù)是否是攻擊。理論上,一但構(gòu)建成功,這個(gè)基于異常的系統(tǒng)應(yīng)該能夠探測(cè)出任何的異常情況。擁有了它,我們不再需要規(guī)則數(shù)據(jù)庫(kù)而且零日攻擊也不再成問(wèn)題了。但基于異常保護(hù)的系統(tǒng)很難構(gòu)建,所以并不常見。因?yàn)橛脩舨涣私馑墓ぷ髟硪膊幌嘈潘?,所以它也就不如基于?guī)則的WAF應(yīng)用廣范。

狀態(tài)管理

HTTP的無(wú)狀態(tài)性對(duì)Web應(yīng)用安全有很多負(fù)面影響。會(huì)話只能夠在應(yīng)用層上實(shí)現(xiàn),但對(duì)許多應(yīng)用來(lái)說(shuō)這個(gè)附加的功能只能滿足業(yè)務(wù)的需要而考慮不到安全因素了。Web應(yīng)用防火墻則將重點(diǎn)放在會(huì)話保護(hù)上,它的特征包括:

強(qiáng)制登錄頁(yè)面。在大多數(shù)站點(diǎn), 你可以從任何你所知道的URL上訪問(wèn)站點(diǎn),這通常方便了攻擊者而給防御增加了困難。WAF能夠判斷用戶是否是第一次訪問(wèn)并且將請(qǐng)求重定向到默認(rèn)登錄頁(yè)面并且記錄事件。

分別檢測(cè)每一個(gè)用戶會(huì)話。如果能夠區(qū)分不同的會(huì)話,這就帶來(lái)了無(wú)限的可能。比如,我們能夠監(jiān)視登陸請(qǐng)求的發(fā)送頻率和用戶的頁(yè)面跳轉(zhuǎn)。通過(guò)檢測(cè)用戶的整個(gè)操作行為我們可以更容易識(shí)別攻擊。

對(duì)暴力攻擊的識(shí)別和響應(yīng)。通常的Web應(yīng)用網(wǎng)絡(luò)是沒有檢測(cè)暴力攻擊的。有了狀態(tài)管理模式,WAF能檢測(cè)出異常事件(比如登陸失敗),并且在達(dá)到極限值時(shí)進(jìn)行處理。此時(shí)它可以增加更多的身份認(rèn)證請(qǐng)求的時(shí)間,這個(gè)輕微的變化用戶感覺不到,但對(duì)于足以對(duì)付自動(dòng)攻擊腳本了。如果一個(gè)認(rèn)證腳本需要50毫秒完成,那它可以發(fā)出大約每秒20次的請(qǐng)求。如果你增加一點(diǎn)延時(shí),比如說(shuō),一秒種的延遲,那會(huì)將請(qǐng)求降低至每秒不足一次。與此同時(shí),發(fā)出進(jìn)一步檢測(cè)的警告,這將構(gòu)成一個(gè)相當(dāng)好的防御。

實(shí)現(xiàn)會(huì)話超時(shí)。超出默認(rèn)時(shí)間會(huì)話將失效,并且用戶將被要求重新認(rèn)證。用戶在長(zhǎng)時(shí)間沒有請(qǐng)求時(shí)將會(huì)自動(dòng)退出登錄。

會(huì)話劫持的檢測(cè)和防御。許多情況下,會(huì)話劫持會(huì)改變IP地址和一些請(qǐng)求數(shù)據(jù)(HTTP請(qǐng)求的報(bào)頭會(huì)不同)。狀態(tài)監(jiān)控工具能檢測(cè)出這些異常并防止非法應(yīng)用的發(fā)生。在這種情況下應(yīng)該終止會(huì)話,要求用戶重新認(rèn)證,并且記錄一個(gè)警告日志信息。

只允許包含在前一請(qǐng)求應(yīng)答中的鏈接。一些WAF很嚴(yán)格,只允許用戶訪問(wèn)前一次請(qǐng)求返回頁(yè)面中的鏈接。這看上去是一個(gè)有趣的特點(diǎn)但很難得到實(shí)施。一個(gè)問(wèn)題在于它不允許用戶使用多個(gè)瀏覽器窗口,另一個(gè)問(wèn)題是它令使用JavaScript自動(dòng)建立連接的應(yīng)用失效。

其他防護(hù)技術(shù)

WAF的另外一些安全增強(qiáng)的功能用來(lái)解決WEB程序員過(guò)分信任輸入數(shù)據(jù)帶來(lái)的問(wèn)題。比如:

隱藏表單域保護(hù)。有時(shí),內(nèi)部應(yīng)用數(shù)據(jù)通過(guò)隱藏表單變量實(shí)現(xiàn),而它們并不是真的隱藏的。程序員通常用隱藏表單變量的方式來(lái)保存執(zhí)行狀態(tài),給用戶發(fā)送數(shù)據(jù),以確保這些數(shù)據(jù)返回時(shí)未被修改。這是一個(gè)復(fù)雜繁瑣的過(guò)程,WAF經(jīng)常使用密碼簽名技術(shù)來(lái)處理。

Cookies保護(hù)。和隱藏表單相似的是,cookies經(jīng)常用來(lái)傳遞用戶個(gè)人的應(yīng)用數(shù)據(jù),而不一樣的是,一些cookies可能含有敏感數(shù)據(jù)。 WAFs 通常會(huì)將整個(gè)內(nèi)容加密,或者是將整個(gè)cookies機(jī)制虛擬化。有了這種設(shè)置,終端用戶只能夠看到cookies令牌(如同會(huì)話令牌),從而保證 cookies在WAF中安全地存放

抗入侵規(guī)避技術(shù)?;诰W(wǎng)絡(luò)的IDS對(duì)付WEB攻擊的問(wèn)題就是攻擊規(guī)避技術(shù)。改寫HTTP輸入請(qǐng)求數(shù)據(jù)(攻擊數(shù)據(jù))的方式太多,并且各種改寫的請(qǐng)求能夠逃避IDS探測(cè)。在這個(gè)方面如果能完全理解HTTP就是大幅度的改進(jìn)。比如,WAF每次可以看到整個(gè)HTTP請(qǐng)求,就可以避免所有類型的HTTP請(qǐng)求分片的攻擊。因?yàn)楹芎玫牧私釮TTP協(xié)議,因此能夠?qū)?dòng)態(tài)請(qǐng)求和靜態(tài)請(qǐng)求分別對(duì)待,就不用花大量時(shí)間保護(hù)不會(huì)被攻擊的靜態(tài)數(shù)據(jù)。這樣WAF可以有足夠的計(jì)算能力對(duì)付各種攻擊規(guī)避技術(shù), 而這些功能由NIDSs完成是很耗時(shí)的。

響應(yīng)監(jiān)視和信息泄露保護(hù)。信息泄露防護(hù)是我們給監(jiān)視HTTP輸出數(shù)據(jù)的一個(gè)名稱。從原理上來(lái)說(shuō)它和請(qǐng)求監(jiān)視是一樣的,目的是監(jiān)視可疑的輸出,并防止可疑的 http輸出數(shù)據(jù)到達(dá)用戶。最有可能的應(yīng)用模式是監(jiān)視信用卡號(hào)和社會(huì)保險(xiǎn)號(hào)。另外,這個(gè)技術(shù)的另一項(xiàng)應(yīng)用是發(fā)現(xiàn)成功入侵的跡象。因?yàn)橛薪?jīng)驗(yàn)攻擊者總會(huì)給信息編碼來(lái)防止監(jiān)測(cè),所以防止這樣有決心并技術(shù)熟練的攻擊者獲取信息是很困難的。但是,在攻擊者沒有完全掌控服務(wù)器而僅僅嘗試WEB應(yīng)用的安全漏洞的情況下,這項(xiàng)技術(shù)可以起到防護(hù)效果。

分享到

wangliang

相關(guān)推薦