以彼之道还施彼身 利用IDS特征码绕过IDS
作者: 日期:2017年11月21日 阅:4,552

罗马尼亚的首都布加勒斯特举行的DefCamp 2017上,入侵检测系统(IDS)的特征码,被利用以绕过IDS本身。DefCamp 2017安全大会的一场演讲中,基里尔·什普林,Positive Technologies 安全研究员,阐述了IDS特征码是如何被用来致瘫其本身的防御的。他还宣称,对性能及安全的破坏,可创造出绕过防御的机会。

基于特征码的IDS,依赖发现特定模式来检测攻击,要么查找网络流量中的字节序列,要么找寻恶意软件使用的已知恶意指令序列。

此类系统的主要局限,在于无法检测没有可用特征模式的攻击。而且,从新威胁被发现,到其特征码开始应用到IDS上的时间差,也可供攻击者利用来毫无顾忌地入侵系统,丝毫不用惧怕IDS会检测到自己的入侵行为。

目前已有很多特征码被创建出来,用以保护系统不受公开漏洞利用程序的侵害;而设计高品质特征码,需要开发人员具备多方面的技能,避免误报。另外,迟缓低效的特征码,会导致IDS中出现弱点,增加已有常见绕过技术的打击面。

在采访中,该安全研究员表示:“特征码,就是以系统能理解的形式呈现的专业知识。开发人员通常缺乏时间来深入分析漏洞并设计修复程序。他们还要关注性能,而这容易导致出错。”

某些现有特征码笨重而迟缓,需要大量时间执行必要的分析。当此类规则遭遇有问题的流量,IDS可能会被搞瘫,开始丢弃流量数据包。要么引发拒绝服务,要么让攻击者得以绕过检测系统。

在规划IDS/IPS容量的时候,需遵守的一条经验原则就是,每个处理器上只分配有限数量的特征码和流量,确保系统能高效运转。

什普林用开源网络威胁检测引擎Suricata测试了他的研究,发现找不到特征码匹配所花的时间,比找到匹配所花的时间多,这就有损性能了。

Suricata使用强大而广泛的规则及特征码语言,支持YAML和JSON之类标准输入/输出格式,以特殊性能模式打造。然而,不久前该平台中刚刚解决的一个漏洞,攻击者可利用这个漏洞创建不良流量,让系统满载运行,从而绕过防御机制。

该漏洞影响4.x版本之前的Suricata,编号CVE-2017-15377,可触发对特定特征码所构成流量内容的大量冗余检查,即便没有发现任何匹配,搜索引擎也不会停止检查,除非达到了检查递归上限(默认是3000次)。

Suricata使用正则表达式,而什普林发现自己可以指定表达式用来搜索的字符串。采用放大攻击,他还发现自己可以让系统满载:每条正则表达式检查花费150万个CPU时钟周期,放大1000倍,就会消耗30亿个时钟周期以上——对处理器来说需要1秒钟。

再加上Suricata即便没找到匹配都会一直检查下去,什普林发现,仅用250Kb/秒的网络流量,就能让1台企业级服务器上40个处理器中的8个满负荷运转。每秒10个 HTTP POST 请求,该系统就开始丢包,然后被绕过。他用的是纯净安装,于是,现实企业网络所需的网络流量还会更小。

慢速特征码的检测无法自动化,意味着这种被发现可行的攻击方式是无法被检测到。一旦系统开始丢包,宕机也就不远了。

基于特征码检测的其他系统也会被攻击者以类似方法绕过,因为该攻击方法不引人注意。不过,什普林也指出,特征码本身不是问题,但特征码真的需要做做品质检查了。

这还只是我们创建不良流量并放大慢速特征码的其中一种方法。可能还有其他方法、其他案例、其他关键字组合,可被攻击者用来致瘫或绕过防御系统。

 

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章