入侵检测系统如何降低误报率?

0x00 背景

入侵检测技术一般分为异常检测和特征/签名检测,这里主要讨论的是网络入侵检测系统(NIDS)。

  1. 异常检测 (Anomaly detection):假设入侵者活动异常于正常主体的活动。常用的方法有:关联规则、神经网络、SVM、邻近算法、隐含马尔可夫模型、Kalman过滤器、聚类算法、PCA、信息论等等。缺点是:需要训练样本、误报率(异常行为≠入侵行为)高。
  2. 特征/签名检测 (Misuse/Signature detection):假设入侵者活动可以用一种模式来表示,然后将观察对象与之进行比较,判别是否符合这些模式。常用的方法有:关联规则、神经网络、SVM、决策树、遗传算法、贝叶斯网络等等。缺点是:对新的入侵方法无能为力。

主流的入侵检测系统通常是采用异常检测+特征/签名检测。他们都存在的问题就是:

  1. 告警的基数大,即使只有1%的误报率,也会产生大量的误报告警。
  2. 误报率往往跟漏报率成反比,改进算法降低误报率可能会增加漏报率,降低系统的可靠性。
  3. 大量的告警需要人工审核,造成疲惫和不信任感。

0x01 基于输出数据(Outgoing data)

完整的数据流应该包括输入和输出两个部分,而大部分NIDS却只考虑了输入数据,没有使用输出数据。通常情况下,存在异常/恶意输入数据,并不意味着有成功的入侵行为。比如一个任意文件读取的HTTP请求,只有当它的响应体中包含那个文件的内容,才算是一个成功的入侵行为。所以降低误报率的一个方法就是对输入和输出数据进行关联分析。而输出的异常检测,就是另一种方法。

输出数据有以下几个问题:

  1. 不同程序/服务的输出数据不同,而且在使用的过程中,输出数据可能会一直变化。
  2. 不同程序/服务对于一种攻击类型做出的反应不同(比如一个SQL注入的HTTP请求,有些程序直接阻断,有些程序做了过滤,正常返回)。
  3. 如何把输入和输出数据关联起来?

那么这种降低误报的方法就是在传统的基于输入的NIDS的基础上,增加:1、输入输出数据的关联分析。2、输出数据的异常检测。结构如下:

一次成功的攻击行为一定会引起程序/服务的异常输出(输出数据、响应时间、其他行为等等)。当NIDS触发告警,关联引擎查看该告警对应的输出数据是否有异常,如果存在异常才认定为True positive。也可将攻击行为分类,关联分析输出数据是否符合该攻击行为的响应。当然,这也存在着许多缺点:1、每个程序/服务第一需要大量的样本训练。2、程序/服务的某些特征出现变动,需要重新训练样本。3、输出数据太多(比如我司http下行流量4GB/s),收集、训练成本太高。4、其他…

0x02 基于威胁模型(Thread Model)

NIDS的目的就是随时发现可能的入侵行为,并进行具体分析,及时、主动地进行干预(发送告警),从而取得防患于未然的效果,也就是说降低风险。在风险管理中,Risk = (probablity of the accident occuring) x (expected loss in case of accident)。其中(expected loss in case of accident)可以理解的攻击的类型,常见的有三类:

  1. 信息收集类(域名/IP/服务/端口扫描、漏洞扫描器等)
  2. 拒绝服务类(带宽、资源消耗)
  3. 程序/服务攻击(获取权限、数据库、Shell等等)

其中第三种类型的攻击造成的损失最大,而第一种类型的攻击并不会立马带来什么损失,所以针对不同类型的攻击,应当给予不同的分数(每种类型的攻击还可以细分)。同时,(probablity of the accident occuring)可以理解为攻击发生的概率,那么同一输入数据/类型攻击的告警数量越多是不是意味着攻击发生的概率大呢?结合这两点因素,组成一个评分系统,再评估出一个合理的阈值,认为所有小于阈值的告警都是误报。

0x03 改进算法/训练样本/模型

这一块任重而道远(比如:测试还在用DARPA1999, KDD99等样本、模型存在偏差样本性、缺乏实践等等问题),在此就不细谈了。下图是相关的研究:

0x04 参考资料

  1. Damiano Bolzoni, Sandro Etalle. APHRODITE: an Anomaly-based Architecture for False Positive Reduction
  2. http://www.symantec.com/connect/articles/strategies-reduce-false-positives-and-false-negatives-nids
  3. Asieh Mokarian, Ahmad Faraahi, Arash Ghorbannia Delavar. False Positives Reduction Techniques in Intrusion Detection Systems-A Review