ASPF技術白皮書
關鍵詞:ASPF,包過濾
摘 要:ASPF是一種應用層狀態檢測技術,它通過與NAT和ALG等技術的組合應用,實現對應用層協議狀態的處理和檢測。本文詳細介紹了ASPF技術的工作機製以及典型組網應用。
縮略語:
縮略語 | 英文全名 | 中文解釋 |
ACL | Access Control List | 訪問控製列表 |
ALG | Application Level Gateway | 應用層網關 |
ASPF | Application Specific Packet Filter | 基於應用層包過濾 |
DMZ | Demilitarized Zone | 非軍事區 |
FTP | File Transfer Protocol | 文件傳輸協議 |
HTTP | Hypertext Transfer Protocol | 超文本傳輸協議 |
ICMP | Internet Control Message Protocol | Internet控製報文協議 |
ILS | Internet Locator Server | Internet定位服務 |
NBT | Network Basic Input/Output System | 網絡基本輸入/輸出係統 |
NAT | Network Address Translation | 網絡地址轉換 |
PAM | Port to Application Mapping | 端口到應用的映射 |
PPTP | Point-to-Point Tunneling Protocol | 點到點隧道協議 |
RTSP | Real Time Streaming Protocol | 實時流協議 |
SIP | Session Initiation Protocol | 會話發起協議 |
SQLNET | - | 一種Oracle數據庫語言 |
目 錄
隨著計算機技術和網絡技術的普及,網絡安全問題也越來越得到關注。防火牆作為一種控製兩個網絡之間IP通信的安全機製,已成為網絡安全部署的首要選擇。防火牆的目的就是在信任網絡(區域)和非信任網絡(區域)之間建立一道屏障,並實施相應的安全策略。應該說,在網絡中應用防火牆是一種非常有效的網絡安全手段。
通常,防火牆的實現技術分為兩類:包過濾技術和應用層報文過濾技術。
包過濾技術的核心是定義ACL規則來過濾IP數據包。對於需要轉發的數據包,包過濾防火牆首先獲取其包頭信息(包括IP層所承載的上層協議的協議號、數據包的源地址、目的地址、源端口和目的端口等),然後與用戶設定的ACL規則進行比較,根據比較的結果對數據包進行處理(允許通過或者丟棄)。
包過濾技術的優點在於它隻進行網絡層的過濾,處理速度較快,尤其是在流量中等、配置的ACL規模適中的情況下對設備的性能幾乎沒有影響。而且,包過濾技術的實現對於上層應用以及用戶來講都是透明的,無須在用戶主機上安裝特定的軟件。盡管包過濾技術具有以上優勢,但其卻具有明顯的弊端,主要表現在以下幾個方麵:
(1) 基於IP包頭的靜態數據過濾
通常,IP數據包中的目的地址、源地址、源端口和目標端口被用來判斷是否允許數據包通過。這種基於IP包頭的靜態匹配,雖然可以允許或拒絕特定的應用層服務,但是無法理解特定服務的上下文會話。例如,對於多通道的應用層協議,由於傳統的包過濾防火牆隻能知曉控製通道的連接信息,而無法預知後續動態協商的數據通道信息,因此就無法對其製定完善的安全過濾策略。
(2) 無法檢測來自於應用層的攻擊行為
由於包過濾防火牆僅對網絡層進行檢查和過濾,不對報文的應用層內容進行解析和檢測,因此無法對一些來自於應用層的威脅進行防範,例如無法防範來自不可信網站的Java applet或Active X插件對內部主機的破壞。
(3) 維護比較困難
網絡管理人員為了滿足企業網絡安全的需要以及各種Internet應用服務的需求,必須配置複雜繁瑣的ACL以實現對數據包的過濾,一旦ACL的配置出現錯誤,將會導致安全漏洞的產生。而且,由於缺少有效的工具對配置規則的正確性進行驗證,也會增加維護的難度。
(4) 缺乏有效的日誌功能
包過濾防火牆僅對靜態的報文特征信息進行過濾和輸出日誌記錄,不能對整個應用連接輸出日誌記錄,因此無法實現對於應用連接的跟蹤。
由於包過濾防火牆在應用層報文過濾方麵具有以上先天的不足,因此提出了應用層報文過濾的概念――ASPF。
ASPF是針對應用層的報文過濾,即基於狀態的報文過濾。它具有以下優點:
l 支持傳輸層協議檢測(通用TCP/UDP檢測)和ICMP、RAWIP協議檢測。
l 支持對應用層協議的解析和連接狀態的檢測,這樣每一個應用連接的狀態信息都將被ASPF維護並用於動態地決定數據包是否被允許通過防火牆或丟棄。
l 支持PAM(Port to Application Map,應用協議端口映射),允許用戶自定義應用層協議使用非通用端口。
l 可以支持Java阻斷和ActiveX阻斷功能,分別用於實現對來自於不信任站點的Java applet和ActiveX的過濾。
l 支持ICMP差錯報文檢測,可以根據ICMP差錯報文中攜帶的連接信息,決定是否丟棄該ICMP報文。
l 支持TCP連接首包檢測,通過檢測TCP連接的首報文是否為SYN報文,決定是否丟棄該報文。
l 提供了增強的會話日誌和調試跟蹤功能,可以對所有的連接進行記錄,可以針對不同的應用協議實現對連接狀態的跟蹤與調試。
可見,ASPF技術不僅彌補了包過濾防火牆應用中的缺陷,提供針對應用層的報文過濾,而且還具有多種增強的安全特性,是一種智能的高級過濾技術。
ASPF不僅能夠對IP層的數據包根據ACL規則來進行過濾,還能對傳輸層、應用層的報文進行檢測。ASPF在TCP/IP協議棧中所處的位置如下圖所示。
圖1 ASPF在協議棧中的位置
ASPF支持的協議檢測包括:傳輸層協議檢測和ICMP、RAWIP協議檢測。ASPF的傳輸層協議檢測通常指通用TCP/UDP檢測。通用TCP/UDP檢測是對報文的傳輸層信息(如報文的源地址、目的地址、端口號、傳輸層狀態等)進行的檢測。下文將對ASPF的傳輸層協議檢測原理做詳細介紹。
TCP檢測是指,ASPF檢測TCP連接發起和結束的狀態轉換過程,包括連接發起的3次握手狀態和連接關閉的4次握手狀態,然後根據這些狀態來創建、更新和刪除設備上的連接狀態表。TCP檢測是其它基於TCP的應用協議檢測的基礎。
TCP檢測的具體過程為,當ASPF檢測到TCP連接發起方的第一個SYN報文時,開始建立該連接的一個連接狀態表,用於記錄並維護此連接的狀態,以允許後續該連接的相關報文能夠通過防火牆,而其它的非相關報文則被阻斷和丟棄。
圖2 ASPF的TCP狀態檢測
如圖2所示,ASPF對Host A向Host B發起的TCP連接進行狀態檢測,對於建立連接的TCP的3次握手報文,允許其正常通過,並建立TCP連接。在該過程中,對於來自其它主機的TCP報文,或者來自Host B的不符合正確狀態的報文,則被防火牆丟棄。
UDP協議沒有狀態的概念,ASPF的UDP檢測是指,針對UDP連接的地址和端口進行的檢測。UDP檢測是其它基於UDP的應用協議檢測的基礎。
UDP檢測的具體過程為,當ASPF檢測到UDP連接發起方的第一個數據報時,ASPF開始維護此連接的信息。當ASPF收到接收方回送的UDP數據報時,此連接才能建立,其它與此連接無關的報文則被阻斷和丟棄。
圖3 ASPF對UDP的連接檢測
如圖3所示,ASPF對UDP報文的地址和端口進行檢測,在UDP連接建立過程中,來自其它地址或端口的UDP報文將被防火牆丟棄。
基於應用的狀態檢測技術是一種基於應用連接的報文狀態檢測機製。ASPF通過創建連接狀態表來維護一個連接某一時刻所處的狀態信息,並依據該連接的當前狀態來匹配後續的報文。目前,ASPF支持進行狀態檢測的應用協議包括FTP、H.323、ILS、NBT、PPTP、RTSP、SIP和SQLNET。
除了可以對應用協議的狀態進行檢測外,ASPF還支持對應用連接協商的數據通道進行解析和記錄,用於匹配後續數據通道的報文。比如,部分多媒體應用協議(如H.323)和FTP協議會先使用約定的端口來初始化一個控製連接,然後再動態的選擇用於數據傳輸的端口。包過濾防火牆無法檢測到動態端口上進行的連接,而ASPF則能夠解析並記錄每一個應用的每一個連接所使用的端口,並建立動態防火牆過濾規則讓應用連接的數據通過,在數據連接結束時則刪除該動態過濾規則,從而對使用動態端口的應用連接實現有效的訪問控製。
下麵以FTP協議為例,說明ASFP如何進行應用層的狀態檢測以及多通道的報文解析和檢測:
圖4 ASPF對應用層進行狀態檢測
如圖4所示,ASPF在Host登錄FTP server的過程中記錄並維護該應用的連接狀態。在FTP應用的TCP連接建立後,隻允許Host向FTP server發送用戶名。在發送用戶名之後,隻允許Host向FTP server發送密碼。FTP連接過程中所有不符合FTP協議交互過程的報文都被ASPF拒絕,防止外部惡意用戶對服務器資源的占用以及攻擊。
圖5 ASPF進行動態通道的檢測
如圖5所示,ASPF在Host登錄FTP server的過程中記錄並維護該應用的連接信息。當Host向FTP server發送PORT報文協商數據通道後,ASPF記錄PORT報文中數據通道的信息,建立動態過濾規則,允許雙方進行數據通道的建立和數據傳輸,同時拒絕其它不屬於該數據通道的報文通過,並在數據通道傳輸結束後,刪除該動態過濾規則。
除了上述通用TCP/UDP檢測和基於應用的狀態檢測功能外,ASPF還支持一些增強性的安全特性。
通常情況下,應用層協議使用通用的端口號進行通信,而端口到應用的映射(PAM)允許用戶為不同的應用協議定義一組新的端口號。用戶可以通過配置端口到應用的映射,建立應用層協議和應用到該協議上的自定義端口之間的映射關係。PAM獨立於ASPF,ASPF支持PAM即表示可以對這些自定義端口對應的應用連接進行檢測。
PAM提供了對應用層協議的非標準端口應用的支持,包括兩類映射機製:通用端口映射和基於基本訪問控製列表的主機端口映射。
通用端口映射是將用戶自定義端口號和應用層協議建立映射關係,例如:將8080端口映射為HTTP應用時,所有目的端口是8080的TCP報文都被認為是HTTP報文,這樣就可以通過端口號來識別應用層協議。通用端口映射不僅可以支持一個端口與一個應用的映射,也可以支持多個端口到一個應用的映射。
主機端口映射是將某一主機範圍的某一端口和一個應用層協議建立映射關係。主機範圍可以通過標準ACL來指定。例如:將目的地址為10.110.0.0/24網段的、使用8080端口的TCP報文映射為HTTP報文。
主機端口映射支持如下兩種映射方式:
l 同一個主機範圍內,一個或多個端口到一個應用的主機映射方式;
l 不同主機範圍內,一個端口到多個應用的映射。
在用戶訪問網頁的過程中,若攜帶惡意代碼的Java applet或者ActiveX插件被客戶端下載到本地執行,則可能會對用戶的計算機係統資源造成破壞,因而需要限製未經用戶允許的Java applet和ActiveX插件下載到用戶的網絡中。Java阻斷和ActiveX阻斷功能分別用於實現對來自於不信任站點的Java applet和ActiveX的過濾。
Java阻斷功能是通過配置ACL來標識可信任的與不可信的主機或網段。當防火牆配置了支持Java阻斷功能的HTTP協議檢測時,受保護網絡內的用戶如果試圖通過Web頁麵訪問不可信站點,則Web頁麵中為獲取包含Java applet程序而發送的請求指令將會被ASPF阻斷。
ActiveX阻斷功能啟動後,所有對Web頁麵中ActiveX插件的請求將被過濾掉。如果用戶仍然希望能夠獲取部分Web頁麵的ActiveX插件,必須配置ACL規則來允許用戶獲取該Web頁麵的ActiveX插件。
包過濾防火牆無法識別來自網絡中偽造的ICMP差錯報文,從而無法避免ICMP的惡意攻擊。由於正常ICMP差錯報文中均攜帶有本報文對應連接的相關信息,ASPF可根據這些信息匹配到相應的連接。如果匹配失敗,就可以根據當前配置決定是否丟棄該ICMP報文。
包過濾防火牆對於TCP連接均要求其首報文為SYN報文,非SYN報文的TCP首包將被丟棄。在這種處理方式下,當防火牆設備首次加入網絡時,網絡中原有TCP連接的非首包在經過新加入的防火牆設備時均被丟棄,這會中斷已有的連接。ASPF可實現根據當前配置決定對TCP首包非SYN報文是否丟棄。
與包過濾防火牆相比,ASPF提供了增強的會話日誌功能,可以對所有的連接進行記錄,包括:連接的時間、源地址、目的地址、使用的端口和傳輸的字節數。此外,通過調試和日誌信息,ASPF可以針對不同的應用協議實現對連接狀態的跟蹤與調試,為係統故障診斷提供了豐富的信息。
傳統防火牆的策略配置通常都是圍繞報文入接口、出接口進行的。隨著防火牆的不斷發展,它已經不再是僅連接外網和內網,而是可以連接內網/外網/DMZ多個網絡區域。一台高端防火牆通常能夠提供十個以上的物理接口,同時連接多個邏輯網段。在這種組網環境中,傳統基於接口的策略配置方式需要為每一個接口配置安全策略,給網絡管理員帶來了極大的負擔,安全策略的維護工作量成倍增加,從而也增加了因為配置引入安全風險的概率。
和傳統防火牆基於接口的策略配置方式不同,H3C防火牆的ASPF可以支持通過安全域來配置安全策略,即支持域間的訪問控製策略。安全域是一個虛擬的概念,通常將擁有相同安全策略的接口劃分在同一個安全域中,然後對各域進行安全策略的配置和安全管理。
如圖6所示,內部網絡受保護的主機屬於可信任的Trust域,對外提供FTP等服務的服務器屬於DMZ域,外部公網屬於不可信的Untrust域。
l 通過在Trust域和Untrust域之間配置ASPF策略,對Trust域到Untrust域的所有連接進行傳輸層協議以及應用層協議狀態的檢測,從而實現域間的訪問控製以及應用狀態監控。
l 通過在DMZ域和Untrust域之間配置ASPF策略,對DMZ域和Untrust域之間的連接進行狀態檢測,保護內部服務器不受外部網絡的攻擊。
域間ASPF的策略能夠通過Web頁麵進行配置,可實現圖形化的安全配置管理,簡單易用。
圖7 ASPF典型組網應用圖
如圖7所示,私網側某公司通過啟用了ASPF功能的防火牆設備連接到Internet,公司內部對外提供FTP服務和Web服務。通過在防火牆上配置ASPF策略,檢測公司內部主機通過防火牆的應用流量。如果報文是內部網絡用戶主動發起連接的返回報文,則允許其通過防火牆進入內部網絡,其它外部未知網絡流量將被拒絕;如果該報文是外部網絡用戶主動訪問內部服務器的請求報文,則允許其通過防火牆。
另外,在本地用戶需要訪問遠程網絡服務的情況下,還可以通過在防火牆上配置Java阻斷功能來過濾掉來自外部Web服務器的HTTP報文中的Java Applets,達到保護企業內部網絡的目的。
Copyright ©2009 杭州華三通信技術有限公司 版權所有,保留一切權利。
非經本公司書麵許可,任何單位和個人不得擅自摘抄、複製本文檔內容的部分或全部,並不得以任何形式傳播。
本文檔中的信息可能變動,恕不另行通知。