华三ASPF技术白皮书

摘自华三网站资料:
ASPF技术白皮书
1           概述
基于华为通用路由操作系统平台VRP的Quidway系列中低端路由器采用了多种网络安全技术,为企业网络提供了丰富的安全特性。基于应用层协议状态检测的包过滤防火墙(ASPF)就是华为3Com公司Quidway系列中低端路由器关键的安全特性之一。它能为企业内部网络与外部网络之间的通信提供基于应用的访问控制,保护企业内部用户和网络设备免受外部的恶意攻击,从而为企业内部网络的安全保驾护航。
1.1       网络的安全隐患
对于企业用户来说,其面临的安全威胁主要来自于未经授权的非法网络访问、传输过程中可能出现的关键信息窃取、数据完整性被破坏等几个方面。
网络安全问题的原因可分为技术因素和人为管理因素两方面。从技术方面来说,Internet是基于开放性标准的。此外,很多基于TCP/IP的应用服务都在不同程度上存在着安全缺陷。另一方面,缺乏必要的安全策略也是造成安全问题的一个重要方面。企业网络监控、审计和漏洞修补的不充分性会导致网络的非授权使用。访问控制的配置通常比较复杂,而网络管理人员的错误配置往往会给企业网络留下安全漏洞。
网络中路由器可能遭受的安全威胁主要有以下几类:
1.       IP地址欺骗
IP地址欺骗是指对IP数据包的源地址进行更改以隐藏发送方的身份。它通过利用位于可靠网络IP地址范围内的IP地址,伪装成可信任的主机访问受保护的信息资源。因为Internet中的路由操作只使用目标地址将数据包发送到它的路径上,而忽略源地址,所以黑客可能会伪装这个源地址向系统发送破坏性的数据包,而系统却不了解它来自何处。IP欺骗通常会引发拒绝服务攻击。
2.       拒绝服务(Denial of Service)
拒绝服务攻击(DoS)是网络上常见的攻击形式,也是最难阻止的攻击。与其他类型的攻击不同,它不会对网络产生永久性破坏,而是通过使网络设备崩溃或网络资源耗尽来阻止合法用户获得网络服务。
分布式 DoS (DDoS) 攻击是指黑客利用多台被入侵的主机,集中攻击一台主机系统。攻击计算机本身不一定主动发起了这个攻击,但是由于它们自身的安全漏洞,使得它们自身被黑客利用,指示它们向被攻击网络发送大量数据,从而造成网络拥塞或者设备拥塞。
由于基于HTTP的Web是无状态的,因而存在一定的危险性。例如开发Web的技术之一Applet,尽管很小,但是能够产生足够的代码,以允许未经授权的用户获得访问权或增加访问资源的权限,而无需经过用户认证。Java或JavaScript有可能被利用作为特洛伊木马或病毒,导致计算机资源被破坏或耗尽。
3.       网络侦察
网络侦察指的是对网络进行扫描以发现有效的IP地址、域名和IP协议端口等信息。网络侦察本身没有危害性,但是通过网络侦查得到的网络信息可能会帮助黑客发起恶意的攻击。典型的侦察包括扫描TCP和UDP侦听端口,以及一些其它的已知协议的侦听端口,如FTP、HTTP和SMTP等使用的端口。这种侦察会请求一个响应,通过该响应可确定出被攻击对象所开启的网络服务及地址等信息。
网络侦察攻击是无法完全防止的,因为关闭其中的某些服务可能会限制您的网络诊断功能。
1.2       企业网络安全体系结构
在企业网络的体系结构中,通常有三个区域:
1.       边界网络
边界网络通过边界路由器直接面向Internet,以基本网络通信筛选的形式提供企业网初始层面的保护。边界路由器在企业网安全中担当第一道防线,应用集成的防火墙特性限制对TCP/IP服务和应用的访问,实现网络边界安全系统。
2.       外围网络
外围网络通常称为DMZ,是企业网络与外部世界的缓冲地带。位于这一区域内的堡垒主机(Bastion Host)可向外界提供必要的应用服务,包括匿名FTP服务,WWW服务,DNS等。外围网络将企业外部用户与Web服务器或其他服务链接起来,而Web服务器将会通过内部防火墙链接到内部网络。
3.       内部网络
内部防火墙之后是被屏蔽的各个内部服务器和内部用户,重要数据因此被保护起来。
这些网络如图 1 所示。

