整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
操作系统界,素来流传着一种说法:Linux 比 Windows 安全。
传言并非空缺来风,多种因素促成了这一说法的盛行:
Windows 市场占有率大。与其研究攻击仅占市场不到 2% 的 Linux,黑客直接攻击 Windows 波及范围更广;
Windows-75.89%,Linux-1.98%)
Linux 代码开源。任何人都可以查看代码,因此一般情况下 Bug 无处遁形,而一旦发现,遍布全球的 Linux 开发者便会快速协作解决。
Linux 发行版本众多。Windows 统一的系统环境让黑客在编写恶意代码时可以一步到位,而 Linux 多样化的系统环境难以集中攻击。
Linux 用户权限划分。相较于 Windows 用户默认为管理员权限,Linux 用户大多情况下都是非 root 权限,因此即使被入侵也不影响系统程序。
不过即便如此,Linux 也不是百分百安全:近日,网络安全公司 GRIMM 的研究员在 Linux 内核中发现了存在长达 15 年之久的 3 个 Bug,利用这些漏洞甚至可以获得系统的 root 权限!
3 个 Bug
上周五,GRIMM 安全研究员 Adam Nichols 在其官方博客上披露了 Linux 内核 iSCSI(SCSI 是小型计算机系统接口,而 iSCSI 本质上是 TCP 上的 SCSI)子系统中的 3 个 Bug,具有基本用户权限的本地攻击者可在未打补丁的 Linux 系统上获得 root 权限。
第 1 个:CVE-2021-27365,堆缓冲区溢出
通过将 iSCSI字符串属性设置为大于一页的值,尝试读取后便会触发此漏洞,而该漏洞于 2006 年开发 iSCSI 子系统时引入。可能导致本地提权(LPE)、信息泄漏和拒绝服务(DoS)。
(图中蓝色剪头:没有长度参数,因此肯定有错误)
第 2 个:CVE-2021-27363,内核指针泄漏
该漏洞可用于确定 iscsi_transport 结构的地址。可能导致信息泄漏。
第 3 个:CVE-2021-27364,越界读取
该漏洞通过调用 send_pdu 触发,非特权用户可制作网络链接消息制定驱动程序无法验证的缓冲区大小,从而导致可控的越界读取。可能导致信息泄漏、拒绝服务。
据 Nichols 在博客中所说,以上 Bug 影响许多 Linux 发行版,安全专家在 Red Hat 所有已测试版本和其他发行版本中发现都存在这些漏洞。虽然默认情况下易受攻击的 scsi_transport_iscsi 内核模块不会自动加载,但不排除攻击者针对特定发行版,加载该模块并利用该模块进行提权的可能。
此外,尽管这些 Bug 只能在本地利用,黑客无法远程利用,但 Nichols 还是提醒道,虽然第二和第三个 Bug 影响较小,但由于堆溢出的不确定性,第一个漏洞在可能被用来实现本地 DoS(拒绝服务)攻击的同时,要是配合信息泄露,那么该漏洞就可以进一步用作本地提权,使攻击者从非特权用户升级为 root 用户,这个后果不敢想象。
检查是否受到Bug 影响
Nichols 在博客中还整理了一张流程图以便大家确定是否受到这些 Bug 的影响:
目前这三个 Bug 均已在以下内核版本中进行了修补:5.11.4、5.10.21、5.4.103、4.19.179、4.14.224、4.9.260 和 4.4.260,并且补丁程序已于 3 月 7 日在 Linux 内核中发布(其他已停止支持的内核版本将不会收到本次安全修复)。Linux频繁曝出“陈年 Bug”
对 Linux 颇为关注的开发者应该注意到了,这些年来 Linux 曝出的“陈年 Bug”可不少,以下举例部分:
2009 年,发现可能自 2001 年就存在于网络工作 socket 初始化中的一个“8 岁”Linux 内核 Bug,可使攻击者获得 root 权限,该安全漏洞存在于所有 2.4 和 2.5 系列的内核。
2010 年,Linux Kernel 系统内核的 2.6.36-rc5 预览版修复了一个存在了 14 年之久的古老 Bug。
2014 年,Linux 内核维护者修复了一个有 5 年历史的严重 Bug,此漏洞用于本地权限提升。
2016 年,发现名为 Dirty COW,即脏牛的 Bug,可以破坏私有只读内存映射,2007 年发布的 Linux 内核版本中就已存在此漏洞,拥有长达 9 年的历史。
2017 年,发现可追溯至 2009 年 7 月,即存在长达 7 年的 Bug,影响的 Linux 发行版包括 Red Hat、Debian、Fedora、OpenSUSE 和 Ubuntu。
正如文章开头所提到的那般,Windows 市场占有率高因此“树大招风”,容易引来众多黑客对它进行攻击,但究其本质,这并不表示 Linux 本身就比 Windows 安全,以上那些“陈年 Bug”正印证了这点。或许正是因为使用的人少,因此许多低级 Bug 才无法及时被发现,让这些隐患存在多年,所幸没有酿成大祸。
最后,“Windows 还是 Linux 安全?”可能是一道没有标准答案的问题,即便是 Linux 之父 Linus Torvalds 都曾表示“开源 Linux OS 安全性不可能十全十美”,又遑论仅是使用者的我们?一个操作系统安全与否还是事在人为,不论是闭源的 Windows 还是开源的 Linux,都需要及时更新最新版本,确保漏洞的修复,此外,定期对软件进行测试和漏洞扫描也必不可少。
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有