入侵检测系统原理、实践与选购
监测网络上的数据传输情况。
如果数据为正常数据,允许其通过(或者留待以后分析),如果数据包被认为可能会危害目的地系统的安全,则发出"connection closed"(使用TCP协议时)或者"port unreachable’(使用ICMP时)以截断数据发送方和接收方之间的连接。
在这种情况下,RealSecure可以在防火墙后建立起以个有效的阻止系统,当然,也有在防火墙的位置直接使用RS的,而我(原作者-不是土鳖我啊!)不建议大伙采用这种方法。
基于网络的ID还有一些别的功能,比如:
监测明显的端口扫描。在攻陷系统之前,攻击者一般会扫描系统以发现系统的缺陷,一般说来,INTERNET上来自以台主机的端口扫描往往是有人开始攻击的先兆。
对常见的攻击方式加以监测。通过80端口连接到以台WEB服务器应该看来是以件很正常的事情,但是有些同样通过80端口进行的连接就可能是祸心内藏哦,看看这个命令你就知道了:
“GET /../../../etc/passwd HTTP/1.0”
鉴别各种IP欺骗。用于完成IP和MAC地址之间转换的ARP协议往往是攻击的重点,通过在以太网上向目的地址发布载有虚假ARP数据的数据包,入侵者可以将自己伪装成位于另外一个系统上,这样的结果就是各种拒绝服务攻击,当大型服务器(如DNS或者身份认证服务器)遭到攻击时,入侵者可以将数据包转发到自己的系统上。基于网络的IDS通过登记ARP包,对信息源(以太网地址)进行认定,如果确认信息来自于已经被攻陷的系统,则会对入侵者进行拦截。
如果探测到了有问题的行动,基于网络的ID会自行采取行动,包括重新配置附近的防火墙以拦截所有来自入侵者的数据流.
基于主机的ID简介
当数据包抵达目的主机后,防火墙和网络监控已经无能为力了,但是还有以个办法可以试试,那就是“基于主机的ID”
基于主机的ID又可以分成两大类:
网络监测:这种监测对抵达主机的数据进行分析并试图确认哪些是潜在的威胁,任何连接都可能是潜在的入侵者所为,请注意,这点与基于网络的ID不同,因为它仅仅对已经抵达主机的数据进行监测,而后者则是对网络上的流量进行监控。如次一来就不需要把网卡设置成××模式了。
主机监测:任何入侵企图(或者成功的入侵)都会在监测文件、文件系统、登录记录或其他主机上的文件中留下痕迹,系统管理员们可以从这些文件中找到相关痕迹。
外来连接监测:
主机可以在数据包真正抵达主机之前对试图进入主机的数据包进行监测,以避免其进入系统后可能造成的损害。
可供选择的处理方式有:
监测未经授权的试图通过TCP或者UDP端口进行的连接,比如如果有人试图通过未开放任何服务的端口进行连接,就往往意味着有人在寻找系统漏洞。
监测端口扫描:在此我再推荐一种方式:调整防火墙或者调整本地IP配置(可以使用LINUX下的IPCHAINS)以拒绝来自可能的入侵者的连接请求。
值得推荐的两个文件是ISS的RealSecure Agent和PortSentry.
注册行为监测
即使网管做了最大的努力,安装了最新的IDS,入侵者也有可能使用无法被监测到的的手段来入侵系统,造成这种情况的重要可能之一就是入侵者使用包嗅探恩公工具已经取得了用户密码并能够合法登录系统。
HOSTSENTRY这样的产品的任务之一就是寻找系统的不寻常操作,对用户试图进行注册和注销进行监控,并就这些活动中不正常或者未曾预料的部分向系统管理员报警。
根操作监控
入侵者的最终目的是为了掌握被入侵主机上的根用户权限,如果一台WEB服务器规划的好的话,除了极少数的计划好的维修时间以外,根用户应该很少会有什么操作,但是根用户们也很少按照计划去进行检修,而是逮空就干,但是即使是这样,入侵者也很有可能在兔子都不拉屎的时间或者地方干出些什么事情来。
需要防御的战线还有以条:监视根用户或系统管理员的任何操作。许多UNIX系统允许根用户执行包括登录、监测在内的所有运算,而象LOGCHECK这样的工具则可以对这些登录记录加以监控并提请网管注意。
如果使用了开放源代码的操作系统,网管们只有一个选择:改进内核。如何改进不在本文的讨论范围之内,毕竟INTERNET网上这样的资源很多。
监测文件系统
不管你的愿望如何良好,ID怎么卖命,你也不敢保证系统固若金汤,而系统一旦被攻陷,入侵者就会立即开始更改系统的文件,或者更改一些设置以废掉ID们的武功(哦!要练神功,必先自宫!!)
在软件的安装过程中,不可避免的会更改系统设置,这些设置更改一般会在系统的文件或者LIBRARY的变化中体现出来。
类似于TRIPWIRE,FCHECK和AIDE的程序被设计用于检测系统内的文件变动,并向系统管理员报告。
在所有系统文件上使用MD5或者其他的加密、校验和等手段,将这些设置储存进数据库,当文件变化时,校验和也会发生变化。
注意所有文件的创建和修改时间,以及它们的时戳。
对SUID命令的使用加以监控,任何变化或者新的SUID命令被安装、删除,都可能会是问题的征兆。
不管Tripwire, Fcheck, AIDE玩得怎么花,它们的工作原理就是上面那些东西,它们的作用是保证那些数据库和加密的校验和没出问题。因为不排除这样一种可能,入侵者水平很高,高到足以理解操作系统和IDS,直接就把加密的校验和数据库都改得天衣无缝。
基于内核的ID
基于内核的ID还是以种新生事务,但是成长很快,尤其是在和LINUX的配合方面。
现在有两种基于LINUX的不同的基于内核的ID,它们是OPENWALL和LIDS。它们在防止缓冲区溢出方面有了长足进展,增强了文件系统的保护,拦截信号并使入侵系统变得更加困难。LIDS也采取了一定措施以防止根用户执行一些操作,比如安装嗅探器或者更改防火墙规则等等。
内核保护和文件系统保护
显而易见的是,虽然最终效果相近,LIDS系统和TRIPWIRE系统差别很大,它们都可以用于阻止入侵者出于未经授权的目的使用系统。
乍看之下,虽然象TRIPWIRE这样的系统确实是一个监测文件系统的好东西,人们也可能会认为他意义不大,人们的共识是:一旦你的系统被内在的入侵者攻陷,最好的办法就是关机重装系统。损失已然造成,系统已然玩完,你还是老老实实从恢复盘上重装系统得了。而LIDS提供的服务则更有诱惑一些,如果说一般的家伙是在屋子里面已经被糟践得一塌糊涂后才来跑来告诉你门开着的话,LIDS可能会使你的系统免遭损失。
从理论上说,我也同意以上分析,但是如果将LIDS和TRIPWIRE同时运行,肯定会带来更好的安全性。虽然LIDS在保护文件系统方面有着独到之处,但是如果再加上象TRIPWIRE这样的文件系统监视器,用他作为一个“独立的”审计方,效果肯定会更好,因为HACKER有可能会挫败LIDS的努力。
小结
使用最新的工具可能会抵御一切已知形式的入侵,不幸的是,随着日常实践,新的威胁和软件的安全漏洞却在不断的被发现。
Tags:
作者:郁郁小蝎评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论