入侵检测技术课件:第4章 基于主机的入侵检测技术

上传人:鲁** 文档编号:570311622 上传时间:2024-08-03 格式:PPT 页数:77 大小:889.50KB
返回 下载 相关 举报
入侵检测技术课件:第4章 基于主机的入侵检测技术_第1页
第1页 / 共77页
入侵检测技术课件:第4章 基于主机的入侵检测技术_第2页
第2页 / 共77页
入侵检测技术课件:第4章 基于主机的入侵检测技术_第3页
第3页 / 共77页
入侵检测技术课件:第4章 基于主机的入侵检测技术_第4页
第4页 / 共77页
入侵检测技术课件:第4章 基于主机的入侵检测技术_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《入侵检测技术课件:第4章 基于主机的入侵检测技术》由会员分享,可在线阅读,更多相关《入侵检测技术课件:第4章 基于主机的入侵检测技术(77页珍藏版)》请在金锄头文库上搜索。

1、4.1 审计数据的获取审计数据的获取4.2 用于入侵检测的统计模型用于入侵检测的统计模型4.3 入侵检测的专家系统入侵检测的专家系统4.4 基于状态转移分析的入侵检测技术基于状态转移分析的入侵检测技术4.5 文件完整性检查文件完整性检查4.6 系统配置分析技术系统配置分析技术第第4章章 基于主机的入侵检测技术基于主机的入侵检测技术根据目标系统的不同类型和主机入侵检测的不同要根据目标系统的不同类型和主机入侵检测的不同要求,所需要收集的审计数据的类型不尽相同。求,所需要收集的审计数据的类型不尽相同。l首先,从目标主机的类型来看,不同操作系统的审计机制设计存首先,从目标主机的类型来看,不同操作系统的

2、审计机制设计存在差异,主机活动的审计范围和类型也不同。在差异,主机活动的审计范围和类型也不同。l其次,根据不同主机入侵检测系统的设计要求和需要,其具体选其次,根据不同主机入侵检测系统的设计要求和需要,其具体选取的审计数据类型和来源也各有侧重。取的审计数据类型和来源也各有侧重。以以IDES系统为例。系统为例。IDES在在Sun UNIX目标系统环境目标系统环境下所收集到的审计数据,主要分为下所收集到的审计数据,主要分为4个典型类型。个典型类型。 文件访问文件访问: 包括对文件和目录进行的操作,如读取、写包括对文件和目录进行的操作,如读取、写入、创建、删除和访问控制列表的修改。入、创建、删除和访问

3、控制列表的修改。4.1.1 审计数据的获取审计数据的获取 系统访问系统访问: 包括登录、退出、调用以及终止超级用户包括登录、退出、调用以及终止超级用户权限等。权限等。 资源消耗资源消耗: 包括包括CPU、I/O和内存的使用情况。和内存的使用情况。 进程创建命令的调用进程创建命令的调用: 指示一个进程的创建。指示一个进程的创建。IDES必须从必须从Sun环境中的多个不同信息源来收集审环境中的多个不同信息源来收集审计数据。这些信息源包括:计数据。这些信息源包括: Sun OS 4.0 标准审计系标准审计系统、统、Sun C2 安全审计包和安全审计包和UNIX记账系统。记账系统。然而,仅从这两种审计

4、系统得到的信息对于然而,仅从这两种审计系统得到的信息对于IDES的入侵检测分析还是不够的。还可以对系统的入侵检测分析还是不够的。还可以对系统另外配置一些其他的审计工具。如另外配置一些其他的审计工具。如Sendmail,Netlog等。等。对于其他的主机入侵检测系统,例如对于其他的主机入侵检测系统,例如STAT系统,系统,它所使用的审计数据来源主要就是它所使用的审计数据来源主要就是Sun OS C2安安全审计包(全审计包(BSM),),针对的是针对的是BSM审计记录。审计记录。基于主机的入侵检测技术 54.1.2 审计数据的预处理审计数据的预处理q审计日志信息非常庞大;q存在杂乱性、重复性和不完

5、整性;q杂乱性:代理的审计机制不完全相同,所产生的日志信息存在差异;q重复性:对于同一个客观事物系统中存在多个物理描述;q不完整性:由于实际系统缺陷和人为因素所造成的记录中出现数据属性的值丢失或不确定的情况。审计数据的预处理审计数据的预处理l数据的预处理就是对系统获取到的各种相关数据进行归纳、转换等处理,使其符合系统的需求。l一般采用从大量的数据属性中,提取出部分对目标输出有重大影响的属性,通过降低原始数据的维数来达到改善质量的目的。基于主机的入侵检测技术 7审计数据的预处理审计数据的预处理通常数据预处理应该包括以下功能。q 数据集成m涉及数据的选择、数据的冲突以及数据的不一致问题的解决;m并

