False positive和False negative这两个词广泛出现在各种领域,就计算机领域来说,通常出现在与安全有关的技术资料中,是什么意思呢?我们来分析一下。
 
首先,两个词的共有部分是False,假的,拿流行话来说叫不靠谱。那后面的词是什么意思呢?
 
Positive的中文意思是“确实的;积极的,肯定的;正的,阳性的”,我们暂时用阳性这个词好了。这个词在医学上用得多,通常不是好消息,阳性代表有病或者有病毒,如乙肝病毒的检测,HIV的检测。如果某个人的HIV检测结果为阳性,那这个人一定痛苦极了,甚至可能没有勇气继续活在这个世界上。  正要准备自杀时,接到了医院的电话,说报告弄错了,这就是False Positive。  “医生啊,你是上帝派来玩我的吗?”
 
Negative的中文意思与Positive刚好相反,是“否定的;消极的;负的;底片;负数”,False Negative为假阴性,如果一个爱滋病毒感染者的HIV检测报告呈阴性,就这是一个False Negative事件。
 
再来说说FP和FN在计算机领域中的意思,我喜欢把它们译为“误报”和“漏报”。
对于计算机防病毒软件来说,和医院里的病毒检测是一个意思,因此,一个防病毒软件把没有感染病毒的文件报告为感染了病毒,这就是“误报”。相反,如果没有检测出系统中的存在的病毒,这就是“漏报”。 世界上没有任何一款防病毒产品敢说自己没有“误报”和“漏报”的情况存在(如果你看到哪个厂商这样宣传自己的产品,替我鄙视它,当然了,如果该防病毒产品被设计为将一切文件视为无毒文件,则它没有误报的情况,或者将一切文件视为带毒文件,则它没有漏报,真有这样的东西吗?)。不断有新的病毒产生,防病毒软件相对于病毒来说,比较被动。如果单纯地使用己知病毒定义来检测病毒,就容易产生“漏报”。如果结合一些前摄性的,基于行为监测的手段来检测病毒,就容易产生“误报”。
 
类似地,防火墙对***行为的检测,也存在以上两种情况。如果把正常的资源访问判断为***行为并加以阻止,就是“误报”。如果没有发现某个***行为,没有对其进行响应,就是“漏报”。 世界上没有任何一款防火墙产品敢说自己没有“误报”和“漏报”的情况存在(如果你看到哪个厂商这样宣传自己的产品,替我鄙视它,当然了,如果该防火墙产品被设计为将一切访问行为视为正常访问,则它没有误报的情况,或者将一切访问行为视为***行为,则它没有漏报,真有这样的东西吗?)。安全策略定义得过于严格,就容易产生“误报”,过于宽松,就容易产生“漏报”。
 
那么,安全产品的设计者,希望自己的产品误报率低一些还是漏报率低一些呢?很多厂商会希望自己产品的误报率低一些,因为误报行为相对漏报而言更加明显,容易被用户感知到,且一旦出现,可能会造成较大的影响,赛门铁克的误杀事件就是一个典型的例子。所以,在选择安全产品时,不要简单地认为误报率低的产品就是可靠的产品,它的低误报率往往是用高漏报率换来的。