第4章 基于主机的入侵检测技术_第1页
第4章 基于主机的入侵检测技术_第2页
第4章 基于主机的入侵检测技术_第3页
第4章 基于主机的入侵检测技术_第4页
第4章 基于主机的入侵检测技术_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、其次,根据不同主机入侵检测系统的设计要求和需要,其具体选取的审计数据类型和来源也各有侧重。以以IDES系统为例。系统为例。IDES在在Sun UNIX目标系统环境目标系统环境下所收集到的审计数据,主要分为下所收集到的审计数据,主要分为4个典型类型。个典型类型。 文件访问: 包括对文件和目录进行的操作,如读取、写入、创建、删除和访问控制列表的修改。4.1.1 审计数据的获取审计数据的获取 系统访问: 包括登录、退出、调用以及终止超级用户权限等。 资源消耗: 包括CPU、I/O和内存的使用情况。 进程创建命令的调用: 指示一个进程的创建。IDES必须从必须从Sun环境中的多个不同信息源来收集环境中

3、的多个不同信息源来收集审计数据。这些信息源包括:审计数据。这些信息源包括: Sun OS 4.0 标准审计标准审计系统系统、Sun C2 安全审计包和安全审计包和UNIX记账系统。记账系统。然而,仅从这两种审计系统得到的信息对于然而,仅从这两种审计系统得到的信息对于IDES的入侵检测分析还是不够的。还可以对系的入侵检测分析还是不够的。还可以对系统另外配置一些其他的审计工具。如统另外配置一些其他的审计工具。如Sendmail,Netlog等。等。对于其他的主机入侵检测系统,例如对于其他的主机入侵检测系统,例如STAT系统,系统,它所使用的审计数据来源主要就是它所使用的审计数据来源主要就是Sun

4、OS C2安安全审计包(全审计包(BSM),),针对的是针对的是BSM审计记录。审计记录。基于主机的入侵检测技术 54.1.2 审计数据的预处理审计数据的预处理q审计日志信息非常庞大;q存在杂乱性、重复性和不完整性;q杂乱性:代理的审计机制不完全相同,所产生的日志信息存在差异;q重复性:对于同一个客观事物系统中存在多个物理描述;q不完整性:由于实际系统缺陷和人为因素所造成的记录中出现数据属性的值丢失或不确定的情况。审计数据的预处理审计数据的预处理l数据的预处理就是对系统获取到的各种相关数据进行归纳、转换等处理,使其符合系统的需求。l一般采用从大量的数据属性中,提取出部分对目标输出有重大影响的属

5、性,通过降低原始数据的维数来达到改善质量的目的。基于主机的入侵检测技术 7审计数据的预处理审计数据的预处理通常数据预处理应该包括以下功能。q 数据集成m涉及数据的选择、数据的冲突以及数据的不一致问题的解决;m并非简单的数据合并,对数据进行统一化;q 数据清理:除去噪音数据和无关数据,处理遗漏数据等。q数据变换:规范化处理。根据其属性值的量纲进行归一化处理。q 数据简化:数据属性的约简。降低数据分析的维数。q 数据融合:对多种IDS检测结果的融合和决策。基于主机的入侵检测技术 8审计数据的预处理审计数据的预处理 (a)数据集成 ( b)数据清理 2, 32, 100, 59, 48 0.02,

6、0.32, 1.00, 0.59, 0.48 (c)数据变换 A126 A2 A1 T1 T2 T2 000 A115 A2 A1 T1 T2 T1400 ( d)数据简化/融合数据的规范化数据的规范化l数据的规范化处理有两种比较常用的方法: 其中,x为要规范化的数值;x为规范化后的数值;avg为x所在向量组X的平均值;std(X)为向量组X的标准差。l 其中,x为要规范化的数值;x为规范化后的数值;max是x所在向量组中元素的最大值;min是x所在向量组中元素的最小值;new_max是规范化后的目标区间的上限;new_min是规范化后的目标区间的下限;通过这个公式可以将数据规范化到指定区间。

