微信号:Computer-network

介绍:信息安全公益宣传,信息安全知识启蒙. (网络安全、系统安全、数据安全)

入侵检测(IDS)的原理、检测及防范

2018-10-06 22:21 计算机与网络安全

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

微信群回复公众号:微信群QQ群16004488


微信公众号:计算机与网络安全

ID:Computer-network

一、原理及功能


入侵检测技术(IDS)是一种主动保护自己免受攻击的一种网络安全技术。作为防火墙的合理补充,入侵检测技术能够帮助系统对付网络攻击,扩展了系统管理员的安全管理能力(包括安全审计、监视、攻击识别和响应),提高了网络安全基础结构的完整性。入侵检测系统在防火墙之后对网络活动进行实时检测。许多情况下,由于可以记录和禁止网络活动,所以入侵检测系统是防火墙的延续。它们可以和防火墙与路由器配合工作。


IDS扫描当前网络的活动,监视和记录网络的流量,根据定义好的规则来过滤从主机网卡到网线上的流量,提供实时报警。网络扫描器检测主机上先前设置的漏洞,而 IDS 监视和记录网络流量。如果在同一台主机上运行IDS和扫描器的话,配置合理的IDS会发出许多报警。


一般来说,入侵检测系统可分为主机型(HIDS)和网络型(NIDS)。


主机型入侵检测系统往往以系统日志、应用程序日志等作为数据源,当然也可以通过其他手段(如监督系统调用)从所在的主机收集信息进行分析。主机型入侵检测系统保护的一般是所在的系统。


网络型入侵检测系统的数据源则是网络上的数据分组。往往将一台机子的网卡设于混杂模式(Promisc Mode),监听所有本网段内的数据分组并进行判断。一般网络型入侵检测系统担负着保护整个网段的任务。


具体说来,入侵检测系统的主要有以下功能。


(1)监测并分析用户和系统的活动。

(2)核查系统配置和漏洞。

(3)评估系统关键资源和数据文件的完整性。

(4)识别已知的攻击行为。

(5)统计分析异常行为。

(6)操作系统日志管理,并识别违反安全策略的用户活动。


二、IDS的弱点和局限


1、针对IDS的网络局限


(1)网络拓扑局限


对于一个较复杂的网络而言,通过精心地发包,可以导致NIDS与受保护的主机收到的包的内容或者顺序不一样,从而绕过NIDS的监测。


(2)其他路由


由于一些非技术的因素,可能存在其他路由可以绕过NIDS到达受保护主机(例如某个被忽略的Modem,但Modem旁没有安装NIDS)。如果IP源路由选项允许的话,可以通过精心设计IP路由绕过NIDS。


(3)TTL


如果数据分组到达 NIDS 与受保护的主机的 HOP 数不一样,则可以通过精心设置 TTL值来使某个数据分组只能被NIDS或者只能被受保护的主机收到,从而使NIDS的Sensor与受保护主机收到的数据分组不一样,从而绕过NIDS的监测。


(4)MTU


如果NIDS的MTU与受保护主机的MTU不一致的话(由于受保护的主机各种各样,其MTU设置也不一样),则可以精心设置MTU处于两者之间,并设置此包不可分片,使NIDS的Sensor与受保护主机收到的数据分组不一样,从而绕过NIDS的检测。


(5)TOS


有些网络设备会处理TOS选项,如果NIDS与受保护主机各自连接的网络设备处理不一样的话,通过精心设置TOS选项,将会导致NDIS的Sensor与受保护主机收到的数据分组的顺序不一样,于是有可能导致NIDS重组后的数据分组与被保护主机的数据分组不一致,从而绕过NIDS的监测(尤其在UDP包中)。

2、针对IDS的检测方法局限


NIDS 常用的检测方法有特征检测、异常检测、状态检测、协议分析等。实际中的商用入侵检测系统大都同时采用几种检测方法。


