通用入侵检测对象应用研究

(整期优先)网络出版时间:2019-11-05
/ 3

摘  要  在入侵检测系统设计原理的基础上,结合各类分布式入侵检测系统及各系统内构件之间信息共享的需求,通过分析CISL语言的特点,描述了CISL语言用以表示通用入侵检测对象(GIDO)的生成规则,并以Linux系统审计日志中检测口令猜测攻击的内容演示了通用入侵检测对象的生成,编码等应用过程,最后给出一个模拟结果。
    关键词  入侵检测;通用入侵检测对象;通用入侵描述语言;语义标识符
 


1  引言
    计算机网络在我们的日常生活中扮演着越来越重要的角色,与此同时,出于各种目的,它正日益成为犯罪分子攻击的目标,黑客们试图使用他们所能找到的方法侵入他人的系统。为此,我们必须采取有效地对策以阻止这类犯罪发生。开发具有严格审计机制的安全操作系统是一种可行方案,然而综合考虑其实现代价,在许多问题上作出少许让步以换取减少系统实现的难度却又是必要的。因此,在操作系统之上,再加一层专门用于安全防范的应用系统成为人们追求的目标。入侵检测技术即是这样一种技术,它和其它安全技术一道构成计算机系统安全防线的重要组成部分。自从Dorothy E.Denning1987年提出入侵检测的理论模型后[1],关于入侵检测的研究方法就层出不穷[5-7],基于不同检测对象及不同检测原理的入侵检测系统被研制并投放市场,取得了显著成效,然而,遗憾的是这些产品自成一体,相互间缺少信息交流与协作,而作为防范入侵的技术产品,这势必削弱了它们的防范能力,因而如何使不同的入侵检测系统构件能够有效地交流合作,共享它们的检测结果是当前亟待解决的一个问题。入侵检测系统框架的标准化,数据格式的标准化[2]为解决这一问题作了一个有益的尝试。本文主要针对入侵检测数据格式的标准化——通用入侵检测对象进行分析应用,并通过一个实际例子介绍了我们的具体实践过程。
    入侵检测是指“通过对行为、安全日志或审计数据或其它网络上可以获得的信息进行操作,检测到对系统的闯入或闯入的企图”[2-4]。从技术上划分,入侵检测有两种模型[2,4]:①异常检测模型(Anomaly Detection);②误用检测模型(Misuse Detection)。 按照检测对象划分有:基于主机、基于网络及混合型三种。
    入侵检测过程主要有三个部分[4]:即信息收集、信息分析和结果处理。
2  通用入侵检测对象(GIDO)
    为解决入侵检测系统之间的互操作性,国际上的一些研究组织开展了标准化工作,目前对IDS进行标准化工作的有两个组织:IETF的Intrusion Detection Working Group(IDWG)和Common Intrusion Detection Framework(CIDF)。CIDF早期由美国国防部高级研究计划局赞助研究,现在由CIDF工作组负责,是一个开放组织。 CIDF规定了一个入侵检测系统应包括的基本组件。CISL(Common Intrusion Specification Language,通用入侵规范语言)是CIDF组件间彼此通信的语言。由于CIDF就是对协议和接口标准化的尝试,因此CISL就是对入侵检测研究的语言进行标准化的尝试[8]。
    CISL语言为了实现自定义功能,以S-表达式表示GIDO(Generalized Intrusion Detection Objectis),S-表达式以各类语义标识符(Semantic Identifeers)为标记,分别有动作SID、角色SID、属性SID、原子SID、连接SID、指示SID和SID扩展名等类型。其范式如下:
         <SExpression>::=’(<SID><Data>’)’
<Data>::=<SimpleAtom>
<Data>::=<ArrayAtom>
<Data>::=< SExpression List>
< SExpression List>::=< SExpression >
< SExpression List>::=< SExpression >< SExpression List>
    入侵检测组件交流信息时,以GIDO为标准数据格式传输内容,GIDO所包含的内容常来自于各类审计日志,网络数据包,应用程序的跟踪信息等。
CISL对S-表达式编码规则遵循递归原则,具体如下:
        <SExpression>::=’(<SID><Data>’)’
E[Sexpression]=length_encode(sid_encode(SID)E[Data])
sid_encode(SID)E[Data]


         <Data>::=<SimpleAtom>
          E[Data]=Simple_encode(SimpleAtom)
          <Data>::=<ArrayAtom>
          E[Data]=Array_encode(ArrayAtom)
   <Data>::=< SExpression List>
          E[Data]=E[SExpression List]
          < SExpression List>::=< SExpression >
         E[ SExpression List]::=E[ SExpression ]
