入侵检测浅析
信息安全公益宣传,信息安全知识启蒙。
加微信群回复公众号:微信群;QQ群:16004488
加微信群或QQ群可免费索取:学习教程
教程列表见微信公众号底部菜单
入侵检测(Intrusion Detection),顾名思义,就是对入侵行为的发觉。他通过对计算机网络或计算机系统中若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。
一、基本简介
入侵检测(Intrusion Detection)是对入侵行为的检测。它通过收集和分析网络行为、安全日志、审计数据、其它网络上可以获得的信息以及计算机系统中若干关键点的信息,检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。因此被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测。入侵检测通过执行以下任务来实现:监视、分析用户及系统活动;系统构造和弱点的审计;识别反映已知进攻的活动模式并向相关人士报警;异常行为模式的统计分析;评估重要系统和数据文件的完整性;操作系统的审计跟踪管理,并识别用户违反安全策略的行为。
入侵检测是防火墙的合理补充,帮助系统对付网络攻击,扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。
对一个成功的入侵检测系统来讲,它不但可使系统管理员时刻了解网络系统(包括程序、文件和硬件设备等)的任何变更,还能给网络安全策略的制订提供指南。更为重要的一点是,它应该管理、配置简单,从而使非专业人员非常容易地获得网络安全。而且,入侵检测的规模还应根据网络威胁、系统构造和安全需求的改变而改变。入侵检测系统在发现入侵后,会及时作出响应,包括切断网络连接、记录事件和报警等。
二、分类情况
入侵检测系统所采用的技术可分为特征检测与异常检测两种。
特征检测
特征检测(Signature-based detection) 又称Misuse detection ,这一检测假设入侵者活动可以用一种模式来表示,系统的目标是检测主体活动是否符合这些模式。它可以将已有的入侵方法检查出来,但对新的入侵方法无能为力。其难点在于如何设计模式既能够表达“入侵”现象又不会将正常的活动包含进来。
异常检测
异常检测(Anomaly detection) 的假设是入侵者活动异常于正常主体的活动。根据这一理念建立主体正常活动的“活动简档”,将当前主体的活动状况与“活动简档”相比较,当违反其统计规律时,认为该活动可能是“入侵”行为。异常检测的难题在于如何建立“活动简档”以及如何设计统计算法,从而不把正常的操作作为“入侵”或忽略真正的“入侵”行为。
三、入侵分类
基于主机
一般主要使用操作系统的审计、跟踪日志作为数据源,某些也会主动与主机系统进行交互以获得不存在于系统日志中的信息以检测入侵。这种类型的检测系统不需要额外的硬件.对网络流量不敏感,效率高,能准确定位入侵并及时进行反应,但是占用主机资源,依赖于主机的可靠性,所能检测的攻击类型受限。不能检测网络攻击。
基于网络
通过被动地监听网络上传输的原始流量,对获取的网络数据进行处理,从中提取有用的信息,再通过与已知攻击特征相匹配或与正常网络行为原型相比较来识别攻击事件。此类检测系统不依赖操作系统作为检测资源,可应用于不同的操作系统平台;配置简单,不需要任何特殊的审计和登录机制;可检测协议攻击、特定环境的攻击等多种攻击。但它只能监视经过本网段的活动,无法得到主机系统的实时状态,精确度较差。大部分入侵检测工具都是基于网络的入侵检测系统。
分布式
这种入侵检测系统一般为分布式结构,由多个部件组成,在关键主机上采用主机入侵检测,在网络关键节点上采用网络入侵检测,同时分析来自主机系统的审计日志和来自网络的数据流,判断被保护系统是否受到攻击。
四、工作步骤
对一个成功的入侵检测系统来讲,它不但可使系统管理员时刻了解网络系统(包括程序、文件和硬件设备等)的任何变更,还能给网络安全策略的制订提供指南。更为重要的一点是,它应该管理、配置简单,从而使非专业人员非常容易地获得网络安全。而且,入侵检测的规模还应根据网络威胁、系统构造和安全需求的改变而改变。入侵检测系统在发现入侵后,会及时作出响应,包括切断网络连接、记录事件和报警等。
五、常用术语
随着IDS(入侵检测系统)的超速发展,与之相关的术语同样急剧演变。本文向大家介绍一些IDS技术术语,其中一些是非常基本并相对通用的,而另一些则有些生僻。由于IDS的飞速发展以及一些IDS产商的市场影响力,不同的产商可能会用同一个术语表示不同的意义,从而导致某些术语的确切意义出现了混乱。对此,本文会试图将所有的术语都囊括进来。
Alerts(警报)
当一个入侵正在发生或者试图发生时,IDS系统将发布一个alert信息通知系统管理员。如果控制台与IDS系统同在一台机器,alert信息将显示在监视器上,也可能伴随着声音提示。如果是远程控制台,那么alert将通过IDS系统内置方法(通常是加密的)、SNMP(简单网络管理协议,通常不加密)、email、SMS(短信息)或者以上几种方法的混合方式传递给管理员。
Anomaly(异常)
当有某个事件与一个已知攻击的信号相匹配时,多数IDS都会告警。一个基于anomaly(异常)的IDS会构造一个当时活动的主机或网络的大致轮廓,当有一个在这个轮廓以外的事件发生时,IDS就会告警,例如有人做了以前他没有做过的事情的时候,例如,一个用户突然获取了管理员或根目录的权限。有些IDS厂商将此方法看做启发式功能,但一个启发式的IDS应该在其推理判断方面具有更多的智能。
Appliance(IDS硬件)
除了那些要安装到现有系统上去的IDS软件外,在市场的货架上还可以买到一些现成的IDS硬件,只需将它们接入网络中就可以应用。一些可用IDS硬件包括CaptIO、Cisco Secure IDS、OpenSnort、Dragon以及SecureNetPro。
ArachNIDS
ArachNIDS是由Max Visi开发的一个攻击特征数据库,它是动态更新的,适用于多种基于网络的入侵检测系统。
ARIS:Attack Registry & Intelligence Service(攻击事件注册及智能服务)
ARIS是SecurityFocus公司提供的一个附加服务,它允许用户以网络匿名方式连接到Internet上向SecurityFocus报送网络安全事件,随后SecurityFocus会将这些数据与许多其它参与者的数据结合起来,最终形成详细的网络安全统计分析及趋势预测,发布在网络上。它的URL地址是。
Attacks(攻击)
Attacks可以理解为试图渗透系统或绕过系统的安全策略,以获取信息、修改信息以及破坏目标网络或系统功能的行为。以下列出IDS能够检测出的最常见的Internet攻击类型:
攻击类型1-DOS(Denial Of Service attack,拒绝服务攻击):DOS攻击不是通过黑客手段破坏一个系统的安全,它只是使系统瘫痪,使系统拒绝向其用户提供服务。其种类包括缓冲区溢出、通过洪流(flooding)耗尽系统资源等等。
攻击类型2-DDOS(Distributed Denial of Service,分布式拒绝服务攻击):一个标准的DOS攻击使用大量来自一个主机的数据向一个远程主机发动攻击,却无法发出足够的信息包来达到理想的结果,因此就产生了DDOS,即从多个分散的主机一个目标发动攻击,耗尽远程系统的资源,或者使其连接失效。
攻击类型3-Smurf:这是一种老式的攻击,还时有发生,攻击者使用攻击目标的伪装源地址向一个smurf放大器广播地址执行ping操作,然后所有活动主机都会向该目标应答,从而中断网络连接。
攻击类型4-Trojans(特洛伊木马):Trojan这个术语来源于古代希腊人攻击特洛伊人使用的木马,木马中藏有希腊士兵,当木马运到城里,士兵就涌出木马向这个城市及其居民发起攻击。在计算机术语中,它原本是指那些以合法程序的形式出现,其实包藏了恶意软件的那些软件。这样,当用户运行合法程序时,在不知情的情况下,恶意软件就被安装了。但是由于多数以这种形式安装的恶意程序都是远程控制工具,Trojan这个术语很快就演变为专指这类工具,例如BackOrifice、SubSeven、NetBus等等。
Automated Response(自动响应)
除了对攻击发出警报,有些IDS还能自动抵御这些攻击。抵御方式有很多:首先,可以通过重新配置路由器和防火墙,拒绝那些来自同一地址的信息流;其次,通过在网络上发送reset包切断连接。但是这两种方式都有问题,攻击者可以反过来利用重新配置的设备,其方法是:通过伪装成一个友方的地址来发动攻击,然后IDS就会配置路由器和防火墙来拒绝这些地址,这样实际上就是对“自己人”拒绝服务了。发送reset包的方法要求有一个活动的网络接口,这样它将置于攻击之下,一个补救的办法是:使活动网络接口位于防火墙内,或者使用专门的发包程序,从而避开标准IP栈需求。
CERT(Computer Emergency Response Team,计算机应急响应小组)
这个术语是由第一支计算机应急反映小组选择的,这支团队建立在Carnegie Mellon大学,他们对计算机安全方面的事件做出反应、采取行动。许多组织都有了CERT,比如CNCERT/CC(中国计算机网络应急处理协调中心)。由于emergency这个词有些不够明确,因此许多组织都用Incident这个词来取代它,产生了新词Computer Incident Response Team(CIRT),即计算机事件反应团队。response这个词有时也用handling来代替,其含义是response表示紧急行动,而非长期的研究。
CIDF(Common Intrusion Detection Framework;通用入侵检测框架)
CIDF力图在某种程度上将入侵检测标准化,开发一些协议和应用程序接口,以使入侵检测的研究项目之间能够共享信息和资源,并且入侵检测组件也能够在其它系统中再利用。
CIRT(Computer Incident Response Team,计算机事件响应小组)
CIRT是从CERT演变而来的,CIRT代表了对安全事件在哲学认识上的改变。CERT最初是专门针对特定的计算机紧急情况的,而CIRT中的术语incident则表明并不是所有的incidents都一定是emergencies,而所有的emergencies都可以被看成是incidents。
CISL(Common Intrusion Specification Language,通用入侵规范语言)
CISL是CIDF组件间彼此通信的语言。由于CIDF就是对协议和接口标准化的尝试,因此CISL就是对入侵检测研究的语言进行标准化的尝试。
CVE(Common Vulnerabilities and Exposures,通用漏洞披露)
关于漏洞的一个老问题就是在设计扫描程序或应对策略时,不同的厂商对漏洞的称谓也会完全不同。还有,一些产商会对一个漏洞定义多种特征并应用到他们的IDS系统中,这样就给人一种错觉,好像他们的产品更加有效。MITRE创建了CVE,将漏洞名称进行标准化,参与的厂商也就顺理成章按照这个标准开发IDS产品。
Crafting Packets(自定义数据包)
建立自定义数据包,就可以避开一些惯用规定的数据包结构,从而制造数据包欺骗,或者使得收到它的计算机不知该如何处理它。
Desynchronization(同步失效)
Desynchronization这个术语本来是指用序列数逃避IDS的方法。有些IDS可能会对它本来期望得到的序列数感到迷惑,从而导致无法重新构建数据。这一技术在1998年很流行,已经过时了,有些文章把desynchronization这个术语代指其它IDS逃避方法。
Eleet
当黑客编写漏洞开发程序时,他们通常会留下一个签名,其中最声名狼藉的一个就是elite。如果将eleet转换成数字,它就是31337,而当它是指他们的能力时,elite=eleet,表示精英。31337通常被用做一个端口号或序列号。流行的词是“skillz”。
Enumeration(列举)
经过被动研究和社会工程学的工作后,攻击者就会开始对网络资源进行列举。列举是指攻击者主动探查一个网络以发现其中有什么以及哪些可以被他利用。由于行动不再是被动的,它就有可能被检测出来。当然为了避免被检测到,他们会尽可能地悄悄进行。
Evasion(躲避)
Evasion是指发动一次攻击,而又不被IDS成功地检测到。其中的窍门就是让IDS只看到一个方面,而实际攻击的却是另一个目标,所谓明修栈道,暗渡陈仓。Evasion的一种形式是为不同的信息包设置不同的TTL(有效时间)值,这样,经过IDS的信息看起来好像是无害的,而在无害信息位上的TTL比要到达目标主机所需要的TTL要短。一旦经过了IDS并接近目标,无害的部分就会被丢掉,只剩下有害的。
Exploits(漏洞利用)
对于每一个漏洞,都有利用此漏洞进行攻击的机制。为了攻击系统,攻击者编写出漏洞利用代码或脚本。
对每个漏洞都会存在利用这个漏洞执行攻击的方式,这个方式就是Exploit。为了攻击系统,黑客会利用漏洞编写出程序。
漏洞利用:Zero Day Exploit(零时间漏洞利用)
零时间漏洞利用是指还未被了解且仍在肆意横行的漏洞利用,也就是说这种类型的漏洞利用当前还没有被发现。一旦一个漏洞利用被网络安全界发现,很快就会出现针对它的补丁程序,并在IDS中写入其特征标识信息,使这个漏洞利用无效,有效地捕获它。
False Negatives(漏报)
漏报是指一个攻击事件未被IDS检测到或被分析人员认为是无害的。
False Positives(误报)
误报是指实际无害的事件却被IDS检测为攻击事件。
Firewalls(防火墙)
防火墙是网络安全的第一道关卡,虽然它不是IDS,但是防火墙日志可以为IDS提供宝贵信息。防火墙工作的原理是根据规则或标准,如源地址、端口等,将危险连接阻挡在外。
FIRST(Forum of Incident Response and Security Teams,事件响应和安全团队论坛)
FIRST是由国际性政府和私人组织联合起来交换信息并协调响应行动的联盟,一年一度的FIRST受到高度的重视。
Fragmentation(分片)
如果一个信息包太大而无法装载,它就不得不被分成片断。分片的依据是网络的MTU(Maximum Transmission Units,最大传输单元)。例如,灵牌环网(token ring)的MTU是4464,以太网(Ethernet)的MTU是1500,因此,如果一个信息包要从灵牌环网传输到以太网,它就要被分裂成一些小的片断,然后再在目的地重建。虽然这样处理会造成效率降低,但是分片的效果还是很好的。黑客将分片视为躲避IDS的方法,另外还有一些DOS攻击也使用分片技术。
Heuristics(启发)
Heuristics就是指在入侵检测中使用AI(artificial intelligence,人工智能)思想。真正使用启发理论的IDS已经出现大约10年了,但他们还不够“聪明”,攻击者可以通过训练它而使它忽视那些恶意的信息流。有些IDS使用异常模式去检测入侵,这样的IDS必须要不断地学习什么是正常事件。一些产商认为这已经是相当“聪明”的IDS了,所以就将它们看做是启发式IDS。但实际上,真正应用AI技术对输入数据进行分析的IDS还很少很少。
Honeynet Project(Honeynet工程)
Honeynet是一种学习工具,是一个包含安全缺陷的网络系统。当它受到安全威胁时,入侵信息就会被捕获并接受分析,这样就可以了解黑客的一些情况。Honeynet是一个由30余名安全专业组织成员组成、专门致力于了解黑客团体使用的工具、策略和动机以及共享他们所掌握的知识的项目。他们已经建立了一系列的honeypots,提供了看似易受攻击的Honeynet网络,观察入侵到这些系统中的黑客,研究黑客的战术、动机及行为。
Honeypot(蜜罐)
蜜罐是一个包含漏洞的系统,它模拟一个或多个易受攻击的主机,给黑客提供一个容易攻击的目标。由于蜜罐没有其它任务需要完成,因此所有连接的尝试都应被视为是可疑的。蜜罐的另一个用途是拖延攻击者对其真正目标的攻击,让攻击者在蜜罐上浪费时间。与此同时,最初的攻击目标受到了保护,真正有价值的内容将不受侵犯。
蜜罐最初的目的之一是为起诉恶意黑客搜集证据,这看起来有“诱捕”的感觉。但是在一些国家中,是不能利用蜜罐收集证据起诉黑客的。
IDS Categories(IDS分类)
有许多不同类型的IDS,以下分别列出:
IDS分类1-Application IDS(应用程序IDS):应用程序IDS为一些特殊的应用程序发现入侵信号,这些应用程序通常是指那些比较易受攻击的应用程序,如Web服务器、数据库等。有许多原本着眼于操作系统的基于主机的IDS,虽然在默认状态下并不针对应用程序,但也可以经过训练,应用于应用程序。例如,KSE(一个基于主机的IDS)可以告诉我们在事件日志中正在进行的一切,包括事件日志报告中有关应用程序的输出内容。应用程序IDS的一个例子是Entercept的Web Server Edition。
IDS分类2-Consoles IDS(控制台IDS):为了使IDS适用于协同环境,分布式IDS代理需要向中心控制台报告信息。许多中心控制台还可以接收其它来源的数据,如其它产商的IDS、防火墙、路由器等。将这些信息综合在一起就可以呈现出一幅更完整的攻击图景。有些控制台还将它们自己的攻击特征添加到代理级别的控制台,并提供远程管理功能。这种IDS产品有Intellitactics Network Security Monitor和Open Esecurity Platform。
IDS分类3-File Integrity Checkers(文件完整性检查器):当一个系统受到攻击者的威胁时,它经常会改变某些关键文件来提供持续的访问和预防检测。通过为关键文件附加信息摘要(加密的杂乱信号),就可以定时地检查文件,查看它们是否被改变,这样就在某种程度上提供了保证。一旦检测到了这样一个变化,完整性检查器就会发出一个警报。而且,当一个系统已经受到攻击后,系统管理员也可以使用同样的方法来确定系统受到危害的程度。以前的文件检查器在事件发生好久之后才能将入侵检测出来,是“事后诸葛亮”,出现的许多产品能在文件被访问的同时就进行检查,可以看做是实时IDS产品了。该类产品有Tripwire和Intact。
IDS分类4-Honeypots(蜜罐):关于蜜罐,前面已经介绍过。蜜罐的例子包括Mantrap和Sting。
IDS分类5-Host-based IDS(基于主机的IDS):这类IDS对多种来源的系统和事件日志进行监控,发现可疑活动。基于主机的IDS也叫做主机IDS,最适合于检测那些可以信赖的内部人员的误用以及已经避开了传统的检测方法而渗透到网络中的活动。除了完成类似事件日志阅读器的功能,主机IDS还对“事件/日志/时间”进行签名分析。许多产品中还包含了启发式功能。因为主机IDS几乎是实时工作的,系统的错误就可以很快地检测出来,技术人员和安全人士都非常喜欢它。基于主机的IDS就是指基于服务器/工作站主机的所有类型的入侵检测系统。该类产品包括Kane Secure Enterprise和Dragon Squire。
IDS分类6-Hybrid IDS(混合IDS):现代交换网络的结构给入侵检测操作带来了一些问题。首先,默认状态下的交换网络不允许网卡以混杂模式工作,这使传统网络IDS的安装非常困难。其次,很高的网络速度意味着很多信息包都会被NIDS所丢弃。Hybrid IDS(混合IDS)正是解决这些问题的一个方案,它将IDS提升了一个层次,组合了网络节点IDS和Host IDS(主机IDS)。虽然这种解决方案覆盖面极大,但同时要考虑到由此引起的巨大数据量和费用。许多网络只为非常关键的服务器保留混合IDS。有些产商把完成一种以上任务的IDS都叫做Hybrid IDS,实际上这只是为了广告的效应。混合IDS产品有CentraxICE和RealSecure Server Sensor。
IDS分类7-Network IDS(NIDS,网络IDS):NIDS对所有流经监测代理的网络通信量进行监控,对可疑的异常活动和包含攻击特征的活动作出反应。NIDS原本就是带有IDS过滤器的混合信息包嗅探器,但是它们变得更加智能化,可以破译协议并维护状态。NIDS存在基于应用程序的产品,只需要安装到主机上就可应用。NIDS对每个信息包进行攻击特征的分析,但是在网络高负载下,还是要丢弃些信息包。网络IDS的产品有SecureNetPro和Snort。
IDS分类8-Network Node IDS(NNIDS,网络节点IDS):有些网络IDS在高速下是不可靠的,装载之后它们会丢弃很高比例的网络信息包,而且交换网络经常会妨碍网络IDS看到混合传送的信息包。NNIDS将NIDS的功能委托给单独的主机,从而缓解了高速和交换的问题。虽然NNIDS与个人防火墙功能相似,但它们之间还有区别。对于被归类为NNIDS的个人防火墙,应该对企图的连接做分析。例如,不像在许多个人防火墙上发现的“试图连接到端口xxx”,一个NNIDS会对任何的探测都做特征分析。另外,NNIDS还会将主机接收到的事件发送到一个中心控制台。NNIDS产品有BlackICE Agent和Tiny CMDS。
IDS分类9-Personal Firewall(个人防火墙):个人防火墙安装在单独的系统中,防止不受欢迎的连接,无论是进来的还是出去的,从而保护主机系统。注意不要将它与NNIDS混淆。个人防火墙有ZoneAlarm和Sybergen。
IDS分类10-Target-Based IDS(基于目标的IDS):这是不明确的IDS术语中的一个,对不同的人有不同的意义。可能的一个定义是文件完整性检查器,而另一个定义则是网络IDS,后者所寻找的只是对那些由于易受攻击而受到保护的网络所进行的攻击特征。后面这个定义的目的是为了提高IDS的速度,因为它不搜寻那些不必要的攻击。
IDWG(Intrusion Detection Working Group,入侵检测工作组)
入侵检测工作组的目标是定义数据格式和交换信息的程序步骤,这些信息是对于入侵检测系统、响应系统以及那些需要与它们交互作用的管理系统都有重要的意义。入侵检测工作组与其它IETF组织协同工作。
Incident Handling(事件处理)
检测到一个入侵只是开始。更普遍的情况是,控制台操作员会不断地收到警报,由于根本无法分出时间来亲自追踪每个潜在事件,操作员会在感兴趣的事件上做出标志以备将来由事件处理团队来调查研究。在最初的反应之后,就需要对事件进行处理,也就是诸如调查、辩论和起诉之类的事宜。
Incident Response(事件响应)
对检测出的潜在事件的最初反应,随后对这些事件要根据事件处理的程序进行处理。
Islanding(孤岛)
孤岛就是把网络从Internet上完全切断,这几乎是最后一招了,没有办法的办法。一个组织只有在大规模的病毒爆发或受到非常明显的安全攻击时才使用这一手段。
Promiscuous(混杂模式)
默认状态下,IDS网络接口只能看到进出主机的信息,也就是所谓的non-promiscuous(非混杂模式)。如果网络接口是混杂模式,就可以看到网段中所有的网络通信量,不管其来源或目的地。这对于网络IDS是必要的,但同时可能被信息包嗅探器所利用来监控网络通信量。交换型HUB可以解决这个问题,在能看到全面通信量的地方,会都许多跨越(span)端口。
Routers(路由器)
路由器是用来连接不同子网的中枢,它们工作于OSI 7层模型的传输层和网络层。路由器的基本功能就是将网络信息包传输到它们的目的地。一些路由器还有访问控制列表(ACLs),允许将不想要的信息包过滤出去。许多路由器都可以将它们的日志信息注入到IDS系统中,提供有关被阻挡的访问网络企图的宝贵信息。
Scanners(扫描器)
扫描器是自动化的工具,它扫描网络和主机的漏洞。同入侵检测系统一样,它们也分为很多种,以下分别描述。
扫描器种类1-NetworkScanners(网络扫描器):网络扫描器在网络上搜索以找到网络上所有的主机。传统上它们使用的是ICMP ping技术,但是这种方法很容易被检测出来。为了变得隐蔽,出现了一些新技术,例如ack扫描和fin扫描。使用这些更为隐蔽扫描器的另一个好处是:不同的操作系统对这些扫描会有不同的反应,从而为攻击者提供了更多有价值的信息。这种工具的一个例子是nmap。
扫描器种类2-Network Vulnerability Scanners(网络漏洞扫描器):网络漏洞扫描器将网络扫描器向前发展了一步,它能检测目标主机,并突出一切可以为黑客利用的漏洞。网络漏洞扫描器可以为攻击者和安全专家使用,但会经常让IDS系统“紧张”。该类产品有Retina和CyberCop。
扫描器种类3-Host VulnerabilityScanners(主机漏洞扫描器):这类工具就像个有特权的用户,从内部扫描主机,检测口令强度、安全策略以及文件许可等内容。网络IDS,特别是主机IDS可以将它检测出来。该类产品有SecurityExpressions,它是一个远程Windows漏洞扫描器,并且能自动修复漏洞。还有如ISS数据库扫描器,会扫描数据库中的漏洞。
Script Kiddies(脚本小子)
有些受到大肆宣扬的Internet安全破坏,如2000年2月份对Yahoo的拒绝服务攻击,是一些十来岁的中学生干的,他们干这些坏事的目的好象是为了扬名。安全专家通常把这些人称为脚本小子(Script Kiddies)。脚本小子通常都是一些自发的、不太熟练的cracker,他们使用从Internet 上下载的信息、软件或脚本对目标站点进行破坏。黑客组织或法律实施权威机构都对这些脚本小孩表示轻蔑,因为他们通常都技术不熟练,手上有大把时间可以来搞破坏,他们的目的一般是为了给他们的朋友留下印象。脚本小子就像是拿着抢的小孩,他们不需要懂得弹道理论,也不必能够制造枪支,就能成为强大的敌人。因此,无论何时都不能低估他们的实力。
Shunning(躲避)
躲避是指配置边界设备以拒绝所有不受欢迎的信息包,有些躲避甚至会拒绝来自某些国家所有IP地址的信息包。
Signatures(特征)
IDS的核心是攻击特征,它使IDS在事件发生时触发。特征信息过短会经常触发IDS,导致误报或错报,过长则会减慢IDS的工作速度。有人将IDS所支持的特征数视为IDS好坏的标准,但是有的产商用一个特征涵盖许多攻击,而有些产商则会将这些特征单独列出,这就会给人一种印象,好像它包含了更多的特征,是更好的IDS。大家一定要清楚这些。
Stealth(隐藏)
隐藏是指IDS在检测攻击时不为外界所见,它们经常在DMZ以外使用,没有被防火墙保护。它有些缺点,如自动响应。
六、信息收集
入侵检测的第一步是信息收集,内容包括系统、网络、数据及用户活动的状态和行为。而且,需要在计算机网络系统中的若干不同关键点(不同网段和不同主机)收集信息,这除了尽可能扩大检测范围的因素外,还有一个重要的因素就是从一个源来的信息有可能看不出疑点,但从几个源来的信息的不一致性却是可疑行为或入侵的最好标识。
当然,入侵检测很大程度上依赖于收集信息的可靠性和正确性,因此,很有必要只利用所知道的真正的和精确的软件来报告这些信息。因为黑客经常替换软件以搞混和移走这些信息,例如替换被程序调用的子程序、库和其它工具。黑客对系统的修改可能使系统功能失常并看起来跟正常的一样,而实际上不是。例如,unix系统的PS指令可以被替换为一个不显示侵入过程的指令,或者是编辑器被替换成一个读取不同于指定文件的文件(黑客隐藏了初试文件并用另一版本代替)。这需要保证用来检测网络系统的软件的完整性,特别是入侵检测系统软件本身应具有相当强的坚固性,防止被篡改而收集到错误的信息。
入侵检测利用的信息一般来自以下四个方面:
系统和网络日志文件
黑客经常在系统日志文件中留下他们的踪迹,因此,充分利用系统和网络日志文件信息是检测入侵的必要条件。日志中包含发生在系统和网络上的不寻常和不期望活动的证据,这些证据可以指出有人正在入侵或已成功入侵了系统。通过查看日志文件,能够发现成功的入侵或入侵企图,并很快地启动相应的应急响应程序。日志文件中记录了各种行为类型,每种类型又包含不同的信息,例如记录“用户活动”类型的日志,就包含登录、用户ID改变、用户对文件的访问、授权和认证信息等内容。很显然地,对用户活动来讲,不正常的或不期望的行为就是重复登录失败、登录到不期望的位置以及非授权的企图访问重要文件等等。
目录和文件中的不期望的改变
网络环境中的文件系统包含很多软件和数据文件,包含重要信息的文件和私有数据文件经常是黑客修改或破坏的目标。目录和文件中的不期望的改变(包括修改、创建和删除),特别是那些正常情况下限制访问的,很可能就是一种入侵产生的指示和信号。黑客经常替换、修改和破坏他们获得访问权的系统上的文件,同时为了隐藏系统中他们的表现及活动痕迹,都会尽力去替换系统程序或修改系统日志文件。
程序执行中的不期望行为
网络系统上的程序执行一般包括操作系统、网络服务、用户起动的程序和特定目的的应用,例如数据库服务器。每个在系统上执行的程序由一到多个进程来实现。每个进程执行在具有不同权限的环境中,这种环境控制着进程可访问的系统资源、程序和数据文件等。一个进程的执行行为由它运行时执行的操作来表现,操作执行的方式不同,它利用的系统资源也就不同。操作包括计算、文件传输、设备和其它进程,以及与网络间其它进程的通讯。
一个进程出现了不期望的行为可能表明黑客正在入侵你的系统。黑客可能会将程序或服务的运行分解,从而导致它失败,或者是以非用户或管理员意图的方式操作。
物理形式的入侵信息
这包括两个方面的内容,一是未授权的对网络硬件连接;二是对物理资源的未授权访问。黑客会想方设法去突破网络的周边防卫,如果他们能够在物理上访问内部网,就能安装他们自己的设备和软件。依此,黑客就可以知道网上的由用户加上去的不安全(未授权)设备,然后利用这些设备访问网络。例如,用户在家里可能安装Modem以访问远程办公室,与此同时黑客正在利用自动工具来识别在公共电话线上的Modem,如果一拨号访问流量经过??网络安全的后门。黑客就会利用这个后门来访问内部网,从而越过了内部网络原有的防护措施,然后捕获网络流量,进而攻击其它系统,并偷取敏感的私有信息等等。
七、信号分析
对上述四类收集到的有关系统、网络、数据及用户活动的状态和行为等信息,一般通过三种技术手段进行分析:模式匹配,统计分析和完整性分析。其中前两种方法用于实时的入侵检测,而完整性分析则用于事后分析。
模式匹配
模式匹配就是将收集到的信息与已知的网络入侵和系统误用模式数据库进行比较,从而发现违背安全策略的行为。该过程可以很简单(如通过字符串匹配以寻找一个简单的条目或指令),也可以很复杂(如利用正规的数学表达式来表示安全状态的变化)。一般来讲,一种进攻模式可以用一个过程(如执行一条指令)或一个输出(如获得权限)来表示。该方法的一大优点是只需收集相关的数据集合,显著减少系统负担,且技术已相当成熟。它与病毒防火墙采用的方法一样,检测准确率和效率都相当高。但是,该方法存在的弱点是需要不断的升级以对付不断出现的黑客攻击手法,不能检测到从未出现过的黑客攻击手段。
统计分析
统计分析方法首先给系统对象(如用户、文件、目录和设备等)创建一个统计描述,统计正常使用时的一些测量属性(如访问次数、操作失败次数和延时等)。测量属性的平均值将被用来与网络、系统的行为进行比较,任何观察值在正常值范围之外时,就认为有入侵发生。例如,统计分析可能标识一个不正常行为,因为它发现一个在晚八点至早六点不登录的帐户却在凌晨两点试图登录。其优点是可检测到未知的入侵和更为复杂的入侵,缺点是误报、漏报率高,且不适应用户正常行为的突然改变。具体的统计分析方法如基于专家系统的、基于模型推理的和基于神经网络的分析方法,正处于研究热点和迅速发展之中。
完整性分析
完整性分析主要关注某个文件或对象是否被更改,这经常包括文件和目录的内容及属性,它在发现被更改的、被特络伊化的应用程序方面特别有效。完整性分析利用强有力的加密机制,称为消息摘要函数(例如MD5),它能识别哪怕是微小的变化。其优点是不管模式匹配方法和统计分析方法能否发现入侵,只要是成功的攻击导致了文件或其它对象的任何改变,它都能够发现。缺点是一般以批处理方式实现,不用于实时响应。尽管如此,完整性检测方法还应该是网络安全产品的必要手段之一。例如,可以在每一天的某个特定时间内开启完整性分析模块,对网络系统进行全面地扫描检查。
入侵检测系统的典型代表是ISS公司(国际互联网安全系统公司)的RealSecure。它是计算机网络上自动实时的入侵检测和响应系统。它无妨碍地监控网络传输并自动检测和响应可疑的行为,在系统受到危害之前截取和响应安全漏洞和内部误用,从而最大程度地为企业网络提供安全。
八、检测功能
监督并分析用户和系统的活动
检查系统配置和漏洞
检查关键系统和数据文件的完整性
识别代表已知攻击的活动模式
对反常行为模式的统计分析
对操作系统的校验管理,判断是否有破坏安全的用户活动。
入侵检测系统和漏洞评估工具的优点在于:
提高了信息安全体系其它部分的完整性
提高了系统的监察能力
跟踪用户从进入到退出的所有活动或影响
识别并报告数据文件的改动
发现系统配置的错误,必要时予以更正
识别特定类型的攻击,并向相应人员报警,以作出防御反应
可使系统管理人员最新的版本升级添加到程序中
允许非专家人员从事系统安全工作
为信息安全策略的创建提供指导
必须修正对入侵检测系统和漏洞评估工具不切实际的期望:这些产品并不是无所不能的,它们无法弥补力量薄弱的识别和确认机制
在无人干预的情况下,无法执行对攻击的检查
无法感知公司安全策略的内容·不能弥补网络协议的漏洞
不能弥补由于系统提供信息的质量或完整性的问题
它们不能分析网络繁忙时所有事务
它们不能总是对数据包级的攻击进行处理
它们不能应付现代网络的硬件及特性
入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。从网络安全立体纵深、多层次防御的角度出发,入侵检测理应受到人们的高度重视,这从国外入侵检测产品市场的蓬勃发展就可以看出。在国内,随着上网的关键部门、关键业务越来越多,迫切需要具有自主版权的入侵检测产品。但现状是入侵检测仅仅停留在研究和实验样品(缺乏升级和服务)阶段,或者是防火墙中集成较为初级的入侵检测模块。可见,入侵检测产品仍具有较大的发展空间,从技术途径来讲,我们认为,除了完善常规的、传统的技术(模式识别和完整性检测)外,应重点加强统计分析的相关技术研究。
九、发展历程
从实验室原型研究到推出商业化产品、走向市场并获得广泛认同,入侵检测走过了20多年的历程。
概念提出
1980年4月,JnamesP.Aderson为美国空军做了一份题为“Computer Security ThreatMonitoring and Surveillance”(计算机安全威胁监控与监视)的技术报告,第一次详细的阐述了入侵检测的概念。他提出了一种对计算机系统风险和威胁的分类方法,并将威胁分为了外部渗透、内部渗透和不法行为三种,还提出了利用审计跟踪数据监视入侵活动的思想。这份报告被公认为是入侵检测的开山之作。
模型的发展
1984年-1986年,乔治敦大学的Dorothy Denning和SRI/CSL(SRI公司计算机科学实验室)的PeterNeumann研究出了一种实时入侵检测系统模型,取名为IDES(入侵检测专家系统)。该模型独立于特定的系统平台、应用环境、系统弱点以及入侵类型,为构建入侵系统提供了一个通用的框架。
1988年,SRI/CSL的Teresa Lunt等改进了Denning的入侵检测模型,并研发出了实际的IDES。
1990年时入侵检测系统发展史上十分重要的一年。这一年,加州大学戴维斯分校的L.T.Heberlein等开发出了NSM(Network Security Monitor)。该系统第一次直接将网络作为审计数据的来源,因而可以在不将审计数计转化成统一的格式情况下监控异种主机。同时两大阵营正式形成:基于网络的IDS和基于主机的IDS。
1988年的莫里斯蠕虫事件发生后,网络安全才真正引起各方重视。美国空军、国家安全局和能源部共同资助空军密码支持中心、劳伦斯利弗摩尔国家实验室、加州大学戴维斯分校、Haystack实验室,开展对分布式入侵检测系统(DIDS)的研究,将基于主机和基于网络的检测方法集成到一起。
技术的进步
从20世纪90年代到现在,入侵检测系统的研发呈现出百家争鸣的繁荣局面,并在智能化和分布式两个方向取得了长足的进展。SRI/CSL、普渡大学、加州戴维斯分校、洛斯阿拉莫斯国家实验室、哥伦比亚大学、新墨西哥大学等机构在这些方面代表了当前的最高水平。我国也有多家企业通过最初的技术引进,逐渐发展成自主研发。