美国军事智库兰德公司网络安全与新兴技术研究人员,Lillian Ablon,在今年7月末举办的黑帽大会中,展示了兰德旗下安全研究团队BUSBY最新的零时差漏洞的研究成果。其在2002年到2016年期间搜集了207个零时差漏洞(被发现后立即被恶意利用的安全漏洞),包括微软(55个)、Linux(39个)、苹果(14个)、甲骨文(11个),以及谷歌(88个)、Mozilla等其他64家公司产品的零时差漏洞。
零时差漏洞的活跃时间比我们认为的时间更久,当然也会产生更长远的影响。Lillian Ablon指出,这些零时差漏洞的潜伏期,最长超过9.53年才被外界发现,最短也要1年半才曝光,零时差漏洞存留时间多数在5.39年到8.84年之间,平均每个零时差漏洞存留6.9年之久,而且她搜集的所有零时差漏洞,仍然存在约79个,占38.2%,已经被发现或公开的零时差漏洞约83个,占40.1%,其中被发现的零时差漏洞中33.3%有提供修复程序。
然而,安全公司或研究人员早期发现零时差漏洞能够针对漏洞进行修复,但零时差漏洞也容易被黑客利用发动攻击,造成数据外泄或入侵内部系统启动其他攻击,如勒索攻击或瘫痪系统,根据Lillian Ablon调查分析指出,大多数零时差漏洞在6到37天内就会被黑客利用,71%的零时差漏洞在一个月内被黑客开发利用,31.44%零时差漏洞在一星期内被利用,仅10%的零时差漏洞超过90天才变成黑客发动攻击的武器。
弄清楚企业内部所有软硬件设备状况,可以减小零时差攻击的损害
Lillian Ablon分析所有零时差漏洞时发现,零时差漏洞分为3种类型——第一种类型包括堆溢出(heap overflow)漏洞,以及栈溢出(stack overflow)漏洞,一半数以上零时差漏洞都属于这种类型,骇客经常利用这两种漏洞来攻击,造成内存运行错误,赛门铁克旗下25款安全产品就出现了堆溢出漏洞,不仅可以破坏被黑电脑里的内存,还可以入侵公司内部网络。
第二类是内存管理失误造成的漏洞(memory mismanagement),这类型漏洞最常出现数据外泄,并造成空指针引用(Null Dereference,空指针引用是一类普遍存在的内存故障,当指针指向无效内存地址时对其引用,有可能产生不可预见的错误,导致软件系统崩溃)问题。今年5月VMware的vstor2驱动程序漏洞就属于之一类型,可以利用程序内的Null Dereference漏洞发动DoS攻击。
第三类是程序设计逻辑错误形成的漏洞,容易导致内存出现紊乱情况(race condition)、认证旁路(authentication bypass)漏洞、权限错误(privilege error),以及对象注入任意代码(object injection)。过去,Liunx开机管理程序曾出现认证旁路漏洞,只需按28次Backspace,可以入侵任何Linux作业系统。
Lillian Ablon表示,207个零时差漏洞中有172个零时差漏洞被黑客利用发动了零时差攻击,而且多数零时差攻击都是在本地和远程发起,仅少数攻击来自客户端。她同时也强调,虚拟主机与防毒软件无法减缓零时差攻击,甚至有7款防毒软件也存在零时差漏洞。
如何更有效抵御零时差攻击呢?Lillian Ablon提出了3项监测零时差漏洞的策略,包括分析仍大量在使用的旧代码,如工控系统、设计能够阻止黑客发现漏洞路径的防御技术,以及系统或软件漏洞已被黑客利用时,需要寻求更好的方式来监测漏洞。
此外,她还认为,防护零时差攻击的重点要放在缓解、隔绝、问责,以及维护健全的基础设施4个方向,例如使用微软提供EMET(增强缓解应急工具包)防护工具(2017年Windows 10秋季更新版中名为Windows Defender Exploit Guard)减缓攻击造成的损害、设备采取物理隔离、定期整理软硬件使用情况,并保持最新版本更新。
最后Lillian Ablon强调,随著物联网概念的兴起,使用越来越多联网设备对于未来防御零时差攻击将面临更大的挑战。