NIDS不能处理加密后的数据,如果数据在传输中被加密,即使只是简单的替换,NIDS也难以处理,如采用SSH、HTTPS、带密码的压缩文件等手段,都可以有效地防止NIDS的检测。


NIDS难以检测重放攻击、中间人攻击、对网络监听也无能为力。


目前的NIDS还难以有效地检测DDoS攻击。


(1)系统实现局限


由于受NIDS保护的主机及其运行的程序各种各样,甚至对同一个协议的实现也不尽相同,入侵者可能利用不同系统的不同实现的差异来进行系统信息收集(如Nmap通过TCP/IP指纹来进行对操作系统的识别)或者进行选择攻击,由于NIDS不大可能通晓这些系统的不同实现,故而可能被入侵者绕过。


(2)异常检测的局限


异常检测通常采用统计方法来进行检测。


统计方法中的阈值难以有效确定,太小的值会产生大量的误报,太大的值会产生大量的漏报,例如系统中配置为200个/秒半开TCP连接为SYN_Flooding,则入侵者每秒建立199个半开连接将不会被视为攻击。


异常检测常用于对端口扫描和 DDoS 攻击的检测。NIDS 存在一个流量日志的上限,如果扫描间隔超过这个上限,NIDS将忽略掉这个扫描。尽管NIDS可以将这个上限配置得很长,但此配置越长,对系统资源要求越多,受到针对NIDS的DDoS攻击的可能性就越大。


(3)特征检测的局限


特征检测主要针对网络上公布的黑客工具或者方法,但对于很多以源代码发布的黑客工具而言,很多入侵者可以对源代码进行简单的修改(如黑客经常修改特洛伊木马的代码),产生攻击方法的变体,就可以绕过NIDS的检测。


3、针对应用协议局限


对于应用层的协议,一般的NIDS只简单地处理了常用的如HTTP、FTP、SMTP等,尚有大量的协议没有处理,也不大可能全部处理,直接针对一些特殊协议或者用户自定义协议的攻击,都能很好地绕过NIDS的检查。


4、入侵变体


HTTP攻击变体


重复的目录分割符,‘/’变为‘//’。

当前目录,‘/cgi-bin/phf’变为‘/cgi-bin/./phf’。

上级目录,‘/cgi-bin/phf’变为‘/cgi-bin/xxx/../phf’ 。

URL编码,‘/cgi-bin/’变为‘%2fcgi-bin/’。

使用TAB等其他分割符代替空格。

NULL方法,‘GET %00/cgi-bin/phf’。

使用GET外的其他方法,例如POST。

改变参数顺序,添加无用参数。


对于IIS,还有以下方法:


DOS/Win下目录分割符,‘/winnt/system32/cmd.exe’变为‘/winnt\system32\cmd.exe’。

大小写转换,如cmd.exe变为CMD.EXE。

IS二次解码,如cmd.exe变为%2563md.exe,%25解码后为‘%’,再解码%63为‘c’。

UNICODE编码,如cmd.exe变为%c0%63md.exe。由于UNICODE编码比较复杂,目前只有极少数的NIDS能够对其进行解码。


Telnet攻击变体


使用退格键。

使用Tab键进行命令补齐。

采用Shell来执行攻击代码。

采用宏。

添加无用参数。

事实上NIDS很难检测那些通过Telnet连接到服务器后进行的本地攻击。


5、针对TCP/IP协议局限


由于TCP/IP设计当初并没有很好地考虑安全性,故现在的IPV4的安全性令人堪忧,除了上面的由于网络结构引起的问题外,还有下面的一些局限。


(1)IP分片


将数据分组分片,有些NIDS不能对IP分片进行重组,或者超过了其处理能力,则可以绕过NIDS。


NIDS有3个参数,超时时间(如15 s)、能进行重组的最大的IP数据报的长度(如64 K)、能同时重组的IP数据分片数目(如8 192)。


如果NIDS接收到的数据分组超过上述的极限,NIDS不得不分组丢失,从而发生DDoS攻击。


(2)IP重叠分片


