firewall

一、声明

此文仅代表我个人对防火墙的理解。不夸张的说,基于认识的局限性,本文很可能存在认识的误区。很多产品可能标注为防火墙,却不能在本文找到对应的分类,这往往因为包含包含了高度集成的功能,各个功能可以归在防火墙的子类里;也有些产品的名字里不含防火墙,但是可能提供防火墙的一种功能。

另,撰写此文并未参考公安部对信息安全产品的分类,也未参考国内任何学术单位的文献。暂且不说差异之处孰是孰非,如有雷同纯属巧合。

本文仅供读者参考。

二、前言

无论管理员和规划人员是否主观上有所察觉,防火墙作为控制被保护网络与其他网络(internet或其他lan)的访问控制组件,它客观上也提供着某种程度的认证、授权的机制。防火墙规则中每一条Allow规则都是对不信任网络中的网络行为的一种授权。随着信息系统应用的深入,信息系统安全也越来越多的面临连接问题之外的威胁,例如SQL注入等;防火墙也随之进化,产生了基于代理、过滤器和其他机制的防护产品。

虽然正文部分会有讨论。但是此处可以笼统说,位于网络边界的通讯控制设备--包含服务器主机、标准机架式一体机等,控制(包括调配)osi layer3 acl的、基于configuration而非knowledge base的,都是一种防火墙。虽然configuration多数基于knowledge base往往仅在更新模式有所差别,但是同时符合两者并且主要控制osi layer3的产品却非常罕见。具体的说,本文不认为下列产品是防火墙:

  • 网桥和网阀
  • 纯粹意义上的VPN 服务器和网关
  • 认证服务器--它基于程序的数据进行授权而不是基于网络IP层工作。这其中包括了802.1x的认证设备和服务器。
  • 所谓的数据防篡改系统(data loss prevention )
  • IDS和IPS--IPS基于IDS,而且规则之外的第一次连接是成功的。IDS毫无疑问不能算防火墙,那么可以视为IDS扩展模块的IPS本文也认为更不是防火墙。
  • 网络杀毒服务器等--这些程序将IP数据包还原成文件和通讯流,判断是否存在病毒、网络攻击等,最终与客户端联动处理相关程序和通讯。这可以以2009年以trendmicro的virus wall为代表。
  • 反垃圾邮件产品--即使叫做垃圾邮件防火墙,它也不在IP连接上过滤网络包。

另外本文认为以下组件(主要指脚本、配置等)构成防火墙的一部分,但单独来说不可以算做防火墙:

  • 标准代理、反向代理服务器。它可能是Web Application Security Firewall (国内所说的WAF,哇福)一个重要部分,但它独立工作很难说能起到防火墙的作用。另外它不工作于OSI Layer3。
  • iptables /netfilter/squid 等等的配置和脚本。确实经过资深管理员的调整和组合,相当多的开源工具可以达到企业级别硬件防火墙的作用,甚至可以超过一系列硬件产品的功效。首先这些脚本或配置文件,自己不是程序,尤其是iptables更是操作系统内核的一部分;其次它们严重依赖IT管理员的knowlege base的配置无法象产品那样推广应用。把它说为管理员的技巧更恰当。
  • 一些无说明的开源的、或GPL v2防火墙。很难定性。
  • 对访问网址进行过滤的功能部分,如果单独构成程序或产品,本文也认为它不是防火墙。毫无疑问这一部分会引起厂商和粉丝的争议,但是作为学术讨论来看,作者坚持这个观点--它们单独不能构成防火墙。例如个人/企业防火墙对已知的xss站点、钓鱼网站进行屏蔽,这些组件不能单独构成防火墙。从程序上看,它们与IP连接无直接关系、是基于数据包或者程序控制的一部分。总体说,如果您认为垃圾邮件防火墙不能算网络防火墙,您也应该能理解仅仅提供访问网址过滤的防火墙不能叫做防火墙。举个极端的例子说明吧:您认为firefox的adblock是防火墙吗,还是说这个adblock安装在服务器端就可以叫做防火墙了?

三、正文

1.什么是防火墙

美国国防部所属,信息安全应对策略局Defense Information Systems Agency (DISA,其官方网站貌似被墙了)有定义:

(DISA) A firewall is a device that serves as a barrier between networks providing access control, traffic filtering, and other security features. Firewalls are commonly deployed between trusted and untrusted networks, for example between the Internet (untrusted) and an organization’s trusted private network. They [firewalls] can also be used internally to segment an organization’s network infrastructure, for example; deploying a firewall between the corporate financial information and the rest of the company network.

