由EDS引发的思考
IDS(Intrusion Detection System,入侵检测系统)能检测到网络上发生的入侵行为,这当然是好事,即使不能由此防止黑客的入侵,但知道事情的真相总比不知道强。最近我读了一位国外安全专家的文章,他提出了一个新概念――EDS(Error Detection System,错误检测),并认为,EDS应该代替IDS。其实,EDS究竟能否代替IDS并不重要,但这却引起了我的思考。
为了保障网络的安全,用户的网络应该可控,没有用户会希望自己的网络被别人控制着,更不愿意黑客潜伏在自己的网络中,转而去攻击第三方,所以可控性是安全很重要的一个面。可控性本身包含很多方面:对安全策略的控制、对网络上提供的服务的控制、对网络准许的服务的控制、对日志的控制、对网络的监控、对安全策略的执行的控制等。知情是可控的基础,所谓知情就是不仅仅是了解网络中发生了什么,跑的是什么数据内容,而且要了解谁在使用网络、谁同谁通信、网络的安全策略及日志是什么,如果网络出现了异常,还要知道,异常发生的具体时间……在此基础上,用户需要对数据进行鉴别,从中了解,哪些是准许的数据、哪些不是准许的数据,准许的数据被放行,不准许的数据应被禁止。
这就好比一个商店的人员进出状况,其中可能有顾客,也可能有小偷。但是,商店无法要求每一个进出者必须是顾客,否则就不让进。有时候,商家也需要让那些暂时不买东西的潜在客户也进来,一是为了增加人气,二是制造潜在客的购买机会。但是如果所有人都进来,可能小偷也会混进来。网络中的数据传输也是如此,准许放行的数据可能是正常的,也可能是异常的。问题在于什么是正常数据,什么是非正常数据。在异常数据中,有恶意攻击的数据,也有由于网络错误产生的数据,也有大量的无用数据。这里要强调一点,无用的数据有时候是必需的,也是无法全部消除的,这和商店的“通行策略”是完全一样。讨论的目的是为了说明,当事件发生后,确定它是一个正常的或者不正常的事件很容易,但要确定该事件是好还是坏却很困难,其中具有很大的不确定性。一个人进了商店,如果买东西了,是好顾客,如果偷东西了,就是坏顾客。问题在于,对那些进了商店却没有买东西的人,如何定义?
入侵检测的困难就在如此。在一个事件的过程中,对一个具有高度不确定性的行为进行实时检测,是一件非常困难的事。所以我们可以理解,为什么Gartner宣布IDS走向死亡的两大理由是漏报和误报。当IDS放宽检测标准时,就会出现大量的漏报,因为其安全策略的判定标准是“无罪推定”;当IDS从严时,就会出现大量的误报,因为这时的安全策略是“宁可错杀一千,不可放过一个”。IDS能不能确定一个恰当的安全策略,理论上存在,但实际操作时就知道,目前,还没有很好的方法可以精确实现,稍微好点的办法是利用人工智能。
全面解决网络知情
现在我们再想想看,我们真的希望检测到入侵行为吗?答案是否定的,其实,我们根本就不希望发生入侵行为。要控制入侵行为的发生,首先要知情,全面地掌握网络上的流动信息,可以通过网络监控手段――防火墙日志、身份认证日志,了解具体情况。同时,平时能经常进行检查和评估,以便持续地改进安全策略,让安全策略和控制机制都能达到最优。这样就有可能做到杜绝网络入侵行为。从这个意义上讲,知情确实很重要。
怎样才能做到对网络完全知情?仅仅靠IDS肯定不够,厂商们应该提供一类新的软件,把Sniffer、日志审计、网管、身份认证、网络监控和IDS等都集成起来,就可以全面解决网络的知情问题,并进一步解决网络的可控问题。