在重组IP包分片的时候,如果碰到重叠分片的话,各个操作系统的处理方法是不一样的,如果NIDS的处理方式与受保护主机不一样,则将导致NIDS重组后的数据分组与被保护主机的数据分组不一致,从而绕过NIDS的检测。


(3)TCP分段


如果NIDS不能进行TCP流重组,则可以通过TCP分段来绕过NIDS。一些异常的TCP分段将迷惑一些NIDS。


(4)TCP un-sync


在TCP中发送错误的序列号、发送重复的序列号、颠倒发送顺序等,有可能绕过NIDS。


(5)OOB


攻击者发送OOB数据,如果被保护主机的应用程序可以处理OOB,由于NIDS不可能准确预测被保护主机收到OOB的时候缓冲区内正常数据的多少,于是就可能绕过NIDS。


(6)IP/TCP


如果目标主机可以处理事务TCP(目前很少系统支持),攻击者可以发送事务TCP,NIDS可能不会与被保护主机上的应用程序进行同样的处理,从而可能绕过NIDS。


6、针对IDS资源及处理能力局限


(1)大流量冲击


攻击者向被保护网络发送大量的数据,超过NIDS的处理能力有限,将会发生分组的情况,从而可能导致入侵行为漏报。


(2)IP碎片攻击


攻击者向被保护网络发送大量的IP碎片(如TARGA3攻击),超过NIDS能同时进行的IP碎片重组能力,从而导致通过IP分片技术进行的攻击漏报。


(3)TCP Connect Flooding


攻击者创建或者模拟出大量的TCP连接(可以通过上面介绍的IP重叠分片方法),超过NIDS同时监控的TCP连接数的上限,从而导致多余的TCP连接不能被监控。


(4)Alert Flooding


攻击者可以参照网络上公布的检测规则,在攻击的同时故意发送大量的将会引起 NIDS报警的数据(例如stick攻击),将可能超过NIDS发送报警的速度,从而产生漏报,并且使网管收到大量的报警,难以分辨出真正的攻击。


(5)Log Flooding


攻击者发送大量的将会引起NIDS报警的数据,最终导致NIDS进行Log的空间被耗尽,从而删除先前的Log记录。


7、针对IDS系统本身的漏洞、弱点


正像其他系统一样,每一种IDS产品都或多或少地存在着一些漏洞,一旦这些漏洞被攻击者发现并成功利用,轻者可以让IDS系统停止工作,严重者甚至可以取得对系统的控制权。


正如前面所介绍到的,入侵监测系统虽然很好地加强了系统的安全,但同时也还有很多不足,作为防火墙的合理补充,网络安全需要纵深的、多样的防护。即使拥有当前最强大的入侵检测系统,如果不及时修补网络中的安全漏洞的话,安全也无从谈起。未来的入侵检测系统将会结合其他网络管理软件,形成入侵检测、网络管理、网络监控三位一体的工具。强大的入侵检测软件的出现极大地方便了网络的管理,其实时报警为网络安全增加了又一道保障。尽管在技术上仍有许多未克服的问题,但正如攻击技术不断发展一样,入侵的检测也会不断更新、成熟。


8、正确使用、合理发挥IDS的功能


实施入侵检测系统后不闻不问不能充分发挥IDS的作用。


一般地,在建设了 IDS 之后,当有非法入侵时,系统会提示“有人扫描主机”,此时的非法入侵者正处于收集信息阶段,若网络管理员采用了相应措施,会将此入侵扼杀在萌芽中。但如果置若罔闻,待入侵者收集了足够信息之后,会发起全面攻击。这样看来,在安全防范还算健全的情况下,企业被攻击有4个原因。


(1)网络管理员能力有限,没有更多的能力关注安全问题,加之网络管理员本身对安全技术掌握不足,对像IDS给出的报警信息缺乏深入的研究。


(2)对IDS缺乏最基本的管理。虽然IDS能够智能地工作,发现攻击后可以做出相应的响应动作,但这不意味着用户就可以高枕无忧了。用户需要经常察看IDS的告警信息,以便及时发现网络中潜在的攻击行为,并加以预防。