如果评论国内的定义怕是又有一堆这个那个的人物出来非议,我得罪不起他们。拿DISA做靶子吧!上文值得商榷的地方很多。防火墙不一定是“device”,例如广为接受的个人防火墙通常就是个程序。知名的企业在同一企业内部,也会部署防火墙的,例如财务部和业务部,客户端网段与服务器网段,城市之间的网段等等。随着栅栏防御体系的破败和防火墙成本的降低,在企业内网中看见防火墙已经是很常见的事情。而随着硬件处理能力的提高,高度整合的防火墙可能带有其他功能,使用其附加功能、利用防火墙的易维护性可能使得防火墙应用在今后更加普及。如同我现在用的烟盒带有打火机一样,使用多功能的整合防火墙的网址过滤功能、认证功能、日志功能,可能比使用它的IP过滤功能更为常见。但是反过来说,我们不能说打火机就是烟盒吧。

基于上面的讨论,我对防火墙进行下列定义:

防火墙是用于隔离不同网段、网域,对其进行通讯过滤的程序。所有的防火墙都按照策略工作,至少提供OSI Layer3的过滤功能。即使厂商常常为其提供其他安全功能,但是对OSI Layer3进行过滤是防火墙的本质特性。部署防火墙的目的,即隔离网段、网域间的安全风险。

上文说道防火墙是程序,可能会使一些未涉足过嵌入式设备的粉丝感到迷惑。目前市面上的硬件防火墙,以ARM硬件平台为主,运行操作系统并自动运行系列程序;硬件防火墙仍然是程序控制通讯。也有人根据Web Application Security Firewall对此不解,其实这类防火墙首先阻断被控网内到被控网外除特定端口以外的所有通讯,再对其收到的services request做相应的分析及过滤;所以它本身首先是阻断型防火墙(这是它实现安全的首要因素),不过它的附加功能更为人们所欢迎罢了。

1.1常见应用

前言之前对防火墙进行了归类。下面进行分类讨论。

network firewall,就是传统意义上的企业防火墙,它所隔离的网段可不言而喻的映射为被控网段、非可控网段等。出于负载和可靠性的考虑,单一功能的network firewall常常是嵌入式的标准机架式(伪)硬件。

Application firewall 也以嵌入式系统为主,但也有服务器类型的,它隔离和控制的网域却是某种“系统”,例如apache群集、甚至是另外的一系列Application Firewall等等。虽然分离式Application Firewall较为常见,但是也有将服务系统与应用程序防火墙安装在一台服务器上的情况(并不推荐)。

Personal Firewall 个人防火墙就不多说了。

而较为纠集的是Network Firewall与Application Firewall的整合,即复合型防火墙。这种应用受到多种制约--例如带宽、成本和网络规模。随着虚拟化的普及,有将两者运行在虚拟化平台为(物理)网络提供服务的;但是osi layer3 常见的ddos使得深受其害的用户不得不将两者从硬件上分离、有些用户甚至防止不同攻击的包过滤防火墙层级连接(控制burst rate的,ddos包过滤SPI的,控制内部互相ddos的,WASF防这又防那的,外加一系列监控监管平台);为虚拟化平台(例如云)提供复合型防火墙的方案更是五花八门、多种多样,利用web application firewall当负载平衡的也非常之常见,为web request添加cookie、为tcp session 加cookie做四次握手之类的各种冷门控制手段惊人的都能在此看到。

很多防火墙也有认证的支持功能,例如SSO服务器支持。SSO支持与VPN服务联动,可以提供完整的integrity控制方案而深受世界知名企业青睐。可惜国内方面对完整性的应用和理解远远落后,仅仅有个vpn功能的防火墙已经对于他们来说算是高级货。毫无疑问这是问责制即accountability在国内没有受到支持,用户将所有责任都推给网管的习惯造成的。无论有没有server log,所有责任都归IT、操作人员对保密无知和拒绝负责使得对于国内来说SSO功能并不那么重要。不要问我方案,国内没见过,我也受保密条款的道德制约。

​2. 防火墙的细分

2.1 Network Firewall

2.1.1 Stateless http://en.wikipedia.org/wiki/..._firewall 
(看history部分)

2.1.2 Stateful  http://en.wikipedia.org/wiki/..._firewall

实际上,多种DDOS清洗器、或者叫做DDOS过滤管道(pipeline)很大程度上依赖SPI技术(stateful),仅仅是安装有大内存和2-128个arm cpu就使得ddos清洗设备,卖到骨干网络上就必须昂贵到几十万到几百万,实在是烧钱的绝好理由(天顶星人不要来喷水)。在2001年的时候,有业内人士吐槽说给tcp多来次握手或(给ip数据包,包括udp)加个认证的cookie就是市面上所有的抗ddos设备,是不是这么回事读者看后心里就有数了。

而2013年两会期间IDF服务器受到流氓公司(们?)的天文数量流量的ddos攻击,其攻击类型就是syn和ack攻击组成。单主机控制iptables在几十g的带宽下,效果不是十分明显。因为ddos即使在主机上识别为攻击,作流量控制、并且drop,但是网络介入服务商的设备却在承受高负载攻击。如果配置为reset,则ISP的设备就要承受双重负载。

