机器学习已经渗透到了人类活动的所有领域,它不仅在语音识别、手势识别、手写识别和图像识别上起着关键的作用,这些领域如果没有机器学习在现代医学、银行、生物信息和存在任何质量控制的行业中都是一个灾难。甚至机器没有学习和生成的能力,连天气预报都无法做出。但是此时我想澄清一些问题:关于机器学习在网络安全领域的使用中存在的一些误解。
由于某种原因,在网络安全中的人工智能技术变成了过去流行的东西。如果你没有长期关注过这个主题,你可能会认为这是新的东西。
一些场景: 第一个机器学习算法,人工神经网络在上个世纪50年代就被发明了 。有趣的是,在当时人们都认为该算法将很快导致“强”人工智能的出现。即,智能的思考能力、独立思考并可以解决那些默认编程程式外任务的人工智能。可随后就是“弱”人工智能的时代,它可以解决一些创造性的任务,比如识别图片、预测天气、玩象棋等。六十年后,我们会对一些基本事实有更多的理解,那时真正的人工智能也许已经出现了,而我们现在提起的人工智能其实更准确的说是机器学习。
当谈到网络安全领域时,机器学习也不是什么新鲜事。这类算法在十年前左右就提出了,那时候新的恶意软件数量每两年翻一番。
但是简单的自动化对病毒分析师来说是不够的,它需要一个质的飞跃。这个飞跃出现在处理病毒家族样本时,可以用机器学习来搜索和已经判别完成的样本相似的文件。最终一个文件是否是恶意的以前要由人来判断,但是这个工作快速地转移给了机器。换句话说,在网络安全行业,机器学习没什么新奇的。
在某些领域,机器学习有一些早就准备好的算法,这确实是事实。这些领域包括面部、情感识别或者从狗中区分猫。在这种情况下,通常是有一些人做了大量的思考、确定必要的标识、选取适当的数学工具、设置必要的计算资源然后公布他们的研究结果。现在,每个做这些工作的人都可以利用这些算法。
这导致了一个错误的印象,好像把恶意软件检出的算法也已经存在了。实际情况并非如此,我们在卡巴斯基实验室花了超过十年的时间来开发这项技术,并申请了许多专利。我们持续进行研究、提出新的想法也与下一个误解有关。
恶意软件检测和人脸识别在概念上的区别,脸永远是脸,在这方面永远也不会有什么改变 。在机器学习被应用的大多数领域中,目的不随时间变化,但是在恶意软件检出这个范畴内,事情在不断且快速地变化着。因为网络罪犯往往是高动机的人,为了钱、间谍活动、恐怖主义等。他们的智力不受人工的局限,他们积极出击、故意修改恶意程序好摆脱已有的成熟模型的检测。
这就是为什么这些模型需要不断学习、不断修正,甚至推倒从来。显然,面对快速变化的恶意软件,基于没有反病毒数据库模型的安全解决方案是毫无价值的。当必要的时候,网络犯罪分子可以以创造性的思考来应对。
比方说,在处理客户端文件的时候,绝大多数文件都是安全的,只有少部分是恶意的。后者是会变异的,但是你设计的模型可以自己学会应对。
然而事情却不是这样的。因为通过客户端的恶意样本的平均数量要比反病毒实验室收集到的恶意样本数量小得多。客户端会因为没有收集到样本进行学习而丧失应对能力。对病毒作者的“创造性”的检测就一定会失败,模型此时把恶意软件识别为安全的文件,将会学到“错误”的东西。
为什么要使用基于不同技术的多层次保护?如果那个篮子是如此的聪明和先进,为什么不把所有的鸡蛋都放在同一个篮子里?这样一种算法就可以解决所有问题了。
问题是大多数同家族的恶意软件都是由一个恶意程序修改而来的。例如 Trojan-Ransom.Win32.Shade
是一个拥有超过三万个恶意样本的家族。一个模型可以通过大量的样本训练,来获得检测未来威胁的能力(在一定限度内,见误解三)。在这些情况下,机器学习的效果很好。
但是,通常的情况是一个家族只包括了几个样本,甚至只有一个样本。也许是作者不想其心血的恶意程序由于恶意行为被检出后陷入和安全软件的长期斗争。相反,他选择去攻击那些没有安装安全软件或者没有行为检测的人(即那些曾把所有鸡蛋都放在一个篮子里的人)。
这些各式各样的只有一两个样本的“小家族”不能应用于“训练-推广”这个传统的机器学习模式。在这种情况下,用久经考验的哈希、掩码可能会更好的检出威胁。
另一个例子是有针对性的攻击,这些攻击的幕后黑手不打算制造越来越多的新样本,一个受害者就只用一个样本,此时你可以肯定这个样本不会被保护方案检出(除非这是一个转为此目的开发的平台,例如卡巴斯基的反针对攻击平台),又一次是基于哈希的检测胜出了。
不同的工具要在不同的情况下使用,多层次的保护要比单层保护更有效,不要因为它们不“时髦”就忽略了那些有效的工具。
* 参考来源: Securelist ,Avenger编译,转载请注明来自FreeBuf.COM