rsgdxp
高级工程师
帖子
1661
精华
15
无忧币 31324
积分 14500
阅读权限 70
来自 (保密)
|
发表于:2006-10-24 23:11
标题:网络信息安全
<上一帖 |
下一帖>
有兴趣的话,请耐心看看
网络信息安全
计算机网络的发展,使信息共享应用日益广泛与深入,但是企业的信息在公共网络上传输,可能会被非法窃听、截取、篡改或破坏,而造成不可估量的损失。网络信息安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统能连续可靠地运行,网络服务不中断。
本章介绍了网络信息安全中的一些常用技术手段,包括防火墙技术、入侵检测技术、反病毒技术、内外网隔离技术和电子邮件的安全。
7.1 防火墙技术
网络的安全性可以定义为计算机机密性、完整性和可用性的实现。机密性要求只有授权才能访问信息;完整性要求信息保持不被意外或者恶意地改变;可用性指计算机系统在不降低使用的情况下仍能根据授权用户的需要提供资源服务。因特网防火墙是这样的(一组)系统,它能增强机构内部网络的安全性,用于加强网络间的访问控制,防止外部用户非法使用内部网的资源,保护内部网络的设备不被破坏,防止内部网络的敏感数据被窃取。防火墙系统决定了哪些内部服务可以被外界访问;外界的哪些人可以访问内部的哪些可以访问的服务,以及哪些外部服务可以被内部人员访问。要使一个防火墙有效,所有来自和去往因特网的信息都必须经过防火墙,接受防火墙的检查。防火墙必须只允许授权的数据通过,并且防火墙本身也必须能够免于渗透。防火墙系统一旦被攻击者突破或迂回,就不能提供任何保护了。
7.1.1防火墙基础知识
Internet防火墙是一种装置,它是由软件或硬件设备组合而成,通常处于企业的内部局域网与Internet之间,限制Internet用户对内部网络的访问以及管理内部用户访问外界的权限,它的基本系统模型如图7.1.1所示。换言之,一个防火墙在一个被认为是安全和可信的内部网络和一个被认为是不那么安全和可信的外部网络(通常是Internet)之间提供一个封锁工具。防火墙是一种被动的技术,因为它假设了网络边界的存在,它对内部的非法访问难以有效地控制。因此防火墙只适合于相对独立的网络,例如企业的内部的局域网络等。 Internet
工作站 服务器 工作站 工作站
图7.1.1基本的防火墙系统模型从实现上来看,防火墙实际上是一个独立的进程或一组紧密联系的进程,运行于路由服务器上,控制经过它们的网络应用服务及数据。安全、管理、速度是防火墙的三大要素。防火墙已成为实现网络安全策略的最有效的工具之一,并被广泛地应用到Internet/Intranet 的建设上。
防火墙作为内部网与外部网之间的一种访问控制设备,常常安装在内部网和外部网交流的点上。Internet防火墙是路由器、堡垒主机、或任何提供网络安全的设备的组合,是安全策略的一个部分。如果仅设立防火墙系统,而没有全面的安全策略,那么防火墙就形同虚设。全面的安全策略应告诉用户应有的责任,公司规定的网络访问、服务访问、本地和远地的用户认证、拨入和拨出、磁盘和数据加密、病毒防护措施,以及雇员培训等。所有可能受到网络攻击的地方都必须以同样安全级别加以保护。
防火墙系统可以是路由器,也可以是个人主机、主系统或一批主系统,用于把网络或
子网同那些子网外的可能是不安全的系统隔绝。防火墙系统通常位于等级较高网关或网点与Internet的连接处。
防火墙基本上是一个独立的进程或一组紧密结合的进程,安置在路由器或服务器中来控制经过防火墙的数据。它确保一个单位内的网络与Internet之间所有的 信息均符合该单位的安全方针,这个系统能为管理人员提供对一系列问题的答案:诸如:谁在使用网络?他们在网上做什么?他们什么时间使用过网络?他们上网时去了何处?谁要上网但没有成功?
引入防火墙是因为传统的子网系统会把自身暴露给不安全的服务,并受到网络上其他地方的主系统的试探和攻击。在没有防火墙的环境中,局域网内部上的每个节点都暴露给Internet上的其它主机,此时局域网的安全性要由每个节点的坚固程度来决定,并且安全性等同于其中最弱的节点,子网越大,把所有主机保持在相同安全性水平上的可管理能力就越小,随着安全性的失误和失策越来越普遍,闯入时有发生,这些中有的不是因为受到多方的攻击,而仅仅是因为配置错误、口令不适当而造成的。而防火墙是放置在局域网与外部网络之间的一个隔离设备,它可以识别并屏蔽非法请求,有效防止跨越权限的数据访问。防火墙将局域网的安全性统一到它本身,网络安全性是在防火墙系统上得到加固,而不是分布在内部网络的所有节点上,这就简化了局域网安全管理。
防火墙能提高主机整体的安全性,因而给站点带来了众多的好处。主要表现在:
1. 防止易受攻击的服务
防火墙可以大大提高网络安全性,并通过过滤天生不安全的服务来降低子网上主系统所冒的风险。因此,子网网络环境可经受较少的风险,因为只有经过选择的协议才能通过防火墙。例如,防火墙可以禁止某些易受攻击的服务(如NFS)进入或离开受保护的子网。这样得到的好处是可防护这些服务不会被外部攻击者利用。而同时允许在大大降低被外部攻击者利用的风险情况下使用这些服务。对局域网特别有用的服务如NIS或NFS因而可得到公用,并用来减轻主系统管理负担。
2. 控制访问网点系统
防火墙还有能力控制对网点系统的访问。例如,某些主系统可以由外部网络访问,而其他主系统则能有效地封闭起来,防护有害的访问。除了邮件服务器或信息服务器等特殊情况外,网点可以防止外部对其主系统的访问。
3. 集中安全性
如果一个子网的所有或大部分需要改动的软件以及附加的安全软件能集中地放在防火墙系统中,而不是分散到每个主机中,这样防火墙的保护就相对集中一些,也相对便宜一点。尤其对于密码口令系统或其他的身份认证软件等等,放在防火墙系统中更是优于放在每个Internet能访问的机器上。
4.增强保密,强化私有权
对一些站点而言,私有性是很重要的,使用防火墙系统,站点可以防止finger以及DNS域名服务。
防火墙也能封锁域名服务信息,从而使Internet外部主机无法获取站点名和IP地址。通过封锁这些信息,可以防止攻击者从中获得另一些有用信息。
5.有关网络使用、滥用的记录和统计
如果对Internet的往返访问都通过防火墙,那么,防火墙可以记录各次访问,并提供有关网络使用率的有值的统计数字。如果一个防火墙能在可疑活动发生时发出音响报警,则还提供防火墙和网络是否受到试探或攻击的细节。
采集网络使用率统计数字和试探的证据是很重要的,这有很多原因。最为重要的是可知道防火墙能否抵御试探和攻击,并确定防火墙上的控制措施是否得当。网络使用率统计数字可作为网络需求和风险分析活动的输入。
6.政策执行
防火墙是可提供实施和执行的网络访问政策的工具,可向用户和服务提供访问控制。因此,网络访问政策可以由防火墙执行,如果没有防火墙,这样一种政策完全取决于用户的协作。网点也许能依赖其自己的用户进行协作,但是,它一般不可能,也不依赖Internet用户。
总的说来,防火墙的主要组成部分有:
" 网络政策;
" 先进的验证工具;
" 包过滤;
" 应用网关。
有两级网络政策会直接影响防火墙系统的设计、安装和使用。高级政策是一种发布专用的网络访问政策,它用来定义那些有受限制的网络许可或明确拒绝的服务以及这种政策的例外条件。低级政策描述防火墙实际上如何尽力限制访问,并过滤在高层政策所定义的服务。
服务访问政策应集中与上面定义的Internet专用的使用问题,或许也应集中与所有的外部网络访问问题(即拨入政策以及SLIP或PPP连接)。这种政策应当是整个机构有关保护机构信息资源政策的延伸。要使防火墙取得成功,服务访问政策必须既切合实际,又稳妥可靠,而且应当在实施防火墙前草拟出来。切合实际的政策是一个平衡的政策,既能防护网络免受已知风险,而且仍能使用户利用网络资源。如果防火墙系统拒绝或限制服务,那么,它通常需要有力量的服务访问政策来防止防火墙的访问控制不会受到带针对的修改。只有一个管理得当的稳妥可靠政策才能做到这一点。
防火墙可以实施各种不同的服务访问政策,但是,一个典型的政策可以不允许从Internet 访问网点,但要允许从网点访问Internet。另一个典型政策是允许从Internet进行某些访问,但是只许可访问经过选择的系统,如信息服务器和电子邮件服务器。防火墙常常实施允许某些用户从Internet访问经过选择的内部主系统的服务访问政策,但是,这种访问只是在必要
时,而且只能与先进的验证措施组合时才允许进行。
防火墙设计政策是防火墙专用的。它定义用来实施服务访问政策的规则,一个人不可能在完全不了解防火墙能力和限制以及与TCP/IP相关联的威胁和易受攻击性等问题的真空条件下设计这一政策。防火墙一般实施两个基本设计方针之一:
" 只允许访问特定的服务。
一切未被允许的就是禁止的。基于该准则,防火墙应封锁所有信息流,然后对希望提供的服务逐项开放。这是一种非常实用的方法,可以造成一种十分安全的环境,因为只有经过仔细挑选的服务才被允许使用。其弊端是,安全性高于用户使用的方便性,用户所能使用的服务范围受限制。
" 只拒绝访问特定的服务。
一切未被禁止的就是允许的。基于该准则,防火墙应转发所有信息流,然后逐项屏蔽可能有害的服务。这种方法构成了一种更为灵活的应用环境,可为用户提供更多的服务,其弊病是,在日益增多的网络服务面前,网管人员疲于奔命,特别是受保护的网络范围增大时, 很难提供可靠的安全防护。
如果防火墙采取第一种安全控制的方针,那么,需要确定所有可以被提供的服务以及它们的安全特性,然后,开放这些服务,并将所有其它未被列入的服务排斥在外并禁止访问。如果防火墙采取第二种安全控制的方针,则正好相反,需要确定那些认为是不安全的服务,禁止其访问。而其它服务则被认为是安全的,允许访问。
总的说来,一个好的防火墙系统应具有以下五方面的特性:
(1) 所有在内部网络和外部网络之间传输的数据都必须能够通过防火墙;
(2) 只有被授权的合法数据,即防火墙系统中安全策略允许的数据,可以
通过防火墙;
(3) 防火墙本身不受各种攻击的影响;
(4) 使用目前新的信息安全技术,比如现代密码技术、一次口令系统、智能卡;
(5) 人机界面良好,用户配置使用方便,易管理。系统管理员可以方便地对防火墙进行设置,对Internet的访问者、被访问者。访问协议以及访问方式进行控制。
但是,即使具备这些特性,防火墙还是有它不可避免的缺陷:
(1) 不能防范恶意的知情者。防火墙可以禁止系统用户通过网络连接发送专有的信息,但用户可以将数据复制到磁盘,磁带上带出去。如果入侵者已经在防火墙内部,防火墙是无能为力的。
(2) 防火墙不能防范不通过它的连接。防火墙能够有效防止通过它进行传输信息,然而不能防止不通过它而传输的信息。例如,如果站点允许对防火墙后面的内部系统进行拨号访问,那么防火墙没有办法阻止入侵者进行拨号入侵。
(3) 防火墙几乎不能防范病毒。普通防火墙虽然扫描通过它的信息,但一般只扫描源地址,目的地址和端口号,而不扫描数据的确切内容。
(4) 防火墙不能防备全部的威胁。防火墙被用来防备已知的威胁,但它一般不能防备新的未知的威胁。
7.1.2防火墙体系结构
1.双宿主主机防火墙
双宿主主机(Dual-Homed Host)结构是围绕着至少具有两个网络接口的双宿主主机而构成的。双宿主主机内外的网络均可与双宿主主机实施通信,但内外网络之间不可直接通信,内外部网络之间的IP数据流被双宿主主机完全切断。双宿主主机可以通过代理或让用户直接注册到其上来提供很高程度的网络控制。
双宿主机的结构如图7.1.2所示。它采用主机替代路由器执行安全控制功能,故类似于包过滤防火墙。双宿主机即一台配有多个网络接口的主机,它可以用来在内部网络和外部网络之间进行寻径。如果在一台双宿主机中寻径功能被禁止了,则这个主机可以隔离与它相连的内部网络和外部网络之间的通信,而与它相连的内部和外部网络都可以执行由它所提供的网络应用,如果这个应用允许的话,它们就可以共享数据。这样就保证内部网络和外部网络的某些节点之间可以通过双宿主机上的共享数据传递信息,但内部网络与外部网络之间却不能传递信息,从而达到保护内部网络的作用。它是外部网络用户进入内部网络的唯一通道,因此双宿主机的安全至关重要,它的用户口令控制安全是一个关键。
双宿主主机(具有至少两个网络适配器) 图7.1.2 双宿主机防火墙双宿网关防火墙(Dual-homed Gateway Firewall)的结构如图7.1.3所示。它是一个具有两个网络适配器的主机系统,并且主机系统中的寻径功能被禁止,而对外部网络的服务和访问则由网关上的代理服务器提供。它是一种结构非常简单,但安全性很高的防火墙系统,是对双宿主主机防火墙的一个改进。另外可以把包过滤路由器和双宿网关集成在一起。把包过滤路由器放在外部网络和一个屏蔽子网之间。屏蔽子网用来为外部网络用户提供一些特定的服务, 比如WWW,Gopher, FTP等。这样一来可以利用包过滤路由器的过滤保护双宿网关免受外部的攻击,例如如果禁止外部访问远程登陆到双宿网关,就可以减少外部攻击的危险。这种防火墙拒绝所有的网络服务,包括DNS等,除非应用网关有代理模块的网络服务可以允许。不灵活性是这种防火墙技术的最大缺点。另外网关主机系统的安全是双宿网关安全的关键。
双宿网关
信息服务器图7.1.3 双宿网关防火墙实例
2. 被屏蔽主机
双宿主主机体系结构提供来自多个网络相连的主机的服务,被屏蔽主机体系结构使用一个单独的路由器来提供来自仅仅与内部网络相连的主机的服务,另外被屏蔽主机结构还有一台单独的过滤路由器。这一台路由器的意义就在于强迫所有到达路由器的数据包被发送到被屏蔽主机。这种体系结构中,主要的安全由数据包过滤提供。它的结构如图7.1.4所示。
堡垒主机位于内部网络上。在屏蔽的路由器上的数据包过滤是按这样一种方法设置的:堡垒主机是因特网上的主机能连接到的唯一的内部网络上的系统。即使这样,也仅有某些确定的连接被允许。任何外部的系统试图访问内部的系统或者服务将必须连接到这台主机。因此,堡垒主机需保持更高等级的主机安全。
防火墙
路由器 工作站 工作站 服务器(堡垒主机) 工作站 图7.1.4 被屏蔽主机结构数据包过滤也允许堡垒主机开放可允许的连接到外部世界。在屏蔽的路由器中数据包过滤配置可以按下列之一执行:
" 允许其他的内部主机为了某些服务开放到因特网上的主机的连接;
" 不允许来自内部主机的所有连接;
" 用户可以混合使用以上两种配置。某些服务可以被允许直接经由数据包过滤,其他服务可以被允许仅仅间接地经由代理。
被屏蔽主机防火墙的配置:被屏蔽主机向外部或内部的客户程序提供网络服务。比如,它可能是邮件服务器、Usenet新闻服务器和本站点的DNS服务器等。它还有可能是打印服务器或文件服务等。正是因为被屏蔽主机担当着如此众多的重要角色,因此,它的安全配置尤其重要,关系到整个防火墙的安全。
考虑不同的Internet服务中被屏蔽主机的配置:
(1) Telnet服务
通常对Telnet服务的过滤应该通过包过滤器来实现。通过被屏蔽主机上的代理来实现对Telnet服务的过滤虽然也可以,但是代价昂贵。尤其是在被屏蔽主机上提供Telnet登录服务简直就是给黑客的攻击敞开了大门,是非常不可取的。
(2) Ftp服务
如果内部网的用户支持Ftp的被动模式,则就可以通过包过滤器方便、安全地提供Ftp服务。如果想要支持普通的Ftp服务。就必须在被屏蔽主机上建立代理。这里应该注意的是,最好禁止到被屏蔽主机上的匿名Ftp登录。
(3) SMTP服务
进入的邮件应当通过DNS MX记录被引导到被屏蔽主机上,外出的邮件也应该通过被屏蔽主机发出。让进入的邮件直接到达内部主机是不合适的。
(4) NNTP服务
可以把另一台内部主机当成新闻服务器,并允许NNTP直接指向它,或是把被屏蔽主机作为新闻服务器。这取决于用户基于新闻服务的负载需求及重要性考虑。
(5) HTTP服务
HTTP服务可以通过包过滤来提供或通过代理服务器间接实现。性能更好的实现方式是通过带缓冲的代理服务器(CERN HTTP服务器)来间接地提供服务。
(6) DNS服务
主DNS服务器应当位于被屏蔽主机上,而且内部网所在域应有一个外部的次(secondary)DNS服务器,这里不需要任何DNS信息隐藏。如果被屏蔽主机是内部和外部的主DNS服务器的话,是不能隐藏任何信息的。
一般说来,路由器只提供非常有限的服务,所以保卫路由器比保卫主机更容易实现,从这一点可以看出,被屏蔽主机结构能提供比双宿主主机更好的安全性和可用性。
但是,如果侵袭者设法侵入堡垒主机,则在堡垒主机和其余内部主机之间没有任何保护网络安全的东西。路由器同样会出现这样的问题,如果路由器被损害,整个网络对侵袭者是开放的。因此,被屏蔽子网体系结构变得日益普及。
3. 被屏蔽子网
在被屏蔽主机结构中,堡垒主机最容易受到功击。而且内部网对堡垒主机是完全公开的,入侵者只要破坏了这一层的保护,那么入侵也就大功告成了。被屏蔽子网结构就是在被屏蔽主机结构中再增加一台路由器的安全机制,这台路由器的意义就在于它能够在内部网和外部网之间构筑出一个安全子网,从而使得内部网与外部网之间有两层隔断。要想侵入用这种体系结构构筑的内部网络,侵袭者必须通过两个路由器,即使侵袭者已设法侵入堡垒主机,他将仍然必须通过内部路由器。
一些站点还可以在外部与内部网络之间建立分层系列的周边网。信任度低的和易受侵袭的服务被放置在外层的周边网上,远离内部网络,在周边网络中设置堡垒主机,堡垒主机是运行代理服务的一台安全性很高的计算机,它是内部网络和外部网络的连接点。这样增加了内部网络的安全性,即使侵袭者侵入外层周边网的机器,由于在外层周边网和内部网络之间有了附加安全层,他将难于成功地侵袭内部的机器。而且由于外部网络和内部网络不能直接通信,防火墙系统管理方便,系统安全性高,但是对子网中堡垒主机安全性要求高。屏蔽子网结构图7.1.5所示。
被屏蔽子网防火墙系统用了两个包过滤路由器和一个堡垒主机。这个防火墙系统建立的是最安全的防火墙系统,因为在定义了被屏蔽子网防火墙系统网络后,它支持网络层和应用层安全功能。网络管理员将堡垒主机,信息服务器,Modem 组,以及其他公用服务器放在周边网中。周边网很小,处于Internet和内部网络之间。通过被屏蔽子网防火墙系统网络直接进行信息传输是严格禁止的。
对于进来的信息,外面的路由器用于防范通常的外部攻击(如源地址欺骗和源路由攻击),并管理Internet到周边网的访问。它只允许外部系统访问堡垒主机(还可能有信息服务器)。里面的这个路由器提供第二层防御,只接受源于堡垒主机的数据包,负责的是管理周边网到内部网络的访问。
对于去往Internet的数据包,里面的路由器管理内部网络到周边网络的访问。它允许内部系统只访问堡垒主机(还可能有信息服务器)。外面的路由器上的过滤规则要求使用代理服务(只接受来自堡垒主机的去往Internet的数据包)。
如果入侵者仅仅侵入到周边网络中的堡垒主机,他只能偷看到周边中的信息流,而看不到内部网的信息流,因此即使堡垒主机受到损害也不会危及内部网的安全。
内部路由器(又称阻塞路由器)位于内部网和周边之间,用于保护内部网不受周边因特网的侵害。它完成防火墙的大部分的过滤工作,在包过滤规则认为安全的前提下,它允许某些站点的服务在内外网之间互相传送。 防火墙
外部路由器
堡垒主机 内部路由器
周边网 内部主机 内部主机 服务器 内部主机图7.1.5 被屏蔽子网防火墙系统外部路由器的一个主要功能是保护周边上的主机,但这种保护不是很必要的,因为这主要是通过堡垒主机来进行安全保护的。外部路由器还可以防止部分IP欺骗,因为内部路由器分辨不出一个声称从非军事区来的数据包是否真的从非军事区来,而外部路由器很容易分辨出真伪。在堡垒主机上,可以运行各种各样的代理服务器。
采用了屏蔽子网体系结构的堡垒主机很坚固,不易被入侵者控制,万一堡垒主机被控制,入侵者仍然不能直接侵袭内部网络,内部网络仍受到内部过滤路由器的保护。
如果没有周边网,那么入侵者控制了堡垒主机后就可以监听整个内部网络的对话。把堡垒主机放在周边网络上,即使入侵者控制了堡垒主机,他所能侦听到的内容是有限的。即只能侦听到周边网络的数据,而不能侦听到内部网上的数据。内部网络上的数据包虽然在内部网上是广播式的,但内部过滤路由器会阻止这些数据包流入周边网络。
4.防火墙体系结构的其他形式
(1) 将屏蔽子网结构中的内部路由器和外部路由器合并
只有用户拥有功能强大并且很灵活的路由器时才能将一个网络的内部路由器和外部路由器合并。这时用户仍有周边网连接在路由器的一个接口上,而内部网络连接在路由器的另一个接口上
(2) 合并屏蔽子网结构中堡垒主机与外部路由器
这种结构是由双宿堡垒主机来执行原来的外部路由器的功能。双宿主机进行路由会缺乏专用路由器的灵活性及性能,但是在网速不高的情况下,双宿主机可以胜任路由的工作。所以这种结构同屏蔽子网结构相比没有明显的新弱点。但堡垒主机完全暴露在因特网上,因此要更加小心的保护它。
(3) 使用多台堡垒主机
出于对堡垒主机性能,冗余和分离数据或者分离服务考虑,用户可以用多台堡垒主机构筑防火墙,比如我们可以让一台堡垒主机提供一些比较重要的服务(SMTP服务,代理服务等),而让另一台堡垒主机出来由内部网向外部网提供的服务(如匿名Ftp服务)等。这样,外部网用户对内部网的操作就不会影响内部网用户的操作。即使在不向外部网提供服务的情况下,也可以使用多台堡垒主机以实现负载平衡,提高系统效能。
(4) 使用多台外部路由器
连多个外部路由器到这样的外部网路上去不会带来明显的安全问题。外部路由器受损害的机会增加了,但在一个外部路由器受损害不会带来特别的威胁。
(5) 使用多个周边网络
用户还可以使用多个周边网络来提供冗余,设置两个(或两个以上)的外部路由器,两个周边网络,和两个内路由器可以保证用户与因特网之间没有单点失效的情况,加强了网络的安全和可用性。
7.1.3 防火墙的设计
1. 数据包过滤
包过滤防火墙一般作用在网络层(IP层),故也称网络层防火墙(Network Lev Firewall)或IP过滤器(IP filters)它是对进出内部网络的所有信息进行分析,并按照一定的安全策略(信息过滤规则)对进出内部网络的去处进行限制,允许授权信息通过,拒绝非授权信息通过。信息过滤规则是以其所收到的数据包头信息为基础,比如IP数据包源地址IP数据包目的地址、封装协议类型(TCP、UDP、ICMP等)、TCP/IP源端口号、TCP/IP目的端口号、ICMP报文类型等。当一个数据包满足过滤规则,则允许此数据包通过,否则拒绝此包通过,相当于此数据包所要到达的网络物理上被断开,起到了保护内部网络的作用。包过滤的核心就是安全策略即包过滤算法的设计。采用这种技术的防火墙优点在于速度快、实现方便,但安全性能差,且由于不同操作系统环境下TCP和UDP端口号所代表的应用服务协议类型有所不同,故兼容性差。
包过滤型防火墙往往可以用一台过滤路由器来实现,对所接收的每个数据包做允许拒绝的决定。路由器审查每个数据包以便确定其是否与某一条包过滤规则匹配。过滤规则基于可以提供给IP转发过程的包头信息。
包头信息中包括IP源地址、IP目的地址、内装协议(ICP、UDP、ICMP、或IP Tunnel)、TCP/UDP目标端口、ICMP消息类型、TCP包头中的ACK位。包的进入接口和输出接口如果有匹配,并且规则允许该数据包通过,那么该数据包就会按照路由表中的信息被转发。如果匹配并且规则拒绝该数据包,那么该数据包就会被丢弃。如果没有匹配规则,用户配置的缺省参数会决定是转发还是丢弃数据包。
包过滤路由器使得路由器能够根据特定的服务允许或拒绝流动的数据,因为多数的服务收听者都在已知的TCP/UDP端口号上。例如,Telnet服务器在TCP的23号端口上监听远地连接,而SMTP服务器在TCP的25号端口上监听连接。为了阻塞所有进入的Telnet连接,路由器只需简单的丢弃所有TCP端口号等于23的数据包。为了将进来的Telnet连接限制到内部的数台机器上,路由器必须拒绝所有TCP端口号等于23并且目标IP地址不等于允许主机的IP地址的数据包。
(1) 过滤路由器型防火墙的优点
1) 处理包的速度比较快,过滤路由器为用户提供了一种透明的服务,用户不用改变客户端程序或改变自己的行为。
2) 实现包过滤几乎不再需要费用(或极少的费用),因为这些特点都包含在标准的路由器软件中。由于Internet访问一般都是在WAN接口上提供,因此在流量适中并定义较少过滤器时对路由器的性能几乎没有影响。
3) 包过滤路由器对用户和应用来讲是透明的,所以不必对用户进行特殊的培训和在每台主机上安装特定的软件。
(2) 包过滤路由器型防火墙的缺点
1)防火墙的维护比较困难,定义数据包过滤器会比较复杂,因为网络管理员需要对各种Internet服务、包头格式、以及每个域的意义有非常深入的理解。
2)对于外部主机伪装其他可信任的外部主机IP的IP欺骗不能阻止。
3)任何直接经过路由器的数据包都有被用做数据驱动式攻击的潜在危险。我们已经知道数据驱动式攻击从表面上来看是由路由器转发到内部主机上没有害处的数据。该数据包括了一些隐藏的指令,能够让主机修改访问控制和与安全有关的文件,使得入侵者能够获得对系统的访问权。
4)一些包过滤网关不支持有效的用户认证。因为IP地址是可以伪造的,因此如果没有基于用户的认证,仅通过IP地址来判断是不安全的。
5)不可能提供有用的日志,或根本就不提供。
6)随着过滤器数目的增加,路由器的吞吐量会下降。可以对路由器进行这样的优化:抽取每个数据包的目的IP地址,进行简单的路由表查询,然后将数据包转发到正确的接口上去传输。如果打开过滤功能,路由器不仅必须对每个数据包作出转发决定,还必须将所有的过滤器规则施用给每个数据包。这样就消耗CPU时间并影响系统的性能。
7)IP包过滤器可能无法对网络上流动的信息提供全面的控制。包过滤路由器能够允许或拒绝特定的服务,但是不能理解特定服务的上下文环境和数据。
所以包过滤防火墙一般用在下列场合:
" 机构是非集中化管理。
" 机构没有强大的集中安全策略。
" 网络的主机数非常少。
" 主要依赖于主机安全来防止入侵,但是当主机数增加到一定的程度的时候,仅靠主机安全是不够的。
" 没有使用DHCP这样的动态IP地址分配协议。
(3) 过滤规则制定
1) 按地址过滤
最简单的数据包过滤结构是按地址过滤。这种方法的过滤要用户限制基于数据包源或目的地址的数据包流,而不考虑包括什么协议。这样过滤能用来允许特定的外部主机与特定的内部主机对话。例如,阻止侵袭者注入伪造的数据包(如伪造源IP地址)到用户的网络中去。
例如,如果用户想要阻止引入有伪造源地址的数据包,用户就可以做这样的规定:
规则 方向 源地址 目的地址 动作
A 入站 内部 任意 拒绝
因为内部地址只可能是出站方向,所以出现表中所示情况表明伪造源地址,从而加以拒绝。
规则A说明包过滤防火墙可以帮助用户过滤掉一些伪造源地址的攻击,但如果一个攻击者声称是另一个不同的外部主机,这个规则就无能为力。
按地址过滤最大的好处就是可以将一些不希望内部用户登陆的站点屏蔽掉,例如黄色网站,反动言论网站等。
按地址过滤的另一个应用就是防止内部网络中的某主机对外部网络中一目标主机进行拒绝服务攻击(DoS)。
拒绝服务(Denial of Service,简称DOS),是一种简单的破坏性攻击,通常攻击者利用TCP/IP协议中的某个弱点,或者系统存在的某些漏洞,对目标系统发起大规模的进攻,致使攻击目标无法对合法用户提供正常的服务,攻击模型如图7.1.6所示。
大量数据包 攻击方 攻击方内部网络 Internet 被攻击目标系统
防火墙(路由器) 图7.1.6 拒绝服务攻击示意图在对目标系统的攻击中,必须伪造源地址,目标主机对伪造的源地址是不能识别的,因为它并不能判断这些数据包的真正来源。也不知道其实来自同一台主机,但攻击者的出口路由器却能发现,因为一般伪造源地址都是随机的,不可能都选用攻击者所在内部网络主机的IP地址,所以,出口路由器能发现一个出站方向的数据包源地址居然是外部网络的主机地址。这台路由器上的包过滤防火墙就可以加一个规则:
规则 方向 源地址 目的地址 动作
B 出站 外部 任意 拒绝过滤掉这些数据包,从而阻止单机的DOS攻击。但对于象DDOS(即分布式拒绝服务攻击)这样的多点攻击,包过滤防火墙则无能为力。 2)按服务过滤
按地址对数据包过滤并不能消除所有的安全隐患,或者是,虽然消除了这些安全隐患,却限制了很多的服务。譬如,我们只想屏蔽某台外部主机对内部主机的Telnet服务,而该外部主机其他的服务是允许的,用地址过滤的办法是无法做到这一点的,要么禁止该主机的一切服务,要么屏蔽一切该主机的一切服务。在这样的情况下,可以使用按服务过滤。
如果不希望自己内网主机对外部主机特定服务的请求,例如远程登录(Telnet)。或者屏蔽自己内部主机对外的服务,则可以做如下规定:
规则集C(禁止内部主机对外部主机Telnet)
规则 方向 源地址 目的地址 包类型 源端口 目标端口 动作
C 出站 内部 外部 TCP 任意(>1023) 23 拒绝规则集D(禁止外部主机对内部主机telnet)
规则 方向 源地址 目的地址 包类型 源端口 目标端口 动作
D 入站 外部 内部 TCP 23 任意(>1023) 拒绝规则集E(禁止telnet)
规则 方向 源地址 目的地址 包类型 源端口 目标端口 动作
E 出站 内部 任意 TCP 任意(>1023) 23 拒绝
入站 任意 内部 TCP 23 任意(>1023) 拒绝 3)综合过滤
更多的时候,访问限制的规则比以上两种情况要复杂得多,譬如,需要对某台特定主机而不是所有主机的特定服务做限制,对与该主机的其他服务,或着其他主机的这种服务是允许的,那么就需要做综合的过滤。规则集F(禁止某外部主机host对内部网络提供的telnet服务)
规则 方向 源地址 目的地址 包类型 源端口 目标端口 动作
F 出站 内部 host TCP 任意(>1023) 23 拒绝
入站 host 内部 TCP 23 任意(>1023) 拒绝
2 应用层防火墙
在应用层实现防火墙,方式多种多样,下面是几种应用层防火墙的设计实现。
(1)代理与代管服务
¢ 应用代理服务器(Application Gateway Proxy)
在网络应用层提供授权检查及代理服务。当外部某台主机试图访问受保护网络时,必须先在防火墙上经过身份认证。通过身份认证后,防火墙运行一个专门为该网络设计的程序,把外部主机与内部主机连接。在这个过程中,防火墙可以限制用户访问的主机、访问时间及访问的方式。同样,受保护网络内部用户访问外部网时也需先登录到防火墙上,通过验证后,才可访问。
应用网关代理的优点是既可以隐藏内部IP地址,也可以给单个用户授权,即使攻击者盗用了一个合法的IP地址,也通不过严格的身份认证。因此应用网关比报文过滤具有更高的安全性。但是这种认证使得应用网关不透明,用户每次连接都要受到认证,这给用户带来许多不便。这种代理技术需要为每个应用写专门的程序。
¢ 回路级代理服务器
即通常意义的代理服务器,它适用于多个协议,但不能解释应用协议,需要通过其他方式来获得信息,所以,回路级代理服务器通常要求修改过的用户程序。
套接字服务器(Sockets Server)就是回路级代理服务器。套接字(Sockets)是一种网络应用层的国际标准。当受保护网络客户机需要与外部网交互信息时,在防火墙上的套服务器检查客户的User ID、IP源地址和IP目的地址,经过确认后,套服务器才与外部的服务器建立连接。对用户来说,受保护网与外部网的信息交换是透明的,感觉不到防火墙的存在,那是因为网络用户不需要登录到防火墙上。但是客户端的应用软件必须支持 "Socketsified API",受保护网络用户访问公共网所使用的IP地址也都是防火墙的IP地址。
¢ 代管服务器
代管服务器技术是把不安全的服务如FTP、Telnet等放到防火墙上,使它同时充当服务器,对外部的请求作出回答。与应用层代理实现相比,代管服务器技术不必为每种服务专门写程序。而且,受保护网内部用户想对外部网访问时,也需先登录到防火墙上,再向外提出请求,这样从外部网向内就只能看到防火墙,从而隐藏了内部地址,提高了安全性。
(2)地址扩充与地址保护
¢ 网络地址转换器(NAT Network Address Translate)
当受保护网连到Internet上时,受保护网用户若要访问Internet,必须使用一个合法的IP地址。但由于合法Internet IP地址有限,而且受保护网络往往有自己的一套IP地址规划(非正式IP地址)。网络地址转换器就是在防火墙上装一个合法IP地址集。当内部某一用户要访问Internet时,防火墙动态地从地址集中选一个未分配的地址分配给该用户,该用户即可使用这个合法地址进行通信。同时,对于内部的某些服务器如Web服务器,网络地址转换器允许为其分配一个固定的合法地址。外部网络的用户就可通过防火墙来访问内部的服务器。这种技术既缓解了少量的IP地址和大量的主机之间的矛盾,又对外隐藏了内部主机的IP地址,提高了安全性。
¢ 隔离域名服务器(Split Domain Name Server )
这种技术是通过防火墙将受保护网络的域名服务器与外部网的域名服务器隔离,使外部网的域名服务器只能看到防火墙的IP地址,无法了解受保护网络的具体情况,这样可以保证受保护网络的IP地址不被外部网络知悉。
(3)邮件技术(Mail Forwarding)
当防火墙采用上面所提到的几种技术使得外部网络只知道防火墙的IP地址和域名时,从外部网络发来的邮件,就只能送到防火墙上。这时防火墙对邮件进行检查,只有当发送邮件的源主机是被允许通过的,防火墙才对邮件的目的地址进行转换,送到内部的邮件服务器,由其进行转发。
3.代理服务
对于防火墙来说,如果它的用户不能访问Internet,与其连接就没有意义。但从另一个角度来说,如果在Internet和用户站点的每一台机器之间都有通道可以自由访问,则在与Internet连接时将没有安全感。因此,有时我们不得不采用一些折中的办法。最明显的就是将内部所有的用户通过单一主机访问Internet。这就是代理服务。
代理只对一个内部网络的某个主机或某几个主机提供Internet访问服务,而看上去却是对整个网络的所有主机提供服务。具有访问功能的主机就充当没有访问入口的那些主机的代理来完成那些主机想要做的事。
代理不要求任何硬件,但对于大部分服务它要求特殊的软件,安装了一个特殊协议或一组协议的代理服务器运行在一个双宿主主机或一个堡垒主机上,这个代理服务器判断来自自己用户的要求并决定哪个可以传送,哪个可以忽略。对于许可的要求,代理服务器就会代表用户与真正的服务器交互而将要求从用户传给真实服务器,也将真实服务器的应答传给用户。
对于用户,与代理服务器交谈就像与真实服务器交谈一样,对于真实服务器,它只是与一个代理服务器交谈,事实上它也不能判断与自己交谈的是一个代理服务器而不是一台普通主机,它也不能知道真正用户的存在。
使用代理的优点
(1) 代理服务允许用户直接进入到Internet服务中。
在传统双宿主主机方式中,用户要想使用因特网的服务首先要登录到双宿主主机上去,对于用户,这样会很不方便,以至于有些用户可能用其他方式寻找Internet通道,例如通过拨号上网,这对防火墙的安全是重大隐患;但是另一方面,这种双宿主主机接入方式对于双宿主主机来说,很多帐户的管理也将使系统变得更为复杂。
(2) 代理服务优化日志服务。
代理服务允许日志服务以特殊和有效的方式来进行。例如,一个FTP代理服务器只记录已发出的命令和服务器接收到的回答,并以此来代替记录所有传送的数据。
使用代理的缺点
(1) 代理服务落后于非代理服务。
尽管一些简单的服务可以找到其代理软件,但是对于比较新的服务有时很难找到可靠的代理软件。通常代理服务器与服务之间有一个明显的滞后。在没有合适代理软件可用之前,一些服务只能放置在防火墙之外,这样就有了很多潜在的危险。
(2) 对于每项代理可能要求不同的代理服务器。
有时用户不得不为每个协议设置专门的代理服务器。因为代理服务器必须理解协议以便判断什么该允许什么该拒绝,因此选择不同的代理服务器对用户来说是一件很复杂的事情。
(3) 代理服务器可能会限制用户或过程。
一般情况下,代理服务器会对用户和过程进行限制,由于这种限制,代理应用就不能象非代理那样灵活。
7.2 入侵检测技术
7.2.1 入侵检测的任务
计算机网络安全应提供保密性、完整性以及抵抗拒绝服务的能力,但是由于联网用户的增加,很多系统都或多或少地受到入侵者的攻击。这些入侵者利用操作系统或者应用程序的缺陷企图破坏系统。对付这些入侵者的攻击,可以要求所有的用户确认并验证自己的身份,并使用严格的访问控制机制,还可以用各种密码学方法对数据提供保护,但是这并不完全可行,而且访问控制和保护模型本身也存在问题,这里有以下方面的因素。
1.口令。很多人使用他们自己的名字,孩子的名字,配偶的名字,宠物的名字,或者小车的型号做口令。也有的用户使用"password"或者简单到什么也没有。这给出了侵入者的进行攻击提供了方便,如果侵入者使用这些猜测进行攻击失败,侵入者可以试图用"字典攻击"方法,尝试字典中的单词的每种可能。字典攻击可以利用重复的登陆或者收集加密的口令并且试图同加密后的字典中单词匹配 。侵入者通常利用一个英语字典或其他语言的字典。他们也使用附加的类字典数据库,比如名字和常用的口令。强力攻击(Brute force attacks)同字典攻击类似,侵入者可能尝试所有的字符组合方式。一个4个由小写字母组成的口令可以在几分钟内被破解(大约的共有50万个可能的组合)。如果你可以每秒试100万种组合,一个较长的由大小写字母组成的口令,包括数字和标点(10万亿种可能的组合)可以在一个月内破解,。如果口令已经被破解,那么访问控制措施就不能够阻止受到危害的授权用户的信息丢失或者破坏。
2.静态安全措施不足以保护安全对象属性。通常,在一个系统中,静态的安全特性(例如不进行动态预测的防火墙)可能过于简单并且不充分,或者是系统过度地限制用户。例如,静态技术未必能阻止违背安全策略造成浏览数据文件;而强制访问控制(例如所有用户都不可以使用Telnet)仅允许用户访问具有合适的通道的数据,这样造成系统使用麻烦。因此,一种动态的方法如行为跟踪对检测和尽可能阻止安全突破是必要的。
由于蓄意的未授权尝试有可能造成非授权访问信息、泄露信息、系统不可靠或不可用,因此必须设计系统的安全机制以保护系统资源与数据以防恶意入侵,但是企图完全防止安全问题的出现在目前看来是不现实的。我们可以尽力检测出这些入侵以便在以后修补这些漏洞。
入侵检测作为安全技术主要任务为:
¢ 识别入侵者
¢ 识别入侵行为
¢ 检测和监视已成功的安全突破
¢ 为对抗措施及时提供重要信息
从这个角度看待安全问题,入侵检测非常必要,它将弥补传统安全保护措施的不足。入侵监测系统处于防火墙之后对网络活动进行实时检测。许多情况下,由于可以记录和禁止网络活动,所以入侵监测系统是防火墙的延续。它们可以和防火墙和路由器配合工作。例如,入侵检测系统可以重新配置来禁止从防火墙外部进入的恶意流量。
入侵监测系统扫描当前网络的活动,监视和记录网络的流量,根据定义好的规则来过滤从主机网卡到网线上的流量,提供实时报警。大多数的入侵监测系统可以提供关于网络流量非常详尽的分析。它们可以监视任何定义好的流量。很多系统对FTP,HTTP和Telnet流量都有缺省的设置,还有其它的流量像NetBus,本地和远程登录失败等等。你也可以自己定制策略。如果你定义了策略和规则,便可以获得FTP,SMTP,Telnet和任何其它的流量。这种规则有助于你追查该连接和确定网络上发生过什么,以及现在正在发生什么。这些程序在你需要确定网络中策略实施的一致性情况时是非常有效的工具。
7.2.2入侵检测原理
入侵企图或威胁可以被定义为未经授权蓄意尝试访问信息、篡改信息、使系统不可靠或不能使用。或者是只有关试图破坏资源的完整性、机密性及可用性的活动。一般说来,按照入侵者的角度,我们可以将入侵分为六种类型:
" 尝试性闯入(Attempted break-in);
" 伪装攻击(Masquerade attack);
" 安全控制系统渗透(Penetration of the security control system);
" 泄露(Leakage);
" 拒绝服务(Denial of service);
" 恶意使用(Malicious use)。
这种分类的方法是根据入侵方法的特征,它对检测入侵很有帮助。
IDES模型
最早被提出的入侵检测模型IDES,如图7.2.1所示。
实时信息
添加新规则 规则匹配
图7.2.1 IDES 入侵检测模型 这个模型中,主体要对客体访问必须通过一个安全监控器,该模型独立于任何特殊的系统和应用环境,提供了一个通用的入侵检测专家系统框架,简称IDES模型。它能够检测出黑客入侵、越权操作及非正常使用计算机系统的行为。该模型基于这样的假设:计算机安全的入侵行为可以通过检查一个系统的审计记录、从中辨识异常使用系统的入侵行为。IDES模型有主体(subject)、客体(object)、审计记录(audit records)、参数(profile)、异常记录(anomaly records)和活动规则(activity rules)六部分组成。这六个部分的具体情况如下。
1.主体是指系统操作中的主动发起者,例如计算机操作系统的进程、网络的服务连接等。客体是指系统中被操作的对象,如文件系统、网络服务端接口等。值得说明的是主体和客体有时是相互转变,例如操作系统进程A,当去访问文件B时,进程A是主体;而从进程创建者的角度来看,则进程A是客体。因此,模型中的审计数据的对象是在不断的变化,这取决于入侵检测系统的审计策略。
2.客体指的是系统所管理的资源,如文件等。
3.审计数据指的是主体(subject)对客体(object)的实施操作时,系统产生的数据,如用户注册、命令执行和文件访问等。IDES审计记录的格式由六元组构成:
记录中主体是本次操作的发起者,客体是本次操作的承受者。异常情况用来描述主体的本次操作后的返回值及错误信息, 资源使用情况用来统计本次操作的资源使用情况, 操作时间用来记录本次操作发生的时间。譬如用户A在晚上7点执行了程序ftp,占用CPU时间是39秒,则审计记录的格式表示为〈A,execute,ftp.exe,no,CPU(0:0:39),19:00〉。一般说来对某一个用户或某一个文件仅做一次审记记录是很少见的,通常的情况是连续审计记录对在线检测用户的行为更有用,例如下面的审计记录能够很好的反映一个时间段中某个文件在被操作过程中是否发生异常,或者某个用户在对文件的操作中是否出现异常情况:
〈A,read,file1,no,cpu(00:01),14:00〉
〈B,read,file1,no,cpu(00:01),14:02〉
〈C,read,file1,no,cpu(00:01),14:03〉
〈D,read,file1,no,cpu(00:01),14:06>
〈A,read,file1,no,cpu(00:01),14:00〉
〈A,write,file2,no,cpu(00:03),14:02〉
〈A,execute,file3,no,cpu(00:01),14:05〉
〈A,write,file1,no,cpu(00:01),14:07>
这些记录表明许多不同的用户试图在访问系统中的文件,或者是同一用户访问系统中的各个文件,这样可以让管理员去调查异常事件发生的原因。
4.系统参数是IDES模型用来刻划主体对客体的行为,并使用随机变量(metrics)和统计模型来定量描述观测到主体对客体的行为活动特征。系统参数定义三种类型变量:
① 事件记数器(Event Counter):简单地记录特定事件的发生次数。
② 间隔计时器(Interval Timer):记录特定事件此次发生和上次发生之间的时间间 隔。
③ 资源计量器(Resource Measure):记录某个时间内特定动作所消耗的资源量。
设xi是随机变量x从审计记录中观测到的n个值,其中i=1,2,…,n然后选择适当的统计模型,IDES就能判断新观测到的值 xn+1 是否异常。而统计模型对这个参数x的分布是未知的,有关x的所有的知识都来自于审计记录。IDES用到了几种统计模型。一般情况下,计算机中的参数常被用作组成部分,典型的信息有注册系统频度、命令执行参数、文件访问等几种,系统参数的结构由10部分组成,即
Variable-Name(变量名称):识别系统参数的标志。
Action-Pattern(动作模式):用来匹配审计记录中的零个或多个动作的模式。
Exception-Pattern(例外模式):用来匹配审计记录中的资源使用的模式。
Resource-Usage- Pattern(资源使用模式):用来定义一种特定的变量和统计模型。
Period:测量的间隔时间或者取样时间。
Variable-Type:一种抽象的数据类型,用来匹配审计记录中的主体的模式,识别系统参数的标志。
Threshold(门槛,阈值):统计测试中有异常的参数值。
Subject-Pattern(主体模式):用来匹配审计记录中的主体的模式,识别系统参数的标志。
Object-pattern(客体模式):用来匹配审计记录中的客体模式,识别系统参数的标志。
Value:当前观测值和统计模式所用的参数值,例如平均值和标准差模型中这些参数可能是变量和或者变量的平方和。
系统参数格式如下所示:
〈Variable-Name,Action-Pattern,Exception-Pattern,Reaource-Usage-pattern,Period,Variable-Type,Threshold,Subject-pattern,Object-Pattern,Value〉
7.2.3入侵检测方法
从检测入侵的方法来分,可以分为异常检测和误用入侵检测,下面分别讨论这两种检测方法的原理和他们之间的性能比较。
一、异常入侵检测技术
异常检测指的是根据非正常行为(系统或用户)和使用计算机资源非正常情况检测出入侵行为。例如,如果用户A早上8点钟到下午5点钟之间在办公室使用计算机,则他在晚上使用办公室计算机是异常的,就有可能是入侵;用户B总是在下班后登录到公司的终端服务器或是在深夜时来自B的账号远程登录都可能是不正常的。异常检测试图用定量方式描述常规的或可接受的行为,以标记非常规的,潜在的入侵行为。这种非常规的,潜在的入侵行为我们可以定义为"威胁"。
典型的威胁模型将威胁分为外部闯入、内部渗透和不当行为三种类型。并使用这种分类方法开发了一个安全监视系统,可检测用户的异常行为。
外部闯入指的是未经授权计算机系统用户的入侵;
内部渗透是指已授权的计算机用户访问未经授权的数据;
不当行为指的是用户虽经授权,但对授权数据和资源的使用不合法或滥用授权。 入侵行为(入侵活动) 异常行为(异常活动) 图7.2.2 异常活动集与入侵活动集之间的关系异常入侵检测的主要前提是入侵活动作为异常活动的子集。考虑这种情况,若外部人闯入计算机系统,尽管没有危及用户资源使用的倾向和企图,可是这存在一种入侵的可能性,还是将他的行为当作异常处理。这样做似乎合情合理。但是,入侵性活动常常是由单个活动组合起来执行,单个活动却与异常性独立无关。异常活动集与入侵活动集之间的关系如图7.2.2所示。理想的情形是,异常活动集同入侵性活动集是一样的。这样,识别所有的异常活动恰恰正是识别了所有的入侵性活动,结果就不会造成错误的判断。可是,入侵性活动并不总是与异常活动相符合。这里存在四种可能性,每种情况的概率都不为零。
" 入侵性而非异常。活动具有入侵性却因为不是异常而导致不能检测到,这时候造成漏检,结果就是IDS不报告入侵。
" 非入侵性且是异常的。活动不具有入侵性,而因为它是异常的,IDS报告入侵,这时候造成虚报。
" 非入侵性非异常。活动不具有入侵性,IDS没有将活动报告为入侵,这属于正确的判断。
" 入侵且异常。活动具有入侵性并因为活动是异常,IDS将其报告为入侵。
异常入侵要解决的问题就是构造异常活动集并从中发现入侵性活动子集。异常入侵检测方法依赖于异常模型的建立,不同模型就构成不同的检测方法。异常检测通过观测到的一组测量值偏离度来预测用户行为的变化,然后作出决策判断的检测技术。
1. 统计异常检测方法
统计异常检测方法根据异常检测器观察主体的活动,然后产生描述这些活动行为的参数。每一个参数保存记录主体当前某种行为,并定时地将当前的参数与存储的参数合并。通过比较当前的参数与已存储的参数判断异常行为,从而检测出网络入侵。下面以IDES入侵检测系统为例来说明一般统计异常检测方法处理的过程。设M1, M2, …, Mn为参数集的特征变量,这些变量可以是CPU的使用、I/O的使用、使用地点及时间,邮件使用,文件访问数量,网络会话时间等。用S1, S2, …, Sn分别表示参数集中变量M1, M2, …, Mn的异常测量值。这些值表明了异常程度,若Si的值越高,则表示Mi异常性就越大。将这些异常测量值的平方后加权计算得出参数异常值:
a1S12+a2S22+…+anSn2, ai>0
这里ai表示参数与变量Mi 相关的权重,∑ai=1。一般而言,变量M1, M2, …, Mn不是相互独立,需要更复杂的函数处理其相关性。异常性测量值仅仅是数字,没有明确的理论根据支持那样处理方式。例如,使用多个独立的异常性变量作为结合的依据,理论上概率计算是正确的。但是,异常性测量和贝叶斯概率计算的关系并不是很清晰。常见的几种测量类型如下。
¢ 活动强度测量(Activity Intensity Measures):描述活动处理速度。通常用作检测突发性行为,而检测不出这种长时期的平均行为效果。
¢ 审计记录分布测量(Audit Record Distribution Measures):描述最近审计记录中所有活动类型分布状况。如特定的用户在整个系统使用中文件访问和I/O活动分布。
¢ 类型测量(Categorical Measures):描述特定的活动在各种类型分布状况。如在系统中,从各个物理位置来的远程登录相关频度,每个邮件发送者、编译器、Shell、编辑器的相关使用。测量关注的是活动的出现的次数多少。
¢ 顺序测量(Ordinal Measures):描述活动的输出结果,以数字值来表示。如特定的用户CPU和I/O使用总量。
统计异常检测方法的有利之处是的应用的技术方法在统计学得到很好的研究。但是这种方法有以下几点不利。
¢ 统计测量对事件的发生的次序不敏感,单纯的统计入侵检测系统可能不会发觉事件当中互相依次相连的入侵行为。
¢ 单纯的统计入侵检测系统将逐渐地训练成单一点,要么行为是异常的,要么是正常的。如果入侵者知道自己的入侵行为被这样的异常检测器监视,那么他就可以诱导这个系统,使得那些大部分依靠行为统计测量的入侵检测方法对监视的特定的事件模式失效。
¢ 难以确定异常阈值,阈值设置偏低或高均会导致误报警事件。
¢ 统计异常检测行为类型模型是有限的。运用统计技术对异常作形式化处理需要假设数据来源稳定和具有相似性,但是这种假设并不总是能够满足。
2. 基于特征选择异常检测方法
基于特征选择异常检测方法是通过从一组参数数据中挑选能检测出入侵参数构成子集来准确地预测或分类已检测到的入侵。异常入侵检测的困难问题是在异常活动和入侵活动之间作出判断。判断符合实际的参数很复杂,困为合适地选择参数子集依赖于检测到的入侵类型,一个参数集对所有的各种各样的入侵类型不可能是足够的。预先确定特定的参数来检测入侵可能会错过单独的特别的环境下的入侵。最理想的检测入侵参数集必须动态地决策判断以获得最好的效果。假设与入侵潜在相关的参数有n个,则这n个参数构成的子集有2n个。由于搜索空间同参数数是指数关系,所以穷尽寻找最理想的参数子集的开销太大。
3. 基于贝叶斯推理异常检测方法
基于贝叶斯推理异常检测方法是通过在任意给定的时刻,测量A1,A2,…,An变量值推理判断是否有入侵事件发生。其中每个Ai变量表示系统不同的方面特征(如磁盘I/O的活动数量,或者系统中页面出错的数)。假定Ai变量具有两个值,1表示是异常,0表示正常。I表示系统当前遭受入侵攻击。每个异常变量Ai的异常可靠性和敏感性分别表示为P(Ai=1|I)和P(Ai=1|┐I)。则在给定每个Ai的条件下,由贝叶斯定理得出I的可信度,根据各种异常测量的值、入侵的先验概率及入侵发生时每种测量到的异常概率,从而能够检测判断入侵的概率。但是为了检测的准确性,还要必须考虑各测量Ai间的独立性。
4. 基于贝叶斯网络异常检测方法
贝叶斯统计分析把先验信息与样本信息结合,用于统计推断之中。用贝叶斯公式先验信息与样本信息综合,得到后验信息。而得到的后验信息又可以作为新一轮计算的先验,与进一步获得的样本信息综合,求的下一个后验信息。随着这个过程继续下去,后验信息确实是越来越接近于真值。也就是说,贝叶斯方法的学习机制是确实存在而且有效的。这个学习的过程实际上是一个迭代的过程,数据统计工作者已经证明这个过程是收敛的,因为这样得到后验分布密度有上界,而且单调递增。这意味着它将收敛于某个值。随着样本的增多,先验信息的影响逐渐减弱,样本信息的影响将越来越显著。在样本很多的情况下,先验分布密度的估计对结果的影响很小。换句话说,可以任意估计先验分布密度。但是,在样本不多的情况下,先验分布密度估计得好坏对结果的影响就比较大。如果能恰当地估计出先验分布密度,就可以使用少量样本数据,进行几次迭代就得到比较满意的结果。这在样本不容易获得的情况下特别有用。由于贝叶斯方法的学习机制存在,对于检测新的入侵方法将会有效。至今有关贝叶斯网络的入侵检测实际系统尚未出现,目前只停留在理论研究上。
贝叶斯网络是一种基于网络结构的有向图解描述,适用于表达和分析不确定和概率性事物,可从不完全或不确定的知识或信息中作出推理。目前贝叶斯网络在故障诊断领域已有成功应用。
一个贝叶斯网络是一个有向无环图(Directed Acyclic Graph,DAG),由代表变量节点及连接这些节点有向边构成。节点代表随机变量,节点间的有向边代表了节点间的相互关系(由父节点指向其后代节点),用条件概率进行表达关系强度,没有父节点的用先验概率进行信息表达。节点变量可以是任何问题的抽象,如测试值、观测现象、意见征询等。
贝叶斯网络实现了贝叶斯定理所揭示的学习功能,能发现大量变量之间的关系,是进行预测、分类数据的有力工具。基于贝叶斯网络异常检测方法是通过建立起异常入侵检测贝叶斯网,然后将其用作分析异常测量结果。贝叶斯网络允许以图形方式表示随机变量间相关的原因,并通过指定的一个小的与邻接节点相关的概率集计算随机变量的联接概率分布。按给定全部节点组合,所有根节点的先验概率和非根节点概率构成这个集。贝叶斯网络是一个有向图,有向图中弧表示父节点和子节点依赖关系。这样,当随机变量的值变成可知时,就允许把它吸收成为证据,根据这个证据,就可以计算出其它的随机变量条件值。
5. 基于模式预测异常检测方法
基于模式预测异常检测方法的假设条件是事件序列不是随机的而是遵循可辨别的模式.这种检测方法的特点是考虑了事件的序列及相互联系。而基于时间的推理方法则利用时间规则识别用户行为正常模式的特征。通过归纳学习产生这些规则集,能动态地修改系统中的规则,使之具有高的预测性、准确性和可信度。如果规则大部分时间是正确的,并能够成功地运用预测所观察到的数据,那么规则就具有高的要信度。根据观察到用户的行为,归纳产生出一套规则集来构成用户的轮廓框架。如果观测到的事件序列匹配规则的左边,而后续的事件显著地背离根据规则预测到的事件,那么系统就可以检测出这种偏离,这就表明用户操作是异常。由于不可识别行为模式能匹配任何规则的左边,都会导致不可识别行为模式作为异常判断,这是该方法的主要弱点。相反,如果能预测出不正常的后继事件的片段,则一定程度上断定用户行为的异常性。这种方法的主要优点是:
(1) 能较好地处理变化多样的用户行为,具有很强的时序模式;
(2) 能够集中考察少数几个相关的安全事件,而不是关注可疑的整个登录会话过程;
(3) 对发现检测系统遭受攻击,具有良好的灵敏度。因为根据规则的蕴涵语义,在系统学习阶段,能够更容易地辨别出欺骗者训练系统的企图。
6. 基于神经网络异常检测方法
基于神经网络入侵检测方法是训练神经网络连续的信息单元,信息单元指的是命令。网络的输入层是用户当前输入的命令和已执行过的若干个(如S)个命令;用户执行过的命令被神经网络使用来预测用户输入的下一个命令。若神经网络被训练成预测用户输入命令序列集合,则神经网络就构成用户的轮廓框架。当用这个神经网络预测不出某用户正确的后继命令,即在某种程度上表明了用户行为与其轮廓框架的偏离,这时有异常事件发生,以此就能进行异常入侵检测。
输入层指示出用户最近输入执行的S个命令序列。通过将每个输入的某种方式编码,把输入命令表示成几个值或级别,能够成为命令唯一标识。这样,输入层上的输入值准确地同用户最近输入执行命令序列相符合。输出层由单一的多层输出构成来预测用户发出的下个命令。这种方法的优点是:
(1) 不依赖于任何有关数据种类的统计假设;
(2) 能较好地处理噪声数据;
(3) 能自然地说明各种影响输出结果测量的相互关系。
这种方法的弱点是:
(1) 网络的拓扑结构和每个元素分配权重必须经过多次的尝试与失败的过程才能确定。
(2) 在设计神经网络的过程中,S的大小与其它的变量无关。如果S设置太低,则工作就差;设置太高,网络中需要处理的数据则太多。
7. 基于贝叶斯聚类异常检测方法
基于贝叶斯聚类异常检测方法通过在数据中发现不同类别数据集合,这些类反映了基本的因果机制(同类的成员比其它的更相似),以此就可以区分异常用户类,进而推断入侵事件发生来检测异常入侵行为。Cheeseman和Stutz在1995年开发的自动分类程序(Autoclass Program)是一种无监督数据分类技术。自动分类程序实现了使用贝叶斯统计技术对给定的数据进行搜索分类。这种方法尽可能地判断处理产生的数据,没有划分给定数据类别,但是定义了每个数据成员。其优点是:
(1) 根据给定的数据,程序自动地判断决定尽可能的类型数目;
(2) 不要求特别相似测量、停顿规则和聚类准则;
(3) 可以自由地混合连续的及离散的属性。
统计入侵异常检测对所观测到的行为分类处理。到目前为止,所使用到的技术主要集中于监督式的分类,这种分类是根据观测到的用户行为建立起用户轮廓。而贝叶斯分类方法允许最理想化的分类数、具有相似的轮廓的用户群组以及遵从符合用户特征集的自然分类。但是,该方法比较新,在入侵检测系统中还没有实现测试。自动分类程序怎样处理好固有的次序性数据(如审计跟踪)以及将系统分布特性植入分类中等方面,效果并不是十分明显。当自动分类程序支持处理在线数据时,对新的数据能否递增式地分类或者是否立即需要全部输入数据等这些问题的处理还尚未定论。由于统计的固有的特性,自动分类程序还存在选定合适的异常阈值和用户逐步地影响类型分布能力的困难。
8. 基于机器学习异常检测方法
这种异常检测方法通过机器学习实现入侵检测,其主要的方法有死记硬背式、监督、学习、归纳学习(示例学习)、类比学习等。Terran和Carla E.Brodley将异常检测问题归结为根据离散数据临时序列学习获得个体、系统和网络的行为特征。并提出一个基于相似度实例学习方法(IBL),该方法通过新的序列相似度计算将原始数据(如离散事件流,无序的记录)转化成可度量的空间。然后,应用IBL学习技术和一种新的基于序列的分类方法,从而发现异常类型事件,以此检测入侵,其中阈值的选取由成员分类的概率决定。实验结果表明这种方法检测迅速,而且误警率低。然而,此方法对于用户动态行为变化以及单独异常检测还有待改善。复杂的相似度量和先验知识加入到检测中可能会提高系统的准确性,但需要做进一步工作。总的来说,机器学习中许多模式识别技术对安全领域都有参考价值。
9. 基于数据采掘异常检测方法
计算机联网导致大量审计记录,而且审计记录大多是文件形式存放。若单独依靠手工方法去发现记录中异常现象是不够的,往往操作不便,不容易找出审计记录间相互关系。Wenke lee和Salvatore J.Stolfo 将数据采掘技术应用到入侵检测研究领域中,从审计数据或数据流中提取感兴趣的知识,这些知识是隐含的、事先未知的潜在有用信息,提取的知识表示为概念、规则、规律、模式等形式,并用这些知识去检测异常入侵和已知的入侵。基于数据采掘异常检测方法目前已有现成的算法可以借用,这种方法的优点在于适应处理大量数据情况。但是,对于实时入侵检测则还存在问题,需要开发出有效的数据采掘算法和适应的体系。
二、误用入侵检测技术
误用入侵检测是指根据已知的入侵模式来检测入侵。入侵者常常利用系统和应用软件中弱点攻击,而这些弱点易编成某种模式,如果入侵者攻击方式恰好匹配上检测系统中的模式库,则入侵者即被检测到,如图7.2.3所示。 警报 攻击者 模式匹配 模式库
图7.2.3 误用入侵检测模型显然,误用入侵检测依赖于模式库,如果没有构造好模式库,则IDS就不能检测到入侵者。例如,Internet蠕虫攻击(Worm attack)使用了fingered 和 sendmai1错误(bugs),可以使用误用检测,与异常入侵检测相反,误用入侵检测能直接检测不利的或不能接通受的行为,而异常入侵检测是发现同正常行为相违背的行为。
误用入侵检测的主要假设是具有能够被精确地按某种方式编码的攻击,并可以通过捕获攻击及重新整理,确认入侵活动是基于同一弱点进行攻击的入侵方法的变种。误用入侵检测指的是通过按预先定义好的入侵模式以及观察到入侵发生情况进行模式匹配来检测。入侵模式说明了那些导致安全突破或其它误用的事件中特征、条件、排列和关系。一个不完整的模式可能表明存在入侵的企图。模式构造也有多各方式。下面来分析各种各样的误用检测方法。
1. 基于条件概率误用入侵检测方法
基于条件概率误用入侵检测方法将入侵方式对应一个事件序列,然后通过观测到事件发生情况来推测入侵出现。这种方法的依据是外部事件序列,根据贝叶斯定理进行推理检测入侵。令ES表示事件序列,先验概率为P(I),后验概率为P(ES|I),事件出现的概率为P(ES),则
P(I|ES)=P(ES|I)*P(I)/P(ES)
通常网络安全专家可以给出先验概率P(I),对入侵报告数据进行统计处理得出P(ES|I)和P(ES|┑I),于是可以计算出:
P(ES)=(P(ES|I)―P(ES|┑I))*P(I)+P(ES|┑I)
故可以通过事件序列的观测,从而推算出P(I|ES)。基于条件概率误用入侵在概率理论基础上的一个普遍的方法。它是对贝叶斯方法的改进,其缺点就是先验概率难以给出,而且事件的独立性难以满足。
2. 基于专家系统误用入侵检测方法
基于专家系统误用入侵检测方法是通过将安全专家的知识表示成IF-THEN规则形成专家知识库,然后,运用推理算法进行检测入侵。编码规则说明攻击的必需条件作为IF的组成部分。当规则的左边的全部条件都满足时,规则的右边的动作才会执行。入侵检测专家系统应用的实际问题是要处理大量的数据和依赖于审计跟踪的次序,其推理方式主要有以下两种。
(1) 根据给定的数据,应用符号推理出入侵的发生情况。需要解决的主要问题是处理序列数据和知识库的维护。不足之处就是只能检测已知弱点。
(2) 根据其它的入侵证据,进行不确定性推理。这种推理的局限性就是推理证据的不精确和专家知识的不精确。
3. 基于状态迁移分析误用入侵检测方法
状态迁移分析方法将攻击表示成一系列被临近的系统状态迁移。攻击模式的状态对应于系统状态,并具有迁移到另外状态的条件断言。通过弧将连续的状态连接起来表示状态改变所需要的事件。允许事件类型被植入到模型,不需同审计记录一一对应。攻击模式只能说明事件序列,因此不能说明更复杂的事件。而且,除了通过植入模型的原始的断言,没有通用的方法来排除攻击模式部分匹配。
4. 基于键监控误用入侵检测方法
基于键盘监控误用入侵检测方法假设入侵对应特定的击键序列模式,然后监测用户击键模式,并将这一模式与入侵模式匹配,以此就能检测入侵。这种方法的不利之处是在没有操作系统支持的情况下,缺少捕获用户击键的可靠方法,存在无数击键方式表示同一种攻击。而且,没有击键语义分析,用户很容易欺骗这种技术。因为这种技术仅仅分析击键,所以不能够很好的检测到恶意程序执行结果的自动攻击。
5. 基于模型误用入侵检测方法
基于模型误用入侵检测方法是通过建立误用证据模型,根据证据来推理来做出误用发生判断结论。Gravy和Lint首先提出这种方法。其方法要点是建立攻击剧本(attack scenarios)数据库、预警器和规划者。每个攻击剧本表示成一个攻击行为序列,在任意的给定时刻,攻击剧本的子集都被用来推断系统遭受入侵。入侵检测系统根据当前的活动模型,预警器产生下一步行为,用来在审计跟踪时作验证使用。规划者负责判断假设的行为是如何反映在审计跟踪数据上,以及将假设的行为是如何反映在审计跟踪数据上,以及将假设的行为变成与系统相关的审计跟踪进行匹配。因为某些攻击剧本的证据累积,故其它的证据就下降,活动模型组就被更新。同时系统中嵌入证据推理分析功能,这样就允许更新活动的攻击剧本出现的概率,根据攻击剧本概率的大小进行推断检测入侵。这种方法的优点在于具有坚实的数学未确定推理理论作为基础。对于专家系统方法不容易处理未确定的中间结论,可以用模型证据推理解决。而且可以减少审计数据量。然而,不足的地方是,增加了创建了每一种入侵检测模型的开销。此外,这种方法和运行效率不能通过建造原型来说明
三、入侵检测研究的条件和局限性
入侵检测是基于计算机网络环境下一个研究方向,研究入侵检测需要的条件:其一就是要在网络环境下进行;其二能够有可靠的数据来源供入侵研究分析;其三要有数学、计算机、人工智能、密码学等各学科技术知识背景。目前入侵检测技术的方法主要停留在异常检测统计方法和误用检测方法上,这两种方法都还存在这样或那样的问题。网络入侵技术在不断地发展,入侵的行为表现出不确定性、多样性等特点。网络应用的发展有带来新的安全问题,如高速网络技术出现流量大,那么基于网络的入侵检测系统如何适应这种情况?基于主机审计数据怎样做到既减少数据量,又能有效地检测到入侵?入侵检测研究领域急需其他学科知识提供新的入侵检测解决方法。
入侵坚持只是仅仅试图发现计算机网络中的安全问题,要解决网络安全的问题还需要其它的网络安全技术。另外,入侵检测系统本身还存在安全问题。入侵检测系统也可能会受到攻击。Fred Cohen的方法给出了50种攻击入侵检测系统的方法,这些方法从理论上说是可行的。入侵检测系统内部的知识去修改操作,可能允许异常行为进行。这样入侵就可打破系统的操作安全限制了。
7.3 反病毒技术
7.3.1 病毒概论
自从1946年第一台冯-诺依曼型计算机ENIAC出世以来,计算机已被应用到人类社会的各个领域。然而,1988年发生在美国的"蠕虫病毒"事件,给计算机技术的发展罩上了一层阴影。蠕虫病毒是由美国CORNELL大学研究生莫里斯编写。虽然并无恶意,但在当时,"蠕虫"在INTERNET上大肆传染,使得数千台连网的计算机停止运行,并造成巨额损失,成为一时的舆论焦点。
在国内,最初引起人们注意的病毒是80年代末出现的"黑色星期五","米氏病毒","小球病毒"等。因当时软件种类不多,用户之间的软件交流较为频繁且反病毒软件并不普及,造成病毒的广泛流行。后来出现的WORD宏病毒及WIN95下的CIH病毒,使人们对病毒的认识更加深了一步。
计算机病毒不是天然存在的,是某些人利用计算机软、硬件所固有的脆弱性,编制具有特殊功能的程序。从广义上定义,凡能够引起计算机故障,破坏计算机数据的程序统称为计算机病毒。依据此定义,诸如逻辑炸弹,蠕虫等均可称为计算机病毒。
那么究竟病毒是如何产生的呢?其过程可分为:程序设计--传播--潜伏--触发--运行--实行攻击。究其产生的原因不外乎以下几种:
① 开个玩笑,一个恶作剧。某些爱好计算机并对计算机技术精通的人士为了炫耀自己的高超技术和智慧,凭借对软硬件的深入了解,编制这些特殊的程序。这些程序通过载体传播出去后,在一定条件下被触发。如显示一些动画,播放一段音乐,或提一些智力问答题目等,其目的无非是自我表现一下。这类病毒一般都是良性的,不会有破坏操作。
② 产生于个别人的报复心理。每个人都处于社会环境中,但总有人对社会不满或受到不公证的待遇。如果这种情况发生在一个编程高手身上,那么他有可能会编制一些危险的程序。在国外有这样的事例:某公司职员在职期间编制了一段代码隐藏在其公司的系统中,一旦检测到他的名字在工资报表中删除,该程序立即发作,破坏整个系统。类似案例在国内亦出现过。
③ 用于版权保护。计算机发展初期,由于在法律上对于软件版权保护还没有象今天这样完善。很多商业软件被非法复制,有些开发商为了保护自己的利益制作了一些特殊程序,附在产品中。如:巴基斯坦病毒,其制作者是为了追踪那些非法拷贝他们产品的用户。用于这种目的的病毒目前已不多见。
④ 用于特殊目的。某组织或个人为达到特殊目的,对政府机构、单位的特殊系统进行宣传或破坏。或用于军事目的。
7.3.2 病毒的特征
病毒这种特殊程序有以下几种特征:
传染性是病毒的基本特征。在生物界,通过传染病毒从一个生物体扩散到另一个生物体。在适当的条件下,它可得到大量繁殖,并使被感染的生物体表现出病症甚至死亡。同样,计算机病毒也会通过各种渠道从已被感染的计算机扩散到未被感染的计算机,在某些情况下造成被感染的计算机工作失常甚至瘫痪。与生物病毒不同的是,计算机病毒是一段人为编制的计算机程序代码,这段程序代码一旦进入计算机并得以执行,它会搜寻其他符合其传染条件的程序或存储介质,确定目标后再将自身代码插入其中,达到自我繁殖的目的。只要一台计算机染毒,如不及时处理,那么病毒会在这台机子上迅速扩散,其中的大量文件(一般是可执行文件)会被感染。而被感染的文件又成了新的传染源,再与其他机器进行数据交换或通过网络接触,病毒会继续进行传染。 正常的计算机程序一般是不会将自身的代码强行连接到其它程序之上的。而病毒却能使自身的代码强行传染到一切符合其传染条件的未受到传染的程序之上。计算机病毒可通过各种可能的渠道,如软盘、计算机网络去传染其它的计算机。当你在一台机器上发现了病毒时,往往曾在这台计算机上用过的软盘已感染上了病毒,而与这台机器相联网的其它计算机也许也被该病毒侵染上了。是否具有传染性是判别一个程序是否为计算机病毒的最重要条件。
未经授权而执行。一般正常的程序是由用户调用,再由系统分配资源,完成用户交给的任务。其目的对用户是可见的、透明的。而病毒具有正常程序的一切特性,它隐藏在正常程序中,当用户调用正常程序时窃取到系统的控制权,先于正常程序执行,病毒的动作、目的对用户时未知的,是未经用户允许的。
隐蔽性。病毒一般是具有很高编程技巧、短小精悍的程序。通常附在正常程序中或磁盘较隐蔽的地方,也有个别的以隐含文件形式出现。目的是不让用户发现它的存在。如果不经过代码分析,病毒程序与正常程序是不容易区别开来的。一般在没有防护措施的情况下,计算机病毒程序取得系统控制权后,可以在很短的时间里传染大量程序。而且受到传染后,计算机系统通常仍能正常运行,使用户不会感到任何异常。试想,如果病毒在传染到计算机上之后,机器马上无法正常运行,那么它本身便无法继续进行传染了。正是由于隐蔽性,计算机病毒得以在用户没有察觉的情况下扩散到上百万台计算机中。 大部分的病毒的代码之所以设计得非常短小,也是为了隐藏。病毒一般只有几百或1k字节,而PC机对DOS文件的存取速度可达每秒几百KB以上,所以病毒转瞬之间便可将这短短的几百字节附着到正常程序之中,使人非常不易被察觉。
潜伏性。大部分的病毒感染系统之后一般不会马上发作,它可长期隐藏在系统中,只有在满足其特定条件时才启动其表现(破坏)模块。只有这样它才可进行广泛地传播。如"PETER-2"在每年2月27日会提三个问题,答错后会将硬盘加密。著名的"黑色星期五"在逢13号的星期五发作。国内的"上海一号"会在每年三、六、九月的13日发作。当然,最令人难忘的便是26日发作的CIH。这些病毒在平时会隐藏得很好,只有在发作日才会露出本来面目。
破坏性。任何病毒只要侵入系统,都会对系统及应用程序产生程度不同的影响。轻者会降低计算机工作效率,占用系统资源,重者可导致系统崩溃。由此特性可将病毒分为良性病毒与恶性病毒。良性病度可能只显示些画面或出点音乐、无聊的语句,或者根本没有任何破坏动作,但会占用系统资源。这类病毒较多,如:GENP、小球、W-BOOT等。恶性病毒则有明确得目的,或破坏数据、删除文件或加密磁盘、格式化磁盘,有的对数据造成不可挽回的破坏。这也反映出病毒编制者的险恶用心。
从对病毒的检测方面来看,病毒还有不可预见性。不同种类的病毒,它们的代码千差万别,但有些操作是共有的(如驻内存,改中断)。有些人利用病毒的这种共性,制作了声称可查所有病毒的程序。这种程序的确可查出一些新病毒,但由于目前的软件种类极其丰富,且某些正常程序也使用了类似病毒的操作甚至借鉴了某些病毒的技术。使用这种方法对病毒进行检测势必会造成较多的误报情况。而且病毒的制作技术也在不断的提高,病毒对反病毒软件永远是超前的。
7.3.3 病毒的分类
从第一个病毒出世以来,究竟世界上有多少种病毒,说法不一。无论多少种,病毒的数量仍在不断增加。据国外统计,计算机病毒以10种/周的速度递增,另据我国公安部统计,国内以4种/月的速度递增。如此多的种类,做一下分类可更好地了解它们。
按传染方式分为:
引导型病毒
文件型病毒
混合型病毒
文件型病毒一般只传染磁盘上的可执行文件(COM,EXE)。在用户调用染毒的可执行文件时,病毒首先被运行,然后病毒驻留内存伺机传染其他文件或直接传染其他文件。其特点是附着于正常程序文件,成为程序文件的一个外壳或部件。这是较为常见的传染方式。混合型病毒兼有以上两种病毒的特点,既染引导区又染文件,因此扩大了这种病毒的传染途径。
按连接方式分为:
源码型病毒
入侵型病毒
操作系统型病毒
外壳型病毒
源码病毒较为少见,亦难以编写。因为它要攻击高级语言编写的源程序,在源程序编译之前插入其中,并随源程序一起编译、连接成可执行文件。此时刚刚生成的可执行文件便已经带毒了。
入侵型病毒可用自身代替正常程序中的部分模块或堆栈区。因此这类病毒只攻击某些特定程序,针对性强。一般情况下也难以被发现,清除起来也较困难。
操作系统病毒可用其自身部分加入或替代操作系统的部分功能。因其直接感染操作系统,这类病毒的危害性也较大。
外壳病毒将自身附在正常程序的开头或结尾,相当于给正常程序加了个外壳。大部份的文件型病毒都属于这一类。
按破坏性可分为:
良性病毒
恶性病毒。
7.3.4 反病毒技术
随着计算机技术及Internet的发展,人们对计算机的应用越加广泛,由此,计算机病毒对人们的危害也越来越大,这就使人们的计算机防毒概念已经有了更新的认识。在这里介绍一些最常用的防毒技术。
1.反病毒技术的发展
随着计算机技术及反毒技术的发展,早期的防病毒卡亦象其它的计算机硬件卡(如汉字卡等)一样,逐步地衰落出市场,与此对应的,各种反病毒软件开始日益风行起来,并且经过了十几年的发展。
第一代反病毒技术是采取单纯的病毒特征代码分析,将病毒从带毒文件中清除掉。这种方式可以准确地清除病毒,可靠性很高。但后来病毒技术发展了,特别是加密和变形技术的运用,使得这种简单的静态扫描方式失去了作用。随之而来的反病毒技术也发展了一步。
第二代反病毒技术是采用静态广谱特征扫描方法检测病毒,这种方式可以更多地检测出变形病毒,但另一方面误报率也提高,尤其是用这种不严格的特征判定方式去清除病毒带来的风险性很大,容易造成文件和数据的破坏。所以说静态防病毒技术也有难以克服的缺陷。
第三代反病毒技术的主要特点是将静态扫描技术和动态仿真跟踪技术结合起来,将查找病毒和清除病毒合二为一,形成一个整体解决方案,能够全面实现防、查、杀等反病毒所必备的各种手段,以驻留内存方式防止病毒的入侵,凡是检测到的病毒都能清除,不会破坏文件和数据。随着病毒数量的增加和新型病毒技术的发展,静态扫描技术将会使反毒软件速度降低,驻留内存防毒模块容易产生误报。
第四代反病毒技术则是针对计算机病毒的发展而基于病毒家族体系的命名规则、基于多位CRC校验和扫描机理,启发式智能代码分析模块、动态数据还原模块(能查出隐蔽性极强的压缩加密文件中的病毒)、内存解毒模块、自身免疫模块等先进的解毒技术,较好的解决了以前防毒技术顾此失彼、此消彼长的状态。
2.病毒检测方法
目前市面上常见的防毒软件经常使用的防毒技术一般分为以下几种:特征代码法、校验和法、行为监测法、软件模拟法、VICE先知扫描法等。这些方法依据其原理的不同,实现时所需开销也各不相同,检测范围也不同,各有所长,下面简单介绍特征代码检测方法。
特征代码法目前被认为是用来检测已知病毒的最简单、开销最小的方法。防毒软件在最初的扫毒方式是将所有病毒的病毒码加以剖析,并且将这些病毒独有的特征搜集在一个病毒码资料库中,每当需要扫描该程序是否有毒的时候,启动查毒软件程序,以扫描的方式与该病毒码资料库内的现有资料一一比对,如果两方资料皆有吻合之处的话,既判定该程序已遭病毒感染。特征代码法的实现步骤如下:
(1) 采集已知病毒样本。如果病毒既感染COM文件,又感染EXE文件,那么对这种病毒要同时采集COM型病毒样本和EXE型病毒样本。
(2) 在病毒样本中,抽取病毒特征代码。在既感染COM文件又感染EXE文件的病毒样本中,要抽取两种样本共有的代码。
(3) 将特征代码纳入病毒数据库。
(4) 检测文件。打开被检测文件,在文件中搜索,检查文件中是否含有病毒数据库中的病毒特征代码。如果发现病毒特征代码,将特征代码与病毒一一对应,便可以断定被查文件所感染的是何种病毒。
采用病毒特征代码法的检测工具,其检测准确,可识别病毒的名称。这种病毒检测技术误报警率低、依据检测结果,可做相应的解毒处理。但是,面对不断出现的新病毒,必须不断更新版本,否则便检测不会新出现的各种病毒,因病毒特征代码法对从未见过的新病毒,自然无法知道其特征代码,无法去检测这些新病毒。随着病毒种类的增多,新版本的病毒数据库会加大,检索时间就会变长,大大降低了软件的使用效率。而且此类扫毒方法不能检测出隐蔽性病毒,因隐蔽性病毒先进驻内存后,能够将感染文件中的病毒代码剥去,检测工具就会发现被检测文件是一个完好的文件,将会被隐蔽性病毒所蒙骗。
由于其他一些病毒检测方法过于复杂,误报率很高,所以基于病毒特征代码检测很普及,但是病毒特征代码法对从未见过的新病毒,无法知道其特征代码,无法去检测这些新病毒,所以很多时候都是计算机已经感染了病毒并且对机器或数据造成很大破坏后才去杀毒。基于这些原因,在反病毒技术上,最重要的就是"防杀结合,防范为主",而防范计算机病毒的基本方法有:
(1) 不轻易上一些不正规的网站,在浏览网页的时候,很多人有猎奇心理,而一些病毒、木马制造者正是利用人们的猎奇心理,引诱大家浏览他的网页,甚至下载文件,殊不知这样很容易使机器染上病毒。
(2) 千万提防电子邮件病毒的传播,能发送包含ActiveX控件的HTML格式邮件可以在浏览邮件内容时被激活,所以在收到陌生可疑邮件时尽量不要打开,特别是对于带有附件的电子邮件更要小心,很多病毒都是通过这种方式传播的,甚至有的是从你的好友发送的邮件中传到你机器上感染你的计算机。
(3) 对于渠道不明的光盘、软盘、U盘等便携存储器,使用之前应该查毒。对于从网络上下载的文件同样如此。因此,计算机上应该装有杀毒软件,并且及时更新。
(4) 经常关注一些网站、BBS发布的病毒报告,这样可以在未感染病毒的时候做到预先防范。
(5) 对于重要文件、数据做到定期备份。
(6) 不能因为担心病毒而不敢使用网络,那样网络就失去了意义。只要思想上高度重视,时刻具有防范意识,就不容易受到病毒侵扰。
7.4 内外网隔离技术
从前面的关于网络安全技术的介绍中,我们知道即使是最先进的防火墙技术,也不可能100%保证系统安全。实践也已经证明了这一点。屡次发生的网络入侵及泄密事件,终于使人们认识到:理论上说,只有一种真正安全的隔离手段,那就是从物理上断开连接。有鉴于此,2000年1月,中国国家保密局颁布了《计算机信息系统国际联网保密管理规定》,其第二章保密制度第六条规定:"涉及国家秘密的计算机信息系统,不得直接或间接地与国际互联网或其他公共信息网络相连接,必须实行物理隔离。"与此相似,包括美国在内的许多国家对此都高度重视,并作出了类似的规定。例如,美国在1999年底强制规定军方涉密网络必须与Internet断开。
所谓物理隔离,是指内部网络与外部网络在物理上没有相互连接的通道,两个系统在物理上完全独立。要实现公众信息网(外部网)与内部网络物理隔离的目的,必须保证做到以下几点:
1.在物理传导上使内外网络隔断,确保外部网不能通过网络连接而侵入内部网;同时防止内部网信息通过网络连接泄漏到外部网。
2.在物理辐射上隔断内部网与外部网,确保内部网信息不会通过电磁辐射或耦合方式泄漏到外部网。
3.在物理存储上隔断两个网络环境,对于断电后会逸失信息的部件,如内存、处理器等暂存部件,要在网络转换时作清除处理,防止残留信息串网;对于断电非逸失性设备如磁带机、硬盘等存储设备,内部网与外部网信息要分开存储。
计算机内外网物理隔离技术的主要应用对象是需要对内部重要数据进行安全保护的国家各级政府部门、军队系统、金融系统等等。这些部门由于自身的特点,对网络安全有很高的要求,不但要求严格禁止信息泄漏和被篡改,而且出于信息交换的需要,不能够完全隔绝与外部网络的联系。
7.4.1 用户级物理隔离
用户级物理隔离技术自出现至今已经过多次演变,不断的发展成熟。目前已经经历三个发展阶段。
第一阶段,由于在技术上还不够成熟及对物理隔离技术理解得不够深入透彻,主要是双机物理隔离系统。主要原理是将两套主板、芯片、网卡和硬盘的系统合并为一台计算机使用。用户通过客户端的开关来选择两套计算机操作系统,切换内外网络的连接。实现比较简单,安全性高,它的最大优点是不需要重新启动系统,可以随时切换内网和外网状态,但使得客户端的成本过高,且要求双网线的布线结构,技术含量不高。这样做的好处仅仅是为用户节省了一台显示器、键盘、鼠标和空间。
第二阶段,主要采用双硬盘物理隔离系统,即客户端增加一块PCI卡,客户端的硬盘或其它的存储设备首先连接到该卡,然后再转接到主板上。这样通过该卡控制客户端的硬盘或其它的存储设备的选择。而选择不同的硬盘时,同时选择了该卡不同的网络接口。连接到不同的网络。其结构如图7.4.1 所示
将双硬盘切换的逻辑控制、双网切换功能以及系统I/O的控制集成到了主板上,使系统设计更加紧凑,安装使用更加方便。在技术上较第一阶段有了提高,降低了成本,但是在布线上仍然需要双网线结构。这样在客户端切换两个网络连接的时候,内外网的存储介质也被交换了,这样在这阶段技术上仍然存在安全上的隐患。
前两代产品对用户的使用来说都不是很方便。用户往往需要通过繁复的切换才能在双网内工作,而且还无法在两个工作区内拷贝文件。
第三阶段,主要采用单硬盘物理隔离系统。即客户端仍然采用类似第二代的双网线安全隔离卡技术,不同的是只采用一个网络接口。而通过网线传递不同的电平信号到网络选择端。在网络选择端安装网络选择器,根据不同的电平信号来控制网络的连接。
它的工作原理就是通过对单个硬盘上磁道的读写控制技术,在一个硬盘上分隔出两个独立的工作区间。一个公共区(Public),另一个安全区(Secure)。这两个区分别装有两个操作系统。用户可以在本地通过操作系统上的一个切换图标自由选择内外两个网络。用户在任何时间只能与其中的一个网络相连同。这两个区之间无法互相访问,由该卡控制所有进出这两个区的通路。同时该卡可提供一个第三分区,通过读写技术允许数据从外网分区向内网分区单向流动,方便了用户从互联网上下载数据。从而,杜绝了黑客从外网侵入内网的可能性。单硬盘物理隔离卡代表着国际上计算机物理隔离产品最先进的技术。它能在不增加其它任何硬件和软件成本;不用对系统重新设置的情况下,实现单台计算机连接内外两个网络。
7.4.2 网络级物理隔离
1. 隔离集线器
从内部结构来讲,隔离集线器相当于内网和外网两个集线器的集成。7个网络端口(以8口集线器为例,不计Uplink端口)的每一个都可以通过电子开关进行切换,从而连接到内网和外网两者之一。如图7.4.2所示 开关的切换方式,可以采用由计算机发出用于控制的TCP/IP数据包,集线器识别后将开关切为相应状态;也有的隔离集线器使用以太网双绞线中未定义的几根线传输控制数据。
隔离集线器只有与其它隔离措施,如物理隔离卡等相配合,才能实现真正的物理隔离。如果只切换内外网且变更IP地址,而不重新启动系统,则不是真正的物理隔离。
2. 因特网信息转播服务器
因特网资源转播服务器是一种非实时的因特网访问方式。它的基本功能框图如图7.4.3所示。
这种系统由采集服务器、转播服务器和相应的切换开关构成。采集服务器用于下载指定网站的内容,转播服务器使用采集服务器下载的数据建立网站的镜像站点,向内部网用户提供虚拟的Internet站点访问。
系统由一个状态转换开关控制切换不同的工作状态。当采集服务器连接Internet下载数据时,转播服务器与它断开并切换到内网状态,向内网提供服务。当网站信息采集完毕后,转换到数据传输状态,此时采集服务器与Internet断开,转播服务器与内网断开,两个服务器通过网络相连,将数据传输到转播服务器中。这样就实现了内网和外网的完全物理隔离。
采集服务器与转播服务器之间采用单向数据通道,只允许数据单向流动到转播服务器,这样可以防止内部网络信息向外部泄漏。
这种系统的优点是安全性较好,且用户访问特定网站非常方便,因为这种系统实际上建立了特定网站的完整镜像。它的缺点是实时性不好,且访问内容有较大的局限性。同时,因为这种系统在工作时间转播服务器一般连接内网,提供访问服务,而利用夜间的某段时间将数据从采集服务器传输到转播服务器,因此,更换内容周期较长,例如,一天更新一次。
3. 隔离服务器
这是目前比较新的物理隔离技术,一些厂商将其称为"第四代物理隔离技术"。隔离服务器的基本功能框图如图7.4.4所示。
系统由隔离服务器和防火墙组成。隔离服务器有内部网络和外部网络两个接口,但不同时连接两个网络,而是利用一个切换开关,使得服务器在连接内网时断开外网,连接外网时断开内网。在内部网用户从外部网下载数据时,隔离服务器首先连接外网,将数据暂存在服务器中,隔一定的时间后断开外网,连接内网,将数据发送到内部网络中。这种内网和外网的切换每秒可以进行数百次,因而对于内网用户来讲,访问外部数据时几乎感觉不到时延。
为防止信息泄漏及黑客程序入侵,外部数据进入内网前经过防火墙的过滤。
这种物理隔离系统较好地解决了内网和外网切换时必须重新启动系统后才能转换状态而带来的使用不便,数据不能共享等问题。但由此而产生的问题是安全性能的降低,其安全性将不如完全的物理隔离系统。
7.4.3 单硬盘物理隔离系统
在用户级物理隔离产品中,单硬盘物理隔离系统是目前技术水平最高的产品,代表了将来的发展方向。
单硬盘物理隔离系统的设计目标,就是在一块硬盘上,将硬盘分成两个独立的分区,同时,通过对硬盘读写地址的监视及控制,使两个分区的内容完全独立,不能够相互访问。使用一块插卡插在用户计算机中,将主板与硬盘之间的接口数据线断开,转而通过该卡转接。通过卡上的逻辑控制芯片监视硬盘的地址访问,从而实现不同分区的访问控制。同时,物理隔离卡提供两个网络接口,分别连接内网和外网,在切换不同的硬盘分区时,同时切换不同的网络。物理隔离卡插在计算机系统的PCI插槽中,电源与时钟由总线提供。系统框图如图7.4.5所示 单硬盘物理隔离系统的基本特点是,计算机被分成外网和内网两个相互隔离的状态。在外网状态时,计算机连接到外部网络,此时硬盘中对应于内部网络的分区是完全不可访问的;在内网状态时,计算机连接到内部网络,此时硬盘中对应于外部网络的分区是完全不可访问的。
在这个过程中,最关键的问题是两个硬盘分区要实现完全的物理隔离,对不同的硬盘分区(即内网分区和外网分区)进行读写权限控制,而这种控制不能通过计算机软件实现。因为软件不可能完全避免病毒及木马程序的入侵,从而造成信息的泄漏或破坏,违背了"物理隔离"的基本原则。
因此,内网和外网分区的数据读写控制只能通过硬件逻辑电路来实现。通过逻辑控制芯片监视硬盘的地址访问,从而实现不同硬盘分区的访问控制。
为了实现单硬盘物理隔离,需要解决几个关键的技术问题:
一是要在同一硬盘上建立两个独立的操作系统,在应用外网与内网时使用不同的操作系统及数据存储区域,这是实现物理隔离的基础;
二是要通过分析硬盘接口规程,设计出控制不同硬盘地址数据读写的逻辑电路;
三是进入内外网的不同命令如何提供给物理隔离卡,以便对控制内容进行设置;
四是采用何种硬件设计能够达到控制要求,如系统时钟频率,控制芯片等的选择与设计。
硬盘分区功能:在物理隔离技术的实现中,对硬盘的分区是保护用户数据安全的关键。
网络安全隔离卡要从最低的物理层上隔断非法用户对重要数据的访问。一般通过软件对硬盘的分区并不能完全隔离两个分区上数据的互访,即使采用了其他的对硬盘的加密,加锁,或者隐藏等手段。但是,硬盘的主引导记录和分区表项仍然在硬盘上,这样总会有错误或漏洞给黑客或恶意攻击者留有后门。攻击者就可以通过向机器的系统里注入木马程序等,篡改或破坏硬盘的分区表,严重者窃取重要数据。
网络安全隔离卡把硬盘的主引导记录和分区表项写进隔离卡上的非易失性存储芯片中,通过硬件来控制这部分数据的读写,硬盘的主引导记录和分区表不在硬盘上。即使硬盘丢失,由于硬盘主引导记录和分区表项文件信息存储在隔离卡里面,没有硬盘相应的分区信息,硬盘里的数据也就不可读取,数据信息也就不会泄露。
网络安全隔离卡与其它的网络安全软件如防火墙不同。防火墙通常设置在安全的内部局域网(LAN)与外界互连网(Internet)之间,通过安全策略和安全规则的设置,分析过滤可疑的通信包和不安全站点,从而提供数据安全。但是,仅仅依靠防火墙并不能完全保证内部网络的安全。因为软件不能保证自身没有安全漏洞和后门留给黑客和恶意的攻击者。
网络安全隔离卡通常在工作站水平,通过低物理层上运行的硬件设备,物理分离提供高级别的数据安全。使用网络安全隔离卡,可以在一个PC机上创建两个虚拟操作系统。用户可以将通过外网(公共网络)连接到Internet。这样,在网络安全隔离卡的上层设置防火墙来控制用户访问特定的站点,并过滤掉不良信息的侵入,从而保护公共的PC,同时网络安全隔离卡保证安全PC与组织分类信息的安全。
双操作系统的切换:在两种状态(安全与公共)进行转换时,一个中间虚拟第三"电脑"被打开。这一"安全转换"系统在空间与时间上作为非军事化区域(DMZ),分化为两个不同的系统。安全转换被储存在磁盘的分离区上,而且在操作过程中,安全与公共网络都被断开。在转换过程中,网络安全隔离卡执行与安全有关的过程,如全部删除RAM为了保证系统间的完全分离。
网络安全隔离卡在两个状态间转换时,转换区域可以根据组织的数据安全策略,用来运行不同的软件应用程序。这可以包括访问控制、病毒扫描等。在正常操作中,用户不得访问转换区域,因此在内运行的应用程序可以自动进行,用户错误并不防碍程序的运行。
在两个状态间转换期间,网络安全隔离卡能够自动监测软盘驱动器络 当发现有软盘的时候,会禁止安全与公共状态间的转换。当转换启动时发现有磁盘,网络安全隔离卡会警告用户将磁盘移走。但是,如果主机PC在转换时访问磁盘,网络安全隔离卡会通过阻止所有的硬盘访问并断开两个网络来停止系统。如果要重新工作,需重启硬件。
磁盘访问控制:网络安全隔离卡与PC主板间的唯一通信渠道是IDE总线(穿过网络安全隔离卡,并受其控制)。网络安全隔离卡被动使用ISA插槽来获得操作电源与时钟信号,并且监测电脑活动(如重置信号与软盘)。
当电脑的公共区域开启,且与Internet连接时,任何病毒或攻击只会进入磁盘的公共区域,而不可能进入安全区域。对磁盘所有的访问都经过网络安全隔离卡控制器,因此对禁区的访问会遭到网络安全隔离卡的阻止。在与Internet连接时,网络安全隔离卡断开安全网络。于是,不可访问到安全区域上的信息或与安全网络连接的电脑。
网络安全隔离卡通过控制所有向磁盘传输的IDE的命令,在最低的物理层保护所有对磁盘的访问。这样,当系统在公共状态时,任何试图对安全区域的访问都会被网络安全隔离卡防止。
安装网络安全隔离卡期间,当网络安全隔离卡处于设置模式时,将主引导记录写入专用的非易失性储存设备。这样,在操作模式中,MBR无法写入,任何企图对MBR的写入都会失败。网络安全隔离卡卡中的非易失性储存设备在正常操作模式下都是写保护的。为了写入非易失性储存芯片,一个将网络安全隔离卡转向设置模式的专用插头必须放置到卡上。
两个区数据读写控制:通常情况下,功能性区域在安全状态设为只读,在公共状态设为可读/可写。这样用户可以将Internet上的信息转移到安全区域,但不能反方向操作(从安全到公共)。安全区域将功能性区域设为只读的方式是通过网络安全隔离卡在硬件中完成的,而且完全阻止了任何分类资料转移到公共区域的可能性。
在安全转换状态下(在公共区与安全区间的转换),应使用防病毒和入侵检测程序来扫描功能性共同区域,以阻止病毒的侵入,确保内部网络中数据的安全,同时对异常情况作出判断并及时报警。
从前面对各种物理隔离产品的分析看,在用户级物理隔离产品方面,单硬盘物理隔离系统无疑具有很大的优势,在未来得发展中将逐渐占据主流地位。但是,从总体应用方面来讲,目前的各种物理隔离系统还是存在一些不足之处,首先物理隔离技术作为一项新兴的技术,产生的时间不长,作为一种安全技术,还没有客观的评价标准。而且,物理隔离技术的应用范围主要是政府、金融、军队等敏感部门,必须有相应的技术标准以及安全性的评价标准。物理隔离技术的安全分级,众所周知,安全级别越高的产品,它的成本越高,技术越复杂。物理隔离产品也应象软件产品一样,制定不同的安全级别,以适应不同的用户需要。例如,安全级别低的产品可以对内网和外网进行物理隔离,但对用户的各种操作没有其它限制,如果用户将内外网线接口互换,将会出现信息泄漏的情况;而安全级别高的产品有可能识别这种操作并采取预防措施。使用方便程度,安全性和使用方便性存在着一定的矛盾。安全性越高的产品,使用方便性越低。这虽然是一种必然的结果,但如何在保证安全的基础上,提高系统的使用方便程度,还有许多工作要做。物理隔离技术的发展趋势必然是研制出完全"透明"的物理隔离系统,用户在几乎感觉不到它的存在的情况下可以方便地使用各种网络资源。需求的推动及技术的成熟将使物理隔离产品不断降低成本。物理隔离技术还是一种被动、孤立的信息保护技术,未来的物理隔离技术应与入侵检测技术、防火墙技术、反病毒技术、加密及数字签名等信息安全技术结合,成为一种综合性、智能性的安全解决方案。
计算机内外网物理隔离技术和防火墙技术都是保证网络安全的技术手段,但它们保护数据的方式及手段不同,不能相互代替。物理隔离技术用于对内部网络的保密数据进行完全的保护,而需要公开的数据由防火墙实施保护。二者协同工作,才能真正保证网络的安全。
7.5 企业的虚拟专用网--VPN技术
随着Internet技术的发展, 人们现在已可以利用Internet实现网络银行、电子购物、电子商务等多种与经济生活相关的经济活动了。在此类经济活动中, 人们最为关心的问题就是Internet 的安全性。目前, 虚拟专用网(Virtual Private Network, VPN)技术是实现安全传输的重要手段之一, 利用它可以在远程用户、公司分支机构、商业合作伙伴与公司的内部网之间建立可信的安全连接, 并保护数据的安全传输。同时, 通过将数据流转移到低成本的IP 网络上而大幅度地减少用户有WAN 和远程网络连接上的费用。正因为它的安全、节省费用、灵活性大等特点, VPN成为网络技术领域中的一个热点。
7.5.1 VPN定义和分类
VPN 被定义为通过一公共网络( Internet) 建立的临时的、安全的连接, 是一条穿过混乱的公用网络的安全、稳定的隧道, 它是对企业内部网的扩展。根据不同的需要, 可以构造3 种类型的VPN: 内部网VPN、远程访问VPN和外连网VPN。在公司和它的分支机构之间建立的VPN称为内部网VPN, 它通过公共网络将一个组织的各分支机构连接在一起, 这种方式连接而成的网络可称为扩展意义上的Internet。在公司和远地职员或移动中的职员之间建立的VPN称为远程访问VPN, 这种连接由通过Interne的远程拨号建立, 它在远地职员和公司之间建立一条加密信道。在公司与商业伙伴、顾客、供应商、投资者之间建立的VPN称为外连网VPN。VPN可在Internet内建立一条隧道(Tunnel) , 经过防火墙后保护信息的安全。
7.5.2 VPN作用与特点
一个VPN至少提供如下功能:
①数据加密;
②信息认证和身份认证;
③访问权限控制。
VPN的以下特点:
1.使用VPN专用网的构建将使费用大幅降低
VPN不需要象传统的专用网那样租用专线设置大量的数据机或远程存取服务器等设备。比如, 远程访问VPN用户只需通过本地的信息服务提供商(ISP) 登录到Internet上, 就可以在他的办公室和公司内部网之间建立一条加密信道, 用这种Internet作为远程访问的骨干网方案比传统的方案(比如租用专线和远端拨号方问) 更易实现, 而费用更少。
2.VPN灵活性大
VPN方便更改网络结构, 方便连接新的用户和网站。
3.VPN易于管理维护
VPN中可以使用RADIUS (Renmote Authentics Diɑl In User Service) 来简化管理, 使用RADIUS,管理则只需维护一个访问权限的中心数据库来简化用户的认证管理,无须同时管理地理上分散的远程访问服务器的访问权限和用户认证。同时在VPN中, 较少的网络设备和线路也使网络的维护较容易。
7.5.3 VPN技术
与实际的点到点连接电路一样, VPN系统可被设计成通过Internet提供安全的点到点(或端到端) 的"隧道"。这种连接与常规的直接拨号连接的不同点在于在后一种情形中, PPP (点对点协议) 数据包流是通过专用线路传输的。在VPN中, PPP数据包流由一个LAN上的路由器发出, 通过共享IP网络上的隧道进行传输, 再到达另一个LAN上的路由器。隧道连接与直接拨号连接的关键不同点是隧道代替了实实在在的专用线路。因为Internet是一个公共传输网络, 建立在它之上的安全专用网络需要有高度的安全技术要求, 而且Internet不提供实际的点到点连接那样的可靠性能。在Internet上, 经常发生阻塞, 导致丢包和包重发, 这将影响到网络的整体性能。基于Internet的VPN 使用了下面一些技术来实现内部数据网。
1.隧道协议(Tunnel Protocols)
VPN技术中的隧道是由隧道协议形成的, 隧道协议用来建立通过Internet的安全的点到点传输,大多数的VPN系统使用点到点隧道协议(PPTP -Point to Point Tunneling Protocol) 、第二层隧道协议(L2TP -Layer 2 Tunneling Protocol) 以及IPsec (Secure IP) 标准。PPTP协议被嵌入到Windows 98 和Windows NT 4.0 中。L2TP协议综合了PPTP协议和L2F(Layer 2 Forwarding) 协议的优点, 并且支持多路隧道, 这样可以使用户同时访问Internet 和企业网。一般而言,PPTP/ L2TP 的特点是:
①封装的PPP数据包中包含用户信息;
②支持隧道交换, 隧道交换可以根据用户权限, 开启并分配新的隧道, 将PPP 数据包在网络中传输;
③便于企业在防火墙和内部服务器上实施访问控制。
位于企业防火墙的隧道终端器接受包含用户信息的PPP 数据包, 然后对不同来源的数据包实施访问控制。隧道交换还可以将用户导向指定的企业内部服务器。而IPsec是一个广泛的、安全的VPN 协议, IPsec包含了用户身份认证、查验和数据完整性内容。该协议规定了用以在两个IP工作站之间进行加密、数字签名等而使用的一系列IP 级协议。IPsec实现来自不同厂商的设备在进行隧道开通和终止时的互操作。同时, IPsec的安全性功能与密钥管理系统松散耦合, 当密钥管理系统发生变化时, IPsec的安全机制不需要进行修改。IPsec 适应向Ipv6迁移, 预计它今后将成为VPN的主要标准。隧道协议有两个重要的方面: 性能与安全。各公司采用不同的标准, 因此这方面有着广泛的技术。同时可以有很多技术来提高隧道的性能, 包括减少丢包、压缩和加密数据, 但在目前, 这些技术并未被广泛应用。
2.隧道服务器(Tunnel Severs)
隧道服务器位于企业网的中心站点, 用于集中隧道连接。隧道服务器具备高性能, 这些高性能设备可以同时处理几百或几千个用户连接。同时隧道服务器往往具有一些访问控制、认证和加密能力。
3.认证(Authenticɑtion)
认证包括对用户身份进行认证, 而不仅是认证IP 地址, 认证后决定是否允许用户对网络资源的访问, 现在有大量的认证技术来认证用户, 包括用户名/ 口令、RADIUS 认证、令牌卡等。一旦一个用户同公司的VPN服务器进行了认证, 根据他的访问权限表, 他就有一定程度的访问权限。每个人的访问权限表由网络管理员制定, 并且要符合公司的安全策略。在大量的认证技术中, VPN 更普遍的是使用RADIUS 来进行用户认证。在RADIUS 服务器中设立一个中心数据库, 这个中心数据库包括用户身份证信息(比如用户名, 口令) , RADIUS 根据这个中心数据库来认证用户。从RADIUS 用户认证大致过程可以看到VPN 采用RADIUS 的原因, 当远程用户拨入远程访问服务器时, RAS 或VPN 获得认证信息, 并将认证信息传给RADIUS 服务器。如果用户在中心数据库中并有权访问网络, RADIUS 通知远程访问服务器继续处理, 同时RADIUS 发送一些关于用户的概要信息(比如用户IP 地址, 用户和网络保持连接的最大时间, 允许用户拨入访问网络的电话号码等) 给远程访问服务器, RAS 或VPN 根据这些信息来检查用户是否符合所有的条件, 只有当拨入用户符合所有的条件, 用户才能访问网络。
4.加密(Encrytion)
当数据包传递时, 加密技术用来隐藏数据包。如果数据包要通过不安全的Internet , 那么即使已建立了用户认证, VPN 也不完全是安全的。因为如果没有加密的话, 普通的嗅探技术也能捕获、甚至更改信息流。所以在隧道的发送端, 认证用户要先加密, 再传送数据; 在接收端, 认证用户接收后再解密。
7.6 电子邮件安全性
7.6.1 邮件病毒特点
随着Internet上使用E-mail的日益增多,各种各样的电子邮件病毒也不断出现。一些通过网络和E-mail方式传播的病毒有各种表现形式,其中许多还带有欺骗性的主题,网络病毒通过E-mail传播的特点有:
" 感染速度快。在单机环境下,病毒只能通过软盘从一台计算机带到另一台,而在网络中则可以通过网络通讯机制进行迅速扩散。只要有一台工作站有病毒,就可能在几十分钟内将网上的数百台计算机全部感染。
" 扩散面广。由于病毒在网络中扩散非常快,扩散范围很大,不但能迅速传染局域网内所有计算机,还能通过远程工作站将病毒在一瞬间传播到千里之外。
" 传播的形式复杂多样。计算机病毒在网络上一般是通过"工作站→服务器→工作站"的途径进行传播的,但传播的形式复杂多样。
" 难于彻底清除。单机上的计算机病毒有时可通过删除带毒文件。低级格式化硬盘等措施将病毒彻底清除,而网络中只要有一台工作站未能干净清除病毒就可使整个网络重新被病毒感染,甚至刚刚完成清除工作的一台工作站就有可能被网上另一台带毒工作站所感染。因此,仅对工作站进行病毒杀除,并不能解决病毒对网络的危害。
" 破坏性大。网络上病毒将直接影响网络的工作,轻则降低速度,影响工作效率,重则使网络崩溃, 破坏服务器信息,使多年工作毁于一旦。
7.6.2 邮件病毒防范
一般邮件病毒的传播是通过附件进行的。如Happy99、Mellissa(美丽杀手)等。你收到的邮件中会看到带病毒的附件,如名为happy99.exe的文件时,不要运行它,直接删掉就可以了。
有些是潜伏在WORD文件中的宏病毒,因此对WORD文件形式的附件,也应当小心。
另一种病毒是利用ActiveX来传播。由于一些E-mail软件如outlook等可以发送HTML格式的邮件,而HTML文件可包含ActiveX控件,而ActiveX在某些情况下又可以拥有对你的硬盘的读写权,因此带有病毒的HTML格式的邮件,可以在你浏览邮件内容时被激活。但这种情况仅限于HTML格式的邮件。在一些邮箱配置中,选择"使用嵌入式IE浏览器查看HTML邮件"时,如果你选择了"使用"的话,系统将调用IE的功能来显示HTML邮件,病毒有机会被激活。但如果你没有选择此开关,则以文本方式显示邮件内容,这种状况下不用担心潜伏在HTML中的病毒。
7.6.3 电子邮件炸弹
电子邮件炸弹指的是发件者以不名来历的电子邮件地址,不断重复将电子邮件寄于同一个收件人。称为E-mail Bomber。 另外一个与邮件有关的名词是Spaming,它指的同发件者在同一时间内将同一电子邮件寄出给千万个不同的用户(或寄到新闻组),例如一些公司用来宣传其产品的广告方式。但Spaming不会对收件人造成太大的伤害,而电子邮件炸弹则会干扰到你的电子邮件,是杀伤力强大的网络武器。
电子邮件炸弹之所以可怕,是因为它可以大量消耗网络资源。一般网络用户的户头容量都有限(大概是2MB到5MB左右),而这有限的容量除了让你处理电子邮件,还得用来卸载一些软件,浏览或设计网页。如果你在短时间内收到上千个电子邮件,而每个电子邮件又占据了一定的容量,一个电子邮件炸弹的总容量很容易就超过你的网络户头所能够承受的负荷。在这样的情况下,你的电子邮件库不仅不能够再接收其他人寄给你的电子邮件,也随时会因为"超载",导致整个电脑瘫痪。
如果想用电子邮件中的reply和forward的功能"回礼",将整个炸弹"反丢"回给发件人,有可能让自己的机器进一步瘫痪。因为对方可能将电子邮件中的Form和To的两个栏目都改换成你的电子邮件地址,你的回发行动不仅不能够成功,还会置自己和你的网络接入服务提供者于死地。当你的电子邮件库爆满,不能容许任何电子邮件进入时,你所寄出的电子邮件就会永无止境地"反弹"回给你自己,因为这个时候,你的"发件人"和"收件人",已被改为你自己!
另一方面,如果情况严重的话(又或这个炸弹有病毒的话),你的网络接入服务提供者在忙着处理你大量的电子邮件的来往交通时,会导致其他用户的电子邮件交通缓慢了下来,延迟了整个过程。网络接入服务提供者可能承受不了这些服务,而整个网络随时也都会瘫痪。
比较有效的防御方式有:可以在电子邮件中安装一个过滤器(比如说E-mail notify),在接收任何电子邮件之前预先检查发件人的资料, 如果觉得有可疑之处,可以将之删除,不让它进入你的电子邮件库。
7.6.4 邮件加密标准PGP
在现代社会里,电子邮件和网络上的文件传输已经成为生活的一部分,邮件的安全问题日益突出。如果对自己邮件的重要信息不加以保护,第三者会很轻易地获得你的隐秘。另外一个问题就是信息认证,即如何让收信人确信邮件没有被第三者篡改,这就需要数字签名技术。PGP 就是这样一种既保护隐私又可以包含信息认证的产品。
PGP(Pretty Good Privacy)是一个基于RSA公钥加密体系的邮件加密软件,它提出了公共钥匙或不对称文件加密和数字签名。其创始人是美国的Phil Zimmermann。他的创造性在于他把RSA公钥体系的方便和传统加密体系的高速结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计,因此PGP成为目前几乎最流行的公钥加密软件包。这里主要介绍PGP实现的原理和使用。
1.PGP的主要特征
" 使用PGP对邮件加密,以防止非法阅读;
" 能给加密的邮件追加上数字签名,从而使收信人进一步确信邮件的发送者,而事先不需要任何保密的 | |