(3)IDS漏报和误报,查不出哪里存在非法入侵者


有很多 IDS 漏报误报的现象是由于网络变化时,没有及时更改配置规则而产生的。IDS被第一次安装配置后不再进行任何调整。在实际的网络环境发生变化后网络管理员没有针对特定环境的变化做安全产品配置的相应调整,以致这些产品无法保证新设备的安全。事实上,当网络结构发生变化时,用户应该适时地增加或者删除知识库中的规则,重新定义新规则。另外,对于初始用户,刚装好的IDS会产生很多告警,有些属正常的网络应用,用户可置之不理,有些属未加上但业务中必用到的初始配置,用户一定要注意及时调整这些配置。


(4)对IDS期望值过高


有些用户对IDS存在错误的认识,他们把IDS当成防攻击的法宝,势必事与愿违。在网络安全中,存在着多种不同级别的安全技术与产品,IDS 只是其中的一步棋,它只承担了智能检测入侵任务的角色,并能针对入侵行为做出响应,仅此而已。如果用户想通过IDS完全阻止黑客入侵,一不实际,二这也不是IDS的功能。需要指出的是,IDS再智能也只是一个安全管理工具。要使网络安全,真正起作用的还是人,因为工具不能解决一切问题。


9、IDS具备的安全应急机制


(1)网络安全必须具有相对完善的预警、检测和必要的防御措施


在应对攻击事件的时候,防火墙有一定局限性,通过入侵检测能检测到基于应用的攻击行为的发生,并且判断出是何种攻击手段,这就是一个从不知到可知的过程。在进行应急响应的时候,入侵检测系统是必须事先部署的必备环节,否则分析攻击难度将增大。


(2)入侵检测系统的行为关联检测机制以及自定义检测功能


从攻击特征分析的角度看,对Web服务的分布式拒绝服务攻击,其单个服务请求和正常的服务请求机制是相同的。如果是简单的对这样的特征事件进行阻断,必然导致正常的服务请求也被中断。区分是拒绝服务还是正常访问主要在于判断行为的关联性。拒绝服务的特点就是在短时间内出现大量的连接行为。因此,检测的机制就是基于异常行为的统计关联,然后通过采用简洁易用的自定义描述语言,形成对该种行为的事件定义,下发到探测引擎。经过专门定义后,可以很容易地看出哪些事件是正常访问造成,而哪些事件是由攻击造成。


(3)入侵检测系统和防火墙形成动态防御


从应急响应的要求看,入侵检测的目的最终是阻止攻击行为,对已经造成攻击后果做相应恢复,并形成整体的安全策略调整。入侵检测系统本身是具有阻断功能的,但是如果单纯利用本身的阻断功能必然对入侵检测的效率有所影响。IDS 发现了攻击事件,发送动态策略给防火墙,防火墙接收到策略后就产生一条对应的访问控制规则,可以对指定的攻击事件进行有效的阻断,保证攻击不再延续。这种联动的好处是既利用了防火墙的优势特点,又由于这些规则是根据攻击的发生而动态触发的,所以不会降低防火墙的工作效率。一个好的入侵检测系统对保障用户的网络安全起到了积极而重要的作用。通过入侵检测,不仅能够知道攻击事件的发生、攻击的方式和手法,还可以指挥其他安全产品形成动态的防御系统,这就对网络的安全性建立一个有效屏障。

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】
 
计算机与网络安全 更多文章 【视频】| 正在秘密定位追踪你的公司 【视频】| 黑客测试环境搭建 【视频】| 系统漏洞扫描 【视频】| 偷偷收费的银行卡 【视频】| RSA加密方法
猜您喜欢 【分享】Github是如何征服Google、微软以及其他业界巨头的 Using Android Studio’s Performance Monitors Unite Beijing 2018 Keynote :Unity 2018为 django第三方工具推荐之查询组件django-sql-explorer 快速提升爬虫性能的几种方法