要设计一个安全的系统,除了要了解一些前面讲到的常用的保护手段和技术措施外,还要对系统中可能出现的安全问题或存在的安全隐患有充分的认识,这样才能对系统的安全作有针对性的设计和强化,即“知己知彼,百战百胜”。
下面以物理安全、防火墙、入侵检测为例讲解系统安全中可能出现的问题及如何采取相应的措施。
一、物理安全问题与设计
物理安全包括物理设备本身是否安全可靠,还包括设备的位置与环境的安全、限制物理访问、地域因素等几个方面。
信息系统的所有重要的物理设备、设施都应该放在专门的区域,并尽可能集中,同时严格限制外来人员来访,尽可能地减少未经授权的访问。
物理安全还要求在设计中注意物理设备的冗余备份,例如,核心设备或部件都应该是热备份系统,具有实时或准实时切换的能力。
物理安全还要求严格限制对网络信息点、线缆等网络基础设施及其所在地进行物理访问,要想访问必须经过专门的授权。
物理安全还包括环境方面的因素,在设计之初就要对信息系统中的温度、湿度、灰尘、振动、雷电、电力等方面的参数有明确的要求,要对自然灾害(地震、台风、闪电等)有充分的考虑,还要对电磁泄漏等方面的要求作明确的定义。设计系统时要对这些因素全盘考虑,并采取适当的防护措施或强化手段。例如,机房这种重要的地点,除了所在的建筑物要有防雷系统外,还可以加装一套专用的防雷系统。这样可以保证即使建筑物遭到雷击时,万一建筑物的避雷系统未能充分保护好昂贵的信息系统,那么单独为机房安装的专用避雷系统也能保障机房设备免受损失。
二、防火墙及其在系统安全中的应用
网络安全隐患主要是由网络的开放性、无边界性、自由性造成的,所以保护网络安全可以首先考虑把被保护的网络从开放的、无边界的、自由的公共网络环境中独立出来,使之成为有管理的、可控制的、安全的内部网络。也只有做到这一点,实现信息网络的通信安全才有可能。
目前,最基本的网络分隔手段就是防火墙,它也是目前用来实现网络安全的一种主要措施。利用防火墙,可以用来在拒绝未经允许的网络连接、阻止敏感数据的泄漏的同时,保证合法用户的合法网络流量畅通无阻,可以实现内部可信任网络(如企业网)与外部不可信任网络(如 Internet)之间,或是内部不同子网之间的隔离与控制,保证网络系统及网络服务的可用性。
1.防火墙的基本原理
防火墙通常使用的采用包过滤、状态检测、应用网关等几种方式控制网络连接。
包过滤防火墙是一种简单而有效的安全控制技术,它根据在防火墙中预先定义的规则(允许或禁止与哪些源地址、目的地址、端口号有关的网络连接),对网络层和传输层的数据包进行检查,进而控制数据包的进出。包过滤的优点是对用户透明、传输性能高。但是由于只能在网络层、传输层进行控制,安全控制的方式也只限于源地址、目的地址和端口号这几种,对于应用层的信息无法感知,因而只能进行较为初步的安全控制,对于拥塞攻击、内存覆盖攻击或病毒等高层次的攻击手段,则无能为力。
状态检测防火墙保持了包过滤防火墙的优点,所以性能比较好,而且对应用是透明的。同时,状态检测防火墙改进了包过滤防火墙仅仅检查进出网络的数据包,不关心数据包状态的缺点,在防火墙的内部建立状态连接表,维护了连接,将进出网络的数据当成一个个的事件来处理。对于每一个网络连接,状态检测根据预先设置的安全规则,允许符合规则的连接通过,并在内存中记录下该连接的相关信息,生成状态表。对该连接的后续数据包,只要符合状态表,就可以通过。这种方式的好处在于:由于不需要对每个数据包进行规则检查,而是对一个连接的后续数据包(通常是大量的数据包)通过散列算法,直接进行状态检查,从而使得性能得到了较大提高。
与不关心应用层数的前两种方式不同,应用网关防火墙检查所有应用层的信息包,并将检查的内容信息放入决策过程,从而提高网络的安全性。然而,应用网关防火墙是通过打破客户机/服务器模式实现的。每个客户机/服务器通信需要两个连接:一个是从客户端到防火墙,另一个是从防火墙到服务器。另外,每个网关需要一个不同的应用进程,或一个后台运行的服务程序,对每个新的应用必须添加针对此应用的服务程序,否则不能使用该服务。所以,应用网关防火墙使用起来比较麻烦,而且通用性比较差。
2.防火墙的优点
在系统中使用防火墙,对于系统的安全有很多的优点:
(1)可以隔离网络,限制安全问题的扩散。防火墙可以隔离不同的网络,或者用来隔离网络中的某一个网段,这样就能够有效地控制这个网段或网络中的问题在不同的网络中传播,从而限制安全问题的扩散。
(2)通过防火墙可以对网络中的安全进行集中化管理,简化网络安全管理的复杂度。只要在防火墙上配置好过滤策略,就能使防火墙成为一个网络安全的检查站,所有进出网络的信息都需要通过防火墙,把非法访问拒于门外。从而实现安全的集中统一的管理,并且能够简化安全管理的复杂度。
(3)能够有效地记录 Internet 上的活动。因为所有进出内部网络的信息都必须通过防火墙,所以防火墙能够收集内部网络和外部网络之间或者不同网段之间所发生的事件,为管理员的进一步分析与安全管理提供依据。
3.正确使用防火墙虽然防火墙的技术日渐成熟起来,成为维护网络安全的一个重要的手段。但是,它也不能完全解决网络上的安全问题。在实际使用过程中还有一些安全性是防火墙不能实现的,在实际工作中,一般应注意如下几点:
(1)防火墙虽然能对来自外部网络的非法连接作很严格的限制,但是对来自本地网络内部的攻击却无从防范。事实上,大多数攻击不是来自外部,而是来自内部。因此,即使使用了防火墙,对本地网络内部的主机、应用系统、数据库等也要采取其他有效的措施,才能真正做到安全。
(2)即使对于来自外部的攻击,目前的任何防火墙也不能做到完全阻挡所有的非法入侵。随着各种新技术的陆续涌现,非法分子对系统的深入研究与剖析,各种新的应用需求不断被开发,防火墙本身也会受到越来越多的威胁。对这些新的动态、趋势要密切关注,不断地升级防火墙、修正完善防火墙的配置,才能使防火墙本身更加坚固,进而长久地发挥安全保护作用。
(3)防火墙不能防范病毒,无法抵御基于数据的攻击。尽管防火墙的过滤技术在不断完善,可是由于病毒的类型太多,隐藏方式也非常复杂,而且它们很多都是隐藏在数据文件中,因此要防火墙对所有的包含病毒的文件作出限制是不太现实的,而应当在系统中单独安装专门的病毒网关或者在主机上安装相应的防病毒软件、反间谍软件等工具软件,才能较好地防范此类安全隐患。
(4)防火墙不能防范全部的威胁,而只能防备已知的威胁。所以在使用过程中,应当经常根据需要配合使用入侵检测系统。
(5)防火墙不能防范不通过它的链接。防火墙可以有效地过滤经过它的信息传输,但不能防范不通过它的信息传输,例如,如果允许拨号访问防火墙后面的内部系统,则防火墙没有任何办法对它进行控制。
三、入侵检测系统
传统上,一般采用防火墙作为系统安全的边界防线。但是,随着攻击者的知识日趋丰富,攻击工具与手法的日趋复杂多样,单纯的防火墙已经无法满足对安全高度敏感的部门的需要,网络的防卫必须采用一种纵深的、多样的手段。
与此同时,当今的网络环境也变得越来越复杂,各式各样的复杂的设备,需要不断升级、补漏,系统管理员的工作不断加重,不经意的疏忽便有可能造成安全的重大隐患。所以,信息系统中存在着不少可以被攻击者所利用的安全弱点、漏洞及不安全的配置,主要表现在操作系统、网络服务、TCP/IP 协议、应用程序(如数据库、浏览器等)、网络设备等几个方面。正是这些弱点、漏洞和不安全设置给攻击者以可乘之机。
另外,由于大部分网络缺少预警防护机制,即使攻击者已经侵入到内部网络,侵入到关键的主机,并从事非法的操作,系统管理员也很难察觉到。这样,攻击者就有足够的时间来做他们想做的任何事情。
要防止和避免遭受攻击和入侵,不仅要找出网络中存在的安全弱点、漏洞和不安全的配置,然后采取相应措施解决这些弱点、漏洞,对不安全的配置进行修正,最大限度地避免遭受攻击和入侵;还要对网络活动进行实时监测,一旦监测到攻击行为或违规操作,能够及时作出反应,包括记录日志、报警甚至阻断非法连接。
在这种环境下,入侵检测(Intrusion Detection)技术受到人们愈来愈多的关注,而且已经开始在各种不同的环境中发挥其关键作用。入侵检测系统可以在系统中发生一些不正常的操作时发出警报,防患于未然。设置硬件防火墙,可以提高网络的通过能力并阻挡一般性的攻击行为;而采用入侵检测系统,则可以对越过防火墙的攻击行为及来自网络内部的违规操作进行监测和响应。
入侵检测技术IDS,通过对计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。与其他安全产品不同的是,入侵检测系统需要更多的智能,它要根据智能库对收集到的数据进行分析,并采取相应措施。
作为对防火墙极其有益的补充,入侵检测系统(IDS)能够帮助人们快速发现系统攻击的发生,扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应等),提高了信息系统的安全性。入侵检测系统被认为是防火墙之后的第二道安全闸门,它能在不影响网络性能的情况下对网络进行监听,从而提供对内部攻击、外部攻击和误操作的实时保护。
入侵检测系统作为一种积极主动的安全防护工具,能够在计算机网络和系统受到危害之前进行报警、拦截和响应。其主要功能包括:通过检测和记录系统中的安全违规行为,惩罚信息系统攻击,防止入侵事件的发生;检测其他安全措施未能阻止的攻击或安全违规行为;检测黑客在攻击前的探测行为,预先给管理员发出警报;报告信息系统中存在的安全威胁;提供有关攻击的信息,帮助管理员诊断系统中存在的安全弱点,利于其进行修补。
在大型、复杂的计算机系统中布置入侵检测系统,可以明显提高信息系统安全管理的质量。
1.入侵检测技术
入侵检测系统的处理过程分为数据采集阶段、数据处理及过滤阶段、入侵分析及检测阶段、报告及响应阶段 4 个阶段。数据采集阶段主要收集目标系统中引擎提供的通信数据包和系统使用等情况。数据处理及过滤阶段是把采集到的数据转换为可以识别是否发生入侵的数据的阶段。分析及检测阶段通过分析上一阶段提供的数据来判断是否发生入侵。这一阶段是整个入侵检测系统的核心阶段。报告及响应阶段针对上一个阶段中得出的判断作出响应。如果被判断为发生入侵,系统将对其采取相应的响应措施,或者通知管理人员发生入侵,以便于采取措施。
在入侵检测系统的工作过程中,对信息系统中的各种事件进行分析,从中检测出违反安全策略的行为是入侵检测系统的核心功能。检测技术分为两类:一种是基于标识(signature-based)的入侵检测,另一种是基于异常情况(anomaly-based)的入侵检测。
基于标识的检测技术,先定义出违背安全策略的事件的特征,如网络数据包的某些头
信息等。然后对收集到的数据进行分析,通过判别这类特征是否在所收集到的数据中出现来判断是否受到入侵。此方法非常类似杀毒软件的特征码检测,比较简单有效。
而基于异常的检测技术则先定义一组系统“正常”情况的数值,如 CPU 利用率、网络流量规律、文件校验和等(这类数据可以人为定义,也可以通过观察系统,并用统计的办法得出),然后将系统运行时的数值与所定义的“正常”情况比较,得出是否有被攻击的迹象。这种检测方式的核心在于如何定义所谓的“正常”情况。
两种检测技术的方法、所得出的结论有时会有非常大的差异。基于标识的检测技术的核心是维护一个知识库。对于已知的攻击,它可以详细、准确地报告出攻击类型,但是对未知攻击却效果有限,而且知识库必须不断更新。基于异常的检测技术则无法准确判别出攻击的手法,但它可以判别更广泛,甚至未发觉的攻击。如果条件允许,两者结合的检测会达到更好的效果。
2.入侵检测系统的种类和选用
一般来说,入侵检测系统可分为主机型和网络型。
主机型入侵检测系统往往以系统日志、应用程序日志等作为数据源,当然也可以通过其他手段(如监控系统调用)从所在的主机收集信息进行分析。主机型入侵检测系统保护的一般是其所在的主机系统。主机型入侵检测系统需要为不同平台开发不同的程序,而且会增加系统负荷,还要在每一台主机安装,比较麻烦,但是可以充分利用操作系统本身提供的功能,并结合异常分析,更准确地报告攻击行为。
网络型入侵检测系统则以网络上的数据包作为数据源,通过在一台主机或网络设备上监听本网段内的所有数据包来进行分析判断。一般网络型入侵检测系统担负着保护整个网段的任务。这种系统应用十分简便:一个网段上只需安装一个或几个这样的系统,便可以监测整个网段的情况,但是它不跨越多个物理网段,对于复杂结构的网络(如交换环境)监测效果有一定影响。
主机型入侵检测系统和网络型入侵检测系统各有利弊,应用中可以根据实际需要从中选择。