图1 企业网络体系结构

1.3       防火墙技术
防火墙是一种用于控制两个网络之间的IP通信的机制。对于企业网络来说,它一方面阻止来自Internet的未授权或未验证的访问,另一方面允许企业内部网络的用户对Internet进行Web访问或收发E-mail等。防火墙也可以作为一个访问Internet的权限控制关口,如允许组织内的特定的人可以访问Internet。
Quidway系列中低端路由器提供的防火墙技术,主要包括包过滤技术(Packet Filter)和应用层报文过滤(ASPF)技术。包过滤技术利用访问控制列表(Access List)实现数据报文的过滤,是路由器实现防火墙的主要技术。应用层报文过滤(ASPF)是华为Quidway系列中低端路由器独有的网络安全特性,它弥补了包过滤防火墙应用中的缺陷,提供针对应用层的报文过滤,是一种智能的高级过滤技术,增强了VRP平台的防火墙功能。
2           ASPF工作原理
2.1       包过滤防火墙的缺陷
防火墙是位于两个信任程度不同的网络之间(如企业内部网络和Internet 之间)的软件或硬件设备的组合。它对两个网络之间的通信进行控制,通过强制实施统一的安全策略,防止对重要信息资源的非法存取和访问,以达到保护内部系统安全的目的。
包过滤防火墙是华为3Com公司Quidway系列中低端路由器上主要采用的防火墙技术。通过对每个IP数据包按照用户所定义的规则进行过滤,实现对用户的访问控制。通常,对于路由器需要转发的数据包,先获取包头信息,包括IP层所承载的上层协议的协议号、数据包的源地址、目的地址、源端口和目的端口等,然后和设定的规则进行比较,根据比较的结果对数据包进行转发或者丢弃。


图2 IP包头格式
包过滤防火墙的优点在于它只处理到网络层,速度较快。另外,包过滤路由器对于应用以及用户都是透明的,无须在主机上安装特定的软件。尽管包过滤技术具有以上优势,但是也有以下一些缺陷:
1.       基于IP包头的静态数据过滤
IP包中的目的地址、源地址、源端口和目标端口是唯一可以用于判断是否允许包通过的信息。这种基于静态IP包头的匹配,虽然可以允许或拒绝特定的应用层服务,但是无法理解特定服务的上下文会话。对于多通道的应用层协议,部分安全策略配置无法预知。例如文件传输协议FTP,初始连接为控制通道连接:这个连接通道用于FTP的命令和应答。控制命令中包含了用于打开数据通道连接的命令。传统的包过滤防火墙只能预知控制通道的连接,而数据通道为动态协商,预先无法知晓,因此也无法制定完善的安全策略。配置访问控制规则较复杂。
2.       包过滤防火墙的维护比较困难。
网络管理人员为了满足企业网络安全的需要以及各种Internet应用服务的需求,必须配置复杂繁琐的访问控制列表以实现对数据包实现过滤。错误的配置也有可能导致安全漏洞的产生。此外,缺少有效的工具对配置规则的正确性进行验证也是包过滤技术的缺陷。
3.       缺乏有效的日志功能
包过滤防火墙无法实现对于会话的跟踪。
4.       无法检测某些来自于应用层的攻击行为。
包过滤防火墙无法对一些来自于应用层的威胁进行防范,如Java applet,TCP SYN等。
2.2       ASPF的优点
由于包过滤防火墙在应用层报文过滤方面具有先天的不足,因而ASPF的应用增强了Quidway系列中低端路由器防火墙的性能。ASPF(Application Specific Packet Filter)是针对应用层的包过滤,即基于状态的报文过滤。ASPF是一种高级通信过滤技术,它检查应用层协议信息并且监控基于连接的应用层协议状态。对于所有连接,每一个连接状态信息都将被ASPF维护并用于动态地决定数据包是否被允许通过防火墙或丢弃。
许多应用层协议,如Telnet、SMTP等都是使用标准的知名端口地址进行通信,但是大部分多媒体应用协议(如H.323)及FTP等协议先使用约定的端口来初始化一个控制连接,然后再动态的选择端口用于数据传输。端口的选择是通信双方动态协商的,其中的某些应用可能会同时用到多个端口。为避免内部网络遭受外部的攻击,包过滤防火墙只能阻止固定端口的应用,因而存在安全隐患。ASPF能够支持一个控制连接上存在多个数据连接,监听每一个应用的每一个连接所使用的端口,打开合适的通道让会话中的数据出入防火墙,在会话结束时则关闭该通道,从而对使用动态端口的应用实现有效的访问控制。
2.3       ASPF的工作机制
ASPF检测试图通过防火墙的应用层协议会话信息,阻止不符合规则的数据报文穿过。与普通的静态包过滤防火墙相同,它也工作于TCP/IP协议栈中的IP层,并与包过滤防火墙协同工作,以实现企业内部网络的安全策略。下图所示为ASPF在协议栈中所处的位置与设计框架。