7、 ()xavgxstd Xmin(_ max_ min)_ minmaxminxxnewnewnew首先,讨论标准审计记录格式的设计问题。首先,讨论标准审计记录格式的设计问题。以以IDES系统为例,系统为例,IDES审计记录格式是基于若干设计考虑审计记录格式是基于若干设计考虑的。的。首先,它必须通用程度足够高,以便能够表示目标监控系首先,它必须通用程度足够高,以便能够表示目标监控系统的所有可能事件类型。统的所有可能事件类型。其次,它应该是该机器中最有效的数据表示形式,以将处其次,它应该是该机器中最有效的数据表示形式,以将处理开销降低到最小程度。理开销降低到最小程度。第三,记录格式应该按标准化设

8、计,使第三,记录格式应该按标准化设计,使IDES能够从多个不能够从多个不同类型的机器处接收输入记录,而无须进行任何的数据转换。同类型的机器处接收输入记录,而无须进行任何的数据转换。理想的情况下,审计记录只进行一次格式化。理想的情况下,审计记录只进行一次格式化。4.1.2 审计数据的预处理审计数据的预处理IDES审计记录用动作类型来进行分类。共有约审计记录用动作类型来进行分类。共有约30种不同的种不同的动作类型。动作类型。每个每个IDES审计记录包括一个动作类型和若干字段,用于对审计记录包括一个动作类型和若干字段,用于对该动作进行参数化取值。该动作进行参数化取值。以下是为以下是为IDES入侵检测

9、分析而定义的动作类型。入侵检测分析而定义的动作类型。 IA_VOID: 此为没有操作。此为没有操作。IA_ACCESS: 指定的文件被引用(但是没有读写)。指定的文件被引用(但是没有读写)。IA_WRITE: 文件被打开以备写入或者已经写入。文件被打开以备写入或者已经写入。IA_READ: 文件被打开以备读取或者已经读取。文件被打开以备读取或者已经读取。IA_DELETE: 所指定的文件已被删除。所指定的文件已被删除。IA_CREATE: 所指定的文件被创建。所指定的文件被创建。IA_RMDIR: 所指定的目录被删除。所指定的目录被删除。IA_XHMOD: 所指定文件的访问模式已经改变。所指定

10、文件的访问模式已经改变。IA_EXEC: 所指定的命令已经被调用。所指定的命令已经被调用。IA_XHOWN: 所指定对象(文件)的所有权已经改变。所指定对象(文件)的所有权已经改变。IA_LINK: 已建立起到指定文件的一个连接。已建立起到指定文件的一个连接。IA_CHDIR: 工作目录已经改变。工作目录已经改变。IA_RENAME: 文件被重命名。文件被重命名。IA_MKDIR: 目录被创建。目录被创建。IA_LOGIN: 指定用户登录进入系统。指定用户登录进入系统。IA_BAD_LOGIN: 指定用户的登录尝试失败。指定用户的登录尝试失败。IA_SU: 调用超级用户权限。调用超级用户权限。