6、非简单的数据合并,对数据进行统一化;q 数据清理:除去噪音数据和无关数据,处理遗漏数据等。q数据变换:规范化处理。根据其属性值的量纲进行归一化处理。q 数据简化:数据属性的约简。降低数据分析的维数。q 数据融合:对多种IDS检测结果的融合和决策。基于主机的入侵检测技术 8审计数据的预处理审计数据的预处理 (a)数据集成 ( b)数据清理 2, 32, 100, 59, 48 0.02, 0.32, 1.00, 0.59, 0.48 (c)数据变换 A126 A2 A1 T1 T2 T2 000 A115 A2 A1 T1 T2 T1400 (d)数据简化/融合数据的规范化数据的规范化l数据的规

7、范化处理有两种比较常用的方法: 其中,x为要规范化的数值;x为规范化后的数值;avg为x所在向量组X的平均值;std(X)为向量组X的标准差。l 其中,x为要规范化的数值;x为规范化后的数值;max是x所在向量组中元素的最大值;min是x所在向量组中元素的最小值;new_max是规范化后的目标区间的上限;new_min是规范化后的目标区间的下限;通过这个公式可以将数据规范化到指定区间。 首先,讨论标准审计记录格式的设计问题。首先,讨论标准审计记录格式的设计问题。以以IDES系统为例,系统为例,IDES审计记录格式是基于若干设计考虑审计记录格式是基于若干设计考虑的。的。首先,它必须通用程度足够高

8、,以便能够表示目标监控系首先,它必须通用程度足够高,以便能够表示目标监控系统的所有可能事件类型。统的所有可能事件类型。其次,它应该是该机器中最有效的数据表示形式,以将处其次,它应该是该机器中最有效的数据表示形式,以将处理开销降低到最小程度。理开销降低到最小程度。第三,记录格式应该按标准化设计,使第三,记录格式应该按标准化设计,使IDES能够从多个不能够从多个不同类型的机器处接收输入记录,而无须进行任何的数据转换。同类型的机器处接收输入记录,而无须进行任何的数据转换。理想的情况下,审计记录只进行一次格式化。理想的情况下,审计记录只进行一次格式化。4.1.2 审计数据的预处理审计数据的预处理IDE

9、S审计记录用动作类型来进行分类。共有约审计记录用动作类型来进行分类。共有约30种不同的种不同的动作类型。动作类型。每个每个IDES审计记录包括一个动作类型和若干字段,用于对审计记录包括一个动作类型和若干字段,用于对该动作进行参数化取值。该动作进行参数化取值。以下是为以下是为IDES入侵检测分析而定义的动作类型。入侵检测分析而定义的动作类型。 IA_VOID: 此为没有操作。此为没有操作。IA_ACCESS: 指定的文件被引用(但是没有读写)。指定的文件被引用(但是没有读写)。IA_WRITE: 文件被打开以备写入或者已经写入。文件被打开以备写入或者已经写入。IA_READ: 文件被打开以备读取

10、或者已经读取。文件被打开以备读取或者已经读取。IA_DELETE: 所指定的文件已被删除。所指定的文件已被删除。IA_CREATE: 所指定的文件被创建。所指定的文件被创建。IA_RMDIR: 所指定的目录被删除。所指定的目录被删除。IA_XHMOD: 所指定文件的访问模式已经改变。所指定文件的访问模式已经改变。IA_EXEC: 所指定的命令已经被调用。所指定的命令已经被调用。IA_XHOWN: 所指定对象(文件)的所有权已经改变。所指定对象(文件)的所有权已经改变。IA_LINK: 已建立起到指定文件的一个连接。已建立起到指定文件的一个连接。IA_CHDIR: 工作目录已经改变。工作目录已经

