Linux 又曝出一个 15 年的“陈年 Bug”,Linux 真的安全吗?

整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

操作系统界,素来流传着一种说法:Linux 比 Windows 安全

传言并非空缺来风,多种因素促成了这一说法的盛行:

  • Windows 市场占有率大。与其研究攻击仅占市场不到 2% 的 Linux,黑客直接攻击 Windows 波及范围更广;

(图片来自 statcounter,最新 2 月份桌面操作系统市场占比:

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,都需要及时更新最新版本,确保漏洞的修复,此外,定期对软件进行测试和漏洞扫描也必不可少。

对此,你有什么看法吗?欢迎评论区留言!

参考链接:

https://blog.grimm-co.com/2021/03/new-old-bugs-in-linux-kernel.html

https://www.bleepingcomputer.com/news/security/15-year-old-linux-kernel-bugs-let-attackers-gain-root-privileges/

预约《大咖来了》直播,赢纪念版卫衣以及保温杯等礼品,在直播间精选留言提问题,若问题被采纳,将直接赠送马克杯!先到先得!

☞腾讯、百度等十余家一线大厂吃反垄断罚单;美国联邦法院解除对小米禁制令;何小鹏怒怼马斯克 | 极客头条☞迷惑行为赏析:把 jpg 图片加密后卖了 247 万☞被“钱”困住的开源开发者们!
☞蚂蚁集团换帅!胡晓明辞任 CEO

暗藏 15 年,Linux 惊曝 3 大 Bug 直取 root 权限!相关推荐

  1. Windows、Linux 纷纷被爆漏洞,黑客可直取 root 权限!

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 无论是开源还是闭源,没有绝对安全的操作系统. 一夕间,多款操作系统被爆存在安全漏洞,其中包括开发者最为常用的 Windows 和 Linu ...

  2. Linux下普通用户使用强制位获取root权限

    查找存在强制位的文件 find / -perm -4000 2>/dev/null | xargs s -la 脚本编译 编写一个C脚本,内容如下: int main(void) {setuid ...

  3. Linux系统下在普通用户如何使用root权限

    在Linux系统下,以普通用户身份登录之后,可以按照以下步骤使用下root权限: 在普通用户下登录Linux:如果是XX:~$,则表明当前是普通用户 输入如下代码: XX:~$ sudo passwd ...

  4. 微信惊现超级大Bug:试过的人都哭了...

    程序猿(微信号:imkuqin) 猿妹 整编 素材综合自:知乎.网络等 忽然之间,一段神秘"代码"刷屏微信,9月25日下午,有网友爆料,安卓版微信发送"双数字+15个句号 ...

  5. linux visudo配置sudoers:免密码使用root权限

    %zxl ALL=(ALL) NOPASSWD: ALL

  6. linux下添加用户并且让用户获得root权限

    1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 Changing pass ...

  7. Linux - 新建用户教程(新增一个具有root权限的新用户)

    1)首先执行如下命令新建个 hangge 用户. useradd hangge (2)接着执行下面命令对其设置密码 passwd hangge (3)将查看 /etc/sudoers 文件权限,如果是 ...

  8. linux下添加新用户,并赋予root权限

    1.useradd  -d   /usr/xxx   -m  xxx 2.cd /usr/xxx 3. 更改密码    passwd xxx 4.  赋予权限    vim   /etc/sudoer ...

  9. 怎样在linux更改文件权限设置密码,Linux 配置Hadoop的方法 (修改用户Root权限,设置root密码)...

    1.下载JDK 到官网去下载. tar  -zxf  jdkXXXX.tar.gz 解压到指定的文件夹.最好是进入到该文件夹下,运行该命令 . 2.配置JDK的环境变量. 运行   vim   ~/. ...

最新文章

  1. 拳皇重生服务器维护,《拳皇97 OL》3月24日更新维护公告
  2. 《代码整洁之道》阅读笔记
  3. java datainputstream_Java DataInputStream readUnsignedByte()方法
  4. 围成一圈的排列组合问题_分班必考知识点!小学奥数之排列组合问题
  5. Open***+ldap配置过程
  6. 24.Yii 组件行为
  7. 凤凰机器人猜成语答案_看图猜成语:一只手上拿着绳子,旁边有个起吊机
  8. HCIE大师之路(二)——IPSec Over GRE综合实验
  9. C语言数字图像处理---1.6图像亮度对比度调节
  10. const char* std::string CString 之间的转换
  11. 线缆干扰编码器输出结果,双绞线引起的干扰编码器问题
  12. SpringBoot中@Pattern注解对时间格式校验
  13. 【微信小程序】设置画布字体
  14. 史上最全的NB-IoT知识,每个通信人都应该了解的
  15. 基于watermark.js给图片添加水印
  16. SpringBoot实现二维码生成
  17. 看见“信任”,可信计算史上最全解析
  18. matlab dim是什么意思,哪位大神给我解释下这两句程序是什么意思
  19. 海思3559万能平台搭建:OSD功能的优化
  20. Hive基于搜狗搜索的用户日志行为分析

热门文章

  1. 深度学习之卷积、全连接、反卷积等
  2. 【分享】用东野圭吾的方式说爱你
  3. apache的server-status如何分析的技术说明
  4. linux svn 搭建
  5. [UI]实用案例--Shape绘制实用圆圈
  6. BZOJ3642 : [CEOI 2014] Cake
  7. 数值变量值相等性的判断
  8. C#操作XML方法详解
  9. csdn图片排版技巧
  10. 配置Da-Faster 踩坑过程