< SExpression List>::=< SExpression >< SExpression  List>
         E[ SExpression List]::=E[ SExpression ]e [ SExpression List]
    对于每一个GIDO的基本成份SID,CISL都有规定的编码,通过这些编码本身的信息可知这些SID是原子SID还是非原子SID。原子SID在编码中不能继续分解,而是直接带有具体的值。值有简单类型和数组类型[8]。
    GIDO以各类SID为标志,组成树形结构,根结点为该GIDO的标志SID,各子树的根结点为相应的对该GIDO所描述的事件起关键作用的SID。编码时,每棵子树的根结点前附加该子树所有孩子结点编码的总长度,以递归方式完成GIDO编码,一个详细的实例可参考文献[8]。

3  通用入侵检测对象的应用

    我们以Linux环境为例,在检测口令猜测攻击中,系统的日志文件会产生以LOGIN_FAILED为标志的日志记录[9-10]。在IDS的事件产生器中,读取日志文件中含有LOGIN_FAILED的记录生成GIDO。

    例:Jul 31 08:57:45 zd213 login[1344] LOGIN_FAILED 1 from 192.168.0.211 FOR John Authentication failure。相应的GIDO为:

{Login

    {Outcome

        {ReturnCode ACTION_FAILED}

        )

    (When

         (BeginTime Jul 31 08:57:43)

    )

    (Initiator

        (IPV4Address  192.168.0.211)

        (Username  John)

     )

    (Receiver

         (Hostname  zd213)

))

    其编码过程除了遵循前面所描述的规则外,还使用了文献[2]所建议的各类API。它们分别用于生成存放GIDO的空树、向空树附加根结点、附加数据、附加子树及对整个树编码。

当一个GIDO由事件产生器完成编码后,便发送至事件分析器按一定的规则分析所接收的GIDOs以便确定是否有入侵发生,若有则将有关信息发至控制台。对口令猜测攻击的GIDO,一个可行的处理流程如图1所示。

    假定系统检测到30秒内发生了三次或以上登录失败,认为系统受到入侵,便发出相应报警信息。则本例输出结果(从不同终端登录)如图2所示。

1544362776.jpg

图1  对口令猜测攻击事件产生的GIDO的处理流程

1544372735.jpg

图2  一个口令猜测攻击的模拟检测结果


4  结束语

    本文在深入分析入侵检测基本原理及入侵检测说明语言CISL基础上,对入侵检测对象GIDO的编码进行了详细说明。在系统设计的实践过程中,分别使用了入侵检测标准化组织提出的草案中包含的有关接口。但在本文中也只是针对一类特定入侵的事件说明如何生成并编码GIDOs。事实上,入侵检测系统各构件之间的通信本身也需要安全保障,这一点参考文献[8],可利用GIDO的附加部分来实现,其中所用技术(诸如签名,加密等)可借鉴目前一些较成熟的安全通信技术。

参考文献

[1] Dorothy E.Denning  An Intrusion-Detection Model[J].IEEE Transactions on software Engineering,1987,13(2):222-232

[2] 蒋建春,马恒太等  网络入侵检测综述[J] . 软件学报 2000.11(11):1460-1466

[3] GB/T18336,信息技术安全技术安全性评估标准[S]。

[4] 蒋建春,冯登国。网络入侵检测原理与技术[M],国防工业出版社,北京,2001

[5] Kumar S,Spafford E H,An Application of Patter Matching in Intrusion Detection[R],Technical Report CSD-7r-94-013,Department of Computer Science,Purdue University,1994。

[6] Jstin Doak. Intrusion Detection:The Application of a  Feature Selection-A Comparison of Algorithms and the Application of Wide Area Network Analyzer[R] .Department of Computer Science,University of colifornia,Davis 1992.

[7] Dusan Bulatovic,Dusan Velasevi. A distributed Intrusion Detection System[J],Journal of computer Security. 1999,1740:219-118

[8] http://gost.isi.edu/cidf

[9] 叶和平 . 基于LINUX环境的入侵检测系统研究[D]  广州 中山大学2002

[10] 周巍松  LINUX操作系统分析与高级教程[M],北京:机械工业出版社 2000.3