当前位置: 首页 > 科技观察

一个潜伏了54年的bug?谁是“潜世界”最强王者

时间:2023-03-13 20:54:50 科技观察

2021年,瑞典斯德哥尔摩KTH皇家理工学院计算机科学教授PontusJohnson在通用图灵机(UTM)中发现了一个相关漏洞,可以执行任意代码。令人震惊的是,易受攻击的代码已经存在了将近54年——而且没有补丁可用,也没有预料到。幸运的是,这个通用图灵机(UTM)是已故人工智能科学家马文·明斯基(MarvinMinsky)于1967年提出的概念模拟设计,尽管它在计算机领域具有重要的理论意义,但并未真正内置到现实世界的计算机中。但在明斯基提出这种概念模拟设计后的十年间,出现了早期版本的Unix和DOS系统,时至今日,这两种操作系统的“后代”仍在我们身边,其中一些系统也存在多年或甚至几年。数十年的漏洞。以下是近年来发现的10个值得注意的老漏洞:NissanTelematicsControlModuleBasebandVulnerabilityLatency:7年;推出时间:2010年;固定时间:2017年;早在2011年,安全研究员Ralf-PhilippWeinmann就发现了手机基带处理器中的一个漏洞。下面介绍基带攻击,这是一种针对移动设备的威胁。独立于移动操作处理器的基带处理器主要负责将GSM或3G堆栈部署到设备。所有的呼叫和数据首先通过基带,给操作系统处理器必要的处理信息。破坏该基带的攻击者具有巨大的优势,因为该层没有取证工具。可以想象这样一种基带攻击的场景:黑客可以建立一个假的手机信号塔,诱使手机连接到它,然后劫持它的网络连接。手机制造商相对较快地纠正了这个错误,然后它很快就被遗忘了。但有一个问题:手机并不是唯一使用这些芯片的设备。安全公司Eclypsium的首席网络安全研究员JesseMichael表示,本质上,相同的蜂窝基带芯片组被用于NissanLeaf和其他各种车辆的远程信息处理单元。几位研究人员通过对他们从垃圾场得到的汽车进行试验发现了这个漏洞。在汽车领域发现该漏洞之前,它已经在不同的细分市场公开了近7年。由于处于截然不同的细分市场并拥有自己复杂的供应链,没有人意识到汽车容易受到与手机完全相同的攻击。这是一个关于行业孤岛的真实警示故事。Sudo'sBaronSamedit漏洞潜伏期:9年6个月;推出时间:2011年7月;固定时间:2021年1月;sudo命令是任何Unix管理员工具包中必不可少的工具,对于那些能够调用它的人来说,它是一个必不可少的工具。将超级用户权限授予具有正确权限的人。然而,“能力越大,责任越大”,因此在命令周围设置对冲很重要,这样用户就不会在系统中胡作非为。例如,您可以使用-c标志在shell模式下调用sudo,然后您可以执行一系列以超级用户权限执行的shell命令。这种模式可能容易受到缓冲区溢出攻击,在这些命令中插入特殊字符会诱使系统在分配的内存缓冲区之外写入代码,从而可能导致攻击者获得root权限。通常,sudo会在执行前识别这些特殊字符,以防止此类攻击。然而在2011年,sudo意外插入了一个bug,使得缓冲区溢出攻击成为可能,沉寂了将近10年。该缺陷不在sudo命令本身,而在辅助的sudoedit命令中,任何本地用户(普通用户和系统用户、sudo用户和非sudo用户)都可以在无需身份验证(即攻击者不需要知道用户的身份)的情况下利用该漏洞password),利用该漏洞可对普通用户进行任意提权,严重威胁数据的机密性、完整性和系统可用性。受影响的系统包括几乎所有的Unix变体,包括Linux、Solaris和macOS。今天,该漏洞被指定为CVE-2021-3156,严重性评分为7,因此修复它至关重要。LinuxGrub2BootHole漏洞潜伏期:10年;引进时间:2010年;定档时间:2020年7月;当UEFI被引入作为BIOS的替代品时,它曾被认为处于安全的最前沿,其功能旨在抵御在启动操作系统的引导加载程序软件级别运行的攻击。密钥是一个互锁的签名和加密证书链,用于验证每个引导加载程序是否合法,一种称为安全引导的机制。UEFI的根证书由Microsoft签署,Linux发行版将自己的引导加载程序放置在链的更下方,每个都有自己的经过验证的证书。近日,安全研究公司Eclypsium曝光了SecureBoot功能中的一个新漏洞,并将其命名为“BootHole”。它特别存在于SecureBoot的GRUB2文件中,允许攻击者获得对受害者系统的“几乎完全控制”。一旦被成功利用,将允许黑客编写任意程序代码并替换为恶意的bootloader程序,削弱UEFISecureBoo的安全启动验证,让恶意程序侵入计算机。而无论是Linux还是大量的Windows操作系统,都会受到UEFI固件中这个漏洞的影响。LionWiki本地文件包含漏洞潜伏期:11年11个月;引入日期:2008年11月;确定日期:2020年10月;LionWiki是一个用PHP编写的极简主义wiki引擎;与许多流行的维基引擎兼容(例如与底层维基百科引擎不同),LionWiki不使用数据库,而是完全基于文件。由于它的目标是简单,完全基于文件是它的优势之一,但也带来了一个主要的安全漏洞。本质上,特定LionWiki实例下的各种文件是通过相应页面URL中的文件和路径名访问的。这意味着,通过正确构造的URL,您可以遍历托管您的LionWiki实例的服务器的文件系统。有一些URL过滤规则可以阻止这种尝试,但绕过URL过滤也很简单。InfosecInstituteCyber??Range的工程师JuneWerner指出,尽管进行了一些修复尝试,但该漏洞仍然存在很长时间。一些缓解措施于2009年7月首次推出,随后在2012年1月推出了更广泛的缓解措施。然而,尽管实施了这些缓解措施,代码仍容易受到相同类型的攻击。该漏洞在代码中又保留了八年,直到2020年10月以及绕过这些缓解措施的方法被重新发现。在此官方报告之后,开发人员修复了该漏洞。DomainTimeIIman-on-the-side(MOTS)攻击延迟:14年;推出时间:2007年;固定时间:2021年4月;如果同一网络上的两台计算机不能就时间问题达成一致,结果可能很烦人,而且可能很糟糕。时间同步是计算中长期存在的问题,当今最成熟的企业解决方案是DomainTimeII,这是一款广泛部署在Windows、Linux和Solaris上的闭源应用程序。DomainTimeII几乎从一开始就隐藏了一个非常严重的漏洞。有时,或在用户可配置的条件下,软件会向其供应商GreywareAutomationProducts运行的更新服务器发送UDP查询请求。如果服务器回复了一个URL,DomainTimeII将运行一个具有管理员权限的程序来从该URL下载和安装更新。问题?如果恶意行为者设法在Greyware的更新服务器之前回复查询,则攻击者可以发送他自己编造的回复,提示DomainTimeII下载攻击者想要它安装的任何恶意软件。在真正的中间人攻击中,攻击者拦截两个方向;相比之下,DomainTimeII攻击是一种所谓的旁人攻击:攻击者无法拦截来自目标的Response,因此有必要在合法回复之前发送自己伪造的回复。实际上,这意味着攻击者需要已经控制目标本地网络上的计算机才能完成此操作,但这种攻击意味着攻击者可以将他们的入侵升级到本地网络上其他更有价值、更安全的机器。发现该漏洞的安全公司Grimm指出,该漏洞至少可以追溯到该软件的2007版本。LinuxSCSI子系统漏洞延迟:15年;推出时间:2006年;固定时间:2021年3月;如果您喜欢怀旧,您可能还记得SCSI,这是1980年代的数据传输标准,可能是您的第一个硬盘驱动器插入IBMPC或经典Mac的方式。时至今日,SCSI仍在一些环境中使用,而一向追求灵活性和通用性的Linux仍然为有需要的系统提供了一套扩展的SCSI子系统。这些模块可以通过所谓的自动模块加载功能获得,操作系统可以从中获取并在需要时安装所需的系统代码——这在你想将SCSI硬盘挂载到Linux机器上时非常有用,但不要'想找到必要的支持代码。有用,但同样有助于攻击者利用您代码中的漏洞。2021年3月,网络安全咨询公司Grimm发布了在LinuxSCSI代码中发现的多个漏洞。其中一个缓冲区溢出漏洞可能允许普通用户获得root权限,其他漏洞可能会将信息从内核泄漏到用户空间,所有这些漏洞都可能被用来获取机密信息或作为对受影响机器的DoS攻击的一部分。Grimm称这些漏洞可追溯到2006年,是开发代码时普遍存在的编程实践中缺乏安全考虑的症状。WindowsDNSSIGRed漏洞延迟:17年;推出时间:2003年;修复时间:2020年;DNS是Internet中被低估的主干之一,计算机通过该系统从给定URL解析关联的IP地址。DNS是分层的,域名解析请求在DNS金字塔的各层之间上下流动,寻找能够回答“这台电脑在哪里?”这个问题的DNS服务器。正因如此,几乎所有主流操作系统都内置了DNS。2020年,微软披露了自家DNS版本中的一个严重漏洞,该漏洞已在代码中潜伏17年,但没有证据表明该漏洞曾被广泛利用。发现该漏洞的CheckPoint研究人员称为“SIGRed”,是WindowsDNS服务器中的缓冲区溢出漏洞,可由隐藏在DNS数据包签名中的利用代码触发。恶意名称服务器可以响应此类数据包对域名解析请求,绕过大部分安全保护措施,远程访问微软DNS服务器。这种攻击也可以是蠕虫式的,这意味着它可以在没有用户干预的情况下自动传播。PuTTY堆溢出漏洞潜伏期:20年零9个月;引进时间:1999年1月;修复时间:2019年10月;PuTTY是一个免费的开源工具套件,包括串行控制台、终端仿真器和各种网络文件传输应用程序,内置SSH和各种其他加密方案。它最初发布是为了将Unix管理员习惯的系统原生工具集带到Windows和经典的MacOS中,但它的范围已经扩大,现在也广泛用于Unix系统。尽管PuTTY旨在保护网络连接,但事实证明其核心代码存在堆溢出漏洞,这是缓冲区溢出问题的另一种形式,并且可以由太短的SSH密钥触发,导致PuTTY崩溃甚至远程执行代码。.该漏洞作为欧盟EU-FOSSA项目启动的漏洞赏金计划的一部分提交给了HackerOne;它为提交者赢得了3,645美元的奖励,以及来自PuTTY团队的感谢。PuTTT团队指出,该漏洞存在于他们早在1999年就拥有的PuTTY源代码的早期版本中。win32k.sys漏洞潜伏期:23年;引进时间:1996年;维修时间:2019年;2019年在MicrosoftWindows的Win32API中检测到两个重要漏洞。第一个是4月份发现的User-After-Free漏洞,允许程序利用操作系统编码错误访问本应受保护的系统内存;当安全研究人员发现恶意黑客试图在野外使用它来控制计算机时,他们发现了这个漏洞。漏洞。12月发现的另一个漏洞是潜伏在操作系统窗口切换功能中的特权提升漏洞;泄漏。这两个漏洞都起源于早期的Windows操作系统。卡巴斯基高级安全研究员BorisLarin解释说,问题源于WIN32K在WindowsNT4.0中首次亮相时,当时Win32的大部分图形引擎都从用户级移至内核以提高性能。虽然这两个特定的错误已经得到修复,但微软多年前做出的决定产生了更广泛的影响——而且可能会继续下去。多年来,在Windows中发现的内核安全漏洞中有一半以上是由WIN32K组件引起的。PrintDemon漏洞潜伏期:24年;引进时间:1996年;修复时间:2020年5月;打印机是IT行业的普遍痛点,因为种类繁多,而且不是同一家做电脑和操作系统的供应商生产的,用户期望的是“即插即用”。尤其是微软,在其早期阶段努力使用户能够相对容易地安装打印机驱动程序。但最近发现的一个名为“PrintDemon”的错误表明他们在1990年代可能做得太过头了,今天仍在为此付出代价。该漏洞的核心在于三个事实:非管理员用户可以将打印机添加到Windows机器;底层机制使得打印到文件而不是物理打印设备成为可能;Windows上的关键打印服务以SYSTEM权限运行。这意味着,只要做得好,就可以构建“打印机”驱动程序,这些驱动程序可以在文件系统(甚至是特权目录)中的任何位置创建文件(甚至是可执行文件)。多年来,黑客已经设计出大量漏洞来利用这些设计缺陷——事实证明,Stuxnet就是其中之一——但2020年发现的PrintDemon特别糟糕,它的存在是因为微软多年的修复它是更像是一个补丁,而不是整个打印子系统的完整重构。正如Winsider所说,通过对文件系统进行非常细微的更改,您可以实现不属于任何进程的文件复制/写入行为,尤其是在重新启动后。使用精心设计的端口名称,您可以告诉Spooler进程为您将(可移植可执行文件)文件放置在磁盘上的任何位置。研究漏洞时代的意义如果您没有面对这样的列表,您可能不会突然意识到您的计算机可能因为克林顿时代的打印机子系统漏洞而被黑客入侵。了解这些漏洞的存在时间非常重要。Grimm首席漏洞研究员AdamNichols说:“当我们在独立研究工作中发现漏洞时,我们必须做的一件事就是尝试确定该漏洞存在了多长时间。不幸的是,这还没有成为行业标准,好的。根据我的阅读,其他研究人员有时会这样做。加倍努力找出漏洞潜伏的时间是工作之外的工作,但我认为这是研究的重要组成部分工作。”桑迪·克拉克(SandyClark)的研究表明,机器人程序的广泛代码重用会造成大量已知漏洞的攻击面,而长期存在的代码库中潜伏的漏洞最终可能会转化为漏洞利用。这与传统的软件工程教条背道而驰,该教条认为大多数错误会在代码库遇到现实问题和攻击时在代码库的生命周期早期得到修复。但事实证明,熟悉会滋生蔑视!