图3 ASPF在协议栈中的位置
2.3.1    ASPF主要技术
Quidway系列中低端路由器上的应用层过滤防火墙ASPF采用了近几年才开始应用的状态检测技术。传统的包过滤防火墙只是简单通过检测IP包头的相关内容决定数据流的通过还是拒绝,而状态检测技术采用的是一种基于会话的状态检测机制,将属于同一会话的所有包作为一个整体的数据流看待,构成一个会话状态表。通过会话状态表与临时访问控制表的共同配合,对流经路由器特定接口的报文的各个连接状态因素加以识别判定。ASPF主要采用了会话状态表和临时访问控制表实现对传输报文的动态过滤。
         会话状态表
一个会话可以被认为是一个TCP连接。会话状态表维护了一次会话中某一时刻会话所处的状态,用于匹配后续的发送报文,并检测会话状态的转换是否正确。会话状态表在检测到第一个外发报文时创建,即通过第一个SYN包建立。
会话状态表中的记录的信息既包括当前会话的通信信息,也包括是本次会话之前的通信信息。因此,与传统包过滤防火墙的静态过滤相比,ASPF考虑到会话的上下文信息,具有更好的灵活性和安全性。
         临时访问控制表
临时访问控制表不同于包过滤防火墙的访问控制列表(ACL)。它独立于访问控制列表,在创建会话状态表项的时候同时创建,会话结束后删除。其功能相当于一个扩展的访问控制规则的permit项,用于匹配一个会话中的所有应答报文。
2.3.2    应用层协议检测的基本原理


图4 应用层协议检测的基本原理
如上图所示,为了保护企业内部网络,一般情况下需要在路由器上配置静态访问控制列表,以便允许内部网的主机的访问外部网络,同时拒绝外部网络的主机访问内部网络。但静态访问控制列表会将用户发起连接后返回的报文过滤掉,导致连接无法正常建立。当在路由器上配置了应用层协议检测后,ASPF可以检测每一个应用层的会话,并创建一个状态表和一个临时访问控制表(TACL)。临时访问控制表主要用于匹配一个会话中的所有返回的报文,可以为某一应用返回的报文在防火墙的外部接口上建立了一个临时的返回通道。
以FTP检测为例说明多通道应用层协议检测的过程。


