20世纪90年代,随着互联网的普及,出现了路由器访问控制列表无法抵御的攻击和非法访问等一系列威胁,因此出现了针对这些威胁的防范策略需求。1992年OECD组织发布了“信息系统安全指导书",其中定义了为构建安全网络体系而需要遵循的CIA基本理念。CIA是机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)三个英文单词的首字母组合,这三个方面的主要威胁及其对策如下:
防火墙硬件作为防范装置能够同时实现CIA中3个条目的相应对策。在20世纪90年代中期,普通企业一般都会在网关(LAN与互联网的边界)中设置防火墙。
防火墙这个装置原本用于防范外部网络,也就是拥有多个不特定用户的公共网络对内部网络(企业的Intranet)进行的DoS攻击或不法访问(Hacking,黑客行为),但现在也开始需要防范从内部网络向互联网泄露信息或将内部网络作为攻击跳板等行为。
现在的防火墙是作为专用设备出现在网络中的,但最初的防火墙则出现在1985年左右,采用分组过滤技术由思科公司的IOS软件实现,是路由器的一个功能。
不久之后,DEC公司和AT&T的贝尔实验室开始了防火墙的相关研究工作。当时DEC公司的防火墙装置是将配有两个接口的计算机同外部网络(互联网)和内部网络(Intranet)进行连接,内部网络用户只有登录该计算机(网关)才能完成对外部互联网的访问。而当时AT&T贝尔实验室的防火墙装置则是属于第二代防火墙技术的电路层(Circuit Level)防火墙。该装置使用了配有两个接口的、DEC公司的VAX计算机,内部网络用户必须通过该计算机的电路中继,才能完成对互联网的访问。
随后,从1988年到1990年,DEC公司的防火墙装置不仅需要用户登录,还添加了限制非法通信的功能(称为screend)。当时作为限制对象的网络服务有USENET新闻、FTP、Telnet、邮件等。在这之后,业内又逐步转向开发无需用户登录,单纯对网络服务进行控制的防火墙产品。该类型防火墙属于第三代防火墙,即应用层防火墙(也称为代理防火墙)。另外,这一时期的文献中也记录了一些类似于"确认连接建立"“允许输入响应”“在IP层面保持状态”等功能,这些功能在现在的状态防火墙(stateful firewall)中都保留了下来。
DEC公司的防火墙原本常用于大学或科研机构,但在1991年,DEC公司开始面向企业销售名为DECSEAL(Screening External Access Link)的防火墙产品。
第四代防火墙即分组过滤防火墙的早期装置——Visas的研发工作开始于1992年。Visas也成为1994年由Check Point Software Technologies公司开发的商用防火墙产品Firewall-1的原型。
1996年,Global互联网Software Group公司开始研发第五代防火墙,即基于内核代理架构(kernelproxy architecture)的防火墙。第二年,思科公司发售了首个基于内核代理技术的防火墙产品CiscoCentri Firewall。Cisco Centri Firewall是在Windows NT上运行的软件,其中的诸多技术被后来思科公司的防火墙设备PIX Firewall继承(Cisco Centri Firewall在1998年停止销售)。到了2000年左右,随着宽带网络的普及,越来越多的企业开始使用VPN。
2004年,UTM(Unified Threat Management,统一威胁管理)产品发布,是一款将IDP/IPS(DeepInspection,深度检测)、反病毒、反垃圾邮件(anti-spam)、URL过滤等功能集成在一起的防火墙设备产品。UTM产品包括Juniper Networks公司的SSG系列和ISG系列、Fortinet公司的FortiGate系列、CheckPoint公司的UTM-1系列以及思科公司的ASA系列等。
2007年,Palo Alto Networks公司发布了新一代防火墙(NGFW,Next Generation Firewall),该防火墙不再基于端口而是基于应用程序来执行相关的安全策略。新一代防火墙同样配备类似UTM的基于内容安全的功能,协同活动目录(Active Directory)或Web认证等完成用户识别,从而执行并非基于IP地址,而是基于用户名、群组名的安全策略。
个人防火墙运行于个人计算机上,用于监控个人计算机与外部网络之间的通信信息在Windows操作系统中集成了Windows防火墙。一般拥有杀毒软件产品的厂商会以综合安全软件套件的个人防火墙
在计算机网络的网关中设置类似防火墙设备的功能,从而对网络中通信流量进行策略控制,这种类型的防火墙即为网关型防火墙。
网关型防火墙分为两类,一类是在Windows、Linux等通用操作系统上安装并运行FireWall-1软件的软件型网关防火墙,一类是使用专用设备的硬件型网关防火墙。
个人防火墙主要监控所有到达个人计算机的通信流量,而网关型防火墙则需要监控来自多数不特定终端设备的通信流量,并在它们通过网关时实施策略控制。
硬件型防火墙是指通过硬件设备实现的防火墙,外形同路由器形状类似,但网络接口类型一般只支持以太网
防火墙在网络边界判断允许进行的通信和不被允许的通信,作为其判断依据的技术类型按下表顺序逐步演进
代理服务器是应用网关型防火墙的一种。
在Linux所使用的代理服务器中,有一款叫做Squid的免费软件.代理服务器的硬件设备有Blue Coat Systems公司开发的SG系列。
另外,还有一些应用了代理服务器功能的设备产品兼顾了网关型防毒功能和URL过滤功能等。
例如,HTTP代理对应的网关在从用户(客户端)处收到HTTP通信请求后,自身将代替客户端向HTTP服务器发送HTTP通信请求。从客户端的角度来看,网关即其通信终端。由此,在客户端与网关,网关与HTTP服务器之间分别生成两个会话如果像这样网关成为客户端的代理,由代理和真正的服务器之间进行通信的话,就会实现以下情况。
分组过滤型的防火墙以所有使用IP或TCP/UDP的通信为对象,判断是否允许通信。而应用网关型的防火墙仅以通过网关的应用程序为对象,具体而言就是将FTP、HTTP、Telnet、DNS等作为处理对象的应用程序来进行判断。
与在传输层进行数据检查的分组过滤型不同,应用网关型防火墙在应用层进行数据检查,因此处理速度相对较慢。
防火墙功能设备网络接口模式的种类
接口模式 | 说明 |
---|---|
L3 模式 | 也称为NAT模式,是与路由器接口一样拥有IP地址的接口。在进行路由选择、NAT以及连接IPSec- VPN或SSL-VPN时,必须使用L3模式的接口可以通过网络管理人员输入静态配置IP地址,也可以通过PPPoE、DHCP客户端动态分配来获取接口的IP地址。在L3模式下进行路由时,需要使用虚拟路由器 |
L2模式 | 也称为透传模式或者透明模式(L2透明模式),是与交换机接口一样拥有同样MAC地址、可进行桥接的接口。进行IP地址分配时需要使用VLAN |
L1模式 | 也称为虚拟线缆模式。把两对网络接口组成一组,流量在其中一方的接口上输入并在另一块接口处输出。该模式下无法进行路由和桥接 |
TAP模式 | 与交换机镜像端口(SPAN端口)相连接的模式。通过对交换机转发的数据帧进行复制并收集,可以将通信内容可视化并检测恶意软件。由于不是内联结构,因此该模式无法阻止那些没有必要的通信过程 |
其他接口 | 与路由器和交换机一样,部分防火墙同样可以设置回环接口、VLAN接口(子接口)和汇聚接口(IEEE802.3ad)等。 |
DDoS攻击是指攻击者通过控制大量僵尸主机,向攻击目标发送大量攻击报文,导致被攻击目标所在网络的链路拥塞,系统资源耗尽,从而无法向正常用户提供服务。
有些恶意竞争对手会使用DDoS攻击,对正常合法企业造成较大经济损失。如在购物节期间对网上购物平台发动的DDoS攻击。
单包攻击不像DDoS攻击通过使网络拥塞,或消耗系统资源的方式进行攻击,而是通过发送有缺陷的报文,使主机或服务器在处理这类报文时系统崩溃,或发送特殊控制报文、扫描类报文探测网络结构,为真正的攻击做准备。外部网络入侵行为
70%的信息安全事件是由于内部员工误操作或安全意识不够引起的。在加强员工安全意识的同时,企业也需要在技术层面管控员工访问外网的行为,不仅可以通过iMaster-NCE管控用户的访问权限,还可以通过防火墙的内容过滤功能管控用户的上网行为
会话与数据流
会话(session)是指两个系统之间通信的逻辑连接从开始到结束的过程。
在TCP中某个服务器与客户端成对进行通信时,会完成3次握手来确认建立1个TCP连接,在从连接建立开始至连接结束的时间里,客户端发送请求(request)和服务器进行应答(response)这一交互过程即可称为进行了1个会话。在UDP中,客户端与服务器之间只要发送源的端口和目的地端口的配对一致,随后的一系列通信均可以称为会话。
在ICMP中,例如Echo和对应的Echo reply的组合就可以称为会话。
一个会话存在“客户端→服务器”(c2s或clientto server)和“服务器→客户端”(s2c或server to client)两个数据流(flow)。数据流是指发往通信对方的多个分组序列。
一个TCP的连接需要通过3次握手来确认建立。
最初由客户端发送SYN消息,即发送首部中SYN比特信息设置为“1”的TCP数据段。SYN读作/sin/,表示同步的意思,取自Synchronization这个单词的前三个字母。SYN相当于一个开始信号,与打电话时先拨号码的行为类似。当服务器收到来自客户端的SYN消息后,将返回表示确认的ACK消息,同时也会发送一个SYN消息至客户端。ACK表示确认的意思,取Acknowledgement这个单词的前三个字母。TCP连接使用端口号表示不同的网络服务(应用程序)。例如,HTTP使用80号端口,TELNET使用23号端口。提供HTTP服务的服务器必须接收和处理客户端发送至80号端口的TCP数据段。能够处理分组的状态一般表示为listen状态(listen 意为“侦听”,也称为listening)。
SYN检查
TCP会话开始时客户端必会发送一个SYN消息。如果是没有附带会话信息(或尚未建立会话),即非SYN消息的TCP数据段到达防火墙,防火墙就会将其视作非法而整个丢弃。但也可以根据不同的情形(双活冗余或会话超时等)关闭(OFF)防火墙的这个功能,使不带有会话信息的、非SYN消息的TCP 数据段也能够通过防火墙。
ACK检查
在根据SYN Cookie(参考表5-27)信息防范SYN Flood攻击时,通过对SYN-ACK的ACK消息进行检查,能够确认进行中的3次握手是否为非法尝试。
同一数据段检查
终端再次发送TCP数据段时,对于和之前收到的TCP数据段含有相同序列号或数据的TCP数据段,可以指定防火墙的处理方式,即指定是使用新接收到的重复数据段还是丢弃该重复数据段。
窗口检查
检查TCP首部内的序列号和滑动窗口大小(Window Size),拦截超过滑动窗口容量数据的序列号。
数据段重组
即使各数据段的顺序出现变化,TCP数据段也能根据序列号调整为正确顺序。在防火墙进行这一工作,可以验证TCP数据段序列号是否完整。
在UDP中没有像TCP这样的3次握手过程,客户端和服务器之间直接使用带有应用程序分组的UDP分组进行交互。
UDP数据流是指发送源IP地址、发送源端口号、目的地IP地址和目的地端口号这4个参数都相同的一系列UDP分组
DNS和SNMP这种管理类应用程序一般只需1个UDP分组便能完成1个数据流程。
进行音频和视频数据交互的RTP(Real Time Protocol),则需要通过多个由流数据(streamingdata)构成的UDP分组来完成1个数据流。
在进行ICMP和TCP/UDP以外的IP通信时,由于不存在端口号这个概念,因此需要直接根据IP首部的协议号来生成会话信息。
如ICMP中的Echo消息对应Echo Reply消息那样,防火墙需要自动识别不同的请求消息和与之对应响应消息,并综合判断这些消息序列是否属于同一个会话
防火墙不仅只是一个“入口的屏障”,而应该是多个网络的接入控制点。所有进出内网的数据流都应该首先经过防火墙,形成一个信息进出的关口。
防火墙作为企业网络的重要组成部分,连接着企业网络管理层网络、市场部网络与服务器网络。防火墙一般部署在企业网络出口,与Internet连接。
它是一个或多个接口的集合,是防火墙区别于路由器的主要特性。防火墙通过安全区域来划分网络、标识报文流动的“路线”,当报文在不同的安全区域之间流动时,才会触发安全检查。
在每一个被防火墙分割的网络内部中,所有的计算机之间是被认为“可信任的”,它们之间的通信不受防火墙的干涉。而在各个被防火墙分割的网络之间,必须按照防火墙规定的“策略”进行访问。
华为防火墙产品默认提供了Trust、DMZ和Untrust三个可配置的安全区域。Trust区域网络的受信任程度高;通常用来定义内部用户所在的网络。DMZ区域网络的受信任程度中等;通常用来定义内部服务器所在的网络。Untrust区域网络的受信任程度低;通常用来定义Internet等不安全的网络。
防火墙上提供的Local区域,代表防火墙本身。凡是由防火墙主动发出的报文均可认为是从Local区域中发出,凡是需要防火墙响应并处理(而不是转发)的报文均可认为是由Local区域接收。Local区域中不能添加任何接口,但防火墙上所有业务接口本身都属于Local区域。由于Local区域的特殊性,在很多需要设备本身进行报文收发的应用中,需要开放对端所在安全区域与Local区域之间的安全策略。例如Telnet登录、网页登录、接入SNMP网管等。
不同的网络受信任程度不同,在防火墙上用安全区域表示网络后,如何来判断一个安全区域的受信任程度呢?在华为防火墙上,每个安全区域都有一个唯一的优先级,用1至100的数字表示,数字越大,则代表该区域内的网络越可信。
默认安全区域受信任程度:Local > Trust > DMZ > Untrust;
用户可以根据实际组网需要,自行创建安全区域并定义其优先级。
安全域间是用来描述流量的传输通道,它是两个“区域”之间的唯一“道路”。如果希望对经过这条通道的流量进行检测,就必须在通道上设立“关卡”,如防火墙安全策略。
对于防火墙流量有俩种
防火墙最基本的设计原则一般是没有明确允许的流量默认都会被禁止,这样能够确保防火墙一旦接入网络就能保护网络的安全。如果想要允许某流量通过,可以创建安全策略。一般针对不同的业务流量,设备上会配置多条安全策略。
降低包过滤颗粒度的一种做法,区域之间通信使用固定设备。
代理技术只能针对特定的应用来实现,应用间不能通用。
技术复杂,速度慢
能防御应用层威胁,内容威胁
在包过滤(ACL表)的基础上增加一个会话表,数据包需要查看会话表来实现匹配。会话表可以用hash来处理形成定长值,使用CAM芯片处理,达到交换机的处理速度。
UTM—深度包检查技术----应用层
统一威胁管理
把应用网关和IPS等设备在状态防火墙的基础上进行整合和统一。
把原来分散的设备进行统一管理,有利于节约资金和学习成本
统一有利于各设备之间协作。
设备负荷较大并且检查也是逐个功能模块来进行的,貌合神离,速度慢。
2008年Palo Alto Networks 公司发布了下一代防火墙(Next-Generation Firewall),解决了多个功能同时运行时性能下降的问题。同时,下一代防火墙还可以基于用户、应用和内容来进行管控。2009年Gartner(一家IT咨询公司) 对下一代防火墙进行了定义,明确下一代防火墙应具备的功能特性。Gartner把NGFW看做不同信任级别的网络之间的一个线速(wire-speed)实时防护设备,能够对流量执行深度检测,并阻断攻击。Gartner认为,NGFW必须具备以下能力:
状态检测防火墙使用基于连接状态的检测机制,将通信双方之间交互的属于同一连接的所有报文都作为整个数据流来对待。在状态检测防火墙看来,同一个数据流内的报文不再是孤立的个体,而是存在联系的。
状态检测机制开启状态下,只有首包通过设备才能建立会话表项,后续包直接匹配会话表项进行转发。
防火墙会将属于同一连接的所有报文作为一个整体的数据流(会话)来对待。会话表是用来记录TCP、UDP、ICMP等协议连接状态的表项,是防火墙转发报文的重要依据。
会话表项中的五元组信息
会话是通信双方的连接在防火墙上的具体体现,代表两者的连接状态,一条会话就表示通信双方的一个连接。
通过会话中的五元组信息可以唯一确定通信双方的一条连接;
防火墙将要删除会话的时间称为会话的老化时间;
一条会话表示通信双方的一个连接,多条会话的集合叫做会话表。
防火墙为各种协议设定了会话老化机制。当一条会话在老化时间内没有被任何报文匹配,则会被从会话表中删除。这种机制可以避免防火墙的设备资源被大量无用、陈旧的会话表项消耗。但是对于某些特殊业务中,一条会话的两个连续报文可能间隔时间很长。
例如:
用户通过FTP下载大文件,需要间隔很长时间才会在控制通道继续发送控制报文;
用户需要查询数据库服务器上的数据,这些查询操作的时间间隔远大于TCP的会话老化时间
在以上的场景中,如果会话表项被删除,则对应的业务就会中断。长连接(Long Link)机制可以给部分连接设定超长的老化时间,有效解决这个问题。
更多【安全-安全防御——四、防火墙理论知识】相关视频教程:www.yxfzedu.com