购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 安全的避坑指南

下面谈到的悖论,其实并不是数学里提到的严格意义上的“悖论”,而是一些安全行业里存在的两难现象,或者说是一种认知谬误,通过分析这些现象,我们可以了解很多安全行业里独特的东西。

2.4.1 保险悖论

这里先讲个真实的故事。我有一个朋友很少坐飞机,因为他觉得极不安全,每次不得已要坐飞机时,会一次性买十份保险,每当安全到达目的地时,他都会说一句:“完了,这次的钱又白花了。”这其实是一个很有意思的心理状态:害怕出事,所以一次性购买十份保险作为保障,但是当付出了十倍价钱时,如果不出事,又会觉得钱花得很冤。

在安全行业,客户也经常有类似的心理。如果没出事,不是觉得你很厉害,帮他把很多事搞定了,第一反应却是:钱白花了,本来就没什么事!如果出事了,用户的第一反应是:钱白花了,竟然没用!如果安全产品把系统管得很严,任何行为都提示一下用户,让用户选择下一步该如何做,用户的第一反应也是:钱白花了,什么事都得自己判断,看来没什么用!

究其原因,这其实是一种错误的心态在起作用,用户是拿买药品的思路来买保健品。保健品我们都知道,在价格上比药品贵了很多倍,就拿复合维生素这个保健品类来说,一瓶复合维生素至少要几十元,而去药店买单一的维生素药片来配一瓶复合维生素,成本要低很多,但是买复合维生素的人却不会计较这些。

另外,几乎所有的药品都是“药到病除”,很容易看到效果,而几乎所有的保健品都是有延时效应的,不会立刻看到效果。甚至很多保健品就是安慰剂,肯定对你的身体没坏处,但也未必有多大的好处。即使这样,基本上没人会质疑保健品的效果和价格,为什么呢?因为大家已经相信了“健康比疾病更重要,健康就是慢性的,治病就是快速的”这样一个逻辑,所以大家能接受保健品这类高价低效的产品。

而大家对药品的态度却是截然相反的:如果药没作用,那就是假药;如果作用来得慢,那就不是好药;如果价格太高,就会觉得商家黑心。其原因就是大家天生认为药就应该是低价高效的。

我们再来看看安全产品,客户之所以会出现上面的反应,是因为大部分客户把安全产品当作药品,希望装上安全产品杀一下病毒,整个世界就干净了。而事实上,安全产品大部分时间充当的是保健品的角色,尤其是企业安全类产品,它更多的是帮助客户提升企业的整体安全基线,是基于运维的系统保健品,它要依赖管理体系和管理策略,不是头痛医头、脚痛医脚的处理单点威胁的安全特效药。

之所以客户会对安全产品产生“药品”的价值印象,更深层次的原因是安全厂商在安全行业发展早期遗留下来的工具化思维和弱威胁时代的营销套路。

在安全行业发展早期,没有那么多的威胁,基本上是出现一个干掉一个,像防病毒产品,也基本上是单机版,强调资源占用少、安全有效。所以那时候整个市场营销的套路就是新病毒炒作,导致客户对安全产品的认知就是特效药品而不是保健品。但是,威胁对抗的环境已经变了,威胁对抗思路也要相应地改变,后续章节我们会继续深入地讨论这个问题。

当然,为了缓解客户的这种认为安全产品没用的心理,安全行业在产品设计中还总结出了“适度打扰”原则,即一些需要客户频繁交互的产品功能,尽量通过运营的方式、预置策略的方式做到自动处置,少让用户选择,而一些没有威胁就没动静的功能,可以适当地通过弹窗、通知等策略性地对用户进行适度打扰,让用户感觉到安全产品在起作用。

2.4.2 误报悖论

威胁对抗的结果就是要看对“样本”(Sample)的处理能力,除了样本数量外,“误报”与“漏报”是衡量安全产品安全能力的两个最重要的指标。

“样本”在安全行业里是一个通用的术语,它可以是一个文件,也可以是一段代码,还可以是内存或磁盘中的一段数据。“误报”是指把正常样本识别成威胁样本,即错杀行为;“漏报”就是把威胁样本识别成正常样本,即漏杀行为。正常样本一般被称为“白样本”,威胁样本一般被称为“黑样本”。对于一个安全产品来说,最优的指标是零漏报和零误报,但是根据前面提到的“原理1(威胁绝对性)”和“原理2(安全相对性)”,穷举所有样本是不可能的,所以一定会存在漏报或误报现象。

目前还没有人论证过误报和漏报是否存在函数关系,但是根据实际的情况看,它们之间至少存在一个反比关系,即降低漏报率,就会引起误报率的升高(如图2-4所示)。

图2-4 误报与漏报的关系

理论上在极端的情况下,只要做到100%漏报,自然就会达到0误报,反之亦然。但是,这样的结论在实际中却没有任何价值。真实的情况是,安全厂商的目标是尽量让漏报与误报逼近于零。下面我们通过分析样本关系来证明一下这种目标不可能实现的原因(如图2-5所示)。

图2-5 样本关系

整个样本集合可以分为前面提到的威胁样本即“黑样本”,正常样本即“白样本”,还有另外一种没有被判定为黑或白的样本,业内称为“灰样本”。这种灰样本的产生有两个原因:一是还没有被发现,例如新编写的软件程序;二是被发现了,但还没机会去判断或还无法判断它的黑白属性。比如我们在日常生活中碰到的骚扰行为,你说这种行为犯法,不对,但是你说正常,好像也不对,很多时候需要根据实际的场景来辅助判断。所以灰样本是黑样本与白样本的临界状态,在正常的理解中,临界状态的事物是少数派,而现实情况是,灰样本的数量要占到样本集合的绝大多数。

