防火墻封阻應(yīng)用攻擊技術(shù)大全
你已經(jīng)決心下大力氣搞好應(yīng)用安全嗎?畢竟,例如金融交易、信用卡號(hào)碼、機(jī)密資料、用戶檔案等信息,對(duì)于企業(yè)來(lái)說(shuō)太重要了。不過(guò)這些應(yīng)用實(shí)在太龐大、太復(fù)雜了,最困難的就是,這些應(yīng)用在通過(guò)網(wǎng)絡(luò)防火墻上的端口80(主要用于HTTP)和端口443(用于SSL)長(zhǎng)驅(qū)直入的攻擊面前暴露無(wú)遺。這時(shí)防火墻可以派上用場(chǎng),應(yīng)用防火墻發(fā)現(xiàn)及封阻應(yīng)用攻擊所采用的八項(xiàng)技術(shù)如下:
深度數(shù)據(jù)包處理
深度數(shù)據(jù)包處理有時(shí)被稱為深度數(shù)據(jù)包檢測(cè)或者語(yǔ)義檢測(cè),它就是把多個(gè)數(shù)據(jù)包關(guān)聯(lián)到一個(gè)數(shù)據(jù)流當(dāng)中,在尋找攻擊異常行為的同時(shí),保持整個(gè)數(shù)據(jù)流的狀態(tài)。深度數(shù)據(jù)包處理要求以極高的速度分析、檢測(cè)及重新組裝應(yīng)用流量,以避免給應(yīng)用帶來(lái)時(shí)延。下面每一種技術(shù)代表深度數(shù)據(jù)包處理的不同級(jí)別。
TCP/IP終止
應(yīng)用層攻擊涉及多種數(shù)據(jù)包,并且常常涉及多種請(qǐng)求,即不同的數(shù)據(jù)流。流量分析系統(tǒng)要發(fā)揮功效,就必須在用戶與應(yīng)用保持互動(dòng)的整個(gè)會(huì)話期間,能夠檢測(cè)數(shù)據(jù)包和請(qǐng)求,以尋找攻擊行為。至少,這需要能夠終止傳輸層協(xié)議,并且在整個(gè)數(shù)據(jù)流而不是僅僅在單個(gè)數(shù)據(jù)包中尋找惡意模式。
SSL終止
如今,幾乎所有的安全應(yīng)用都使用HTTPS確保通信的保密性。然而,SSL數(shù)據(jù)流采用了端到端加密,因而對(duì)被動(dòng)探測(cè)器如入侵檢測(cè)系統(tǒng)(IDS)產(chǎn)品來(lái)說(shuō)是不透明的。為了阻止惡意流量,應(yīng)用防火墻必須終止SSL,對(duì)數(shù)據(jù)流進(jìn)行解碼,以便檢查明文格式的流量。這是保護(hù)應(yīng)用流量的最起碼要求。如果你的安全策略不允許敏感信息在未加密的前提下通過(guò)網(wǎng)絡(luò)傳輸,你就需要在流量發(fā)送到Web服務(wù)器之前重新進(jìn)行加密的解決方案。
URL過(guò)濾
一旦應(yīng)用流量呈明文格式,就必須檢測(cè)HTTP請(qǐng)求的URL部分,尋找惡意攻擊的跡象,譬如可疑的統(tǒng)一代碼編碼(unicode encoding)。對(duì)URL過(guò)濾采用基于特征的方案,僅僅尋找匹配定期更新的特征、過(guò)濾掉與已知攻擊如紅色代碼和尼姆達(dá)有關(guān)的URL,這是遠(yuǎn)遠(yuǎn)不夠的。這就需要一種方案不僅能檢查RUL,還能檢查請(qǐng)求的其余部分。其實(shí),如果把應(yīng)用響應(yīng)考慮進(jìn)來(lái),可以大大提高檢測(cè)攻擊的準(zhǔn)確性。雖然URL過(guò)濾是一項(xiàng)重要的操作,可以阻止通常的腳本少年類型的攻擊,但無(wú)力抵御大部分的應(yīng)用層漏洞。
請(qǐng)求分析
全面的請(qǐng)求分析技術(shù)比單單采用URL過(guò)濾來(lái)得有效,可以防止Web服務(wù)器層的跨站腳本執(zhí)行(cross-site scripting)漏洞和其它漏洞。全面的請(qǐng)求分析使URL過(guò)濾更進(jìn)了一步:可以確保請(qǐng)求符合要求、遵守標(biāo)準(zhǔn)的HTTP規(guī)范,同時(shí)確保單個(gè)的請(qǐng)求部分在合理的大小限制范圍之內(nèi)。這項(xiàng)技術(shù)對(duì)防止緩沖器溢出攻擊非常有效。然而,請(qǐng)求分析仍是一項(xiàng)無(wú)狀態(tài)技術(shù)。它只能檢測(cè)當(dāng)前請(qǐng)求。正如我們所知道的那樣,記住以前的行為能夠獲得極有意義的分析,同時(shí)獲得更深層的保護(hù)。
用戶會(huì)話跟蹤
更先進(jìn)的下一個(gè)技術(shù)就是用戶會(huì)話跟蹤。這是應(yīng)用流量狀態(tài)檢測(cè)技術(shù)的最基本部分:跟蹤用戶會(huì)話,把單個(gè)用戶的行為關(guān)聯(lián)起來(lái)。這項(xiàng)功能通常借助于通過(guò)URL重寫(URL rewriting)來(lái)使用會(huì)話信息塊加以實(shí)現(xiàn)。只要跟蹤單個(gè)用戶的請(qǐng)求,就能夠?qū)π畔K實(shí)行極其嚴(yán)格的檢查。這樣就能有效防御會(huì)話劫持(session-hijacking)及信息塊中毒(cookie-poisoning)類型的漏洞。有效的會(huì)話跟蹤不僅能夠跟蹤應(yīng)用防火墻創(chuàng)建的信息塊,還能對(duì)應(yīng)用生成的信息塊進(jìn)行數(shù)字簽名,以保護(hù)這些信息塊不被人篡改。這需要能夠跟蹤每個(gè)請(qǐng)求的響應(yīng),并從中提取信息塊信息。
響應(yīng)模式匹配
響應(yīng)模式匹配為應(yīng)用提供了更全面的保護(hù):它不僅檢查提交至Web服務(wù)器的請(qǐng)求,還檢查Web服務(wù)器生成的響應(yīng)。它能極其有效地防止網(wǎng)站受毀損,或者更確切地說(shuō),防止已毀損網(wǎng)站被瀏覽。對(duì)響應(yīng)里面的模式進(jìn)行匹配相當(dāng)于在請(qǐng)求端對(duì)URL進(jìn)行過(guò)濾。響應(yīng)模式匹配分三個(gè)級(jí)別。防毀損工作由應(yīng)用防火墻來(lái)進(jìn)行,它對(duì)站點(diǎn)上的靜態(tài)內(nèi)容進(jìn)行數(shù)字簽名。如果發(fā)現(xiàn)內(nèi)容離開(kāi)Web服務(wù)器后出現(xiàn)了改動(dòng),防火墻就會(huì)用原始內(nèi)容取代已毀損頁(yè)面。至于對(duì)付敏感信息泄露方面,應(yīng)用防火墻會(huì)監(jiān)控響應(yīng),尋找可能表明服務(wù)器有問(wèn)題的模式,譬如一長(zhǎng)串Java異常符。如果發(fā)現(xiàn)這類模式,防火墻就會(huì)把它們從響應(yīng)當(dāng)中剔除,或者干脆封阻響應(yīng)。
采用“停走”字(‘stop and go’word)的方案會(huì)尋找必須出現(xiàn)或不得出現(xiàn)在應(yīng)用生成的響應(yīng)里面的預(yù)定義通用模式。譬如說(shuō),可以要求應(yīng)用提供的每個(gè)頁(yè)面都要有版權(quán)聲明。
行為建模
行為建模有時(shí)稱為積極的安全模型或“白名單”(white list)安全,它是唯一能夠防御最棘手的應(yīng)用漏洞——零時(shí)間漏洞的保護(hù)機(jī)制。零時(shí)間漏洞是指未寫入文檔或“還不知道”的攻擊。對(duì)付這類攻擊的唯一機(jī)制就是只允許已知是良好行為的行為,其它行為一律禁止。這項(xiàng)技術(shù)要求對(duì)應(yīng)用行為進(jìn)行建模,這反過(guò)來(lái)就要求全面分析提交至應(yīng)用的每個(gè)請(qǐng)求的每次響應(yīng),目的在于識(shí)別頁(yè)面上的行為元素,譬如表單域、按鈕和超文本鏈接。這種級(jí)別的分析可以發(fā)現(xiàn)惡意表單域及隱藏表單域操縱類型的漏洞,同時(shí)對(duì)允許用戶訪問(wèn)的URL實(shí)行極其嚴(yán)格的監(jiān)控。行為建模是唯一能夠有效對(duì)付全部16種應(yīng)用漏洞的技術(shù)。行為建模是一種很好的概念,但其功效往往受到自身嚴(yán)格性的限制。
某些情況譬如大量使用JavaScript或者應(yīng)用故意偏離行為模型都會(huì)導(dǎo)致行為建模犯錯(cuò),從而引發(fā)誤報(bào),拒絕合理用戶訪問(wèn)應(yīng)用。行為建模要發(fā)揮作用,就需要一定程度的人為干預(yù),以提高安全模型的準(zhǔn)確性。行為自動(dòng)預(yù)測(cè)又叫規(guī)則自動(dòng)生成或應(yīng)用學(xué)習(xí),嚴(yán)格說(shuō)來(lái)不是流量檢測(cè)技術(shù),而是一種元檢測(cè)(meta-inspection)技術(shù),它能夠分析流量、建立行為模型,并且借助于各種關(guān)聯(lián)技術(shù)生成應(yīng)用于行為模型的一套規(guī)則,以提高精確度。行為建模的優(yōu)點(diǎn)在于短時(shí)間學(xué)習(xí)應(yīng)用之后能夠自動(dòng)配置。保護(hù)端口80是安全人員面臨的最重大也是最重要的挑戰(zhàn)之一。所幸的是,如今已出現(xiàn)了解決這一問(wèn)題的創(chuàng)新方案,而且在不斷完善。如果在分層安全基礎(chǔ)設(shè)施里面集成了能夠封阻16類應(yīng)用漏洞的應(yīng)用防火墻,你就可以解決應(yīng)用安全這一難題。