图5 FTP检测过程示意图
FTP连接的建立过程如下:
假设FTP Client以1333端口向FTP Server的21端口发起FTP控制通道的连接,通过协商决定由Server端的20端口向Client端的1600端口发起数据通道的连接,数据传输超时或结束后连接删除。
FTP检测在FTP连接建立到关闭过程中的处理如下:
1.       检查从出接口上向外发送的IP报文,确认为基于TCP的FTP报文。
2.       检查端口号确认连接为控制连接,建立返回报文的临时访问控制表和会话状态表。
3.       检查FTP控制连接报文,解析FTP指令,根据指令更新状态表,如果包含数据通道建立指令,则创建数据连接的临时访问控制表;对于数据连接,不进行状态检测。
4.       对于返回报文,根据协议类型做相应匹配检查,检查将根据相应协议的状态表和临时访问控制表决定报文是否允许通过。
5.       FTP连接删除时,会话状态表及临时访问控制表随之删除。
单通道应用层协议(例如SMTP,HTTP)的检测过程比较简单,当发起连接时建立会话状态表和临时访问控制表,连接删除时系统自动删除。
2.3.3    传输层协议检测基本原理
传输层协议检测是指通用TCP/UDP检测。通用TCP和UDP检测与应用层协议检测不同,是对报文的传输层信息进行的检测,如源、目的地址及端口号等。需要注意的是,应用层协议检测优先于传输层协议检测。通用TCP/UDP检测要求流入接口的报文与之前流出接口的报文完全匹配,即源、目的地址及端口号恰好对应,否则返回的报文将被丢弃。因此对于FTP,H.323这样的多通道应用层协议,在不配置应用层检测而直接配置TCP检测的情况下会导致数据通道无法建立。
2.4       ASPF的性能与应用范围
ASPF通过散列索引实现会话状态表和临时访问控制表的高速存取,支持最大的并发会话数目为50000个。但是由于ASPF需要额外的资源对会话状态信息以及访问控制信息进行存储,因而设备启用ASPF后,可能会带来部分性能的下降。
从安全策略的应用上来说,ASPF应用于边界网络,负责企业内部网络、局域网络对外接入或者互联时的安全策略实施。在骨干网络应用中,ASPF是无法实现的,因为无法确定IP报文的路由路径,发起报文可能从路由器的某个接口上转发,应答报文则可能从此路由器的其他接口被转发,或者从其它路由器转发,因此ASPF无法维护某个端到端连接(例如TCP连接)的上下文状态信息。
ASPF对于上下文状态的保存和维护都是基于接口的,因此在实际应用中,必须保证报文入口的一致性,即必须保证连接发起报文的返回基于同一策略配置的接口。
分布式体系结构的设备通常属于中高端设备,在应用ASPF时,需考虑只能在边缘用户的业务接入网络中作为接入层路由器使用。
3           ASPF的安全特性
Quidway系列中低端路由器上提供的ASPF防火墙安全特性包括:
         支持应用层协议检测,包括:FTP、HTTP、SMTP、RTSP、H.323(Q.931,H.245, RTP/RTCP)检测;
         支持通用的TCP/UDP协议检测;
         支持会话状态动态管理
         支持IP分片报文检测;
         支持端口到应用的映射;
         支持Java阻塞;
         支持会话日志与调试跟踪。
3.1       应用层协议检测
ASPF支持多种应用层协议的检测。
         SMTP检测
SMTP是简单邮件传输协议。ASPF检测基于TCP/IP传输的SMTP应用,包括对SMTP协议状态机转换的检测。错误的状态转换报文将被阻塞和丢弃。
         HTTP检测
HTTP是超文本传输协议。ASPF检测基于TCP/IP传输的HTTP应用。HTTP是无状态协议,因此ASPF检测该应用协议的状态完全等同于通用TCP检测。对于HTTP协议,ASPF提供对来自特定网段或主机的基于HTTP传输的Java applet的检测和过滤。
         FTP检测
FTP是文件传输协议。ASPF检测基于TCP/IP传输的FTP应用,包括对FTP控制通道的状态机转换的检测,错误的状态转换报文将被阻塞和丢弃。支持对PASV和PORT两种方式数据通道协商的检测,并根据协商参数动态创建数据通道的会话状态表和临时访问控制表。
         RTSP检测
