第3章信息系统隔离技术
第3章 信息系统隔离技术 隔离就是在内部系统与对外连接通道上设置阻塞点,以 便对攻击者进行监视和控制,有效地维持被保护网络的 边界安全。按照国家信息化领导小组关于我国电子政 务建设的指导意见,“电子政务网络由政务内网和政务 外网构成,两网之间物理隔离,政务外网与Internet之间 逻辑隔离”,网络隔离技术从大的方面看,可以分为 隔离(主要指防火墙)和物理隔离(主要指网闸)。 本章主要介绍它们及其相关技术。 信息系统隔离技术 § 3.1 数据过滤技术 § 3.2 网络地址转换 § 3.3 代理技术 § 3.4 网络防火墙 § 3.5 网络的物理隔离技术 § 3.6 计算机系统的电磁防护 3.1.1 数据过滤技术概述 1. 数据包及其结构 在网络中传输的数据是从应用程序那里递交来的。应 用程序递交给网络要传输的数据后,网络就要逐层向 下,转交给下面的一层去实施,每交到下一层,就要 按照本层的协议要求进行一次打包,形成不同协议层 中的数据包(Packet),直到物理网络。图3.1表明在 TCP/IP网络中数据包的封装与解包过程。图中的虚箭 头为发送端的数据封装过程,实箭头表示接收端的数 据解包过程。 图3.1 TCP/IP网络中数据包的封装与解包 § 图中的虚箭头为发送端的数据封装过程; 数据 包体传输层包头 包体网络层包头 包体链路层包头 应用层 SMTP,Telnet,FTP TCP,UDP,ICMP 传输层 IP 网络层 网络接口层 ATM,Ethernet等 包的封装 数据解包 § 实箭头表示接收端的数据解包过程。 § 应当注意,包过滤是根据数据包的特征进行的。其中,主要 根据数据包头的一些字段的特征进行。同时,不同的协议所 规定的包头格式不同。因此在制定过滤规则前,应当充分了 解数据包的格式。前面图2.8介绍了TCP数据报的格式,图 2.9介绍了用于以太网的ARP分组格式,下面在图3.2中,还 列出了其他一些常用的数据包的格式,供本书后面的讨论中 使用。 图3.2 其它一些数据包的格式 类型码代 码校验和 首部其余部分 数据部分 0 7 8 15 版本头标长服务类型总 长 标 识标志片偏移 生存时间协议报头校验和 源IP地址 目的IP地址 IP分组选项填充 数 据 0 3 4 7 8 15 16 18 19 23 24 31 (a) IP分组格式 (b) UDP数据报格式 (c) ICMP分组的格式 数据包中可以体现数据包特征的有关字段 (1)源地址(Source Address)和目的地址(Destination Address) 它们各表明数据包的源IP地址和目标IP目的地址。根据地址,还可 以判断出数据流的方向是由外部网络流入内部网络往内(流 入),还是由内部网络流入外部网络往外(流出)。 (2)标识符 是发送方分配的一个独一无二的编号,用于标识同一数据报中的各 分组,以便组装。 (3)标志F(Flag) F共占3位 §第1位恒为0; §第2位为0时是可分片,为1时是不可分片; §第3位为0时是最后报片,为1时是非最后报片。 (4)片偏移量FO(Fragment Offset) FO占13位,用以标明当前段片在初始IP分组中的位置,目的主机 可以根据FO来重新组合IP分组。 (5)源端口(Source Port)和目的端口(Destination Port) 在TCP和UDP数据包中,源端口和目的端口分别表示本地通信端口 和地通信端口。端口号是按照协议类型分配的,所以端口号也表明 了所传输的数据包服务的协议类型。 (6)协议Prot(Protocol) 在IP数据包中,“协议字段”用以标识接收的IP分组中的数据的高层 (传输层)协议。高层协议号由TCP/IP协议中央权威机构NIC( Network Ination Center)分配,如1控制报文协议ICMP ,6传输控制协议TCP,8外部网关协议EGP,17用 户数据抱协议UDP,29传输层协议第4类ISO-TP4。 (7)服务类型ToS(Type of Service) 在IP数据包中,ToS描述IP分组所希望获得的服务质量,占8位,包括 §低延迟、高吞吐量、高可靠性,各占1位; §优先级,共8级,占3位; §未用2位。 (8)数据包内容 前面的7个字段都来自数据包头中,而数据内容则是来自数据包体 中。如数据内容中一些关键词可以代表数据内容的某一方面的特征 。对数据包内容的抽取,将会形成依据内容的包过滤规则。这是目 前包过滤技术研究的一个重要方面。 表3.1列出了RFC 1349[Almquist 1992]对于不同应用建议的ToS值。 表3.1 RFC 1349[Almquist 1992]对于不同应用建议的ToS值 应用程序最小时延最大吞吐量最高可靠性最小费用十六进制值 Telnet/Rlogin10000 x10 FTP 控制10000 x10 数据01000 x08 任意块数据01000 x08 TFTP10000 x10 SMTP 命令10000 x10 数据01000 x08 DNS UDP查询10000 x10 TCP查询00000 x00 区域传输01000 x08 ICMP 差错00000 x00 查询00000 x00 任何IGP00100 x04 SNMP00100 x04 BOOTP00000 x00 NNTP00010 x02 2. 数据包过滤基本准则 最早的包过滤是在路由器上进行的。通过对路由表的配置,来决定数据包 是否符合过滤规则。数据包的过滤规则由一些规则逻辑描述一条过滤规 则规定了允许数据包流进或流出内部网络的一个条件。 在制定了数据包过滤规则后,对于每一个数据包,路由器会从第一条规则 开始诸条进行检查,最后决定该数据包是否符合过滤逻辑。 数据包规则的应用有两种策略 §默认接受一切未被禁止的,就是允许的。即除明确指定禁止的数据 包,其他都是允许通过的。这也称为“黑名单”策略。 §默认拒绝一切未被允许的,就是禁止的。即除明确指定通过的数据 包,其他都是被禁止的。这也称为“白名单”策略。 从安全的角度,默认拒绝应该更可靠。 此外,包过滤还有禁入和禁出的区别。前者不允许指定的数据包由外部 网络流入内部网络,后者不允许指定的数据包由内部网络流入外部网络 。 建立数据包过滤规则的大致步骤如下 §安全需求分析,确定安全策略根据网络的具体情况,确定需要保护 什么,需要提供什么服务,进一步明确所允许和禁止的任务。 §将安全策略转化为数据包分组字段的逻辑表达式。 §用防火墙提供的过滤规则语法描述过滤逻辑。 §按照过滤逻辑对路由器进行设置。 3.1.2 数据包的地址过滤策略 1. 地址过滤策略概述 按照地址进行过滤是最简单的过滤方式,它的过滤规则 只对数据包的源地址、目标地址和地址偏移量进行判断 ,这在路由器上是非常容易配置的。对于信誉不好或内 容不宜并且地址确定的主机,用这种策略通过简单配置 ,就可以将之拒之门外。但是,对于攻击,尤其是地址 欺骗攻击的防御,过滤规则的配置就要复杂多了。 下面分几种情形分别考虑。 (1)IP源地址欺骗攻击 对于攻击者伪装内部用户的IP地址攻击,可以按照下面的原则配置 过滤规则如果发现具有内部地址的数据包到达路由器的外部接口 ,就将其丢弃。 显然,这种规则对于外部主机冒充另外一台主机的攻击则无能为力 。 (2)源路由攻击 攻击者有时为了躲过网络的安全设施,要为数据包指定一个路由, 这条路由可以使数据包以不期望路径到达目标。对付这种攻击的过 滤规则是丢弃所有含有源路由的数据包。 (3)小分段攻击 当一个IP包太长时,就要对其进行分片传输。分组后,传输层的首 部只出现在IP层的第1片中。攻击者利用IP分片的这一特点,往往 会建立极小的分片,希望过滤路由器只检查第1片,而忽略后面的 分组。 对付小分段攻击的策略是丢弃FO为1的TCP、UDP数据包。 2. 基于地址的过滤规则的设计 例3.1.1 某公司有一B类网(123.45)。该网的子网( 123.45.6.0/24)有一合作网络(135.79)。管理员希望 (1)禁止一切来自Internet的对公司内网的访问; (2)允许来自合作网络的所有子网(135.79.0.0/16)访问 公司的子网(123.45.6.0/24); (3)禁止对合作网络的子网(135.79.99.0/24)的访问权( 除对全网开放的特定子网外)。 为简单起见,只考虑从合作网络流向公司的数据包,对称地处 理逆向数据包只需互换规则行中源地址和目标地址即可。 表3.2 该公司网络的包过滤规则 § 表中规则C是默认规则。 规 则源 地 址目 的 地 址过滤操作 A135.79.0.0/16123.45.6.0/24允许 B135.79.99.0/24123.45.0.0/16拒绝 C0.0.0.0/00.0.0.0/0拒绝 数据包源地址目的地址目标行为操作ABC行为操作BAC行为操作 1135.79.99.1123.45.1.1拒绝拒绝B拒绝B 2135.79.99.1123.45.6.1允许允许A拒绝B 3135.79.1.1123.45.6.1允许允许A允许A 4135.79.1.1123.45.1.1拒绝拒绝C拒绝C 表3.3 使用样本数据包测试结果 § 3. 3是使用一些样本数据包对表3.2所示过滤规则的测试 结果。 表3.3 使用样本数据包测试结果 § 由表3.3可见,按ABC的规则顺序,能够得到想要的操作 结果;而按BAC的规则顺序则得不到预期的操作结果, 原本允许的数据包2被拒绝了。 数据包源地址目的地址目标行为操作ABC行为操作BAC行为操作 1135.79.99.1123.45.1.1拒绝拒绝B拒绝B 2135.79.99.1123.45.6.1允许允许A拒绝B 3135.79.1.1123.45.6.1允许允许A允许A 4135.79.1.1123.45.1.1拒绝拒绝C拒绝C § 仔细分析可以发现,表3.2中用来禁止合作网的特定子网 的访问规则B是不必要的。它正是在BAC规则集中造成数 据包2被拒绝的原因。如果删除规则B,得到表3.4所示的 行为操作。 表3.4 删除规则B后的行为操作 这才是想要的结果。由此得出两点结论 数据包源地址目的地址目标行为操作AC行为操作 1135.79.99.1123.45.1.1拒绝拒绝C 2135.79.99.1123.45.6.1允许允许A 3135.79.1.1123.45.6.1允许允许A 4135.79.1.1123.45.1.1拒绝拒绝C § 正确地制定过滤规则是困难的; § 过滤规则的重新排序使得正确地指定规则变得越发困难。 3.1.3 数据包的服务过滤策略 § 按服务进行过滤,就是根据TCP/UDP的端口号制 定过滤策略。但是,由于源端口是可以伪装的, 所以基于源端口的过滤是会有风险的。同时还需 要确认内部服务确实是在相应的端口上。下面进 行一些分析。 (1) 关于外部服务的端口号 如果过滤规则完全依赖于外部主机的端口号,例如允许 内部主机向外部服务器的邮件发送服务,而且TCP的端 口25就是常规邮件(STMP)端口时,这样的配置是安 全的。但是,包过滤路由器是无法控制外部主机上的服 务确实在常规的端口上,攻击者往往会通过伪造,利用 端口25向内部主机发送其他应用程序(非常规邮件)的 数据包,建立连接,进行非授权访问。这时,只能禁止 25端口对于内部主机的访问。因为内部主机对这个外部 端口不能信任。 (2) 关于内部主机的源端口号 从内部到外部的TCP/UDP连接中,内部主机的源端口一般 采用大于1024的随机端口。为此,对端口号大于1024的 所有返回到内部的数据包都要允许。对此,就需要辨认端 口号大于1024的数据包中哪些是非法的。 对于TCP数据包来说,可以通过flag位辨认哪些是来自外 部的连接请求。但是UDP是无连接的,没有这样的flag位 可使用,只能唯一地辨认端口号。所以允许UDP协议对外 访问会带来风险。因为返回的数据包上的端口号有可能是 攻击者伪造的。当请求端口和目的端口都是固定的时,这 个问题才能解决。 例3.1.2 表3.5与表3.6就是否考虑数据包的源端口进行对照。规则表3.5由于未考 虑到数据包的源端口,出现了两端所有端口号大于1024的端口上的非预 期的作用。而规则表3.6考虑到数据包的源端口,所有规则限定在25号端 口上,故不可能出现两端端口号均在1024以上的端口上连接的交互。 规则方向类型源地址目的地址目的端口行为操作 A入TCP外内25允许 B出TCP内外1024允许 C出TCP内外25允许 D入TCP外内1024允许 E出/入任何任何任何任何禁止 规则方向类型源地址目的地址源端口目的端口行为操作 A入TCP外内102425允许 B出TCP内外251024允许 C出TCP内外102425允许 D入TCP外内251024允许 E出/入任何任何任何任何任何禁止 表3.5 未考虑源端口时的包过滤规则 表3.6 考虑了源端口时的包过滤规则 3.1.4 数据包的状态检测过滤策略 § 使用C/S模式的数据通信具有连接状态。最典型的 是TCP连接。如图3.3所示,TCP连接具有11个状 态 CLOSED、LISTEN、SYS_SENT、SYS_REVD、 FIN_WAIT_1、FIE_WAIT_2、ESTAB、 CLOSE_WAIT、LAST_ACK、CLOSING、 TIME_WAIT。 图3.3 TCP协议状态转换图 Passive Open本地用户的被动打开连接 rcv本地TCP在引发事件中收到TCP控制消息 Active Open本地用户的主动打开连接 send本地TCP在结果动作中发出TCP控制消息 CLOSE关闭连接请求 x无动作 create TCB本地TCP创建了对应虚电路的协议控制块; create TCB本地TCP撤消TCP协议控制块并结束通信连接; Timeout2MSL 本地TCP等待超时2MSL(2倍的最大段生存期); CLOSED LISTEN ESTAB CLOSING TIME WAITCLOSED FIN WAIT_1 CLOSE WAIT LAST_ACK SYS SENT SYS REVD passive OPEN create TCB FIN WAIT_2 CLOSE delete TCB CLOSE delete TCB active OPEN create TCB send SYN SEND send SYN rcv SYN send SYN,ACK rcv SYN send ACK rcv SYN,ACK send ACK rcv ACK of SYN x CLOSE send FINCLOSE send FIN rcv FIN send ACK CLOSE send FIN rcv FIN send ACK rcv ACK of FIN x rcv FIN send ACK rcv ACK of FIN x rcv ACK of FIN x Timeout2MSL delete TCB TCP连接状态的特征 由图3.3描述可以看出TCP连接状态的如下特征 §TCP连接是有状态的,连接进入不同的阶段具有不同的状态; §TCP连接状态的转换要按一定的顺序进行,不可随意改变; §在TCP连接中客户机与服务器的状态不相同,如客户机不能进入 LISTEN状态,服务器不可能进入SYN_SEND状态; §TCP包中有6个标志位FIN、SYS、RST、PSH、ACK、URG,其中 一些不能同时存在,如SYS不能和FIN、RST、PSH同时存在。 这些特征就是设置状态检测包过滤规则的基础。状态信息可以从数据 包中的源地址、目的地址、协议类型、连接状态、超时时间以及其他 信息(如TCP/UDP协议的端口号,ICMP的ID号等)中获得。 在检测中,一旦发现数据包的状态不符,就可以认为是状态异常包而 加以拒绝。 3.1.5 数据包的内容过滤策略 1. 内容安全的概念 §内容安全是包过滤技术中正在兴起的一个重要的分支,也是目前最活跃 的安全领域。它是基于内容安全的一项技术。 内容安全涵盖如下3个方面。 (2)基于内容的破坏 内容破坏的典型是带有病毒的文件,是被篡改了的正常文件上带有病毒特征代码。这些 代码在被执行的时候,具有有害的特性。 (1)违禁内容的传播 违禁内容是指内容本身要表达的意思,违反了某种规则或安全策略,尤其是政策法规允 许的范畴。例如,传播关于SRARS的谣言,发布关于恐怖袭击的谣言,制造或传播淫秽 色情等,都是违法的。违禁内容的危害是对思想造成破坏。在很多情况下,违禁内容的 表达方式和格式并没有什么特殊,因此无法从表达方式或格式来加以禁止,必须从语意 和关键词上理解该内容是违禁的。 (3)基于内容的攻击 基于内容的攻击,是以内容为载体容,以应用程序为攻击对象,目标是取得对应用主机 的控制权。例如,在web上表格填写数据时,填写恶意格式,导致CGI程序执行错误,引 发应用程序出错。在web服务和web应用盛行的今天,基于内容的攻击越来越流行,危害 越来越大,对电子政务和电子商务是一个巨大的灾难。 2. 内容安全解决方案 (1)禁止违禁内容传播的解决方案 禁止违禁内容的传播的方法,一是对违禁内容进行内容过滤,如基于关键词的内容过滤 ,基于语意的内容过滤。前者在技术上很成熟,准确度很高,漏报率低,但误报率高。 二是对违禁内容的来源进行访问控制,这种方式对已经知道恶意传播的对象非常有效。 到目前为止,还没有禁止违禁内容传播的理想的理论方法,在必须执行违禁内容控制的 情况下,多采用人工和技术相结合的策略。 (2)防止基于内容破坏的解决方案 防病毒是目前采用最多的防止基于内容破坏的解决方案。通过查找内容中的恶意病毒代 码来消除基于内容的破坏。防病毒软件同样存在漏报和误报的问题。最关键的问题是, 每次总数病毒爆发在前,才能取得病毒特征代码,然后才能防止该病毒。预防已知病毒 的实现较为成功,但预防未知病毒的能力较弱。为了解决防病毒软件这方面的不足,出 现了很多的相关技术如专家会诊,引发病毒隔离区等,来补充和弥补方病毒软件的不足 。 (3)防止基于内容攻击的解决方案 基于内容的攻击已经超过违禁内容传播和病毒,成为目前最热门的威胁之一。目前存在 的十大漏洞和风险包括参数无效、访问控制失效、账户和会话管理失效、跨站点脚本 、缓冲溢出、恶意命令、错误处理问题、不安全加密、远程管理缺陷、配置错误。目前 已经出现一类新的产品称为应用安全代理来解决基于内容攻击的问题。 与传统的过滤方法相比,基于内容的过滤技术需要耗费更多的计算资源。如何 突破内容过滤的性能瓶颈,已经成为用户和厂商普遍关心的问题。 3. 内容扫描原理 在接收到网络流量后,安全网关进行内容扫描,定向到TCP/IP 堆栈, 其他数据流直接定向到状态检测引擎,按基本检测方式进行处理。高性 能的硬件体系结构协助TCP/IP 堆栈进行协议内容的处理。内容协议数 据包括Web流量(HTTP)和 E-mail 流量(SMTP、POP3、IMAP) 。当接收到内容数据流时,TCP/IP 堆栈建立Client 和Server会话,开 始数据包的传输。堆栈接收数据包,然后转化成内容数据流。 服务分析器根据数据流服务类型分离内容数据流,传送数据流到一个命 令解析器中。 命令解析器定制和分析每一个内容协议,分析内容数据流,检测病毒和 蠕虫。如果检测到信息流是一个HTTP 数据流, 则命令解析器检查上 载和下载的文件; 如果数据是Mail 类型,则检查邮件的附件。 如果数据流包含附件或上载/下载文件,附件和文件将传输到病毒扫描 引擎,所有其他内容传输到内容过滤引擎。如果内容过滤启动,数据流 将根据过滤的设置进行匹配,通过或拒绝数据。 3.2 网络地址转换 1. NAT概述 网络地址转换Network Address Translation,NAT就是使用使用两 套IP地址内部IP地址(也称私有IP地址)和外部IP地址(也称 公共IP地址)。当受受保护的内部网连接到Internet并且有用户要访 问Internet时,它首先使用自己网络的内部IP地址,到了NAT后, NAT就会从公共IP地址集中选一个未分配的地址分配给该用户,该 用户即可使用这个合法的IP地址进行通信。同时,对于内部的某些 服务器如Web服务器,网络地址转换器允许为其分配一个固定的合 法地址。外部网络的用户就可通过NAT来访问内部的服务器。这种 技术既缓解了少量的IP地址和大量的主机之间的矛盾被保护网 络中的主机不必拥有固定的IP地址;又对外隐藏了内部主机的IP地 址,提高了安全性。 2. NAT的工作过程 NAT的工作过程如图3.4所示。 NAT 源地址 目的地址 234.56.7.8 源地址 234.56.7.8 目的地址 源地址 目的地址 123.456.111.3 源地址 123.456.111.3 目的地址 Internet 被保护 内部网 源IP包目的IP包 图3.4 NAT的工作过程 在内部网络通过安全网卡访问外部网络时,将产生一个映射记录。系统将外出的源地 址和源端口映射为一个伪装的地址和端口,让这个伪装的地址和端口通过非安全网卡 与外部网络连接,这样对外就隐藏了真实的内部网络地址。在外部网络通过非安全网 卡访问内部网络时,它并不知道内部网络的连接情况,而只是通过一个开放的IP地址 和端口来请求访问。NAT据预先定义好的映射规则来判断这个访问是否安全当符合 规则时,防火墙认为访问是安全的,可以接受访问请求,也可以将连接请求映射到不 同的内部计算机中;当不符合规则时,被认为该访问是不安全的,不能被接受,外部 的连接请求即被屏蔽。网络地址转换的过程对于用户来说是透明的,不需要用户进行 设置,用户只要进行常规操作即可。 3. 使用NAT的优缺点 NAT使内部网络的计算机就不可能直接访问外部网络通过 包过滤分析,当所有传入的包如果没有专门指定配置到NAT ,就将之丢弃。同时使所有内部的IP地址对外部是隐蔽的。 因此,网络之外没有谁可以通过指定IP地址的方式直接对网 络内的任何一台特定的计算机发起攻击。NAT还可以使多个 内部主机共享数量有限的IP地址,还可以启用基本的包过滤 安全机制。 NAT虽然可以保障内部网络的安全,但也是一些局限。例如 ,内网用户可以利用某些木马程序通过NAT做外部连接。 3.3 代理技术 § 应用于网络安全的代理(Proxy)技术,来自代理服务器 (Proxy Server)技术。代理服务器是用户计算机与 Internet之间的中间代理机制,它采用客户机/服务器工作 模式。代理服务器位于客户与Internet上的服务器之间。 请求由客户端向服务器发起,但是这个请求要首先被送的 代理服务器;代理服务器分析请求,确定其是合法的以后 ,首先查看自己的缓存中有无要请求的数据,有就直接传 送给客户端,否则再以代理服务器作为客户端向远程的服 务器发出请求;远程服务器的响应也要由代理服务器转交 给客户端,同时代理服务器还将响应数据在自己的缓存中 保留一份拷贝,以被客户端下次请求时使用。图3.5为代 理服务的结构及其数据控制和传输过程示意图。 图3.5 代理服务的结构及其数据控制和传输过程 §应用于网络安全的代理技术,也是要建立一个数据包的中转机制,并 在数据的中转过程中,加入一些安全机制。 被保护网络内部 客 户 服务器 客户 代理 访问 控制 代 理 服务器 代理服务 请求请求转发 转发 应答应答 §代理技术可以在不同的网络层次上进行。主要的实现层次在应用层和 运输层,分别称为应用级代理和电路级代理。它们的工作原理有所不 同。 3.3.1 应用级代理 1. 概述 应用级代理没有通用的安全机制和安全规则描述,它们通用性差,对 不同的应用具有很强的针对性和专用性。它们不但转发流量而且对应 用层协议做出结实。图3.6为其示意图。显然,如果不为特定的应用程 序安装代理程序代码,该服务是不会被支持的,不能建立任何连接。 这种方式可以拒绝任何没有明确配置的连接,从而提供了额外的安全 性和控制性。 FTP 代理 TELNET 代理 HTTP 代理 POP 代理 SMTP 代理 DNS 代理 out inin out in outout inin out in out 外部客户 内部服务器 客户代理连接 代理服务器连接 外部 内部 图3.6 应用级代理工作原理 2. 应用级代理的工作特点 图3.7为应用级代理的基本工作过程。 内部 接口 外部 接口 客户 公共服务 时 间 请求页 URL检查 请求页 返回页 返回页 内容过滤 图3.7 应用级代理的基本工作过程 下面介绍应用级代理的一些功能。 (1) 阻断路由与URL 代理是通过侦听网络内部客户的服务请求,然后把这些请求发向外部 网络。在这一过程中,代理要重新产生服务级请求。例如,一个Web 客户向外部发出一个请求时,这个请求会被代理服务器“拦截”,再由 代理服务器向目标服务器发出一个请求。服务协议(如HTTP)才可以 通过代理服务器,而TCP/IP和其他低级协议不能通过,必须由代理服 务器重新产生。因此外部主机与内部机器之间并不存在直接连接,从 而可以防止传输层因源路由、分段和不同的服务拒绝造成的攻击,确 保没有建立代理服务的协议不会被发送的外部网络。 (2) 隐藏客户 应用级代理既可以隐藏内部IP地址,也可以给单个用户授权,即使攻 击者盗用了一个合法的IP地址,也通不过严格的身份认证。因此应用 级代理比数据包过滤具有更高的安全性。但是这种认证使得应用网关 不透明,用户每次连接都要受到认证,这给用户带来许多不便。这种 代理技术需要为每个应用写专门的程序。 (3)安全监控 代理服务是一种服务程序,它位于客户机与服务器之间,完全阻挡了 二者间的数据交流。从客户机来看,代理服务器相当于一台真正的服 务器;而从服务器来看,代理服务器又是一台真正的客户机。当客户 机需要使用服务器上的数据时,首先将数据请求发给代理服务器,代理 服务器再根据这一请求向服务器索取数据,然后再由代理服务器将数 据传输给客户机。由于外部系统与内部服务器之间没有直接的数据 通道,外部的恶意侵害也就很难伤害到企业内部网络系统。 3.3.2 电路级代理 1. 电路级代理概述 电路级代理即通常意义的代理服务器,它适用于多个协议,但不能解释 应用协议,需要通过其他方式来获得信息,只对数据包进行转发。电路 级代理也称电路级网关,其工作原理如图3.8所示。 传输层 网络层 数据链路/物理层 电路级网关 TCP端口TCP端口 图3.8 电路级网关工作原理 电路级网关依赖于TCP连接,并且只用来在两个通信端点之间转接,进 行简单的字节复制式的数据包转接。数据包处理是要在应用层进行。 电路级网关对外像一个代理,对内又像一个过滤器。这种特点使它可以 为各种不同的协议提供服务。简单的电路级网关仅传输TCP的数据段, 增强的电路级网关还具有认证作用。 2. SOCKS代理技术 SOCKS协议(套接字协议)是一个电路级网关协议。一个 SOCKS代理主要由两部分组成 (1)SOCKS客户程序经过修改的Internet客户程序,改造 的目的是使运行客户程序的主机从与Internet通信改为与运 行SOCKS代理的主机通信。 (2)SOCKS服务程序既可以Internet通信又可以和内部网 络通信的程序。 SOCKS代理的工作过程 SOCKS代理的工作过程如下 对用户来说,受保护网与外部网的信息交换是透明的,感觉不到代理的存在 ,那是因为网络用户不需要登录到代理上。但是客户端的应用软件必须支持 “Socketsified API”,受保护网络用户访问公共网所使用的IP地址也都是代理 服务器的IP地址。 § 1)当一个经过SOCKS化的客户程序要连接到Internet时, SOCKS就会截获这个这个连接,将之连接到运行SOCKS服务 器的主机上。 § 2)连接建立后,SOCKS客户程序发送如下信息 版本号 连接请求命令 客户端端口号 发起连接的用户名 § 3)经过确认后,SOCKS服务器才与外部的服务器建立连接。 3.4 网络防火墙 1. 防火墙的概念 在建筑群中,防火墙Fire Wall用来防止火灾蔓延。在计算 机网络中,防火墙是设置在可信任的内部网络和不可信任 的外界之间的一道屏障,来保护计算机网络的资源和用户 的声誉,使一个网络不受来自另一个网络的攻击。 2. 防火墙的基本功能 在逻辑上,防火墙是一个分离器,一个限制器,也是一个 分析器,有效地监控了内部网和Internet之间的任何活动, 保证了内部网络的安全。作为一个中心“遏制点”,它可以 将局域网的安全管理集中起来,屏蔽非法请求,防止跨权 限访问并产生安全报警。 具体地说,防火墙有以下一些功能 防火墙的一些功能 (1)作为网络安全的屏障 防火墙由一系列的软件和硬件设备组合而成,它保护网络中有明确闭 合边界的一个网块。所有进出该网块的信息,都必须经过防火墙,将 发现的可疑访问拒之门外。当然,防火墙也可以防止未经允许的访问 进入外部网络。因此,防火墙的屏障作用是双向的,即进行内外网络 之间的隔离,包括地址数据包过滤、代理和地址转换。 (2)强化网络安全策略 防火墙能将所有安全软件(如口令、加密、身份认证、审计等)配置 在防火墙上,形成以防火墙为中心的安全方案。与将网络安全问题分 散到各个主机上相比,防火墙的集中安全管理更经济。例如在网络访 问时,一次一密口令系统和其它的身份认证系统完全可以不必分散在 各个主机上,而集中在防火墙一身上。 (3)对网络存取和访问进行监控审计 审计是一种重要的安全措施,用以监控通信行为和完善安全策略,检查安全 漏洞和错误配置,并对入侵者起到一定的威慑作用。报警机制是在通信违反 相关策略以后,以多种方式如声音、邮件、电话、手机短信息及时报告给管 理人员。 防火墙的审计和报警机制在防火墙体系中是很重要的,只有有了审计和报警 ,管理人员才可能知道网络是否受到了攻击。另外,防火墙的该功能也有很 大的发展空间,如日志的过滤、抽取、简化等等。日志还可以进行统计、分 析、(按照特征)存储(在数据库中),稍加扩展便又是一个网络分析与查 询模块。 由于日志数据量比较大,主要通过两种方式解决,一种是将日志挂接在内网 的一台专门存放日志的日志服务器上;一种是将日志直接存放在防火墙本身 的存储器上。目前这两种方案国内(包括国外)都有使用。 如果所有的访问都经过防火墙,防火墙就能记录下这些访问并作出日志记录 ,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进 行适当的报警,并提供网络是否受到监测和攻击的详细信息。 收集一个网络的使用和误用情况也非常重要。这样可以对网络进行需求分析 和威胁分析,清楚防火墙是否能够抵挡攻击者的探测和攻击,并且清楚防火 墙的控制是否充足。 (4)远程管理 管理界面一般完成对防火墙的配置、管理和监控。 管理界面设计直接关系到防火墙的易用性和安全性。目前防火墙主要有两 种远程管理界面web界面和GUI界面。对于硬件防火墙,一般还有串口 配置模块和或控制台控制界面。 管理主机和防火墙之间的通信一般经过加密。国内比较普遍采用自定义协 议、一次性口令进行管理主机与防火墙之间通信(适用GUI界面)。 GUI界面可以设计的比较美观和方便,并且可以自定义协议,也为多数厂 商使用。一般使用语言VB、VC,有部分厂家使用Java开发,并把此作为 一个卖点(所谓跨平台)。Web界面也有厂商使用,然而由于防火墙因此 要增加一个CGI解释部分,减少了防火墙的可靠性(GUI界面只需要一个 简单的后台进程就可以),故应用不是太广泛。 (5)防止攻击性故障蔓延和内部信息的泄露 防火墙也能够将隔开网络中一个网块(也称网段)与另一个网块隔开 ,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。 此外,隐私是内部网络非常关心的问题,一个内部网络中不引人注意 的细节可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至因 此而暴漏了内部网络的某些安全漏洞。使用防火墙就可以隐蔽那些透 漏内部细节如Finger,DNS等服务。 Finger显示了主机的所有用户的注册名、真名,最后登录时间和使用 shell类型等。但是Finger显示的信息非常容易被攻击者所获悉。攻击者 可以知道一个系统使用的频繁程度,这个系统是否有用户正在连线上 网,这个系统是否在被攻击时引起注意等等。防火墙可以同样阻塞有 关内部网络中的DNS信息,这样一台主机的域名和IP地址就不会被外 界所了解。 (6)MAC与IP地址的绑定 MAC与IP地址绑定起来,主要用于防止受控(不可访问外网)的内 部用户通过更换IP地址访问外网。这其实是一个可有可无的功能。不 过因为它实现起来太简单了,内部只需要两个命令就可以实现,所 以绝大多数防火墙都提供了该功能。 (7)流量控制(带宽管理)和统计分析、流量计费 流量控制可以分为基于IP地址的控制和基于用户的控制。基于IP地址 的控制是对通过防火墙各个网络接口的流量进行控制,基于用户的 控制是通过用户登录来控制每个用户的流量,从而防止某些应用或 用户占用过多的资源。并且通过流量控制可以保证重要用户和重要 接口的连接。 (8)其他特殊功能 流量统计是建立在流量控制基础之上的。一般防火墙通过对基于IP、 服务、时间、协议等等进行统计,并可以与管理界面实现挂接,实 时或者以统计报表的形式输出结果。流量计费从而也是非常容易实 现的。 3.4.2 网络防火墙构建与基本结构举例 1. 屏蔽路由器(Screening Router)和屏蔽主机(Screening Host ) 防火墙最基本、也是最简单技术是数据包过滤。而过滤规则可以安装在 路由器上,也可以安装在主机上。具有数据包过滤功能的路由器称为屏 蔽路由器。具有数据包过滤功能的主机称为屏蔽主机。图3.9为包过滤 防火墙的两种基本结构。 防火墙 外部网 屏蔽路由器 内部网 图3.9 路由过滤式防火墙 路由器是内部网络与Internet连接的必要设备,是一种“天然”的防火墙,它 除具有路由功能之外,还安装了分组/包过滤(数据包过滤或应用网关)软 件,可以决定对到来的数据包是否要进行转发。 这种防火墙实现方式相当简捷,效率较高,在应用环境比较简单的情况下,能 够以较小的代价在一定程度上保证系统的安全。但由于过滤路由器是在网 关之上的包过滤,因此它允许被保护网络的多台主机与Internet的多台主机 直接通信。这样,其危险性便分布在被保护网络内的全部主机以及允许访 问的各种服务器上,随着服务的增加,网络的危险性也增加。其次,也是 特别重要的一点是,这种网络由于仅靠单一的部件来保护系统,一旦部件 被攻破,就再也没有任何设防了,并且当防火墙被攻破时几乎可以不留下 任何痕迹,甚至难于发现已发生的攻击。它只能根据数据包的来源、目标 和端口等网络信息进行判断,无法识别基于应用层的恶意侵入,如恶意的Java 小程序以及电子邮件中附带的病毒。有经验的黑客很容易伪造IP地址,骗过 包过滤型防火墙,一旦突破防火墙,即可对主机上的软件和配置漏洞进行 攻击。进一步说,由于数据包的源地址、目标地址以及IP的端口号都在数 据包的头部,很有可能被窃听或假冒;并且数据包缺乏用户日志(log)和 审计信息(audit),不具备登录和报告性能,不能进行审核管理,因而过 滤规则的完整性难以验证,所以安全性