入侵检测系统的概念
入侵行为主要是指对系统资源的非授权使用,可以造成系统数据的丢失和破坏、系统拒绝服务等危害。对于入侵检测而言的
网络攻击可以分为4类:
①检查单IP包(包括TCP、UDP)首部即可发觉的攻击,如winnuke、ping of death、land.c、部分OS detection、source routing等。
②检查单IP包,但同时要检查数据段信息才能发觉的攻击,如利用CGI漏洞,缓存溢出攻击等。
③通过检测发生频率才能发觉的攻击,如端口扫描、SYN Flood、smurf攻击等。
④利用分片进行的攻击,如teadrop,nestea,jolt等。此类攻击利用了分片组装算法的种种漏洞。若要检查此类攻击,必须提前(在IP层接受或转发时,而不是在向上层发送时)作组装尝试。分片不仅可用来攻击,还可用来逃避未对分片进行组装尝试的入侵检测系统的检测。
入侵检测通过对
计算机网络或计算机系统中的若干关键点收集信息并进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。进行入侵检测的软件与硬件的组合就是入侵检测系统。
入侵检测系统执行的主要任务包括:监视、分析用户及系统活动;审计系统构造和弱点;识别、反映已知进攻的活动模式,向相关人士报警;统计分析异常行为模式;评估重要系统和数据文件的完整性;审计、跟踪管理操作系统,识别用户违反安全策略的行为。入侵检测一般分为3个步骤,依次为信息收集、
数据分析、响应(被动响应和主动响应)。
信息收集的内容包括系统、网络、数据及用户活动的状态和行为。入侵检测利用的信息一般来自系统日志、目录以及文件中的异常改变、程序执行中的异常行为及物理形式的入侵信息4个方面。
数据分析是入侵检测的核心。它首先构建分析器,把收集到的信息经过预处理,建立一个行为分析引擎或模型,然后向模型中植入时间数据,在
知识库中保存植入数据的模型。数据分析一般通过模式匹配、统计分析和完整性分析3种手段进行。前两种方法用于实时入侵检测,而完整性分析则用于事后分析。可用5种统计模型进行数据分析:操作模型、方差、多元模型、马尔柯夫过程模型、
时间序列分析。统计分析的最大优点是可以学习用户的使用习惯。
入侵检测系统在发现入侵后会及时作出响应,包括切断网络连接、记录事件和报警等。响应一般分为主动响应(阻止攻击或影响进而改变攻击的进程)和被动响应(报告和记录所检测出的问题)两种类型。主动响应由用户驱动或系统本身自动执行,可对入侵者采取行动(如断开连接)、修正系统环境或收集有用信息;被动响应则包括告警和通知、
简单网络管理协议(SNMP)陷阱和插件等。另外,还可以按策略配置响应,可分别采取立即、紧急、适时、本地的长期和全局的长期等行动。
IDS分类
一般来说,入侵检测系统可分为主机型和网络型。
主机型入侵检测系统往往以系统日志、
应用程序日志等作为数据源,当然也可以通过其他手段(如监督系统调用)从所在的主机收集信息进行分析。主机型入侵检测系统保护的一般是所在的系统。
网络型入侵检测系统的数据源则是网络上的
数据包。往往将一台机子的网卡设于混杂模式(promisc mode),监听所有本
网段内的数据包并进行判断。一般网络型入侵检测系统担负着保护整个网段的任务。
不难看出,网络型IDS的优点主要是简便:一个网段上只需安装一个或几个这样的系统,便可以监测整个网段的情况。且由于往往分出单独的计算机做这种应用,不会给运行关键业务的主机带来负载上的增加。但由于现在网络的日趋复杂和高速网络的普及,这种结构正受到越来越大的挑战。一个典型的例子便是交换式以太网。
而尽管主机型IDS的缺点显而易见:必须为不同平台开发不同的程序、增加系统负荷、所需安装数量众多等,但是内在结构却没有任何束缚,同时可以利用操作系统本身提供的功能、并结合异常分析,更准确的报告攻击行为。参考文献[7]对此做了描述,感兴趣的读者可参看。
入侵检测系统的几个部件往往位于不同的主机上。一般来说会有三台机器,分别运行事件产生器、事件分析器和响应单元。将前两者合在一起,只需两台。在安装IDS的时候,关键是选择
数据采集部分所在的位置,因为它决定了“事件”的可见度。
对于主机型IDS,其数据采集部分当然位于其所监测的主机上。
对于网络型IDS,其数据采集部分则有多种可能:
(1)如果网段用总线式的
集线器相连,则可将其简单的接在集线器的一个端口上即可;
(2)对于交换式以太网交换机,问题则会变得复杂。由于交换机不采用共享媒质的办法,传统的采用一个sniffer来监听整个
子网的办法不再可行。可解决的办法有:
a. 交换机的核心芯片上一般有一个用于调试的端口(span port),任何其他端口的进出信息都可从此得到。如果交换机厂商把此端口开放出来,用户可将IDS系统接到此端口上。
优点:无需改变IDS体系结构。
缺点:采用此端口会降低交换机性能。
b. 把入侵检测系统放在交换机内部或防火墙内部等
数据流的关键入口、出口。
优点:可得到几乎所有关键数据。
缺点:必须与其他厂商紧密合作,且会降低网络性能。
c. 采用分接器(Tap),将其接在所有要监测的线路上。
优点:在不降低网络性能的前提下收集了所需的信息。
缺点:必须购买额外的设备(Tap);若所保护的资源众多,IDS必须配备众多网络接口。
d. 可能唯一在理论上没有限制的办法就是采用主机型IDS。
通信协议
IDS系统组件之间需要通信,不同的厂商的IDS系统之间也需要通信。因此,定义统一的协议,使各部分能够根据协议所制订的标准进行沟通是很有必要的。
IETF目前有一个专门的小组Intrusion Detection Working Group (IDWG)负责定义这种通信格式,称作Intrusion Detection Exchange Format。目前只有相关的草案(internet draft),并未形成正式的RFC文档。尽管如此,草案为IDS各部分之间甚至不同IDS系统之间的通信提供了一定的指引。
IAP(Intrusion Alert Protocol)是IDWG制定的、运行于TCP之上的应用层协议,其设计在很大程度上参考了HTTP,但补充了许多其他功能(如可从任意端发起连接,结合了加密、身份验证等)。对于IAP的具体实现,请参看 [4],其中给出了非常详尽的说明。这里我们主要讨论一下设计一个入侵检测系统通信协议时应考虑的问题:
(1)分析系统与控制系统之间传输的信息是非常重要的信息,因此必须要保持数据的真实性和完整性。必须有一定的机制进行通信双方的身份验证和保密传输(同时防止主动和被动攻击)。
(2)通信的双方均有可能因异常情况而导致通信中断,IDS系统必须有额外措施保证系统正常工作。
入侵检测技术
对各种事件进行分析,从中发现违反安全策略的行为是入侵检测系统的核心功能。从技术上,入侵检测分为两类:一种基于标志(signature-based),另一种基于异常情况(anomaly-based)。
对于基于标识的检测技术来说,首先要定义违背安全策略的事件的特征,如网络数据包的某些头信息。检测主要判别这类特征是否在所收集到的数据中出现。此方法非常类似
杀毒软件。
而基于异常的检测技术则是先定义一组系统“正常”情况的数值,如CPU利用率、内存利用率、文件校验和等(这类数据可以人为定义,也可以通过观察系统、并用统计的办法得出),然后将系统运行时的数值与所定义的“正常”情况比较,得出是否有被攻击的迹象。这种检测方式的核心在于如何定义所谓的“正常”情况。
两种检测技术的方法、所得出的结论有非常大的差异。基于异常的检测技术的核心是维护一个知识库。对于已知得攻击,它可以详细、准确的报告出攻击类型,但是对未知攻击却效果有限,而且知识库必须不断更新。基于异常的检测技术则无法准确判别出攻击的手法,但它可以(至少在理论上可以)判别更广泛甚至未发觉的攻击。
如果条件允许,两者结合的检测会达到更好的效果.
入侵检测系统技术和主要方法
入侵检测系统技术
可以采用概率统计方法、
专家系统、神经网络、模式匹配、行为分析等来实现入侵检测系统的检测机制,以分析事件的审计记录、识别特定的模式、生成检测报告和最终的分析结果。
发现入侵检测一般采用如下两项技术:
① 异常发现技术,假定所有入侵行为都是与正常行为不同的。它的原理是,假设可以建立系统正常行为的轨迹,所有与正常轨迹不同的系统状态则视为可疑企图。异常
阀值与特征的选择是其成败的关键。其局限在于,并非所有的入侵都表现为异常,而且系统的轨迹难于计算和更新。
② 是模式发现技术,它是假定所有入侵行为和手段(及其变种)都能够表达为一种模式或特征,所有已知的入侵方法都可以用匹配的方法发现。模式发现技术的关键是如何表达入侵的模式,以正确区分真正的入侵与正常行为。模式发现的优点是误报少,局限是只能发现已知的攻击,对未知的攻击无能为力。
入侵检测的主要方法
静态配置分析
静态配置分析通过检查系统的当前系统配置,诸如系统文件的内容或者系统表,来检查系统是否已经或者可能会遭到破坏。静态是指检查系统的静态特征(系统配置信息),而不是系统中的活动。
采用静态分析方法主要有以下几方面的原因:入侵者对系统攻击时可能会留下痕迹,这可通过检查系统的状态检测出来;系统管理员以及用户在建立系统时难免会出现一些错误或遗漏一些系统的安全性措施;另外,系统在遭受攻击后,入侵者可能会在系统中安装一些安全性后门以方便对系统进行进一步的攻击。
所以,静态配置分析方法需要尽可能了解系统的缺陷,否则入侵者只需要简单地利用那些系统中未知的安全缺陷就可以避开检测系统。