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

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

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

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

異常保護(hù)的基本觀念是建立一個保護(hù)層,這個保護(hù)層能夠根據(jù)檢測合法應(yīng)用數(shù)據(jù)建立統(tǒng)計模型,以此模型為依據(jù)判別實際通信數(shù)據(jù)是否是攻擊。理論上,一但構(gòu)建成功,這個基于異常的系統(tǒng)應(yīng)該能夠探測出任何的異常情況。擁有了它,我們不再需要規(guī)則數(shù)據(jù)庫而且零日攻擊也不再成問題了。但基于異常保護(hù)的系統(tǒng)很難構(gòu)建,所以并不常見。因為用戶不了解它的工作原理也不相信它,所以它也就不如基于規(guī)則的WAF應(yīng)用廣范。

狀態(tài)管理

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

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

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

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

實現(xiàn)會話超時。超出默認(rèn)時間會話將失效,并且用戶將被要求重新認(rèn)證。用戶在長時間沒有請求時將會自動退出登錄。

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

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

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

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

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

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

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

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

分享到

wangliang

相關(guān)推薦