所以预防ddos可以说比较复杂,ISP方面也需要有足够经验去配置设备。

2.2 Application Security Firewall

ASF是比较新型的防火墙,如前文所说,它第一条安全规则应当是阻止内部服务器通过ASF设备连接到互联网。其次,ASF基本都属于中间件服务程序,运行着经过调试的代理服务程序。例如网页防护程序应当运行着类似squid的程序。

这种特征使得ASF可以详细追踪和分析service request,进行允许(拒绝)的acl控制、纪录、即启发式自动分析,或进行类似负载平衡那样的调度。相比network firwall来说,ASF在OSI上工作在顶层,即application layer。所以network firewall又有lower layer firewall的名字,而application firewall也有higher layer firewall的大号。

ASF很多特征与负载平衡程序相似,根据对通讯解析之后根据request 实现规则的控制、通讯的调度和干预。不仅仅针对HTTP,ASF也有对POP3 IMAP SMTP FTP的防护程序。不过与大家想象的不同,不仅详细识别相关程序、对网站、url、ip等等进行控制,ASF对于同一网域的出、入通讯都可以在ASF上控制。已经有那种控制企业内网用户上网的、可以直接放置于网络边界自动识别通讯协议(而非端口),并且进行相关分析、控制的ASF。

中间件结构的优势使得ASF可以达到传统Network Firewall无法做到的功能。例如,对恶意url
(xss等)识别,对应用程序漏洞的识别,在恶意入侵达到目标机之前就可被ASF识别和拦截。实际上通过ASF的通讯并没有直接与目标主机进行连接。

ASF有主机型防护程序,或网段型防护程序。主机型host-based ASF可能安装于被保护终端的主机上--即使如此,ASF也不是Personal Firewall,它们两者的区别还是非常大的:ASF是根据协议进行识别和控制,而PF主要是根据程序或socket进行控制。

ASF在国内普遍叫做WAF,主要就是国内用户使用ASF进行网站防护(Web -),换句话说国内应用和研发能力较低造成的。美国称之为AF,因为他们确实可以做到通过通讯对应用程序和它们的弱点进行识别。

已经普遍应用于保护服务器网段的ASF,目前有WAF,database firewall,xml 防火墙等等。市面上已经可以找到处理SQL injections, database rootkits,  data loss的ASF产品。

2.3 Multifunction Firewall

CPU速度超过过去很多,剩下的运算能力干嘛用才好呢?

2.3.1 VPN Gateway

VPN不稀奇了。各大厂商为自己的vpn协议发表各自的客户端软件。

2.3.2 Unified Threat Management

防火墙实现基本的控制功能以外,增加了各种非传统意义防火墙的功能。例如,Network Firewall按照商业数据库对网站分类,对其进行阻拦等等。所谓UTM不一定是防火墙的标准功能或常见功能,因为耗费巨大运算资源,功能往往也很有限。

2.4 Personal Firewall

2.4.1 历史

早期的个人防火墙如同Network Firewall一样,对网卡上的通讯进行统一的规则匹配。支持NAT和DNS服务的个人防火墙曾几何时风靡一世。之后随SDK的开放和OS厂商的推广,PF防火墙实现了按程序和Socket双重防护的功能。

随之而来的是产品的整合。杀毒软件、反木马软件、DLP数据泄露防护、反钓鱼网站保护和网址过滤、防activex恶意代码,沙盒子sandbox下载与运行保护。一个杀毒软件包揽本地安全是很早之前的故事。

PDA和智能手机带来新的机遇。现在的主流软件不仅可以在手机上进行快速的权限和代码扫瞄,更可以扫瞄短信、email和IM中传递的网址。

2.5 Others

虚拟化和云的应用带来新的观点和手段。有很多产品可以在虚拟机内对程序和主机进行认证,再在hyper层进行进一步一体化控制。trendmicro,edenwall(此站在发文时已经被黑)、checkpoint和CA 都在此方面有深入研究。其中checkpoint为amazone 提供安全服务,而美国CA目前为美国海军第xxx大队的全球卫星控制中心做安全防护和灾难恢复的方案和防护。

不过在应用虚拟化安全方案之前就应当注意,虚拟化体系本身就存在很多安全问题。在2009年时中科院某院士对hyper层发表非官方的安全可信的首肯之后,2010年就有259种hyper层带来的安全漏洞的分析。覆巢之下,焉有完卵。   

2.6 Thanks

首先感谢美国国防部所属DISA,给我个理由批判传统观念。

还有感谢把深度防御理论公开,控制思想GPL V1,搞的WAF满天飞却没拿到丝毫专利权和著作权的自己。


via idf.cn


weakish
24.6k 声望844 粉丝

a vigorously lazy deadbeat with matured immaturity