11、改变。IA_RENAME: 文件被重命名。文件被重命名。IA_MKDIR: 目录被创建。目录被创建。IA_LOGIN: 指定用户登录进入系统。指定用户登录进入系统。IA_BAD_LOGIN: 指定用户的登录尝试失败。指定用户的登录尝试失败。IA_SU: 调用超级用户权限。调用超级用户权限。IA_BAD_SU: 调用超级用户权限的尝试。调用超级用户权限的尝试。IA_RESOURCE: 资源(内存、资源(内存、CPU时间、时间、I/O)被消耗。被消耗。IA_LOGOUT: 所指定的用户退出系统。所指定的用户退出系统。IA_UNCAT: 其他所有未指定的动作。其他所有未指定的动作。IA_RSH: 远

12、程外壳调用。远程外壳调用。IA_BAD_RSH: 被拒绝的远程外壳调用。被拒绝的远程外壳调用。IA_PASSWD: 口令更改。口令更改。IA_RMOUNT: 远程文件系统安全请求(网络文件服务器)。远程文件系统安全请求(网络文件服务器)。IA_BAD_RMOUNT: 拒绝文件系统安装。拒绝文件系统安装。IA_PASSWD_AUTH: 口令确认。口令确认。IA_BAD_PASSWD_AUTH: 拒绝口令确认。拒绝口令确认。IA_DISCON: Agen断开与断开与Arpool的连接的连接 (伪记录伪记录)。l以下为表示以下为表示IDES审计记录的审计记录的C语言结构。语言结构。struct id

13、es_audit_header unsigned long tseq;char hostname32;char remotehost32;char ttyname16;char cmd18;char _pad12;char jobname16;enum ides_audit_action action;time_t time;/* this section is unix specific */long syscall;unsigned long event;long errno;long rval;long pid;/* unix: these fields are 0 in most (b

14、ut not all) cases */struct resource_info resource;enum ides_audit_type act_type;long subjtype;char unameIDES_UNAME_LEN;char aunameIDES_UNAME_LEN;char ounameIDES_UNAME_LEN;long arglen;ides_audit_block结构定义如下所示:结构定义如下所示: typedef struct long ab_size;aud_type ab_type;unsigned long rseq;time_t rectime;ide

15、s_audit_header ah;union ab_args char maxbufAUP_USER;ides_path_desc _ipd2;#define ab_path0 _ipd0.path#define ab_path1 _ipd1.path arg_un; ides_audit_block;图图4-1 STAT审计记录格式审计记录格式STAT系统的标准审计记录格式由系统的标准审计记录格式由3个个部分定义组成:部分定义组成: Subject, Action, Object每个部分都进一步包括更详细的字段每个部分都进一步包括更详细的字段定义,如图定义,如图4-1所示。所示。图图4-2

16、 从从BSM审计记录到审计记录到STAT审计记录的映射关系审计记录的映射关系审计数据获取模块的主要作用是获取目标系审计数据获取模块的主要作用是获取目标系统的审计数据,并经过预处理工作后,最终目统的审计数据,并经过预处理工作后,最终目标是为入侵检测的处理模块提供一条单一的审标是为入侵检测的处理模块提供一条单一的审计记录块数据流,供其使用。计记录块数据流,供其使用。其使用的处理算法流程如下所示:其使用的处理算法流程如下所示:4.1.3 审计数据获取模块的设计审计数据获取模块的设计/ Processing Procedure for Preprocessor1 While True do begin

17、2 If Audit_state=START then begin3 Allocate memory for audit record4 Allocate memory for the ptr of size BLOCK_SIZE5 Audit_state=NEXT_FILE6 Endif7 If Audit_state=NEXT_FILE then begin8 Open audit file9 Read a block from audit file to ptr10 Advance ptr to the beginning of the first record11 Obtain pre

18、ceding filename12 Audit_state=READ_FILE13 Endif14 If Audit_state=READ_FILE then begin15 Attempt to read a block from audit file to ptr16 If successful then begin17 If ptr indicates AUT_OTHER_FILE then18 Audit_state=CLOSE_FILE19 Else begin20 Call filter_it to filter the next record21 If record passed

19、 through the filter then22 return (audit_record)23 End else24 Endif25 Else26 Reopen audit file27 Endif28 If Audit_state=CLOSE_FILE then begin29 Obtain next audit file name30 Close current audit file 31 Audit_state=NEXT_FILE32 Endif33 EndwhileDenning在在1986年的经典论文中提出了年的经典论文中提出了4种可以用种可以用于入侵检测的统计模型。于入侵检测

20、的统计模型。(1) 操作模型操作模型(2) 均值与标准偏差模型均值与标准偏差模型(3) 多元模型多元模型(4) 马尔可夫过程模型马尔可夫过程模型4.2 用于入侵检测的统计模型用于入侵检测的统计模型统计分析方法统计分析方法l是异常检测技术中应用最早也是最多的一种方法;是异常检测技术中应用最早也是最多的一种方法;l首先为系统对象(如用户、文件)创建一个统计描述,首先为系统对象(如用户、文件)创建一个统计描述,统计正常使用时的一些测量属性(如访问次数、统计正常使用时的一些测量属性(如访问次数、CPU使用、操作失败次数和延时);使用、操作失败次数和延时);根据异常检测器观察主体活动,然后产生刻画这些活

21、动的行根据异常检测器观察主体活动,然后产生刻画这些活动的行为轮廓(用户特征表)为轮廓(用户特征表)每一个轮廓保存记录主体当前行为,并定时将当前轮廓与历每一个轮廓保存记录主体当前行为,并定时将当前轮廓与历史轮廓合并形成统计轮廓(更新),通过比较当前轮廓与统史轮廓合并形成统计轮廓(更新),通过比较当前轮廓与统计轮廓来判定异常行为计轮廓来判定异常行为l测量属性的平均值被用来与网络、系统的行为进行比测量属性的平均值被用来与网络、系统的行为进行比较,如果观察值在正常范围之外,就认为有入侵发生。较,如果观察值在正常范围之外,就认为有入侵发生。l优点:可应用成熟的概率统计理论l缺点:由于用户行为的复杂性,要

22、想准确地匹配一个用户的行为非常困难,容易造成系统误报和漏报定义入侵阈值比较困难,阈值高则漏报率高,阈值低则误报率高。举例举例lIDES统计异常检测引擎观测在所监控计算机系统上的活动行为,并自适应地学习主体正常行为模式。l在IDES系统的统计分析组件中,当前系统的活动状态采用一组测量值参数变量来表示,称为“入侵检测向量” 。根据目标主体类型的不同,根据目标主体类型的不同,IDES定义了定义了3种不同类种不同类型的测量值,分别针对用户主体、目标系统主体和远型的测量值,分别针对用户主体、目标系统主体和远程主机主体。程主机主体。同时,又可以把同时,又可以把IDES统计分析系统中不同类型的统计分析系统中

23、不同类型的单独测量值分为以下单独测量值分为以下4个类别。个类别。(1) 活动强度测量值活动强度测量值(2) 审计记录分布测量值审计记录分布测量值(3) 类别测量值类别测量值(4) 序数测量值序数测量值以以IDES系统中应用于用户主体类型的测量值为例,系统中应用于用户主体类型的测量值为例,它们包括下列定义的类型。它们包括下列定义的类型。(1) 序数测量值(活动的输出结果,以数字值来序数测量值(活动的输出结果,以数字值来表示)表示)CPU使用情况 I/O使用情况(2) 类别测量值(描述特定活动的测量值,其输类别测量值(描述特定活动的测量值,其输出为类别值)出为类别值)使用的物理位置;邮件程序的使用

24、;编译器、编辑器、 窗口命令、 通用程序使用等的相关使用。(3) 审计记录分布测量值审计记录分布测量值 描述最近审计记录中所有活动类型分布状况。如特定用描述最近审计记录中所有活动类型分布状况。如特定用户在整个系统使用中文件访问和户在整个系统使用中文件访问和I/O活动分布。例如活动分布。例如115个审计个审计记录中,有记录中,有25个记录表示文件访问,个记录表示文件访问,50个记录表示个记录表示CPU使用时使用时间的递增,间的递增,.(4) 活动强度测量值活动强度测量值统计在不同时间间隔内所出现的审计记录数目。在统计在不同时间间隔内所出现的审计记录数目。在IDES中使中使用了以下用了以下3种审计

25、记录强度测量值。种审计记录强度测量值。 每分钟的流量 每10分钟的流量 每小时的流量对于用户所生成的每一个审计记录,对于用户所生成的每一个审计记录,IDES系统经计算生成一系统经计算生成一个单独的测试统计值(个单独的测试统计值(IDES分数值,表示为分数值,表示为T2),),用来综合表用来综合表明最近用户行为的异常程度。明最近用户行为的异常程度。统计值统计值T2本身是一个对多个测量值异常度的综合评价本身是一个对多个测量值异常度的综合评价基于统计分析的基于统计分析的IDS举例:举例:l假如对一般的员工来说,正常使用某台计算机的时间是8:0023:00,如果在系统日志中发现在凌晨2:00有人使用此

26、机器,那么就可认为是异常情况,有可能是入侵行为或非授权访问。可描述如下:Set normal-time= 8:0023:00;Set state=normal;Get(login-time);If(login-time! =normal-time)Set state=abnormal;进行异常处理;在最早期的若干入侵检测系统中就已经开始使用专在最早期的若干入侵检测系统中就已经开始使用专家系统了。专家系统在知识库的基础上,根据所获得家系统了。专家系统在知识库的基础上,根据所获得的事实和已知的规则进行推导,并得出结论。使用专的事实和已知的规则进行推导,并得出结论。使用专家系统的好处是用户无须了解具

27、体系统内部的工作原家系统的好处是用户无须了解具体系统内部的工作原理,只需要解决对问题的描述过程即可。但是,知识理,只需要解决对问题的描述过程即可。但是,知识库的构建是一个耗时费力的艰苦过程。库的构建是一个耗时费力的艰苦过程。专家系统只能基于明确的、可靠的规则得出结论,专家系统只能基于明确的、可靠的规则得出结论,对于超出已有规则范围的事实无法得出有用的结论。对于超出已有规则范围的事实无法得出有用的结论。下面以下面以PBEST为例,介绍专家系统在入侵检测中为例,介绍专家系统在入侵检测中的应用。的应用。4.3 入侵检测的专家系统入侵检测的专家系统PBEST系统包括一个规则翻译器系统包括一个规则翻译器

28、pbcc、一个运行一个运行时例程库和一组垃圾收集例程。规则翻译器接收一组时例程库和一组垃圾收集例程。规则翻译器接收一组规则(规则(rule)和事实(和事实(fact)的定义后,生成一组的定义后,生成一组C语言的例程,用来语言的例程,用来“断言断言”(assert)事实和处理规事实和处理规则。运行时例程库中包含了所有专家系统中的共享代则。运行时例程库中包含了所有专家系统中的共享代码,并且包括支持交互式专家系统引擎的例程。这些码,并且包括支持交互式专家系统引擎的例程。这些交互式的环境将能够帮助用户查看程序的运行情况、交互式的环境将能够帮助用户查看程序的运行情况、设置和清除断点、删除和设置和清除断点

29、、删除和“断言断言”事实以及观察规则事实以及观察规则点火的影响轨迹等。点火的影响轨迹等。在构建一个专家系统之前,用户必须首先定义规则在构建一个专家系统之前,用户必须首先定义规则和模式类型(和模式类型(ptype)。)。下面是一个下面是一个ptype的声明示的声明示例。例。ptype count value: int以上声明的目的在于建立一个关于事实的模式以上声明的目的在于建立一个关于事实的模式(pattern)或模板(或模板(template)。)。专家系统知识库专家系统知识库中的每条事实都是某个中的每条事实都是某个ptype类型的一个实例。类型的一个实例。ptype类型为类型为count的事

30、实包含一个整数字段的事实包含一个整数字段value。前述声明将允许规则引用前述声明将允许规则引用count类型的事实,并检查类型的事实,并检查和修改这些事实的和修改这些事实的value字段值。字段值。一个模式类型一个模式类型ptype可以包括多个字段,如下所示。可以包括多个字段,如下所示。ptype session userid: string,terminal: string,timeoutflag:int以上以上ptype声明建立了一个事实模式,包括了声明建立了一个事实模式,包括了3个字个字段,其中段,其中,userid和和terminal字段都是字符串类型,字段都是字符串类型,而而tim

31、eoutflag字段为整数类型。字段为整数类型。规则可以引用特定事实,其包括匹配特定条件或值规则可以引用特定事实,其包括匹配特定条件或值的字段。例如,一条规则可以检查一个的字段。例如,一条规则可以检查一个session类型类型的事实,视其的事实,视其timeoutflag字段值是否为字段值是否为1。这可以通。这可以通过在其前提句中包含以下语句来实现:过在其前提句中包含以下语句来实现: +session timeoutflag = 1在起始方括号后的在起始方括号后的“+”符,是用作某种类型的符,是用作某种类型的“存在性量词存在性量词”。这就是说,它允许规则来查看是否存。这就是说,它允许规则来查看

32、是否存在任何满足特定条件的事实。以上的语句将匹配任何在任何满足特定条件的事实。以上的语句将匹配任何其其timeoutflag字段值为字段值为1的的session类型的事实。类型的事实。规则也可以使用规则也可以使用“”符,来确定是否不存在给定符,来确定是否不存在给定类型的事实。下例将查看是否不存在类型的事实。下例将查看是否不存在userid字段为字段为THISUSER的的session类型的事实。类型的事实。session userid = THISUSER= /c|value+=l etc. “Increment count facts value field注意,这里对事实的字段值做了修改。

33、此时,原始注意,这里对事实的字段值做了修改。此时,原始的事实失效,而具有修改后字段值的新事实将被加入的事实失效,而具有修改后字段值的新事实将被加入到知识库中。如果使用交互式操作环境时,用户就能到知识库中。如果使用交互式操作环境时,用户就能看到当一个事实被修改后,它将得到一个新的号码。看到当一个事实被修改后,它将得到一个新的号码。这表示系统将把规则优先绑定到修改后的事实上,而这表示系统将把规则优先绑定到修改后的事实上,而不是先前创建但是已经失效的事实。不是先前创建但是已经失效的事实。下面是一个完整的规则声明:下面是一个完整的规则声明: rule SimuLogon (#l;*):+tr:tran

34、saction+se:session | userid = tr.userid?|se.terminal != tr.terminal= !|printf (SimuLogon: user %s at terminals %s, %sn,tr.userid, tr.terminal, se.terminal)|tr|se该条规则检测一个正在当前终端上登录,但是以前该条规则检测一个正在当前终端上登录,但是以前已经在别处登录的用户。它通过检查若干已经在别处登录的用户。它通过检查若干transaction事实(这些事实必须是以前用户已声明事实(这些事实必须是以前用户已声明transaction类型的

35、实例),看其是否存在一个类型的实例),看其是否存在一个session事实,其事实,其userid字段值与任何字段值与任何transaction事实中对应字段值相同。如果存在这样的事实中对应字段值相同。如果存在这样的session事事实,则比较二者的实,则比较二者的terminal字段值,看是否相同。如字段值,看是否相同。如果不相同,则该规则果不相同,则该规则“点火点火”。这条规则的假设前提。这条规则的假设前提是其他的规则将检查登录活动,并为每个登录活动创是其他的规则将检查登录活动,并为每个登录活动创建一个建一个session事实。事实。 一条规则的语法完全由分隔符(方括号和一条规则的语法完全由

36、分隔符(方括号和=)来)来决定。决定。一个规则声明由关键词一个规则声明由关键词rule起头,然后是一个名称起头,然后是一个名称区,后跟一个冒号(区,后跟一个冒号(:)。上述规则的名称区包括名)。上述规则的名称区包括名称称SimuLogon,后面是一组包括在圆括号内的选项后面是一组包括在圆括号内的选项参数。这里,参数。这里,#1选项表示该规则的等级为选项表示该规则的等级为1。这意味。这意味着如果多个规则都可以点火,则该规则将比较低级别着如果多个规则都可以点火,则该规则将比较低级别的规则先点火。星号(的规则先点火。星号(*)选项表示该规则是可重复)选项表示该规则是可重复的。这意味着该规则可以重复点

37、火,而无需其他规则的。这意味着该规则可以重复点火,而无需其他规则同时点火。若默认则表示该规则是不可重复的,因为同时点火。若默认则表示该规则是不可重复的,因为一旦规则的前提被满足,它将永远都满足条件,则规一旦规则的前提被满足,它将永远都满足条件,则规则将一次次地点火。但上述规则将删除满足条件的事则将一次次地点火。但上述规则将删除满足条件的事实,从而避免类似的循环点火过程。实,从而避免类似的循环点火过程。规则的体部分包括一系列的前提语句、分隔符规则的体部分包括一系列的前提语句、分隔符=和一系列的结论语句。每个前提语句都包括某种条件和一系列的结论语句。每个前提语句都包括某种条件测试。第一条前提语句:

38、测试。第一条前提语句:+tr: transaction检查一条检查一条transaction事实。它赋以其别名事实。它赋以其别名tr。下一下一条语句:条语句: +se: session|userid = tr.userid检查是否存在一个检查是否存在一个session事实,其事实,其userid字段值字段值与已发现的与已发现的tr事实的对应字段值相等。如果发现这样事实的对应字段值相等。如果发现这样的一个事实,则赋予别名的一个事实,则赋予别名se。第三条语句:第三条语句: ?|se.terminal != tr.terminal检查在发现的检查在发现的session事实中的事实中的termina

39、l字段值是字段值是否与否与transaction事实的对应字段值不同。事实的对应字段值不同。如果上述的所有前提语句都满足了,该规则如果上述的所有前提语句都满足了,该规则“点火点火”,即结论语句开始执行。此条规则包括,即结论语句开始执行。此条规则包括3条结论语条结论语句。第一条语句:句。第一条语句: ! | printf (SimuLogon: user %s at terminals %s, %sn,tr.userid, tr.terminal, se.terminal)调用对应的调用对应的C语言函数。语言函数。“!| ”符表示这样的一个符表示这样的一个调用。这里可以调用任意的调用。这里可以调

40、用任意的C函数例程。函数例程。pbcc能够识能够识别大多数内建的别大多数内建的C函数,如果是用户自己创建的,则函数,如果是用户自己创建的,则必须事先声明。这里,可以像必须事先声明。这里,可以像C语言中的结构一样,语言中的结构一样,引用事实中的字段值,表示形式为事实的别名,后跟引用事实中的字段值,表示形式为事实的别名,后跟点号点号“.”和字段名。和字段名。语句语句|tr和和|se将将tr和和se类型的事实从知识库类型的事实从知识库中删除。这样做有中删除。这样做有3个原因:个原因: 第一,可以避免规则因第一,可以避免规则因为为同样的满足条件而循环点火。第二,将不需要的事同样的满足条件而循环点火。第

41、二,将不需要的事实从知识库中删除,有助于提高系统的运行速度。第实从知识库中删除,有助于提高系统的运行速度。第三个原因是节约内存。三个原因是节约内存。对于入侵检测而言,专家系统检测引擎必须从目标对于入侵检测而言,专家系统检测引擎必须从目标审计数据源中获取数据,然后才能进行后继的规则检审计数据源中获取数据,然后才能进行后继的规则检测工作。测工作。PBEST提供了一套用于与外部进行交互的提供了一套用于与外部进行交互的接口机制,用于从外部获取信息和向外部发送信息。接口机制,用于从外部获取信息和向外部发送信息。发送信息的方法主要可采用调用外部发送信息的方法主要可采用调用外部C语言函数来语言函数来实现。下

42、面主要介绍实现。下面主要介绍PBEST实现从外部获取信息,实现从外部获取信息,并将其作为新事实加入到知识库中的主要办法。并将其作为新事实加入到知识库中的主要办法。对于要加入到知识库中的事实,必须进行对于要加入到知识库中的事实,必须进行“断言断言(assert)”操作。从操作。从C语言的角度看,这是通过用语言的角度看,这是通过用适当的参数来调用函数适当的参数来调用函数assert_ptypename来来实现的。这就是说,对于每种类型,实现的。这就是说,对于每种类型,pbcc翻译器都翻译器都生成一个函数,将该类型的事实加入到知识库中。为生成一个函数,将该类型的事实加入到知识库中。为了使用这些函数,

43、用户可以编写如下所示的规则文件:了使用这些函数,用户可以编写如下所示的规则文件:This rule reads data into the knowledge base using theget_fact_record () routine. It has a very lowpriority so it doesnt add new facts until the old oneshave been processed.rule get_fact_record_data (#99;*):?|retval != END_OF_FILE+c:count = /c| value += 1! | r

44、etval = get_fact_record ()本条规则的核心部分就是对本条规则的核心部分就是对C函数函数get_fact_record ()的调用。除此之外,该条规则检查文件的尾部,并的调用。除此之外,该条规则检查文件的尾部,并维持一个对已读记录的计数值。函数维持一个对已读记录的计数值。函数get_fact_record ()从一个文件中读入一条记录,将从一个文件中读入一条记录,将其移入到一组变量中,然后以其为参数调用函数其移入到一组变量中,然后以其为参数调用函数assert_transaction()。下面是函数下面是函数get_fact_record ()的示例代码片段。的示例代码片

45、段。int get_fact_record ()int i, reader ();/*Read a record from the file into the buffer strings.*/i= reader (infp, (struct iovec *) iov1, 26);if (i threshold log (counter over threshold !);transition t1 (s1-s2) READ r: r.euid != r.uid下面简要介绍下面简要介绍STAT检测引擎工作的基本原检测引擎工作的基本原理。理。推理引擎是整个系统的核心部件,如图推理引擎是整个系统的

46、核心部件,如图4-8所示。正如状态转移图是用来表示具体攻击过所示。正如状态转移图是用来表示具体攻击过程的图形化方法,程的图形化方法,STAT系统中引入系统中引入“推理引推理引擎表擎表” 来可视化表述推理引擎的工作原理。来可视化表述推理引擎的工作原理。图图4-8 推理引擎表推理引擎表S1S2S3S4S51234n图图4-9表示假想实例所对应的状态转移图,对应着表示假想实例所对应的状态转移图,对应着状态描述表中的第状态描述表中的第h项,记为项,记为SDTh。图图4-9 假想的状态转移图假想的状态转移图SDTh初始的推理引擎表如图初始的推理引擎表如图4-10所示。表中第所示。表中第h行对应行对应着假

47、想的状态转移图着假想的状态转移图SDTh。图图4-10 初始推理引擎表初始推理引擎表S1S2S3S4S512hn图图4-11 第一个操作后的推理引擎表第一个操作后的推理引擎表S1S2S3S4S512hnn+1X图图4-12 第二个操作后的推理引擎表第二个操作后的推理引擎表S1S2S3S4S512hnn+1Xn+2XX文件完整性检查的目的是检查主机系统中文件系统文件完整性检查的目的是检查主机系统中文件系统的完整性,及时发现潜在的针对文件系统的无意或恶的完整性,及时发现潜在的针对文件系统的无意或恶意的更改。检查文件系统完整性的必要性包括如下几意的更改。检查文件系统完整性的必要性包括如下几个方面:个

48、方面: 攻击者在入侵成功后,经常在文件系统中安装后攻击者在入侵成功后,经常在文件系统中安装后门或者木马程序,以方便后继的攻击活动。门或者木马程序,以方便后继的攻击活动。 攻击者还可能安装非授权的特定程序,并且替换攻击者还可能安装非授权的特定程序,并且替换掉特定的系统程序,以掩盖非授权程序的存在。掉特定的系统程序,以掩盖非授权程序的存在。 为了防止攻击活动的痕迹,攻击者还可能删除若为了防止攻击活动的痕迹,攻击者还可能删除若干重要系统日志文件中的审计记录。干重要系统日志文件中的审计记录。4.5 文件完整性检查文件完整性检查 入侵者还可能为了达成拒绝服务攻击目的或者破入侵者还可能为了达成拒绝服务攻击

49、目的或者破坏目的,恶意修改若干重要服务程序的配置文件或者坏目的,恶意修改若干重要服务程序的配置文件或者数据库数据,包括系统安全策略的配置信息等。数据库数据,包括系统安全策略的配置信息等。文件完整性检查的基本思想是:文件完整性检查的基本思想是: 首先,对所要检查首先,对所要检查的每个目标文件生成一个惟一标识符,并将它们存储的每个目标文件生成一个惟一标识符,并将它们存储到一个数据库中;然后进行检查时,对每个目标文件到一个数据库中;然后进行检查时,对每个目标文件重新生成新的标识符,并将新标识符与数据库中存储重新生成新的标识符,并将新标识符与数据库中存储的旧版本进行比较;从而可以确定目标文件是否发生的

50、旧版本进行比较;从而可以确定目标文件是否发生了更改。另外,通过对数据库中条目数目的检查,也了更改。另外,通过对数据库中条目数目的检查,也可能发现文件系统中文件数目的增删变化。可能发现文件系统中文件数目的增删变化。文件完整性检查的最初实现技术包括文件完整性检查的最初实现技术包括“检查列表检查列表”(checklist)技术。该技术的特点是使用一个检技术。该技术的特点是使用一个检查列表来存储目标文件的标识信息,列表中的每个条查列表来存储目标文件的标识信息,列表中的每个条目包括目标文件的诸多属性信息,例如文件长度、最目包括目标文件的诸多属性信息,例如文件长度、最后修改时间、属主信息等。在检查时,系统

51、再重新取后修改时间、属主信息等。在检查时,系统再重新取得目标文件的属性信息,并与在检查列表中的对应项得目标文件的属性信息,并与在检查列表中的对应项目进行比较。此种方法的优点是检查速度较快,缺陷目进行比较。此种方法的优点是检查速度较快,缺陷在于无法确保文件内容不被恶意更改,因为入侵者可在于无法确保文件内容不被恶意更改,因为入侵者可在获得较高权限的条件下,更改文件内容而不改变文在获得较高权限的条件下,更改文件内容而不改变文件的属性信息。件的属性信息。为了解决初期的若干技术问题,为了解决初期的若干技术问题,G.Kim设计开发了设计开发了TripWire的系统原型,并发展成为文件完整性检查领的系统原型

52、,并发展成为文件完整性检查领域内最著名的工具软件。域内最著名的工具软件。TripWire的基本设计的基本设计思路:思路: 使用单向消息摘要算法,计算每个目标文件使用单向消息摘要算法,计算每个目标文件的校验和特征信息,然后将其存储到可靠的安全存储的校验和特征信息,然后将其存储到可靠的安全存储介质上(只读光盘等);系统定时地计算目标文件的介质上(只读光盘等);系统定时地计算目标文件的校验和特征,并与预先存储的特征信息进行比较,如校验和特征,并与预先存储的特征信息进行比较,如果出现了差异,则向系统管理员发出报告信息。如图果出现了差异,则向系统管理员发出报告信息。如图4-13所示为所示为TripWir

53、e的系统设计模块示意图。的系统设计模块示意图。图图4-13 TripWire的系统设计模块示意图的系统设计模块示意图系统配置分析(又可称为静态分析)的技术目标是系统配置分析(又可称为静态分析)的技术目标是检查系统是否已经受到入侵活动的侵害,或者存在有检查系统是否已经受到入侵活动的侵害,或者存在有可能被入侵的危险。静态分析技术通过检查系统的当可能被入侵的危险。静态分析技术通过检查系统的当前配置情况,来判断系统的当前安全状况。配置分析前配置情况,来判断系统的当前安全状况。配置分析技术的基本原理是基于如下两个观点:技术的基本原理是基于如下两个观点: 首先,一次首先,一次成功的入侵活动可能会在系统中留

54、下痕迹,这可以通成功的入侵活动可能会在系统中留下痕迹,这可以通过检查系统当前的状态来发现;其次,系统管理员和过检查系统当前的状态来发现;其次,系统管理员和用户经常会错误地配置系统,从而给攻击者以入侵的用户经常会错误地配置系统,从而给攻击者以入侵的可乘之机。可乘之机。系统配置分析技术的一个最著名的实现工具是系统配置分析技术的一个最著名的实现工具是COPS系统。所检查的系统安全范围包括如下类型:系统。所检查的系统安全范围包括如下类型: 4.6 系统配置分析技术系统配置分析技术 检查文件、目录和设备的访问权限模式。检查文件、目录和设备的访问权限模式。 脆弱的口令设置。脆弱的口令设置。 检查口令文件和

55、组用户文件的安全性、格式和内检查口令文件和组用户文件的安全性、格式和内容。容。检查在检查在/etc/rc*目录和目录和cron中指定运行的文件和中指定运行的文件和程序。程序。 具有具有root SUID属性的文件,检查它们是否可写,属性的文件,检查它们是否可写,以及是否脚本程序。以及是否脚本程序。 对重要的二进制文件和其他文件计算对重要的二进制文件和其他文件计算CRC校验校验和,检查是否发生更改。和,检查是否发生更改。 检查用户主目录下文件是否可写。检查用户主目录下文件是否可写。 是否具有匿名是否具有匿名FTP登录服务账户。登录服务账户。 是否存在是否存在TFTP服务、服务、Sendmail中别名情况以及中别名情况以及在在inetd.conf文件中隐藏的启动脚本程序等。文件中隐藏的启动脚本程序等。 各种类型的根权限检查。各种类型的根权限检查。 按照按照CERT安全报告的发布日期,检查关键文件安全报告的发布日期,检查关键文件是否已经及时进行了升级或打上了补丁。是否已经及时进行了升级或打上了补丁。COPS系统负责报告所发现的安全问题,但是并不系统负责报告所发现的安全问题,但是并不试图修复安全漏洞,这点与基本的入侵检测系统的设试图修复安全漏洞,这点与基本的入侵检测系统的设计理念相符合。计理念相符合。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号