1、入侵检测的概念
入侵检测(Intrusion Detection)的概念首先是由詹姆斯·安德森(James Anderson)于1980年提出来的。入侵是指在信息系统中进行非授权的访问或活动,不仅指非系统用户非授权登录系统和使用系统资源,还包括系统内的用户滥用权利对系统造成的破坏,如非法盗用他人的账户、非法获得系统管理员权限、修改或删除系统文件等。
入侵检测的内容包括:试图闯入、成功闯入、冒充其他用户、违反安全策略、合法用户账户信息的泄露、独占资源以及恶意使用。进行入侵检测的软件与硬件的组合便是入侵检测系统(Intrusion Detection System,IDS)。它通过从计算机 络或计算机系统的关键点收集信息并进行分析,从中发现 络或系统中是否有违反安全策略的行为和被攻击的迹象并且对其做出反应。入侵检测系统的有些反应是自动的,如(通过控制台或电子邮件)通知 络安全管理员,中止入侵进程,关闭系统,断开与互联 的连接,使该用户无效,执行一个准备好的命令等。
入侵检测被认为是防火墙之后的第二道安全闸门,提供对内部攻击、外部攻击和误操作的实时防护。这些防护都通过它执行以下任务来实现:
① 监视、分析用户及系统活动,查找非法用户和合法用户的越权操作;
② 审计系统构造和弱点,并提示管理员修补漏洞;
④ 统计分析异常行为模式,发现入侵行为的规律;
⑤ 评估重要系统和数据文件的完整性,如计算和比较文件系统的校验和;
2、入侵检测系统
图1描述了一个入侵检测系统中的各部分之间的关系。
图1 入侵检测系统
探测器从数据源中提取出与安全相关的数据和活动,如不希望的 络连接(Telnet)或系统日志中用户的越权访问等,并将这些数据传送给分析器做进一步分析。
分析器的职责是对探测器传来的数据进行分析,如果发现未授权或不期望的活动,就产生警 并将其 告给管理器。
管理器是入侵检测系统的管理部件,其主要功能有配置探测器、分析器,通知操作员发生了入侵,采取应对措施等。管理器接收到分析器的警 后,便通知操作员并向其 告情况,通知的方式有声音、E-mail、SNMP Trap等。同时管理器还可以主动采取应对措施,如结束进程、切断连接、改变文件和 络的访问权等。操作员利用管理器来管理入侵检测系统,并根据管理器的 告采取进一步的措施。
管理员是 络和信息系统的管理者,负责制定安全策略和部署入侵检测系统。
安全策略是预先定义的一些规则,这些规则规定了 络中哪些活动可以允许发生或者外部的哪些主机可以访问内部的 络等。安全策略通过被应用到探测器、分析器和管理器上来发挥作用。
(1)基于 络的入侵检测系统
基于 络的入侵检测系统不需要改变服务器等主机的配置,不会在业务系统的主机中安装额外的软件,从而不会影响这些机器的CPU、I/O接口与磁盘等资源的使用。基于 络的入侵检测系统不像路由器、防火墙等关键设备,其不会成为系统中的关键路径。基于 络的入侵检测系统发生故障不会影响到正常的业务运行,而且部署一个基于 络的入侵检测系统的风险比基于主机的入侵检测系统的风险小得多。
基于 络的入侵检测系统的优势在于它的实时性,当检测到攻击时,其能很快做出反应。另外,基于 络的入侵检测系统可以在一个点上监测整个 络中的数据包,不必像基于主机的入侵检测系统那样,需要在每一台主机上都安装检测系统,因此,基于 络的入侵检测系统是一种经济的解决方案。并且,基于 络的入侵检测系统检测 络包时并不依靠操作系统来提供数据,因此它有着对操作系统的独立性。
但基于 络的入侵检测系统也有一些缺陷,因此也面临着以下挑战。
① 络入侵检测系统可能会将大量的数据传回分析系统。
② 不同 络的最大传输单元(Maximum Transmission Unit,MTU)不同,一些大的 络包常常被分成小的 络包来传递。当大的 络包被拆分时,其中的攻击特征有可能被分拆。基于 络的入侵检测系统在 络层无法检测到这些特征,而在上层这些被拆分的包又会重新装配起来,引发攻击与破坏。
③ 随着VPN、SSH和SSL的应用,数据加密越来越普遍,传统的基于 络的入侵检测系统工作在 络层,无法分析上层的加密数据,从而也无法检测到加密后的入侵 络包。
④ 在百兆甚至是千兆 上,仅仅通过在一个点上分析整个 络上的数据包是不可行的,那样必然会引发丢包问题,从而造成漏 或误 。
⑤ 异步传输模式(ATM) 络以小的、固定长度的包(信元)传送信息。53字节定长的信元与以往的包技术相比具有一些优点:短的信元可以快速交换,硬件实现容易。但是,交换 络不能被传统 络侦听器监视,从而无法对数据包进行分析。
(2)基于主机的入侵检测系统
基于主机的入侵检测系统检测发生在主机上的活动,处理的都是操作系统事件或应用程序事件而不是 络包,所以高速 络对它没有影响。同时它使用的是操作系统提供的信息,经过加密的数据包在到达操作系统后,都已经被解密,所以基于主机的入侵检测系统能很好地处理包加密的问题。并且,基于主机的入侵检测系统还可以综合多个数据源进行进一步的分析,利用数据挖掘技术来发现入侵。
但是,基于主机的入侵检测系统也有自身的缺陷,主要有以下5点。
① 降低系统性能:原始数据要经过集中、分析和归档处理,这些都需要占用系统资源,因此,基于主机的入侵检测系统会在一定程度上降低系统性能。
② 配置和维护困难:每台被检测的主机上都需要安装检测系统,每个系统都有维护和升级的任务,安装和维护需要一笔不小的费用。
③ 存在被关闭的可能:由于基于主机的入侵检测系统安装在被检测的主机上,因此有权限的用户或攻击者可以关闭检测程序以使自己的行为在系统中没有记录,进而来逃避检测。
④ 存在数据欺骗问题:攻击者或有权限的用户可以插入、修改或删除审计记录,逃避基于主机的入侵检测系统的检测。
⑤ 实时性较差:基于主机的入侵检测系统进行的多是事后检测,因此,当发现入侵时,系统多数已经遭到了破坏。
(3)分布式入侵检测系统
此外,根据工作方式可将入侵检测系统分为离线检测系统与在线检测系统。离线检测系统是非实时工作的系统,离线检测系统在事后分析审计事件,从中检查入侵活动。在线检测系统是实时联机的检测系统。在线检测系统的工作包含对实时 络数据包进行分析,对实时主机审计进行分析。其工作过程是在 络连接过程中实时检测入侵,一旦发现入侵迹象立即断开入侵者与主机的连接,并收集证据和实施数据恢复。这个检测过程是不断循环进行的。
3、入侵检测方法
入侵检测系统常用的检测方法有特征检测、统计检测与专家系统。目前入侵检测系统绝大多数属于使用入侵模板进行模式匹配的特征检测系统,其他少量是采用概率统计的统计检测系统与基于日志的专家系统。
(1)特征检测
特征检测对已知的攻击或入侵的方式做出确定性的描述,形成相应的事件模式。当被审计的事件与已知的入侵事件模式相匹配时,即 警。原理上与专家系统相仿。其检测方法与计算机病毒的检测方式类似。目前基于对包特征描述的模式匹配应用较为广泛。
该方法预 检测的准确率较高,但对于无经验知识的入侵与攻击行为无能为力。
(2)统计检测
统计模型常用异常检测,在统计模型中常用的测量参数包括:审计事件的数量、间隔时间、资源消耗情况等。常用的入侵检测的统计模型有:马尔可夫过程模型和时间序列分析模型。统计检测是基于对用户的历史行为进行建模以及在早期的证据或模型的基础上,审计系统实时地检测用户对系统的使用情况,根据系统内部保存的用户行为概率统计模型进行检测,当发现有可疑的用户行为发生时,保持跟踪并监测、记录该用户的行为。
统计检测的最大优点是它可以“学习”用户的使用习惯,从而获得较高的检出率与可用性。但是它的“学习”能力也给入侵者提供了机会。入侵者可以通过逐步“训练”使入侵事件符合正常操作的统计规律,从而透过入侵检测系统。
(3)专家系统
使用专家系统对入侵进行检测,经常针对的是有特征入侵的行为。所谓的规则即知识,不同的系统与设置具有不同的规则,且规则之间往往无通用性。专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性与实时性。入侵的特征抽取与表达,是入侵检测专家系统的关键。
该技术根据安全专家对可疑行为的分析经验来建立一套推理规则,然后在此基础上建立相应的专家系统,由此专家系统即可自动进行对所涉及的入侵行为的分析工作。该系统应当能够随着经验的积累而利用其自学能力进行规则的扩充和修正。
另外,入侵检测技术可以分为异常检测(anomaly detection)和误用检测(misuse detection)。异常检测是提取正常模式下审计数据的数学特征,检查事件数据中是否存在与之相违背的异常模式。误用检测是搜索审计事件数据,查看其中是否存在预先定义好的误用模式。为了提高准确性,入侵检测又引入了数据挖掘、人工智能、遗传算法等技术。但是,入侵检测技术还没有达到尽善尽美的程度,该领域的许多问题还有待解决。
(4)其他入侵检测方法
随着入侵检测系统的不断发展,研究人员又提出了一些新的入侵检测技术,这些技术不能简单地归结为误用检测或异常检测,它们提供了一些具有普遍意义的分析技术。这些技术具体包括基于免疫系统的检测方法、遗传算法和基于内核的检测方法等。
1)基于免疫系统的检测方法
免疫系统是保护生命机体不受病原体侵害的系统,它对病原体和非自身组织的检测是相当准确的,不但能够记忆曾经感染过的病原体的特征,还能够有效地检测未知的病原体。免疫系统具有分层保护、分布式检测、各部分相互独立和检测未知病原体的特性,这些都是计算机安全系统所缺乏和迫切需要的。
2)遗传算法
另一种较为复杂的检测技术是使用遗传算法对审计事件记录进行分析。遗传算法是进化算法(evolutionary algorithms)的一种,通过引入达尔文在进化论里提出的“自然选择”概念对系统进行优化。遗传算法通常针对需要进行优化的系统变量进行编码,并将它们作为构成个体的“染色体”,再利用相应的变异和组合,形成新的个体。
在遗传算法的研究人员看来,入侵的检测过程可以抽象为:为审计记录定义一种向量表示形式,这种向量或者表示攻击行为,或者表示正常行为。通过对所定义的向量进行测试,提出改进后的向量表示形式,并不断重复这一过程,直至得到令人满意的结果(攻击或正常)。
3)基于内核的检测方法
随着开放源代码的操作系统Linux的流行,基于内核的检测方法成为了入侵检测的新方向。这种方法的核心是从操作系统的层次上看待安全漏洞,并采取措施避免甚至杜绝安全隐患。该方法主要通过修改操作系统源代码或向内核中加入安全模块来保护重要的系统文件和系统进程等。OpenWall和LIDS就是基于内核的入侵检测系统。
4、蜜罐和蜜
现行入侵检测系统及其入侵检测技术,都存在一些缺陷。为了避免这一问题,科技人员引入了 络诱骗技术,即蜜罐(Honeypot)和蜜 (Honeynet)技术。
(1)蜜罐(Honeypot)
Honeypot是一种全新的基于 络的入侵检测系统,它诱导攻击者访问预先设置的Honeypot而不是工作中的 络,可以提高检测攻击和攻击者行为的能力,降低攻击带来的破坏。
Honeypot的目的有两个:一是在不被攻击者察觉的情况下监视他们的活动、收集与攻击者有关的所有信息;二是牵制攻击者,让攻击者将时间和资源都耗费在攻击Honeypot上,使攻击者远离实际的工作 络。为了达到这两个目的,Honeypot的设计方式必须与实际的系统一样,还应包括一系列能够以假乱真的文件、目录及其他信息。这样,攻击者一旦入侵Honeypot,就会以为自己控制了一个很重要的系统,并会充分施展“才能”。而Honeypot就像监视器一样监视攻击者的所有行动:记录攻击者的访问企图,捕获击键,确定被访问、修改或删除的文件,指出被攻击者运行的程序等。Honeypot会从捕获的数据中学习攻击者的技术,分析系统存在的脆弱性和受害程序,以便做出准确、快速的响应。
Honeypot可以是这样的一个系统:模拟某些已知的漏洞或服务、模拟各种操作系统、在某个系统上进行设置以使它变成“牢笼”环境或者是一个标准的操作系统,在上面可以打开各种服务。
Honeypot与基于 络的入侵检测系统相比,具有以下特点。
1)较小的数据量
Honeypot仅收集那些对它进行访问的数据。在同样的条件下,基于 络的入侵检测系统可能会记录成千上万的 警信息,而Honeypot却只记录几百条。这就使得Honeypot收集信息更容易,分析信息也更方便。
2)减少误 率
Honeypot能显著减少误 率。任何对Honeypot的访问都是未授权的、非法的,这样,Honeypot检测攻击就非常有效,从而可以大大减少甚至避免错误的 警信息。 络安全人员可以集中精力采取其他的安全措施,如及时添加软件补丁等。
3)捕获漏
Honeypot可以很容易地鉴别并捕获针对它的新的攻击行为。由于针对Honeypot的任何操作都不是正常的,因此任何新的、以前没有过的攻击很容易暴露。
4)资源最小化
Honeypot所需要的资源很少,即使工作在一个大型 络环境中也是如此。一个简单的Pentium主机可以模拟具有多个IP地址的C类 络。
(2)蜜 (Honeynet)
Honeynet的概念是由Honeypot发展而来的。起初人们为了研究黑客的入侵行为,在 络上放置了一些专门的计算机,并在上面运行专用的模拟软件,以使这些计算机在外界看来就是 络上运行某些操作系统的主机。把这些计算机放在 络上,并为之设置较低的安全防护等级,可使入侵者比较容易地进入系统。入侵者进入系统后,其一切行为都会在系统软件的监控和记录之下。系统软件通过收集描述入侵者行为的数据,可以对入侵者的行为进行分析。目前Honeypot 的软件已经有很多,可以模拟各种各样的操作系统,如Windows、RadHat、FreeBSD,甚至Cisco路由器的iOS,但是模拟软件不能完全反映真实的 络状况,也不可能模拟实际 络中所出现的各种情况,在其上收集到的数据有很大的局限性,因此就出现了由真实计算机组成的 络Honeynet。
1)Honeynet与Honeypot的区别
Honeynet与传统意义上的Honeypot有3个最大的不同。
① 一个Honeynet是一个 络系统,而并非某台单一主机。这一 络系统是隐藏在防火墙后面的,所有进出的数据都会被其关注、捕获并控制。这些被捕获的数据可以帮助我们研究分析入侵者使用的工具、方法及动机。在这个Honeynet中,可以使用各种不同的操作系统及设备,如Solaris、Linux、Windows NT、Cisco Switch等。这样建立的 络环境看上去会更加真实可信,同时我们还在不同的系统平台上运行着不同的服务,如Linux的DNS server,Windows NT的Web server或者一个Solaris的FTP server。我们可以学习不同的工具以及不同的策略,或许某些入侵者仅把目标定于几个特定的系统漏洞上,而多样化的系统可能会揭示出关于入侵者更多的特性。
② Honeynet中的所有系统都是标准的机器,上面运行的都是真实完整的操作系统及应用程序。Honeynet不会刻意地模拟某种环境或者故意地使系统不安全。在Honeynet里面找到的存在风险的系统,与互联 上的一些系统别无二致。将普通的操作系统放入Honeynet中,并不会对整个 络造成影响。
③ Honeypot通过把系统的脆弱性暴露给入侵者或是故意使用一些具有强烈诱惑性的假信息(如战略性目标、年度 表等)来诱骗入侵者。这样虽然可以对入侵者进行跟踪,但也会引来更多的潜在入侵者(他们因好奇而来)。而更进一步,应该在实际的系统中运行入侵检测系统,当检测到入侵行为时,才能进行诱骗,这样才能更好地保护系统。Honeynet是在入侵检测的基础上实现入侵诱骗的,这与目前Honeypot的理论差别很大。
2)Honeynet原型系统
图2所示为将防火墙、入侵检测系统、二层 关和Honeynet有机地结合起来,设计了一个Honeynet的原型系统。
图2 Honeynet原型系统
在图2中,外部防火墙与系统原有安全措施兼容,只需对其安全策略进行调整,使之适应加入的Honeynet诱骗系统即可。在原型系统中实现Honeynet的入侵检测子系统和入侵行为重定向子系统。
图2中采用了最新Honeynet技术,即二层 关(也称 桥)。由于 桥没有IP协议栈,也就没有IP地址、路由通信量及TTL缩减等特征,因此入侵者很难发现 桥的存在,也永远不知道自己正处于被分析和监控之中。而且所有出入Honeynet的通信量必须通过 桥,这意味着在单一的 桥设备上就可以实现对全部出入通信量的数据控制和捕获。通过对 桥上的rc.firewall和snort.sh等脚本进行配置可以实现Honeynet的防火墙与入侵检测系统的智能连接控制、防火墙日志以及入侵检测系统日志功能。
桥有A、B、C三个 络接口。A接口用于和外部防火墙相连,接收重定向进来的属于可疑或真正入侵的 络连接;B接口用于Honeynet内部管理以及远程日志等功能;C接口用于和Honeypot主机相连,进行基于 络的入侵检测,实时记录Honeynet系统中的入侵行为。 桥上可以根据需要运行 络流量仿真软件,通过仿真流量来麻痹入侵者。路由器、外部防火墙和 桥为Honeynet提供了较高的安全保障。
两台Honeypot主机各自虚拟两个客户操作系统,4个客户操作系统分别拥有各自的 络接口,根据DMA区的应用服务来模拟部署脆弱性服务,并应用IP空间欺骗技术来增加入侵者的搜索空间,运用 络流量仿真、 络动态配置和组织信息欺骗等多种 络攻击诱骗技术来提高Honeynet的诱骗质量。通过这种虚实结合的方式来构建一个虚拟Honeynet脆弱性模拟子系统,使其与入侵者进行交互周旋。
为了进行隐蔽的远程日志和Honeynet管理工作,在Honeypot主机的宿主操作系统、 桥和远程日志服务器上分别添加一个 卡,使它们互连成一个对入侵者透明的私有 络。远程日志服务器除了承担远程传来的防火墙日志、入侵检测系统日志以及Honeypot系统日志三重日志的数据融合工作以外,还充当了Honeynet的入侵行为控制中心,对Honeynet各个子系统进行协调、控制和管理。远程日志服务器的安全级别最高,可以令所有不需要的服务关闭。
5、恶意软件检测
计算机病毒是人为制造的、能够进行自我复制的、具有破坏计算机资源作用的一组程序或指令的集合。计算机病毒把自身附着在各种类型的文件上或寄生在存储媒介中,能对计算机系统和 络进行各种破坏,同时有独特的复制能力和传染性,能够自我复制和传染。
计算机病毒种类繁多、特征各异,但一般具有自我复制能力、感染性、潜伏性、触发性和破坏性。目前典型的病毒检测方法的介绍如下。
1)直接检查法
感染了病毒的计算机系统的内部会发生某些变化,并会在一定的条件下表现出来,因而可以通过直接观察法来判断系统是否感染病毒。
2)特征代码法
特征代码法是检测已知病毒的最简单、最经济的方法。为了实现特征代码法,需要采集已知病毒样本,依据如下原则抽取特征代码:抽取的代码比较特殊,不大可能与普通的正常程序代码吻合;抽取的代码要有适当的长度,一方面要维持特征代码的唯一性,另一方面要尽量使特征代码长度短些,以减少空间与时间开销。
3)校验和法
校验和法是指计算正常文件内容的校验和,并将该校验和写入文件中或写入别的文件中进行保存。在文件使用过程中,定期地或每次使用文件前,检查文件当前内容算出的校验和与原来保存的校验和是否一致,从而发现文件是否被感染。
虽然病毒感染会引起文件内容变化,但是校验和法对文件内容的变化太过敏感,又不能区分是否是正常程序引起的变化,因而会频繁 警。当遇到软件版本更新、口令变更、运行参数修改时,校验和法都会误 警;校验和法对隐蔽性病毒无效。隐蔽性病毒进驻内存后,会自动剥去染毒程序中的病毒代码,使校验和法受骗(对一个有毒文件算出正常校验和)。
运用校验和法查病毒可采用3种方式:在检测病毒工具中纳入校验和法、在应用程序中放入校验和法自我检查功能、使校验和检查程序常驻内存以实时检查待运行的应用程序。
校验和法的优点:方法简单,能发现未知病毒,被查文件的细微变化也能被发现。
4)行为监测法
利用病毒的特有行为来监测病毒的方法,称为行为监测法。通过对病毒多年的观察和研究发现,有一些行为是病毒的共同行为,而且比较特殊。在正常程序中,这些行为比较罕见。当程序运行时,监视其行为,如果发现了病毒行为,立即 警。
行为监测法的优点:可发现未知病毒,可相当准确地预 未知的多数病毒。
5)软件模拟法
多态性病毒在每次感染时都会变化其病毒密码,对付这种病毒,特征代码法将失效。因为多态性病毒代码实施密码化,而且每次所用密钥不同,所以即使将感染了病毒的代码相互比较,也无法找出相同的可能作为特征的稳定代码。虽然行为检测法可以检测多态性病毒,但是在检测出病毒后,因为不清楚病毒的种类,所以难以做消毒处理。为了检测多态性病毒,可应用新的检测方法——软件模拟法,即用软件方法来模拟和分析程序的运行。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!