论文部分内容阅读
摘要:入侵检测系统是一种对网络进行动态监测,在发现入侵行为时发布预警的主动网络安全技术,该文首先介绍了通用入侵检测系统的组成架构,然后介绍了两种常用的入侵检测分析技术,最后设计并实现一个具有实际应用价值的入侵检测系统模型。
关键词:入侵检测系统;IDS
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)22-5318-03
The Design and Implementation of Intrusion Detection System Model
YANG Li-yang
(Motorola Mobility Nanjing Software Center, Najing 211102,China)
Abstract:As a proactive network security technology, Intrusion Detection System dynamically monitor network state and send out alert once find intrusion behavior. This paper first introduce common architecture of Intrusion Detection System, then introduce two major intrusion detection analysis technology, finally design and implement a full Intrusion Detection System mode which can be actually applied.
Key words: intrusion detection system; IDS
网络安全日益成为人们关注的焦点,而构建一个安全的网络系统却十分困难,首先,操作系统和网络系统软件越来越复杂,导致软件设计者无法预测程序实际运行中的全部状态,系统漏洞是难以完全避免的;其次,目前网络上的主要安全控制方法是身份认证和访问控制等,然而,木马程序可以轻易地窃取用户的身份认证信息,黑客可以利用系统漏洞提升权限而绕过访问控制,这些攻击都会使得精心构建的网路安全防御体系失效,所以一个完善的网络安全体系,仅仅防御是不够的,入侵检测系统(IDS)因此被提出。
作为一种主动的网络安全防护技术,入侵检测系统可以用来发现外部攻击和合法用户滥用特权,它智能地对数据进行采集,分析和预警,可以有效地发现可疑的入侵行为,并警示系统管理员及时发现和处理。
1入侵检测系统的组成架构
通用的入侵检测系统主要包括数据采集模块,入侵分析引擎和用户界面三大模块,有的系统可能还有安全知识库和数据存储等功能模块,从而可以提供更加完善的安全检测和数据分析功能。
1)数据采集模块:数据采集模块在入侵检测系统中处于基础地位,负责从网络和系统中采集可能包含入侵行为线索的数据,如IP包,系统日志和资源使用状态等。同时数据采集模块还会对采集来的数据进行过滤和预处理,然后将这些原始的审计数据发送到入侵分析引擎做进一步的分析处理。
2)入侵分析引擎:入侵分析引擎从数据采集模块接收数据,调用预先设定的算法对数据进行分析并确定是否发生了非法的入侵行为以及入侵行为的类别,如果有入侵行为,则生成一个预警信号并发送到用户界面模块,警示网络管理员,预警信号中包含采集的入侵行为证据和判断依据,这样可以允许网络管理员做进一步的判断,排除误警报。
3)用户界面模块:用户界面主要将入侵分析引擎检测到的入侵行为以可视化的方式通知网络管理员,帮助网络管理员对入侵行为作出主动或者被动的响应。
2入侵检测系统的分析技术
入侵分析引擎在整个入侵检测系统中居于核心位置,其决定了整个系统的智能化程度,目前入侵分析引擎中广泛应用的技术主要是误用检测与异常检测两种。
2.1误用检测
误用检测属于基于标志的检测,它将已知攻击方法的特征进行提取,然后定义生成入侵模式库,入侵检测系统通过监测网络中是否出现与库中所存储的入侵模式相匹配的行为来判断是否发生入侵行为。误用检测依据入侵行为的特征库来进行判断,所以准确度高,但缺点是有些具体的入侵行为很难抽象成入侵模式,而且其检测的范围也仅仅限于已有模式库中的入侵行为。
2.2异常检测
异常检测属于基于行为的检测,它不依赖于具体的入侵模式是否出现,而只是根据用户行为和资源使用状况是否正常来判断是否发生入侵。异常检测具有较强的通用性,甚至可以检测出从未出现过的攻击方法,其缺点是误检率比较高,因为对于一个用户众多的网络系统来说,用户行为和资源使用状况可能会频繁改变,难以界定什么范围属于正常状况,什么范围属于发生了入侵行为。
在实际的系统中,误用检测和异常检测具有互补性,所以可以将它们结合在一起使用,对不同的数据来源,采用不同的检测方法,如对系统日志可以使用异常检测,而对网络数据包则更适合使用误用检测。
3入侵检测系统模型的设计及实现
基于入侵检测系统的原理,我们设计并实现了一种可实际应用的入侵检测系统模型,图1描述了该模型依据功能划分的系统架构图。该入侵检测系统采集的数据信息来源于三个部分:系统日志,系统调用和网络数据。
图1入侵检测系统架构图
3.1数据信息采集
在我们的模型中,数据信息的获取和预处理都是由数据采集模块来完成的,根据数据源的不同,我们设计了三种不同的数据采集模块:网络数据采集模块,系统调用采集模块,系统日志监控模块。
1)网络数据采集模块使用抓包工具Tcpdump从网络中获取IP包,并对这些抓获的IP包按照协议层进行分析和记录,这样可以获得整个网络的IP通信数据。
2)系统调用采集模块里,我们通过修改Linux系统下的序列跟踪程序Strace,来收集特定进程的系统调用序列号。
3)系统日志监控模块里,我们通过对系统中的一些关键日志进行实时监控,来提取出可疑或越权的用户行为。
数据采集模块除了采集相关的数据以外,还要对采集来的数据进行预处理和特征属性提取后,然后再把它们保存到各自的数据库中。
3.2入侵分析引擎
由于该模型系统中每一个数据源分析处理的方式都不同,我们为每一个数据源设计了一个相应的数据分析引擎。
3.2.1网络数据分析引擎
网络数据分析的主要目的是监测是否发生探测攻击,拒绝服务攻击和分布式攻击。
探测攻击和拒绝服务攻击具有一个共同特征,那就是是在短时间内会发出大量数据连接请求包,所以我们通过模拟探测攻击和拒绝服务攻击,可以记录下攻击发生时的网络连接记录作为原始数据集,然后采用遗传算法对这些原始数据集进行训练,从而生成三类网络连接数据特征库:探测攻击数据特征库,拒绝服务攻击数据特征库,正常的数据特征库。这些特征库以后可以被用来与实际检测网路的特征进行匹配来判断是否发生攻击。
分布式攻击是针对整个网段的攻击,所以这里我们采用关联分析的数据挖掘Apriori算法来训练得出网段内各个主机之间的关联规则,然后在入侵监测阶段就可以利用这些关联规则来判断是否发生了分布式攻击。
3.2.2系统调用分析引擎
系统程序中由于有条件及循环语句,所以其实际的调用序列具有一定的随机性,但如果将系统调用序列划分成一定窗口大小的子序列后,随着子序列的增加,这些子序列的系统调用关系将逐步呈现出稳定性。当发生异常攻击时,这种稳定性将会被打破,所以在我们的系统中,通过对系统调用的子序列运用挖掘算法,就可以生成正常的子序列调用集合和不正常的子序列调用集合。在入侵监测过程中,如果发现系统调用子序列发生异常,并与不正常的子序列调用集合匹配,即可判断发生了可疑入侵行为。
3.2.3用户行为分析引擎
作为一个完整的入侵检测系统,除了要能够检测出来自外部的攻击行为,另外一个重要的任务就是检测出内部合法用户的越权行为,事实上,后者由于具有合法权限往往能够造成更严重的后果。本系统中,我们专门设计了一个用户行为分析引擎,用于对内部用户的行为进行监测分析,以发现可疑的用户行为。
用户行为分析引擎根据用户的权限和正常行为特征建立用户行为模式库,在实际监测中,通过分析系统日志来提取出用户当前的行为特征并与模式库进行匹配来发现可以行为。
建立模式库所选用的主要参数包括:失败登录次数,是否试图执行su及尝试次数,登录源IP地址是否来自外部,尝试访问系统敏感文件的次数,是否获得根Shell等。
3.3用户界面与入侵预警
用户界面与入侵预警模块在入侵分析引擎发现入侵行为后,通过可视化的用户界面及时向网络管理员发出预警。我们的系统中,对预警的级别进行了分类,如果入侵分析引擎肯定当前发生入侵行为则发出一级红色警报,如果发现可能的入侵行为,则发出二级黄色警报,如果仅仅发现一些轻度异常的状况,则将这些信息存入入侵检测系统日志,以备网络管理员日后查验。
一级和二级预警的通知方式为窗口报警,向管理员屏幕弹出告警对话框,该对话框除告知入侵检测系统的判断结论外,还列出与入侵相关的各种广泛性数据,帮助管理员主观性地对入侵行为进行分析判断,防止发生过高的误警率。
4结束语
该文中我们所设计和实现的入侵检测系统模型较完整地体现了入侵检测系统的主动防护功能,能有效地检测和预警探测攻击,拒绝服务攻击,分布式攻击,异常系统调用以及用户的越权行为等,但同时我们也看到,由于目前的网络安全体系尚存在许多的缺陷,导致入侵检测系统具有较高的误警率,识别入侵的方法缺乏智能化,入侵检测系统作为网络安全的一个方向还有很多技术需要完善。
参考文献:
[1] Mukherjee B, Heberlein T L, Levitt K N. Network intrusion detection[J]. IEEE network 1994,8(3):26-41.
[2] Anderson, Computer Security Threat and Surveillance, 1980.
[3] Denning D E. An Intrusion-detection model[J]. IEEE Transaction on Software Engneering , 1987,13(2):222-232.
[4] Theuns Verwoerd, Ray Hunt. Intrusion detection techniques and approaches[J]. Computer Communication ,2002(25):1356 -1365.
关键词:入侵检测系统;IDS
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)22-5318-03
The Design and Implementation of Intrusion Detection System Model
YANG Li-yang
(Motorola Mobility Nanjing Software Center, Najing 211102,China)
Abstract:As a proactive network security technology, Intrusion Detection System dynamically monitor network state and send out alert once find intrusion behavior. This paper first introduce common architecture of Intrusion Detection System, then introduce two major intrusion detection analysis technology, finally design and implement a full Intrusion Detection System mode which can be actually applied.
Key words: intrusion detection system; IDS
网络安全日益成为人们关注的焦点,而构建一个安全的网络系统却十分困难,首先,操作系统和网络系统软件越来越复杂,导致软件设计者无法预测程序实际运行中的全部状态,系统漏洞是难以完全避免的;其次,目前网络上的主要安全控制方法是身份认证和访问控制等,然而,木马程序可以轻易地窃取用户的身份认证信息,黑客可以利用系统漏洞提升权限而绕过访问控制,这些攻击都会使得精心构建的网路安全防御体系失效,所以一个完善的网络安全体系,仅仅防御是不够的,入侵检测系统(IDS)因此被提出。
作为一种主动的网络安全防护技术,入侵检测系统可以用来发现外部攻击和合法用户滥用特权,它智能地对数据进行采集,分析和预警,可以有效地发现可疑的入侵行为,并警示系统管理员及时发现和处理。
1入侵检测系统的组成架构
通用的入侵检测系统主要包括数据采集模块,入侵分析引擎和用户界面三大模块,有的系统可能还有安全知识库和数据存储等功能模块,从而可以提供更加完善的安全检测和数据分析功能。
1)数据采集模块:数据采集模块在入侵检测系统中处于基础地位,负责从网络和系统中采集可能包含入侵行为线索的数据,如IP包,系统日志和资源使用状态等。同时数据采集模块还会对采集来的数据进行过滤和预处理,然后将这些原始的审计数据发送到入侵分析引擎做进一步的分析处理。
2)入侵分析引擎:入侵分析引擎从数据采集模块接收数据,调用预先设定的算法对数据进行分析并确定是否发生了非法的入侵行为以及入侵行为的类别,如果有入侵行为,则生成一个预警信号并发送到用户界面模块,警示网络管理员,预警信号中包含采集的入侵行为证据和判断依据,这样可以允许网络管理员做进一步的判断,排除误警报。
3)用户界面模块:用户界面主要将入侵分析引擎检测到的入侵行为以可视化的方式通知网络管理员,帮助网络管理员对入侵行为作出主动或者被动的响应。
2入侵检测系统的分析技术
入侵分析引擎在整个入侵检测系统中居于核心位置,其决定了整个系统的智能化程度,目前入侵分析引擎中广泛应用的技术主要是误用检测与异常检测两种。
2.1误用检测
误用检测属于基于标志的检测,它将已知攻击方法的特征进行提取,然后定义生成入侵模式库,入侵检测系统通过监测网络中是否出现与库中所存储的入侵模式相匹配的行为来判断是否发生入侵行为。误用检测依据入侵行为的特征库来进行判断,所以准确度高,但缺点是有些具体的入侵行为很难抽象成入侵模式,而且其检测的范围也仅仅限于已有模式库中的入侵行为。
2.2异常检测
异常检测属于基于行为的检测,它不依赖于具体的入侵模式是否出现,而只是根据用户行为和资源使用状况是否正常来判断是否发生入侵。异常检测具有较强的通用性,甚至可以检测出从未出现过的攻击方法,其缺点是误检率比较高,因为对于一个用户众多的网络系统来说,用户行为和资源使用状况可能会频繁改变,难以界定什么范围属于正常状况,什么范围属于发生了入侵行为。
在实际的系统中,误用检测和异常检测具有互补性,所以可以将它们结合在一起使用,对不同的数据来源,采用不同的检测方法,如对系统日志可以使用异常检测,而对网络数据包则更适合使用误用检测。
3入侵检测系统模型的设计及实现
基于入侵检测系统的原理,我们设计并实现了一种可实际应用的入侵检测系统模型,图1描述了该模型依据功能划分的系统架构图。该入侵检测系统采集的数据信息来源于三个部分:系统日志,系统调用和网络数据。
图1入侵检测系统架构图
3.1数据信息采集
在我们的模型中,数据信息的获取和预处理都是由数据采集模块来完成的,根据数据源的不同,我们设计了三种不同的数据采集模块:网络数据采集模块,系统调用采集模块,系统日志监控模块。
1)网络数据采集模块使用抓包工具Tcpdump从网络中获取IP包,并对这些抓获的IP包按照协议层进行分析和记录,这样可以获得整个网络的IP通信数据。
2)系统调用采集模块里,我们通过修改Linux系统下的序列跟踪程序Strace,来收集特定进程的系统调用序列号。
3)系统日志监控模块里,我们通过对系统中的一些关键日志进行实时监控,来提取出可疑或越权的用户行为。
数据采集模块除了采集相关的数据以外,还要对采集来的数据进行预处理和特征属性提取后,然后再把它们保存到各自的数据库中。
3.2入侵分析引擎
由于该模型系统中每一个数据源分析处理的方式都不同,我们为每一个数据源设计了一个相应的数据分析引擎。
3.2.1网络数据分析引擎
网络数据分析的主要目的是监测是否发生探测攻击,拒绝服务攻击和分布式攻击。
探测攻击和拒绝服务攻击具有一个共同特征,那就是是在短时间内会发出大量数据连接请求包,所以我们通过模拟探测攻击和拒绝服务攻击,可以记录下攻击发生时的网络连接记录作为原始数据集,然后采用遗传算法对这些原始数据集进行训练,从而生成三类网络连接数据特征库:探测攻击数据特征库,拒绝服务攻击数据特征库,正常的数据特征库。这些特征库以后可以被用来与实际检测网路的特征进行匹配来判断是否发生攻击。
分布式攻击是针对整个网段的攻击,所以这里我们采用关联分析的数据挖掘Apriori算法来训练得出网段内各个主机之间的关联规则,然后在入侵监测阶段就可以利用这些关联规则来判断是否发生了分布式攻击。
3.2.2系统调用分析引擎
系统程序中由于有条件及循环语句,所以其实际的调用序列具有一定的随机性,但如果将系统调用序列划分成一定窗口大小的子序列后,随着子序列的增加,这些子序列的系统调用关系将逐步呈现出稳定性。当发生异常攻击时,这种稳定性将会被打破,所以在我们的系统中,通过对系统调用的子序列运用挖掘算法,就可以生成正常的子序列调用集合和不正常的子序列调用集合。在入侵监测过程中,如果发现系统调用子序列发生异常,并与不正常的子序列调用集合匹配,即可判断发生了可疑入侵行为。
3.2.3用户行为分析引擎
作为一个完整的入侵检测系统,除了要能够检测出来自外部的攻击行为,另外一个重要的任务就是检测出内部合法用户的越权行为,事实上,后者由于具有合法权限往往能够造成更严重的后果。本系统中,我们专门设计了一个用户行为分析引擎,用于对内部用户的行为进行监测分析,以发现可疑的用户行为。
用户行为分析引擎根据用户的权限和正常行为特征建立用户行为模式库,在实际监测中,通过分析系统日志来提取出用户当前的行为特征并与模式库进行匹配来发现可以行为。
建立模式库所选用的主要参数包括:失败登录次数,是否试图执行su及尝试次数,登录源IP地址是否来自外部,尝试访问系统敏感文件的次数,是否获得根Shell等。
3.3用户界面与入侵预警
用户界面与入侵预警模块在入侵分析引擎发现入侵行为后,通过可视化的用户界面及时向网络管理员发出预警。我们的系统中,对预警的级别进行了分类,如果入侵分析引擎肯定当前发生入侵行为则发出一级红色警报,如果发现可能的入侵行为,则发出二级黄色警报,如果仅仅发现一些轻度异常的状况,则将这些信息存入入侵检测系统日志,以备网络管理员日后查验。
一级和二级预警的通知方式为窗口报警,向管理员屏幕弹出告警对话框,该对话框除告知入侵检测系统的判断结论外,还列出与入侵相关的各种广泛性数据,帮助管理员主观性地对入侵行为进行分析判断,防止发生过高的误警率。
4结束语
该文中我们所设计和实现的入侵检测系统模型较完整地体现了入侵检测系统的主动防护功能,能有效地检测和预警探测攻击,拒绝服务攻击,分布式攻击,异常系统调用以及用户的越权行为等,但同时我们也看到,由于目前的网络安全体系尚存在许多的缺陷,导致入侵检测系统具有较高的误警率,识别入侵的方法缺乏智能化,入侵检测系统作为网络安全的一个方向还有很多技术需要完善。
参考文献:
[1] Mukherjee B, Heberlein T L, Levitt K N. Network intrusion detection[J]. IEEE network 1994,8(3):26-41.
[2] Anderson, Computer Security Threat and Surveillance, 1980.
[3] Denning D E. An Intrusion-detection model[J]. IEEE Transaction on Software Engneering , 1987,13(2):222-232.
[4] Theuns Verwoerd, Ray Hunt. Intrusion detection techniques and approaches[J]. Computer Communication ,2002(25):1356 -1365.