威胁识别的本质就是样本识别,所有威胁识别的过程,都是先基于样本分析得到样本特征,最终用这个特征来对灰样本进行匹配,能匹配黑样本库的就是威胁,能匹配白样本库的就是正常样本。

特征识别技术是威胁识别的核心技术,目前有两种流派。一种是早期出现的“特征码”(Signature)技术。特征码基于对样本的人工分析得到,相当于一个文件的“DNA”,只要提取得当,它可以覆盖同一类型或同一家族的众多样本。一个差的特征码只能覆盖几个样本,而一个好的特征码能够覆盖数百万的样本,因此特征码的样本覆盖数量就成了衡量好的病毒分析师的一个重要指标。

另一种是互联网时代出现的“哈希”(Hash)技术。哈希值基于对样本的自动分析得到,相当于文件的“指纹”。哈希是一种摘要算法,能够将任意长度的字符串处理成128位或256位的摘要字符串,根据不同的哈希算法,最终运算出来的数值会有不同的叫法,如MD5值、SHA1值或SHA256值等,最常用的是MD5值。举个例子,一个文件的MD5值形式如“DF253827E7DF35DC41DA4A751CFAC8DB”,在绝大多数情况下,一个文件只有唯一的MD5值。

哈希算法有三个特性:一是对源文件任何一个小改动,都会造成哈希值巨大的变化;二是该算法是不可逆的,即根据哈希值无法倒推出原文件内容;三是哈希值可以由计算机自动生成。这三个特性使哈希算法成了互联网时代威胁标识的标准算法,也使得“哈希特征”成为威胁标识的“第二特征码”。

接着谈上面的漏报与误报话题。由于灰样本集的样本数量的不确定性,一定会出现漏报现象;由于灰样本集的样本行为的不确定性,一定会有一些样本的行为很难界定,条件松了,可能就漏报了,条件紧了,可能就误报了。尤其是在采用启发式技术、机器学习技术进行威胁识别的场景下,这种情况就更加明显,你需要不断地通过降低样本识别的精准度来降低样本识别的误报率。

2.4.3 测试悖论

在安全行业里,还有一种普遍存在的现象,就是甲方客户在做安全建设的过程中,往往会采用样本测试的方式来验证厂商提供的安全产品的有效性。根据前面提到的“推论2.2(能力不可证)”,安全厂商无法证明自己的产品是有效的,同样甲方客户也没有能力来证明。

但是,甲方客户在安全建设的过程中又需要一个依据,于是现实中的操作方式是:客户让所有参与厂商自己提供样本和测试方案,客户把所有样本混合起来,形成一个整体样本测试集,把测试方案也混合起来,形成一个整体测试方案,然后拿这个混合方案分别去测试各家的产品。

这里就会出现两种情况。一种是参测厂商在提供样本和方案之前,就已经预知了竞标的其他厂商,进而一定会挑出其他厂商都不满足的样本和测试方案。这种方式测出来的结果肯定是各厂商都有满足项,也都有不满足项,最后再综合其他部分的内容,最终形成一个厂商投标总分,然后按照分数情况决定最后的中标方。另一种就是厂商私下结盟,商量好配合机制,私下里互通方案,最终通过相互配合来共同完成这桩生意。

其实这两种结果都不是甲方客户想看到的,但是之所以还会采用这种方法,是因为到今天为止,整个行业还没有想到一个好的度量产品效果的方法,在后续的章节里,我们会对这方面内容展开论述。

2.4.4 云查杀悖论

在安全行业里,还有一个基于云查杀技术的“云查引擎”与基于特征查杀技术的“本地引擎”之争的经典例子(如图2-6所示)。

云查引擎的样本查杀能力是依赖于样本自动化收集、分析和处理机制的,通过遍布的终端节点和互联网的爬虫系统,能够收集海量的样本。

安全厂商利用历史数据,能够积累出庞大的黑样本库、白样本库和灰样本库,然后通过自动化分析机制,迅速将灰样本变成白样本库或黑样本库,在有良好的网络支撑的前提下,能够在不占用计算机本地资源的前提下,快速进行样本鉴定。即便是在企业的隔离网络环境下,也能通过私有云服务器来完成企业内网样本的快速识别和鉴定。

图2-6 云查引擎与本地引擎

本地引擎是基于特征码的人工分析技术,就像上面提到的,云查引擎使用文件的唯一指纹即“哈希值”来做判定依据,而本地引擎使用文件的DNA即“特征码”来做判定依据。

本地引擎由于采用的是通杀机制,即上面提到的一条特征对应多个文件的模糊匹配模式,因此在一个封闭的网络,对于一些没有预先识别的样本,只要命中了模糊匹配的规则,就能有很好的检出率。而云查引擎是文件一对一的精确匹配模式,对于没有预先识别的样本,查杀率几乎为零。

而本地引擎的问题在于所有特征都在本地存储,内存占用和本地存储占用比云查引擎的大。也就是说,云查引擎是用网络访问和云存储空间来换取本地存储和内存资源的占用,更适用于互联网环境,而本地引擎则更适合应用于企业隔离网络。因此,用户可以根据要适配的环境来对安全产品做评估。 f257Em7vw8wmuG1WvT1CDzPJrIouqKOG5B5yI5LeoXrT0Tnl1JcXjNRcMMpAVeiB

点击中间区域
呼出菜单
上一章
目录
下一章
×