首页 > 文章中心 > 正文

入侵检测对象应用

入侵检测对象应用

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

关键词入侵检测;通用入侵检测对象;通用入侵描述语言;语义标识符

1引言

计算机网络在我们的日常生活中扮演着越来越重要的角色,与此同时,出于各种目的,它正日益成为犯罪分子攻击的目标,黑客们试图使用他们所能找到的方法侵入他人的系统。为此,我们必须采取有效地对策以阻止这类犯罪发生。开发具有严格审计机制的安全操作系统是一种可行方案,然而综合考虑其实现代价,在许多问题上作出少许让步以换取减少系统实现的难度却又是必要的。因此,在操作系统之上,再加一层专门用于安全防范的应用系统成为人们追求的目标。入侵检测技术即是这样一种技术,它和其它安全技术一道构成计算机系统安全防线的重要组成部分。自从DorothyE.Denning1987年提出入侵检测的理论模型后[1],关于入侵检测的研究方法就层出不穷[5-7],基于不同检测对象及不同检测原理的入侵检测系统被研制并投放市场,取得了显著成效,然而,遗憾的是这些产品自成一体,相互间缺少信息交流与协作,而作为防范入侵的技术产品,这势必削弱了它们的防范能力,因而如何使不同的入侵检测系统构件能够有效地交流合作,共享它们的检测结果是当前亟待解决的一个问题。入侵检测系统框架的标准化,数据格式的标准化[2]为解决这一问题作了一个有益的尝试。本文主要针对入侵检测数据格式的标准化——通用入侵检测对象进行分析应用,并通过一个实际例子介绍了我们的具体实践过程。

入侵检测是指“通过对行为、安全日志或审计数据或其它网络上可以获得的信息进行操作,检测到对系统的闯入或闯入的企图”[2-4]。从技术上划分,入侵检测有两种模型[2,4]:①异常检测模型(AnomalyDetection);②误用检测模型(MisuseDetection)。按照检测对象划分有:基于主机、基于网络及混合型三种。

入侵检测过程主要有三个部分[4]:即信息收集、信息分析和结果处理。

2通用入侵检测对象(GIDO)

为解决入侵检测系统之间的互操作性,国际上的一些研究组织开展了标准化工作,目前对IDS进行标准化工作的有两个组织:IETF的IntrusionDetectionWorkingGroup(IDWG)和CommonIntrusionDetectionFramework(CIDF)。CIDF早期由美国国防部高级研究计划局赞助研究,现在由CIDF工作组负责,是一个开放组织。CIDF规定了一个入侵检测系统应包括的基本组件。CISL(CommonIntrusionSpecificationLanguage,通用入侵规范语言)是CIDF组件间彼此通信的语言。由于CIDF就是对协议和接口标准化的尝试,因此CISL就是对入侵检测研究的语言进行标准化的尝试[8]。

CISL语言为了实现自定义功能,以S-表达式表示GIDO(GeneralizedIntrusionDetectionObjectis),S-表达式以各类语义标识符(SemanticIdentifeers)为标记,分别有动作SID、角色SID、属性SID、原子SID、连接SID、指示SID和SID扩展名等类型。其范式如下:

<SExpression>::=’(<SID><Data>’)’

<Data>::=<SimpleAtom>

<Data>::=<ArrayAtom>

<Data>::=<SExpressionList>

<SExpressionList>::=<SExpression>

<SExpressionList>::=<SExpression><SExpressionList>

入侵检测组件交流信息时,以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>::=<SExpressionList>

E[Data]=E[SExpressionList]

<SExpressionList>::=<SExpression>

E[SExpressionList]::=E[SExpression]

<SExpressionList>::=<SExpression><SExpressionList>

E[SExpressionList]::=E[SExpression]e[SExpressionList]

对于每一个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。

例:Jul3108:57:45zd213login[1344]LOGIN_FAILED1from192.168.0.211FORJohnAuthenticationfailure。相应的GIDO为:

{Login

{Outcome

{ReturnCodeACTION_FAILED}

)

(When

(BeginTimeJul3108:57:43)

)

(Initiator

(IPV4Address192.168.0.211)

(UsernameJohn)

)

(Receiver

(Hostnamezd213)

))

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

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

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

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

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

4结束语

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

参考文献

[1]DorothyE.DenningAnIntrusion-DetectionModel[J].IEEETransactionsonsoftwareEngineering,1987,13(2):222-232

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

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

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

[5]KumarS,SpaffordEH,AnApplicationofPatterMatchinginIntrusionDetection[R],TechnicalReportCSD-7r-94-013,DepartmentofComputerScience,PurdueUniversity,1994。

[6]JstinDoak.IntrusionDetection:TheApplicationofaFeatureSelection-AComparisonofAlgorithmsandtheApplicationofWideAreaNetworkAnalyzer[R].DepartmentofComputerScience,Universityofcolifornia,Davis1992.

[7]DusanBulatovic,DusanVelasevi.AdistributedIntrusionDetectionSystem[J],JournalofcomputerSecurity.1999,1740:219-118

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

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

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