误报率和漏报率是衡量IDS产品性能的两个关键指标,但是目前针对IDS的误报率和漏报率的计算方式和测试方法没有一个统一的标准,各厂家在宣传数据更是五花八门,根本不具可比性,下面是本人基于多年从事IDS行业的经验积累,总结的一些关于IDS误报率和漏报率的计算和检测方法,跟大家分享。
1.
误报率
1.1.误报率的定义及计算方法
误报是IDS对事件的报警不准确,即在实际触发A事件的时候IDS报警的是B事件;误报率是指由于IDS的算法或者事件定义问题导致的对某攻击事件产生误报的概率。
误报率的计算方法很多,各种算法之间最大的不同都在分母的取值上,但是衡量具体某一款IDS产品的误报率,最科学的方法就是:以IDS的规则库(事件库)中的所有事件的权值
[1]总和(称为总权值)为基准,所有存在误报的事件的权值之和(称为误报权值)所占的比率。
范例:
某IDS的事件总是为N,某事件的权值为Mn,则总权值C(N)=M1+M2+M3+……+Mn
存在误报的事件数为X,这些误报事件的权值为Yx,则误报权值C(X)=Y1+Y2+Y3+……Yx
则
误报率=C(X)/C
(N)*100%
但是目前国内外的都没有事件权值的相关标准,基本没有IDS厂家对事件做权值分配,就没有事件权值,所以目前比较常见的IDS误报率的计算方法是:
误报率=存在误报的事件数(X)/
事件库总量(N)*100%
1.2.误报率的测试方法
1.2.1.
测试方法
一般对IDS的误报率的测试都采用抽查的方式,即随机挑选事件库中的一部分事件(一般为30~50条事件),采用攻击工具真实触发这些事件,或者用捕包工具对事先捕获的事件数据进行回放,分析IDS的报警结果,从而得到IDS的误报率。
1.2.2.
测试工具
常见的测试工具包括:攻击工具(Blade、Fragroute、Synflood、UDPflood、DDos、whisker、Unicode等)、扫描工具(X-Scan、SQL-Scanner、PortScan等)、后门程序(Ackcmd、广外女生、冰河、网络红娘、网络公牛等)、嗅探捕包工具(Sniffer、IRIS等)。
1.2.3.
测试环境
注:
1、
为了保障测试结果的准确性,要求本环境是一个独立的网络环境,没有任何其他数据;
2、 受测IDS接在交换机的镜像端口上。
1.2.4.
测试步骤
1、
按照上图将各测试设备连接好(保障IDS可以接收到交换机上的全部数据)
2、 安装调试好IDS产品(确认IDS可以正常报警)
3、
在攻击机上启动测试工具,进行攻击,或模仿攻击(攻击数据包回放)
4、 在IDS控制中心检查报警情况
5、 计算误报率:误报率=误报事件数/攻击事件总数*100%
2.
漏报率
2.1.漏报率的定义及计算方法
漏报是指对于真实发生的网络攻击事件IDS没有预警;漏报率是指对于真实存在的网络攻击,IDS存在漏报的概率。导致IDS漏报的因素有很多,主要包括IDS的特征事件库更新频率、网络流量等。
漏报率的计算,是以真实发生的网络攻击事件数量为基准,计算IDS漏报的事件数量所占的比率。
范例:
网络中发生的真实的攻击事件数量为M,IDS漏报的事件数量为N,则
漏报率=N/M*100%
2.2.漏报率的测试方法
2.2.1.
测试方法
能否检测最新的网络攻击事件是衡量一个IDS的研发和支持能力的重要指标,但是这个指标很难以量化,所以检测IDS的漏报率的常见方法是在不同的网络流量背景下,用攻击工具或者抓包工具回放的方式多次触发同一个事件,分析IDS的报警数量,从而计算IDS的漏报率
[2]。
2.2.2.
测试工具
IDS漏报率的测试工具包括:攻击工具(主要指触发单条IDS事件的工具,如Unicode)、发包工具(如IXIA、Smartbit等)、嗅探捕包工具(Sniffer、IRIS等)。
2.2.3.
测试环境
注:
1、
为了保障测试结果的准确性,要求本环境是一个独立的网络环境,没有任何其他数据;
2、 受测IDS接在交换机的镜像端口上。
2.2.4.
测试步骤
1、
按照上图将各测试设备连接好(保障IDS可以接收到交换机上的全部数据)
2、 安装调试好IDS产品(确认IDS可以正常报警)
3、
分别在加载0、25%、50%、75%、99%的背景流量下,在攻击机上启动测试工具,进行M(通常为100)次攻击。
4、 在IDS控制中心检查报警数量,设为N
5、
计算漏报率:漏报率=N/M*100% (每种背景流量下做三次测试,取平均值)
[1]权值:是指某条事件的权重值,目前国内外都没有统一的标准,权值由厂家自行定义,事件的权值主要跟该事件的危险级别、是否陈旧事件、产生的频率、攻击手段的复杂程度、受影响系统是否已提供补丁或修复方案等相关。
[2] 这也是当前测试IDS性能(即不同背景流量下的抓包率)的常见方法。