11、IA_BAD_SU: 调用超级用户权限的尝试。调用超级用户权限的尝试。IA_RESOURCE: 资源(内存、资源(内存、CPU时间、时间、I/O)被消耗。被消耗。IA_LOGOUT: 所指定的用户退出系统。所指定的用户退出系统。IA_UNCAT: 其他所有未指定的动作。其他所有未指定的动作。IA_RSH: 远程外壳调用。远程外壳调用。IA_BAD_RSH: 被拒绝的远程外壳调用。被拒绝的远程外壳调用。IA_PASSWD: 口令更改。口令更改。IA_RMOUNT: 远程文件系统安全请求(网络文件服务器)。远程文件系统安全请求(网络文件服务器)。IA_BAD_RMOUNT: 拒绝文件系统安装。拒绝

12、文件系统安装。IA_PASSWD_AUTH: 口令确认。口令确认。IA_BAD_PASSWD_AUTH: 拒绝口令确认。拒绝口令确认。IA_DISCON: Agen断开与断开与Arpool的连接的连接 (伪记录伪记录)。l以下为表示以下为表示IDES审计记录的审计记录的C语言结构。语言结构。struct ides_audit_header unsigned long tseq;char hostname32;char remotehost32;char ttyname16;char cmd18;char _pad12;char jobname16;enum ides_audit_action

13、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 (but not all) cases */struct resource_info resource;enum ides_audit_type act_type;long subjtype;char unameIDES_UNAME_LEN;char aunameIDES_UNAME_LEN;

14、char ounameIDES_UNAME_LEN;long arglen;ides_audit_block结构定义如下所示:结构定义如下所示: typedef struct long ab_size;aud_type ab_type;unsigned long rseq;time_t rectime;ides_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_audi

15、t_block;图图4-1 STAT审计记录格式审计记录格式STAT系统的标准审计记录格式由系统的标准审计记录格式由3个个部分定义组成:部分定义组成: Subject, Action, Object每个部分都进一步包括更详细的字段每个部分都进一步包括更详细的字段定义,如图定义,如图4-1所示。所示。图图4-2 从从BSM审计记录到审计记录到STAT审计记录的映射关系审计记录的映射关系审计数据获取模块的主要作用是获取目标系审计数据获取模块的主要作用是获取目标系统的审计数据,并经过预处理工作后,最终目统的审计数据,并经过预处理工作后,最终目标是为入侵检测的处理模块提供一条单一的审标是为入侵检测的处

16、理模块提供一条单一的审计记录块数据流,供其使用。计记录块数据流,供其使用。其使用的处理算法流程如下所示:其使用的处理算法流程如下所示:4.1.3 审计数据获取模块的设计审计数据获取模块的设计/ Processing Procedure for Preprocessor1 While True do begin2 If Audit_state=START then begin3 Allocate memory for audit record4 Allocate memory for the ptr of size BLOCK_SIZE5 Audit_state=NEXT_FILE6 Endif

17、7 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 preceding filename12 Audit_state=READ_FILE13 Endif14 If Audit_state=READ_FILE then begin15 Attempt to read a block from audit file to ptr16 If succe

18、ssful 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 through the filter then22 return (audit_record)23 End else24 Endif25 Else26 Reopen audit file27 Endif28 If Audit_state=CLOSE_FILE then begin29 O

19、btain next audit file name30 Close current audit file 31 Audit_state=NEXT_FILE32 Endif33 EndwhileDenning在在1986年的经典论文中提出了年的经典论文中提出了4种可以用种可以用于入侵检测的统计模型。于入侵检测的统计模型。(1) 操作模型操作模型(2) 均值与标准偏差模型均值与标准偏差模型(3) 多元模型多元模型(4) 马尔可夫过程模型马尔可夫过程模型4.2 用于入侵检测的统计模型用于入侵检测的统计模型统计分析方法统计分析方法l是异常检测技术中应用最早也是最多的一种方法;是异常检测技术中应用最早

20、也是最多的一种方法;l首先为系统对象(如用户、文件)创建一个统计描述,首先为系统对象(如用户、文件)创建一个统计描述,统计正常使用时的一些测量属性(如访问次数、统计正常使用时的一些测量属性(如访问次数、CPU使用、操作失败次数和延时);使用、操作失败次数和延时);根据异常检测器观察主体活动,然后产生刻画这些活动的行根据异常检测器观察主体活动,然后产生刻画这些活动的行为轮廓(用户特征表)为轮廓(用户特征表)每一个轮廓保存记录主体当前行为,并定时将当前轮廓与历每一个轮廓保存记录主体当前行为,并定时将当前轮廓与历史轮廓合并形成统计轮廓(更新),通过比较当前轮廓与统史轮廓合并形成统计轮廓(更新),通过

21、比较当前轮廓与统计轮廓来判定异常行为计轮廓来判定异常行为l测量属性的平均值被用来与网络、系统的行为进行比测量属性的平均值被用来与网络、系统的行为进行比较,如果观察值在正常范围之外,就认为有入侵发生。较,如果观察值在正常范围之外,就认为有入侵发生。l优点:可应用成熟的概率统计理论l缺点:由于用户行为的复杂性,要想准确地匹配一个用户的行为非常困难,容易造成系统误报和漏报定义入侵阈值比较困难,阈值高则漏报率高,阈值低则误报率高。举例举例lIDES统计异常检测引擎观测在所监控计算机系统上的活动行为,并自适应地学习主体正常行为模式。l在IDES系统的统计分析组件中,当前系统的活动状态采用一组测量值参数变

22、量来表示,称为“入侵检测向量” 。根据目标主体类型的不同根据目标主体类型的不同,IDES定义了定义了3种不同类种不同类型的测量值,分别针对用户主体、目标系统主体和型的测量值,分别针对用户主体、目标系统主体和远程主机主体。远程主机主体。同时,又可以把同时,又可以把IDES统计分析系统中不同类型的统计分析系统中不同类型的单独测量值分为以下单独测量值分为以下4个类别。个类别。(1) 活动强度测量值活动强度测量值(2) 审计记录分布测量值审计记录分布测量值(3) 类别测量值类别测量值(4) 序数测量值序数测量值以以IDES系统中应用于用户主体类型的测量值为例,系统中应用于用户主体类型的测量值为例,它们

23、包括下列定义的类型。它们包括下列定义的类型。(1) 序数测量值(活动的输出结果,以数字值来序数测量值(活动的输出结果,以数字值来表示)表示)CPU使用情况使用情况 I/O使用情况使用情况(2) 类别测量值(描述特定活动的测量值,其输类别测量值(描述特定活动的测量值,其输出为类别值)出为类别值)使用的物理位置;使用的物理位置;邮件程序的使用;邮件程序的使用;编译器、编辑器、编译器、编辑器、 窗口命令、窗口命令、 通用程序使用等的相关使通用程序使用等的相关使用。用。(3) 审计记录分布测量值审计记录分布测量值 描述最近审计记录中所有活动类型分布状况。如特定用描述最近审计记录中所有活动类型分布状况。

24、如特定用户在整个系统使用中文件访问和户在整个系统使用中文件访问和I/O活动分布。例如活动分布。例如115个审计个审计记录中,有记录中,有25个记录表示文件访问,个记录表示文件访问,50个记录表示个记录表示CPU使用时使用时间的递增,间的递增,.(4) 活动强度测量值活动强度测量值统计在不同时间间隔内所出现的审计记录数目。在统计在不同时间间隔内所出现的审计记录数目。在IDES中使中使用了以下用了以下3种审计记录强度测量值。种审计记录强度测量值。 每分钟的流量每分钟的流量 每每10分钟的流量分钟的流量 每小时的流量每小时的流量对于用户所生成的每一个审计记录,对于用户所生成的每一个审计记录,IDES

25、系统经计算生成一系统经计算生成一个单独的测试统计个单独的测试统计值(值(IDES分数值,表示为分数值,表示为T2),),用来综合表用来综合表明最近用户行为的异常程度。明最近用户行为的异常程度。统计值统计值T2本身是一个对多个测量值异常度的综合评价本身是一个对多个测量值异常度的综合评价基于统计分析的基于统计分析的IDS举例:举例:l假如对一般的员工来说,正常使用某台计算机的时间是8:0023:00,如果在系统日志中发现在凌晨2:00有人使用此机器,那么就可认为是异常情况,有可能是入侵行为或非授权访问。可描述如下:Set normal-time= 8:0023:00;Set state=norma

26、l;Get(login-time);If(login-time! =normal-time)Set state=abnormal;进行异常处理;在最早期的若干入侵检测系统中就已经开始使用专在最早期的若干入侵检测系统中就已经开始使用专家系统了。专家系统在知识库的基础上,根据所获家系统了。专家系统在知识库的基础上,根据所获得的事实和已知的规则进行推导,并得出结论。使得的事实和已知的规则进行推导,并得出结论。使用专家系统的好处是用户无须了解具体系统内部的用专家系统的好处是用户无须了解具体系统内部的工作原理,只需要解决对问题的描述过程即可。但工作原理,只需要解决对问题的描述过程即可。但是,知识库的构建

27、是一个耗时费力的艰苦过程。是,知识库的构建是一个耗时费力的艰苦过程。专家系统只能基于明确的、可靠的规则得出结论,专家系统只能基于明确的、可靠的规则得出结论,对于超出已有规则范围的事实无法得出有用的结论。对于超出已有规则范围的事实无法得出有用的结论。下面下面以以PBEST为例,介绍专家系统在入侵检测中为例,介绍专家系统在入侵检测中的应用。的应用。4.3 入侵检测的专家系统入侵检测的专家系统PBEST系统包括一个规则翻译器系统包括一个规则翻译器pbcc、一个运行一个运行时例程库和一组垃圾收集例程。规则翻译器接收一时例程库和一组垃圾收集例程。规则翻译器接收一组规则(组规则(rule)和事实和事实(f

28、act)的定义后,生成一组的定义后,生成一组C语言的例程,用来语言的例程,用来“断言断言”(assert)事实和处理事实和处理规则。运行时例程库中包含了所有专家系统中的共规则。运行时例程库中包含了所有专家系统中的共享代码,并且包括支持交互式专家系统引擎的例程。享代码,并且包括支持交互式专家系统引擎的例程。这些交互式的环境将能够帮助用户查看程序的运行这些交互式的环境将能够帮助用户查看程序的运行情况、设置和清除断点、删除和情况、设置和清除断点、删除和“断言断言”事实以及事实以及观察规则点火的影响轨迹等。观察规则点火的影响轨迹等。在构建一个专家系统之前,用户必须首先定义规则在构建一个专家系统之前,用

29、户必须首先定义规则)和模式类型(和模式类型(ptype)。)。下面是一个下面是一个ptype的声明示的声明示例。例。ptype count value: int以上声明的目的在于建立一个关于事实的模式以上声明的目的在于建立一个关于事实的模式(pattern)或模板(或模板(template)。)。专家系统知识库专家系统知识库中的每条事实都是某个中的每条事实都是某个ptype类型的一个实例。类型的一个实例。ptype类型为类型为count的事实包含一个整数字段的事实包含一个整数字段value。前述声明将允许规则引用前述声明将允许规则引用count类型的事实,并检查类型的事实,并检查和修改这些事实

30、的和修改这些事实的value字段值。对于某一个给定类字段值。对于某一个给定类型,总是存在多条事实与之对应。型,总是存在多条事实与之对应。一个模式类型一个模式类型ptype可以包括多个字段,如下所示。可以包括多个字段,如下所示。ptype session userid: string,terminal: string,timeoutflag:int以上以上ptype声明建立了一个事实模式,包括了声明建立了一个事实模式,包括了3个个字段,其中字段,其中,userid和和terminal字段都是字符串类型,字段都是字符串类型,而而timeoutflag字段为整数类型。字段为整数类型。规则可以引用特定

31、事实,其包括匹配特定条件或值规则可以引用特定事实,其包括匹配特定条件或值的字段。例如,一条规则可以检查一个的字段。例如,一条规则可以检查一个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:transaction+se:session | userid = tr

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

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

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

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

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

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

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

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

42、外部获取信息,并将其作为新事实加入到知识库中的主要办法。并将其作为新事实加入到知识库中的主要办法。对于要加入到知识库中的事实,必须进行对于要加入到知识库中的事实,必须进行“断言断言(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! | retval = get_fact_record ()本条规则的核心

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

45、ader ();/*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检测引擎工作的基本原检测引擎工作的基本原理。理。推理引擎是整个系统的核心部件,如图推理引擎是整个系统的核心部件,如图4-8所示。正如状态转移图是用来表示具体攻击过所示。

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

47、擎表初始推理引擎表S1S2S3S4S512hn图图4-11 第一个操作后的推理引擎表第一个操作后的推理引擎表S1S2S3S4S512hnn+1X图图4-12 第二个操作后的推理引擎表第二个操作后的推理引擎表S1S2S3S4S512hnn+1Xn+2XX文件完整性检查的目的是检查主机系统中文件系统文件完整性检查的目的是检查主机系统中文件系统的完整性,及时发现潜在的针对文件系统的无意或的完整性,及时发现潜在的针对文件系统的无意或恶意的更改。检查文件系统完整性的必要性包括如恶意的更改。检查文件系统完整性的必要性包括如下几个方面:下几个方面: 攻击者在入侵成功后,经常在文件系统中安装攻击者在入侵成功后

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

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

50、数件是否发生了更改。另外,通过对数据库中条目数目的检查,也可能发现文件系统中文件数目的增删目的检查,也可能发现文件系统中文件数目的增删变化。变化。文件完整性检查的最初实现技术包括文件完整性检查的最初实现技术包括“检查列表检查列表”(checklist)技术。该技术的特点是使用一个检查技术。该技术的特点是使用一个检查列表来存储目标文件的标识信息,列表中的每个条列表来存储目标文件的标识信息,列表中的每个条目包括目标文件的诸多属性信息,例如文件长度、目包括目标文件的诸多属性信息,例如文件长度、最后修改时间、属主信息等。在检查时,系统再重最后修改时间、属主信息等。在检查时,系统再重新取得目标文件的属性信息,并与在检查列表中的新取得目标文件的属性信息,并与在检查列表中的对应项目进行比较。此种方法的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论