RTSP是实时流传输协议。ASPF检测基于TCP/IP传输的RTSP应用,包括对RTSP控制通道中媒体传输通道(基于UDP的RTP/RTCP)参数协商的检测,并动态创建媒体通道的会话状态表和临时访问控制表。
         H.323检测
H.323是ITU-T制定的分组网络上的多媒体传输协议。ASPF检测基于TCP/IP传输的H.323应用,包括对Q.931呼叫信令的检测,用于检测和维护动态创建的H.245媒体控制通道;ASPF检测H.245媒体控制通道中媒体传输通道(基于UDP的RTP/RTCP)参数协商的检测,并动态创建媒体通道的状态表和访问控制表。
3.2       通用TCP和UDP协议检测
ASPF检测TCP会话发起和结束的状态转换过程,包括会话发起的3次握手和关闭的4次握手。根据这些状态来创建、更新和删除会话状态表和临时访问控制表。当检测到TCP会话发起方第一个SYN报文的时候,ASPF开始维护此会话相关状态,并创建一个临时访问控制允许表项,以允许该会话所有相关的报文能够通过防火墙,而其它的非相关报文则被阻塞和丢弃。TCP检测是其它基于TCP的应用协议检测的基础。
UDP协议没有连接和状态的概念。当ASPF检测到UDP会话发起方的第一个数据报时,ASPF开始维护此会话相关状态,并创建一个临时的访问控制允许表项。ASPF认为发起方收到第一个接收方回送的UDP数据流的时候,此会话建立。其它与此会话无关的报文则被阻塞和丢弃。UDP检测是其它基于UDP的应用协议检测的基础。
3.3       会话状态动态管理
ASPF支持通过配置会话超时时间实现会话状态信息的管理。用户可以通过对TCP的SYN状态等待超时值、FIN状态等待超时值,TCP和UDP会话表项空闲状态超时值以及应用层协议空闲状态超时值进行配置,达到根据会话时间对会话状态进行管理的目的。
此外,在应用层协议检测部分中也提到,对于存在状态机转换的应用层协议,ASPF也支持根据状态机转换的正确性与否管理会话状态信息的目的。ASPF可以实现会话状态的自动创建,更新与删除。
3.4       IP分片报文检测
如果IP数据包的内容大于MTU的大小,数据包将会被分片,形成多个更小的IP数据包。在所有分片后的IP数据包中只有第一个分片包含了完整的IP包信息,其它分片只有IP地址信息。ASPF根据TCP的分片标识把接收到的报文区分为非分片报文、首片分片报文以及非首片分片报文三类。
ASPF记录所有被分片报文的状态信息以提供对分片报文正常检测和过滤的支持。对于首片分片,ASPF根据报文的IP层信息及IP层以外的信息创建会话状态表与临时访问控制表。当后续分片到达时,ASPF使用保存的会话状态信息对临时访问控制表中的每一个匹配条件进行精确匹配。
3.5       端口到应用的映射
应用层协议使用通用的端口号进行通信。端口映射(PAM,Port to Application Mapping)允许用户对不同的应用定义一组新的端口号,用于应用使用非通用端口时的情况。例如应用在81端口提供HTTP,就可以通过端口映射设定,从而知道81端口的数据是HTTP报文。端口映射提供了一些机制来维护和使用用户定义的端口配置信息。
端口到应用的映射提供了对应用协议的非标准端口应用的支持。PAM支持两类映射机制:通用端口映射和基于基本访问控制列表(ACL)的主机端口映射。
         通用端口映射
通用端口映射是将用户自定义端口号和应用层协议建立映射关系,例如:将8080端口映射为HTTP应用时,所有目标端口是8080的TCP报文都被认为是HTTP报文,这样就可以通过端口号来识别应用层协议。通用端口映射可以指定某一个端口和一个应用关联,也可以支持多个端口到一个应用的映射。
         主机端口映射
