入侵检测原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
入侵检测原理
第7章 入侵检测与防御技术
7.2 入侵检测的原理与技术
--------------------------------------------------------------------------------
7.2.1 入侵检测的实现方式
1.网络IDS
网络IDS是网络上的一个监听设备(或一个专用主机),通过监听网络上的所有报文,根据协议进行分析,并报告网络中的非法使用者信息。根据判断方法的不同,基本分为两大类:基于知识的数据模式判断方法和基于行为的行为判断方法。前者大量用于商业IDS系统;后者多在研究系统中采用。
根据数据模式判断的IDS,首先分析已经总结出的网络非法的工作方法,即数据模型,把网络中读取的数据进行比较,匹配成功的,就报告此事件,如图7-1所示。
图7-1 网络IDS工作模型
其中,协议分析把网络数据按照协议定义进行分解,如按照IP地址分解出源IP地址、目的IP地址等,按照TCP协议分解出源端口、目的端口等,按照HTTP协议分解出URL、HTTP命令等数据,而匹配数据模型则是非法使用者采用的非正常的各个协议数据,如源IP地址等于目的IP地址、源端口等于目的端口、HTTP的URL包含“..”和“..%c0%af..”等字符串的请求等,当匹配成功时,则说明已经发生了网络非法事件,上报并处理这些事件。
根据行为准则判断的IDS,又细分为两种:统计行为判断和异常行为判断。
统计行为判断是根据上面模式匹配的事件,在进行统计分析,根据已知非法行为的规则,判断出非法行为。如一次Ping事件很正常,但如果单位事件内出现大量Ping事件,则说明是一个Ping洪流事件,是一个典型的拒绝服务攻击;再如一次口令注册失败很正常,但如果连续多次的口令注册失败,则很可能是一次暴力口令破解行为。目前,有些商用IDS已经采用这个技术。
异常行为判断是根据平时统计的各种信息,得出正常网络行为准则,当遇到有违这种准则的事件时,报告非法行为事件。显然,它能够发现未知的网络非法行为,但此系统必须具有正常规则统计和自我学习功能,因此目前还处于研究阶段,商用系统还没有采用的。
基于网络的入侵检测系统的主要优点有:
1)成本低。
2)攻击者转移证据很困难。
3)实时检测和应答。一旦发生恶意访问或攻击,基于网络的IDS检测可以随时发现它们,因此能够更快地作出反应。从而将入侵活动对系统的破坏减到最低。
4)能够检测未成功的攻击企图。
5)操作系统独立。基于网络的IDS并不依赖主机的操作系统作为检测资源,而基于主机的系统需要特定的操作系统才能发挥作
用。
2.主机IDS
主机IDS运行于被检测的主机之上,通过查询、监听当前系统的各种资源的使用运行状态,发现系统资源被非法使用和修改的事件,进行上报和处理。其监测的资源主要包括:网络、文件、进程、系统日志等。
通过截获本系统的网络数据,进行如同网络IDS的分析,查找出针对本系统的网络非法行为。当截获数据变为转发数据操作时,系统就转变为一个基于主机的防火墙(个人防火墙)。
通过扫描或监听本地的磁盘文件操作,检查文件的操作状态和内容,对文件进行保护、恢复等操作。如果只对文件的操作进行记录和上报,则是一个标准的文件IDS系统。如果能通过插入文件操作驱动等方式对文件的操作进行控制,或者通过查询方式检查并恢复被修改的文件,则是一个文件保护系统。如果能够对文件的内容进行审计,尤其根据病毒特征信息进行审计,则是一个病毒检查系统。
通过轮询等方式监听系统的进程及其参数,包括进程名称、进程的所有者、进程的起始状态和当前状态、进程的资源占有率和优先级等信息,检查出非法进程,并根据系统要求可以上报和杀死进程等响应措施。
通过查询系统各种日志文件,包括监测日志文件的内容和状态,报告非法的入侵者。因为一般的非法行为,都会在系统日志中留下记录、痕迹,而高级非法入侵者会删除系统日志以抹去现场痕迹,所以必须对日志文件本身进行检测和保护、备份。
一般而言,这4个方面是相互交叉的,如网络非法行为,分别可以通过网络内容监测、进程监测、日志监测等方面进行监视。
运行于被保护主机的系统之上的主机IDS,是安全体系结构中最后一道保护防线,同时由于加密、认证、访问控制等方式的采用,在外部检测失效或已经被欺骗的情况下,主机IDS仍然是一道难以逾越的防线。
主机IDS运行于主机之上,根据系统不同而采用不同的开发和应用技术,可分为系统级IDS(如微软NT的IDS、UNIX系统的IDS等)和应用级IDS(如Oracle数据库的IDS、Web的IDS等),系统分类多,通用性差,技术杂等,同时由于它运行于被保护主机之上,会占用系统的资源,严重时会影响系统的稳定性能,因此实际使用中主机IDS只是一个辅助性的安全设备。
基于主机的IDS的主要优势有:
1)非常适用于加密和交换环境。
2)实时的检测和应答。
3)不需要额外的硬件。
3.IDS的优、缺点
IDS的优点是:
1)实时检测网络系统的非法行为。
2)网络IDS系统不占用系统的任何资源。
3)网络IDS系统是一个独
立的网络设备,可以做到对黑客透明,其本身的安全性高。
4)它既是实时监测系统,也是记录审计系统,可以做到实时保护,事后分析取证。
5)主机IDS系统运行于保护系统之上,可以直接保护、恢复系统。
6)通过与防火墙的联动,可以更有效地阻止非法入侵和破坏。
IDS系统的缺点是:
1)交换机的大量使用,使网络IDS失去对全部网络的控制。由于共享式HUB可以进行网络监听,将给网络安全带来极大的威胁,故而现在网络,尤其是高速网络基本上都采用交换机,从而给NIDS的网络监听带来麻烦。现在较好的交换机都支持监听端口,故很多NIDS都连接到监听端口上。
2)网络IDS会因为处理速度慢而丢失重要的网络数据。 通常连接到交换机时都是全双工的,即在100MB的交换机上双向流量可能达到200MB,但监听端口的流量最多达到100MB,从而导致交换机丢包。为了节省交换机端口,很可能配置为一个交换机端口监听多个其他端口,在正常的流量下,监听端口能够全部监听,但在受到攻击的时候,网络流量可能加大,从而使被监听的端口流量总和超过监听端口的上限,引起交换机丢包。一般的交换机在负载较大的时候,监听端口的速度赶不上其他端口的速度,从而导致交换机丢包。
3)主机IDS会占用主机系统的资源。
7.2.2 IDS的基本结构
无论IDS系统是网络型的还是主机型的,从功能上看,都可分为两大部分:引擎和控制中心。前者用于读取原始数据和产生事件;后者用于显示和分析事件以及策略定制等工作,如图7-2所示。
图7-2 IDS的结构
引擎的主要功能为:原始数据读取、数据分析、产生事件、策略匹配、事件处理、通信等功能,如图7-3所示。
图7-3 引擎的工作流程
控制中心的主要功能为:通信、事件读取、事件显示、策略定制、日志分析、系统帮助等,如图7-4所示。
图7-4 控制中心的工作流程
其中,通信模块完成引擎和控制执行的认证和加密传输;事件读取完成引擎事件的读取,并存入事件数据库,同时提交显示模块;显示模块把接受的事件以各种形式实时显示在屏幕上,便于用户的浏览;策略定制模块完成事件定义策略和事件响应策略的编辑修改功能,并提交通信模块下发给引擎;日志分析模块读取事件数据库中的事件数据,按照用户要求生成各种图形和表格,便于用户对过去一段时间内的工作状态进行分析、浏览;帮助系统为用户提供两个方面的帮助,即系统操作的帮助和安全事件及策略定制方面的帮助;事件数据库存储关于事件、策略、认证
、通信、帮助等所有有关IDS的信息数据。
7.2.3 IDS采用的技术
入侵检测常见的方法有静态配置分析、异常检测和误用检测,另外还有一种新的思想是基于系统关键程序的安全规格描述方法及通过构架陷阱进行入侵检测。
1.静态配置分析
静态配置分析是通过检查系统的当前系统配置,诸如系统文件的内容或系统表,来检查系统是否已经或者可能会遭到破坏。静态是指检查系统的静态特征(系统配置信息),而不是系统中的活动。
采用静态分析方法主要有以下几个方面的原因:入侵者对系统攻击时可能会留下痕迹,这可通过检查系统的状态检测出来;系统管理员以及用户在建立系统时难免会出一些错误和遗漏一些系统的安全性缺陷。另外,系统在遭受攻击后,入侵者也可能在系统中安装一些安全性后门以方便后续对系统的进一步攻击。对系统的配置信息进行静态分析,就可以及早发现系统中潜在的安全性问题,并采取相应的措施来补救。但这种方法需要对系统的缺陷尽可能地了解;否则,入侵者只需要简单地利用那些安全系统未知的缺陷就可以避开检测系统。
2、异常检测技术
入侵检测的异常性检测技术(Anomaly Detection)是一种在不需要操作系统及其安全性缺陷的专门知识的情况下,就可以检测入侵者的方法,同时它也是检测冒充合法用户的入侵者的有效方法。但是,在许多环境中,为用户建立正常行为模式的特征轮廓以及对用户活动的异常性进行报警的门限值的确定都是比较困难的事。因为并不是所有入侵者的行为都能够产生明显的异常性,所以在入侵检测系统中,仅使用异常性检测技术不可能检测出所有的入侵行为。有经验的入侵者还可以通过缓慢地改变他的行为,来改变入侵检测系统中的用户正常行为模式,使其入侵行为逐步变为合法,这样就可以避开使用异常性检测技术的入侵检测系统的检测。
Denning于1986年给出了一个基于用户特征轮廓(profile)的入侵检测系统模型。基本思想是:通过对系统审计数据的分析建立起系统主体(单个用户、一组用户、主机,甚至是系统中的某个关键的程序和文件等)的正常行为特征轮廓;检测时,如果系统中的审计数据与已建立的主体的正常行为特征有较大出入就认为是一个入侵行为。特征轮廓是借助主体登录的时刻、登录的位置、CPU的使用时间以及文件的存取等属性,来描述它的正常行为特征。当主体的行为特征改变时,对应的特征轮廓也相应改变。
目前,这类入侵检测系统多采用统计或基于规则描述的方法建立系统主体的行为特征轮廓。
(1)
统计性特征轮廓
统计性特征轮廓通过某个被监控的行为属性变量的统计概率分布来描述系统行为的轮廓特征,由主体特征变量的频度、均值以及偏差等统计量来描述。在基于统计性特征轮廓的异常性检测器中,使用统计的方法来判断审计与主体正常行为的偏差。
SRI的NIDES(Next Generation Real-time Intrusion Detection Expert System,早期版本为IDES)就是一个基于统计性特征轮廓的异常性检测系统。这种方法对特洛伊木马(Trojan horse)以及欺骗性的应用程序的检测非常有效。
(2)基于规则描述的特征轮廓
基于规则描述的特征轮廓则是一组用于描述主体每个特征的合法取值范围与其他特征的取值之间关系的规则。这些规则原则上可以通过分析主体的历史活动记录自动生成。但如何选择能精确地描述主体的正常行为与入侵行为的属性,则是一个很困难的问题。
TIM(The Time-based Inductive Machine)就是一个基于规则的异常检测系统,TIM使用归纳方法来生成规则,这些规则在系统的学习阶段可以动态地修改。如果通过大量地观测一些规则,这些规则具有较高的预测性或能够被确认,则把它们放入到规则库中。系统采用信息熵的模型计算规则的预测概率。
该方案还可以采用从大型数据库中提取规则的数据挖掘(Data Mining)技术,从大量的系统审计数据中提取出描述用户特征轮廓的规则集。
(3)神经网络方法
神经网络具有自学习、自适应的能力,因而,在基于神经网络模型的入侵检测系统中,只要提供系统的审计数据,神经网络就可以通过自学习从中提取正常的用户或系统活动的特征模式,而不需要获取描述用户行为特征的特征集以及用户行为特征测度的统计分布。因此,避开了选择统计特征的困难问题,使如何选择一个好的主体属性子集的问题成为一个不相关的事,从而使其在入侵检测中也得到很好的应用。实际应用时,首先根据用户正常行为的样本模式对神经网络进行学习训练;完成训练后,神经网络接受用户活动的数据并判断它与经训练产生的正常模式的偏离程度来判别是否产生了非法行为。目前,这种方法还很不成熟。
3.误用检测技术
误用检测技术(Misuse Detection)通过检测用户行为中的那些与某些已知的入侵行为模式类似的行为或那些利用系统中缺陷或是间接地违背系统安全规则的行为,来检测系统中的入侵活动,是一种基于已有的知识的检测。
目前基于知识的入侵检测系统只是在表示入侵模式的方式以及在系统的审计中检查入侵的机制上有所区别。主要可以分成以下几类:基于专家系统、状态转
换分析和模式匹配的入侵检测系统。
基于知识的入侵检测技术的优势:如果检测器的入侵特征模式库中包含一个已知入侵行为的特征模式,就可以保证系统在受到这种入侵行为攻击时能够把它检测出来。目前,主要是从已知的入侵行为以及已知的系统缺陷来提取入侵行为的特征模式,加入到检测器入侵行为特征模式库中,来避免系统以后再遭受同样的入侵攻击。但是,对于一种入侵行为的变种(利用同样的系统缺陷、同样的攻击原理等)却不一定能够检测出来。
这种入侵检测技术的主要局限在于它只是根据已知的入侵序列和系统缺陷的模式来检测系统中的可疑行为,而不能处理对新的入侵攻击行为以及未知的、潜在的系统缺陷的检测。
(1)专家系统
早期的入侵检测系统多数采用专家系统来检测系统中的入侵行为。NIDES、W&S、NADIR等系统的异常性检测器中都有一个专家系统模块。在这些系统中,入侵行为被编制成专家系统的规则。每个规则具有“IF条件THEN 动作”的形式;其中条件为审计记录中某个域上的限制条件,动作表示规则被触发时入侵检测系统所采取的处理动作,可以是一些新事实的判定或是提高某个用户行为的可疑度。这些规则可以识别单个审计事件,也可以识别表示一个入侵行为的一系列事件。专家系统可以自动地解释系统的审计记录并判断它们是否满足描述入侵行为的规则。但是,使用专家系统规则表示一系列的活动不具有直观性,除非由专业的知识库程序员来做专家系统的升级工作,否则规则的更新是很困难的,而且使用专家系统分析系统的审计数据也是很低效的。此外,使用专家系统规则很难检测出对系统的协同攻击。
(2)状态转换分析技术
一个入侵行为就是由攻击者执行的一系列的操作,这些操作可以使系统从某些初始状态转换到一个可以威胁系统安全的状态。这里的状态是指系统某一时刻的特征,它可以由一系列系统属性来描述。初始状态对应于入侵开始时的系统状态,危及系统安全的状态对应于已成功入侵时刻的系统状态;在这两个状态之间可能有一个或多个中间状态的迁移。在识别出初始状态、威胁系统安全的状态后,主要应分析在这两个状态之间进行状态转换的关键活动,这些转换信息可以用状态迁移图来描述或用于生成专家系统的规则,从而用于检测系统的入侵活动。但是,状态转换是针对事件序列分析,所以不善于分析过分复杂的事件,而且不能检测与系统状态无关的入侵。
(3)模式匹配的方法
Sandeep Kumar给出的模式识别的入侵检测方法可以处理以下四
种类型的入侵行为:
1)通过审计某个事件的存在性即可以确定的入侵行为。
2)根据审计某一事件序列的顺序出现即可识别的入侵行为。
3)根据审计某一具有偏序关系的事件序列的出现可以识别的入侵行为。
4)审计的事件序列发生在某一确定的时间间隔或持续的时间在一定的范围,根据这些条件就可以确定的入侵行为。
这个模型目的是把入侵检测的问题转化成模式匹配的问题:系统的审计被视为抽象的事件流,入侵行为检测器是模式匹配器。使用模式识别是因为模式识别技术比较成熟,而且可以在构造一个系统时可以围绕它的实用性和有效性做一些优化。因此,检测入侵者时使用模式匹配技术比使用专家系统更有效。
IDIOT(Intrusion Detection In Our Time)是美国普度大学(Purdue University)的COAST实验室利用Sandeep Kumar给出的模型设计的入侵检测系统。在IDIOT中,审计记录被映射成由代表事件类型的特殊标识符组成的元组,IDIOT不依赖于审计记录的格式,使得它可以应用于其他的领域。也就是说,IDIOT分析的数据来源不仅限于系统的审计记录,凡是能反映入侵者影响的数据信息均可以用作IDIOT的数据源,如在基于TCP/IP的网络中分析IP数据流,监控检测SYN-flood攻击行为。
4.基于系统关键程序的安全规格描述方法
加州大学的Calvin Cheuk Wang Ko提出的基于规格说明的监控技术是一种新的入侵检测方法。其思想是为系统中的安全关键程序编写安全规格说明,用来描述这些关键程序正常的合乎安全要求的行为,并对这些程序的执行进行监控以检测它们是否违背了安全规格说明的要求。
系统关键程序的安全规格说明取决于程序的功能以及系统的安全策略。一个程序执行行为与系统安全性有关的特征有以下几个方面:①系统资源的存取控制,一个程序对系统对象(文件等)的存取权限是有限的;②操作次序,程序在执行过程中一些事件的发生有先后的次序关系;③系统中并发、并行程序执行过程中多个进程间的同步关系等。入侵者对这个程序的执行将会违背程序正常执行的上述特征。审计分析系统是这种检测方案中的检测机制,它从审计数据中提取程序的执行轨迹,检测程序的执行操作是否违背了程序执行轨迹的安全性规则。
详细地说,一个安全规格说明是关于一个或多个程序执行时合法操作序列的描述。一个程序的合法操作序列借助于系统操作行为符号集的语法规则进行描述,给出了一种用于描述系统和进程执行轨迹的一种语法系统——并行环境语法。在一个程序执行过程中对应的一系列操作如果不在程序
的安全规格说明的操作序列内,就认为这个程序的执行活动违背了系统的安全规则。
在该方案中,安全规格说明用于判断一个程序的执行轨迹合法与否。由于程序的安全规格说明只是取决于程序的功能及系统的安全策略而与程序中的缺陷无关,因而基于规格说明的监控技术可以检测出那些利用该程序中未知缺陷对系统进行攻击的入侵行为。
7.2.4 入侵检测技术的比较
1.模式匹配的缺陷
1)计算负荷大。支撑这一算法所需的计算量非常惊人,对一个满负荷的100MB以太网而言,所需的计算量是每秒720亿次计算。这一计算速度要求大大超出了现有的技术条件。同时,这种办法虽然可以把系统构建为部分覆盖的功能,但是这样的系统有严重的性能问题,并容易被黑客规避。
2)检测准确率低。使用固定的特征模式来检测入侵只能检测特定的特征,这将会错过通过对原始攻击串实施对攻击效果无影响的微小变形而衍生所得的攻击。
2.协议分析新技术的优势
20世纪90年代早期,入侵检测技术就开始被广泛用于保护各大公司的信息安全。但早期入侵检测系统的核心技术一直没有大的发展。最近协议分析加命令解析技术的出现给IDS技术添加了新鲜的血液。协议分析加命令解析技术是一种新的入侵检测技术,它结合高速数据包捕捉、协议分析和命令解析来进行入侵检测,给入侵检测战场带来了许多决定性的优势。
1)提高了性能。协议分析利用已知结构的通信协议,与模式匹配系统中传统的穷举分析方法相比,在处理数据帧和连接时更迅速、有效。
2)提高了准确性。与非智能化的模式匹配相比,协议分析减少了虚警和误判的可能性,命令解析(语法分析)和协议解码技术的结合,在命令字符串到达操作系统或应用程序之前,模拟它的执行,以确定它是否具有恶意。
3)基于状态的分析。当协议分析入侵检测系统引擎评估某个包时,它考虑了在这之前相关的数据包内容,以及接下来可能出现的数据包。与此相反,模式匹配入侵检测系统孤立地考察每个数据包。
4)反规避能力。因为协议分析入侵检测系统具有判别通信行为真实意图的能力,它较少地受到黑客所用的像URL编码、干扰信息、TCP/IP分片等入侵检测系统规避技术的影响。
5)系统资源开销小。协议分析入侵检测系统的高效性降低了在网络和主机探测中的资源开销,而模式匹配技术却是个可怕的系统资源消费者。
3.协议分析技术的特点
(1)协议分析缩减计算量
协议分析是第三代入侵检测机器用来检测攻击特征存在的技
术,它充分利用了网络协议的高度有序性,使用这些知识快速检测某个攻击特征的存在。这种高效的技术,使得所需的计算量大大减小,即使在高负载的高速网络上,仍可逐个分析所有的数据包。
下面是一个基于协议解码的第三代入侵检测系统中进行协议规则检测的典型例子。
第一步,直接跳到第13个字节,并读取2个字节的协议标识。如果值是0800,则说明这个以太网帧的数据域携带的是IP包,基于协议解码的入侵检测利用这一信息指示第二步的检测工作。
第二步,跳到第24个字节处读取1字节的第四层协议标识。如果读取到的值是06,则说明这个IP帧的数据域携带的是TCP包,入侵检测利用这一信息指示第三步的检测工作。
第三步,跳到第35个字节处读取一对端口号。如果有一个端口号是0080,则说明这个TCP帧的数据域携带的是HTTP包,基于协议解码的入侵检测利用这一信息指示第四步的检测工作。
第四步,让解析器从第55个字节开始读取URL。URL串将被提交给HTTP解析器,在它被允许提交给Web服务器前,由HTTP解析器来分析它是否可能会做攻击行为。
(2)命令串的语法解析
URL串第一个字节的位置被提交给解析器。解析器是一个命令解释程序,入侵检测引擎包含多种不同的命令语法解析器,因此,它能对不同的高层协议,如Telnet、FTP、HTTP、SMTP、SNMP、DNS等的用户命令进行详细分析。
命令解析器具有读取攻击串及其所有可能的变形,并发掘其本质含义的能力。解析器将发现“/./phf”和“/phf”,或者用其他“/.”所做的变换是同一个攻击,也就是“/phf”攻击。这样,在攻击特征库中只需要一个特征,就能检测这一攻击所有可能的变形。这是基于解码/解析的系统同模式匹配系统相比只要一个较小的特征库就能检测较大范围攻击的原因。解析器将使用同Web服务器相同的机制来处理URL,它们的区别是在发掘出命令的真实含义后,Web服务器将执行命令,并可能会遭到恶意命令攻击的破坏,而入侵检测系统将给恶意命令做好标记,主机将会在这些包到达操作系统、应用程序之前丢弃它们。
(3)检测分片攻击和协议校验
协议分析入侵检测系统中,协议将被解码,如果设置IP分片标志,数据包将会先进行重组,然后再详细分析是否具攻击行为。通过数据包重组,系统可以检测使用像数据分片、TCP或RPC段边界欺骗等规避技术的攻击,并且执行协议解码时,将进行彻底的协议校验,这意味着将检查每个层次协议域,看是否有非法或可疑的值,包括是否使用了保留的域、是否有非法的值、异常的默认值
、不当的选项、流水号乱序、流水号跳号、流水号重叠、校验和错、CRC校验错等。协议解码带来了效率上的提高,因为系统在每一层上都沿着协议栈向上解码,因此可以使用所有当前已知的协议信息,来排除所有不属于这一个协议结构的攻击。这一点模式匹配系统做不到,因为它“看不懂”协议,它只会一个接一个地做简单的模式匹配。
(4)最大程度地减少虚警
协议解码还能排除模式匹配系统中常见的虚警。虚警发生在这样的情况下:一个字节串恰好与某个特征串匹配,但这个串实际上并非一个攻击。比如,某个字节串有可能是一篇关于网络安全的技术论文的电子邮件文本,在这种情况下,“攻击特征”实际上只是数据包数据域中的英语自然语言。这种类型的失误不会发生在基于协议解码的系统中,因为系统知道每个协议中潜在的攻击串所在的精确位置,并使用解析器来确保某个特征的真实含义被正确理解,这远比简单地匹配字串先进。因为字串是被实际解析的,一个URL(或者其他串)将被检查字符的合法性和语法的正确性,以帮助确定它确实是一种攻击,或者一定程度上可疑。