??〗?/p>
【摘 要】Web2.0使得Web應(yīng)用更為便利,更大程度的提升了Web的應(yīng)用功能性,但隨之而來也出現(xiàn)了更為多樣化的安全漏洞問題。通常來說Web應(yīng)用安全問題的主要威脅在于用戶數(shù)據(jù)的過濾上,大多數(shù)Web應(yīng)用開發(fā)者在應(yīng)用安全角度的考量相對較少,在這種情況下應(yīng)用防火墻是較為有效的安全彌補方法。本文對當(dāng)前Web應(yīng)用防火墻的技術(shù)與研究發(fā)展進(jìn)行分析總結(jié),介紹一般性的應(yīng)用方法與注意事項,為開發(fā)者提供相應(yīng)的參考意見。
【關(guān)鍵詞】Web應(yīng)用 防火墻 應(yīng)用層保護(hù) 現(xiàn)狀分析
一、Web應(yīng)用防火墻的基本概念與發(fā)展現(xiàn)狀
Web應(yīng)用防火墻需理解HTTP/HTTPS協(xié)議、分析用戶請求數(shù)據(jù),實現(xiàn)往返流量的監(jiān)測和控制,對于目前常見的跨站腳本攻擊、SQL注入攻擊、命令注入攻擊、cookie/seesion劫持、參數(shù)篡改、緩沖溢出攻擊、日志篡改、應(yīng)用平臺漏洞攻擊、DDOS攻擊、HTTPS類攻擊等攻擊行為都應(yīng)有良好的防護(hù)效果。
從現(xiàn)有的一些研究成果來看,針對Web安全所采用的防御措施仍然不是很理想,一些產(chǎn)品只是從傳統(tǒng)的入侵防御系統(tǒng)(IPS)增加深度包過濾措施。由于Web安全的特殊性,各種字符集和編碼方案很多,大多數(shù)IPS是無法對報文編碼做多重轉(zhuǎn)換的,所以這將導(dǎo)致攻擊者只需構(gòu)建諸如轉(zhuǎn)換編碼、拼接攻擊語句、大小寫變換等數(shù)據(jù)包就可繞過輸入檢查而直接提交給應(yīng)用程序,輕易繞過這些安全措施。
二、Web應(yīng)用安全威脅的常見方式及防護(hù)建議
(一)Web應(yīng)用安全威脅類型及基本應(yīng)對方案
就目前Web應(yīng)用主流的攻擊方式來看,無非注入式攻擊、跨站攻擊、CSRF攻擊以及DDOS等,這類攻擊相對而言都已經(jīng)有較為成熟的防御措施。
結(jié)合上述情況也可以看出Web應(yīng)用安全威脅多種多樣,真正要做到全面的防御還需要進(jìn)行多個方面的考慮??偨Y(jié)來看,Web應(yīng)用的安全問題本質(zhì)依舊在于軟件設(shè)計上的安全考量不足,而提升這一基礎(chǔ)安全條件的方案就是通過編碼技術(shù)或者防火墻實現(xiàn),但編碼技術(shù)由于定制化的特點很難通過通用的補丁進(jìn)行長期改進(jìn),所以Web應(yīng)用防火墻依然是最佳的一個選擇。
(二)Web應(yīng)用防火墻構(gòu)架建議
由于Web應(yīng)用的特殊性,針對Web應(yīng)用的攻擊變形技術(shù)很多,單純的基于特征簽名的防御措施很容易被突破。這也是現(xiàn)有的安全措施并不能夠保護(hù)好Web應(yīng)用的主要原因。通過固定應(yīng)對措施或單獨使用編碼技術(shù)進(jìn)行防護(hù)的措施都具有一定的限制性,而防火墻能夠同時兼顧兩個方面的需求,在設(shè)計中通過預(yù)處理模塊與檢測模塊的互為合作可以同時實現(xiàn)上述兩個方面的需求,通過預(yù)處理模塊對SSL加密流量進(jìn)行解密,檢測模塊采用新型的過濾策略可以有效地過濾惡意輸入,數(shù)據(jù)庫用于存儲過濾策略、Web應(yīng)用防火墻的配置信息、訪問控制列表和Web應(yīng)用防火墻的日志信息。
三、Web應(yīng)用防火墻防護(hù)功能的實現(xiàn)方案
(一)預(yù)處理模塊
該模塊的主要功能在于編碼解碼標(biāo)準(zhǔn)的實現(xiàn)和融入,基于SSL協(xié)議層實現(xiàn)。SSL協(xié)議是安全套接層協(xié)議,其主要功能為認(rèn)證、加密、完整性驗證三個方面。在編碼標(biāo)準(zhǔn)化方面,由于Web應(yīng)用的特殊性,其支持各種編碼如URL編碼、Unicode編碼、HTML編碼等和各種字符集如UTF-7、UTF-8、GB2312,攻擊者可以通過各種編碼和變換字符集來突破現(xiàn)有的防御措施,所以將其進(jìn)行歸一化和標(biāo)準(zhǔn)化有利于下一步的檢測模塊制定高效的過濾規(guī)則和防御策略,來阻止各種變形攻擊。
(二)檢測功能模塊
檢測模塊在Web應(yīng)用防火墻中承擔(dān)了安全功能需求導(dǎo)向部分的實現(xiàn),功能涵蓋了過濾器和權(quán)限控制兩個方面:首先是過濾器,過濾器注重解決的就是Web應(yīng)用中最為嚴(yán)重的用戶輸入惡意信息的問題。其次是訪問控制,Web應(yīng)用站點正常會包含一些不在正常網(wǎng)站數(shù)據(jù)目錄樹內(nèi)的URL鏈接。WAF可以通過訪問控制策略提供細(xì)粒度的URL ACL(訪問控制列表),防止對這些鏈接的非授權(quán)訪問。此外在訪問控制管理中也可以考慮加入會話管理的考慮,同時會話驗證也是一種可以有效阻隔DDOS攻擊的合理方式。
(三)防護(hù)日志統(tǒng)計模塊
一個系統(tǒng)的最重要部分是日志審計系統(tǒng),所有的異常出錯都會被實時記錄,便于日后分析評估,也是作為電子取證的關(guān)鍵證據(jù)。日志信息必須確保實現(xiàn)完整性與一致性保護(hù)。我們使用SHA單向散列函數(shù)和消息鑒別碼來實現(xiàn)。SHA單向散列函數(shù)就是將輸入數(shù)據(jù)流可以是字符串或文件轉(zhuǎn)換成固定長度輸出串的一種函數(shù)。散列計算過程是不可逆的,并且輸入信息有細(xì)小的變化輸出結(jié)果會有很大的不同,所以常用來做信息的防篡改使用。正常情況下,應(yīng)使用不帶密鑰的單向散列函數(shù),以便任何人都可以驗證信息完整性,但是如果想只有信息接收者才能驗證散列值,就需要消息鑒別碼。消息鑒別碼是帶有秘密密鑰的單向散列函數(shù)。所以我們對Web應(yīng)用防火墻的日志文件定時備份并且計算出消息鑒別碼,并將消息鑒別碼保存到數(shù)據(jù)庫中,就可以有效地防止信息的篡改,保證了日志文件的完整性與一致性。
四、總結(jié)
為驗證Web防火墻的系統(tǒng)功能,我們使用Web應(yīng)用防火墻防護(hù)WebGoat漏洞系統(tǒng)從而達(dá)到測試的目的,筆者依照上訴方案部署Web應(yīng)用防火墻之前和之后分別用IBM Rational AppScan Web應(yīng)用安全漏洞掃描平臺進(jìn)行測試,并分析結(jié)果。最終表現(xiàn)良好,本文的設(shè)計方案具備可行性與有效性。
參考文獻(xiàn):
[1]王嘉延. Web應(yīng)用生命周期安全防護(hù)探討[J].計算機(jī)安全. 2011(10)
[2]姚琳琳.基于分布式對等架構(gòu)的Web應(yīng)用防火墻設(shè)計與實現(xiàn)[D].桂林電子科技大學(xué).2012
[3]葛鵬. 淺談Web應(yīng)用防火墻對基于Web業(yè)務(wù)系統(tǒng)的保護(hù)[J].江蘇科技信息. 2010(11)