主机端口映射指定某一主机范围的某一端口和一个应用关联。主机范围可以通过标准ACL来指定。例如:将去往10.110.0.0网段的主机使用8080端口的TCP报文映射为HTTP报文。端口到应用的主机映射支持如下两种情况:
1)       一个或多个端口到一个应用的主机映射方式;
2)       如果主机范围不同,也可设置一个端口到多个应用的关联。
3.6       Java阻塞
由于恶意applet会对用户的计算机系统资源的造成破坏,因而需要限制未经用户允许的Java applet下载至用户的网络中。Java 阻塞(Java Blocking)可实现对来自于不信任站点Java applet的过滤。
通过标准的访问控制列表(ACL)来标识区分可信任的与不可信的主机或网段。当路由器防火墙配置了HTTP检测和Java阻断时,受保护网络内的用户如果试图通过Web页面访问不可信站点,则Web页面中为获取包含Java applet程序而发送的请求指令将会被ASPF阻断过滤。需要注意的是,ASPF的Java 阻断功能现在只能实现对封装成.Class的Java applet进行阻断,而对于以其它方式封装的applet不能实现过滤。
3.7       会话日志与调试跟踪
与包过滤防火墙相比,ASPF提供了增强的会话日志功能,可以对所有的连接进行记录,包括:记录连接的时间、源地址、目的地址、使用的端口和传输的字节数。此外,ASPF可以针对不同的应用协议与参数实现对会话状态的跟踪与调试,为系统故障诊断提供了丰富的信息。
4           典型组网方案
4.1       组网需求
在防火墙上配置一ASPF策略,检测通过防火墙的FTP和HTTP流量。要求:如果该报文是内部网络用户发起的FTP和HTTP连接的返回报文,则允许其通过防火墙进入内部网络,其他报文被禁止;并且,此ASPF策略能够过滤掉来自服务器2.2.2.11的HTTP报文中的Java Applets。本例可以应用在本地用户需要访问远程网络服务的情况下。
4.2       组网图


图6  ASPF配置案例组网图
4.3       配置步骤
         选择应用ASPF接口,确定内部接口和外部接口。
内部接口是指通信会话发起方所在的一侧的设备接口,外部接口则是指不能发起会话的一侧的设备接口,在这一侧发起的会话将被阻止。内部接口和外部接口是相对的,取决于实际的应用环境。
         定义检测规则和全局参数值。
检测规则指定了ASPF检测的TCP/UDP流量的种类,检测规则可以指定所期望的应用层协议或者一般的TCP和UDP检测,对于一个检测规则,可以同时定义对多个应用协议的检测。全局参数值包括应用协议以及TCP、UDP超时设定等。
         在选定的接口上应用检测规则。
         配置包过滤防火墙协同工作。
配置方案如下:
# 在ASPF路由器上配置允许防火墙。
[Quidway] firewall enable
# 配置访问控制列表3111,以拒绝所有TCP和UDP流量进入内部网络,ASPF会为允许通过的流量创建临时的访问控制列表。
[Quidway] acl number 3111
[Quidway-acl-adv-3111] rule deny
# 创建ASPF策略,策略号为1,该策略检测应用层的两个协议:FTP和HTTP协议,并定义没有任何行为的情况下,这两个协议的超时时间为3000秒。
[Quidway] aspf-policy 1
[Quidway-aspf-policy-1] detect ftp aging-time 3000
[Quidway-aspf-policy-1] detect http aging-time 3000
[Quidway-aspf-policy-1] detect http java-list 2001
# 配置访问控制列表2001,以过滤来自站点2.2.2.11的Java Applets。
[Quidway] acl number 2001
[Quidway-acl-basic-2001] rule deny source 2.2.2.11 0
[Quidway-acl-basic-2001] rule permit any
# 在接口上应用ASPF策略
[Quidway-Serial1/0/0] firewall aspf 1 outbound
# 在接口上应用访问控制列表3111
[Quidway-Serial1/0/0] firewall packet-filter 3111 inbound
5           结论
华为3Com公司Quidway系列中低端路由器采用ASPF防火墙技术,进一步增强了系统安全特性与灵活性。同时,ASPF也将不断丰富其所支持的应用,为用户提供更多更方便的安全解决方案。

你可能感兴趣的:(网络)