應用層攻擊挑戰傳統防火墻
最近兩年來,攻擊者的興趣明顯從端口掃描和制造拒絕服務攻擊(DoS Attack)轉向了針對Web、E-mail甚至數據庫等主流應用的攻擊。傳統的防火墻僅僅檢查IP數據包的包頭,而忽略了內容――如果用信件來做比喻,也就是只檢查了信封而沒有檢查信紙。因此對這類應用層的攻擊無能為力。可以說,僅僅靠第三層和第四層的IP地址和協議端口過濾的防火墻產品早已走到了盡頭。
戰火燒向七層
為了對抗應用層(OSI網絡模型的第七層)的攻擊,防火墻必須具備應用層的過濾能力,一些防火墻產品已經具備了這種能力。
如果把計算機網絡比做一座建筑,傳統的包過濾防火墻就是在企業內部網絡和Internet之間的一系列并列的門。每道門都有安檢人員對到達的包裹(IP數據包)進行逐一檢查,若沒有發現數據包含有異常代碼便開門放行。攻擊者常用的伎倆就是通過端口掃描來檢查哪些門是敞開不設防的,然后加以利用。晚些時候出現的具有狀態檢測功能的防火墻可以檢查哪些數據包是來自Internet對內部網絡訪問請求的應答。也就是說,安檢人員能夠鑒別那些不請自來的包裹。
但應用層攻擊就要復雜得多,因為攻擊數據包在絕大多數情況下是合法的數據包,不同的只是內容具有攻擊性,而且因為IP數據包是分段傳輸的,其內容的判別需要將所有相關的包重組后才能準確進行。一旦這種攻擊數據包通過了防火墻,它們通常會開始有條不紊地利用目標系統的漏洞制造緩沖區溢出,獲得系統的控制權,然后以此為平臺開始尋找周圍其他系統的漏洞或者其他的蠕蟲留下的后門,進而展開攻擊。
防火墻的對策
對此,一些防火墻產品采取的應對措施是,針對每一類主流的應用, HTTP、SMTP、FTP和SQL Server數據庫訪問(基于RPC)都設置專門的過濾器,如果未來出現新的應用層威脅,還可以增加相應的過濾器。用戶可以針對每一種過濾器進行應用相關的過濾設置,例如,可以通過限制任何HTTP訪問請求的緩沖區不得超過3000個字節來防止一些蠕蟲的攻擊。在這種新的機制下,來自Internet的數據包被發送到各自的過濾器,過濾器會將數據包重組后進行內容掃描和判別。拿一封郵件來說,SMTP過濾器會等待相關的包到齊后,在轉發之前重組郵件對其內容進行掃描,與已知類型的攻擊進行比對,在確認這是正常流量后才允許通過。
經過正確配置的現代防火墻可以阻擋絕大多數已知的病毒郵件和攻擊代碼。雖然阻擋未知的病毒和攻擊要困難得多,但是經過合理的策略設置通常是有效的。正確設置策略的基礎是企業用戶對于自身業務需求的正確理解,例如,多數企業的用戶通常是沒有必要通過郵件來傳遞可執行文件和Visual Basic腳本代碼的。用戶可以通過阻斷含有這類可執行附件的郵件來對付一些未知的病毒。一旦真的需要發送這類文件,也可以設置更有針對性的策略,比如只允許IT部門的用戶發送含有可執行文件附件郵件,或者允許用戶接收除含有名為“Kournikova.jpg.vbs”的腳本附件之外的所有郵件。
安全與性能的矛盾
用戶早已習慣于把安全性和性能看成是對立的,就像在機場的安檢入口,檢查的步驟越多,等待安檢的隊伍也就越長。對于防火墻來說,性能和安全的確是一對永遠的矛盾,但是應用層過濾的功能對防火墻性能的影響并沒有多數用戶想象得那么大,一些防火墻標稱每秒鐘可處理超過1000個并發用戶,同時保持每會話(session)27Mbps的吞吐量。事實上,有些廠商通過硬件(ASIC)實現應用層的過濾引擎,能夠達到更加接近線速(可理解為以太網交換機的處理極限)的處理能力。
新的挑戰
具有應用層過濾功能的防火墻可以更有效地阻擋當前多數病毒和攻擊程序,但新的安全威脅的不斷出現又對防火墻提出了新的挑戰。攻擊的來源正在變得更加復雜,而攻擊的手段也愈加高明,最近垃圾郵件與攻擊代碼的結合就是一個典型的例證。這一方面需要防火墻設備對于應用層的內容有更好的認知和智能判別的能力,另一方面也需要防火墻更多地與其他的安全設備和應用有效配合,從而實現更加有力的防護。
新聞熱點
疑難解答