您现在的位置是:综合 >>正文
内核级漏洞
综合1318人已围观
简介2017年5月,一个叫Shadow Brokers的组织把一份NSA的漏洞利用工具包扔到了网上。里面有个叫EternalBlue的东西,两个月后就被拿去做了WannaCry。全球二十多万台机器被锁死, ...
2017年5月,内核一个叫Shadow Brokers的内核组织把一份NSA的漏洞利用工具包扔到了网上。里面有个叫EternalBlue的内核东西,两个月后就被拿去做了WannaCry。内核全球二十多万台机器被锁死,内核医院挂号系统瘫痪,内核加油站排不了队。内核这事儿的内核根源,是内核一个Windows内核里的缓冲区溢出——代码写得太信任输入数据了,该检查的内核地方没检查。
内核级漏洞跟普通软件漏洞压根不是内核一个量级的东西。浏览器崩了,内核你顶多丢几个没保存的内核标签页。内核崩了,内核整台机器直接蓝屏,内核或者更糟——攻击者拿到Ring 0权限,想干什么干什么。杀毒软件?那是Ring 3跑的用户态程序,内核里的事它根本看不见。
说个具体的。Linux内核的io_uring子系统,2021年前后被频繁爆出提权漏洞。这东西本意是加速异步I/O,结果因为共享内存环的设计太复杂,边界检查出了岔子。CVE-2021-41073,一个本地用户就能通过它拿到root。修复补丁倒是不长,但问题的根子在于:内核开发者也是人,面对几百万行C代码,指针满天飞,内存管理全靠手动,出错几乎是必然的。
我观察到一个挺讽刺的现象。大家天天盯着浏览器沙箱逃逸,觉得那玩意儿危险。可沙箱本身就是靠内核提供的隔离机制在撑着。内核要是漏了,沙箱就是纸糊的墙。Android的Binder驱动出过多少回提权漏洞了?数都数不过来。每次都是补丁追着利用跑,累不累。
为什么内核漏洞这么难防?一个原因是攻击面太大。系统调用几百个,每个都接受用户态传进来的参数。这些参数里只要有一个没验证好,比如整数溢出导致实际分配的内存比预期小,后面就是经典的堆溢出。另一个原因是性能压力。内核开发者不敢随便加锁,加了锁吞吐就掉。于是无锁数据结构流行起来,但无锁编程的正确性证明,学术界都还在吵。
Rust进内核这事,我觉得方向对,但别指望它能解决所有问题。Rust能挡住内存安全类漏洞,可逻辑漏洞呢?权限检查写反了,Rust编译器可管不着。而且现有内核里几千万行C代码,不可能一夜之间重写。Linux 6.1开始合入Rust支持,到现在真正用Rust写的驱动也没几个。生态迁移是以十年为单位的。
普通用户能做什么?说实话,不多。及时打补丁是最实在的。别关自动更新,别用那些停止维护的老系统。企业那边,内核热补丁技术像kpatch、livepatch算是缓解方案,但热补丁本身也可能引入新bug。我见过一个案例,某云厂商热补丁打上去之后,特定型号的网卡直接不工作了。内核这东西,牵一发动全身。
最后说个真事。有个安全研究员跟我聊过,他挖到一个Linux内核的UAF漏洞,写了利用,能稳定提权。提交给厂商,厂商修了。过了三个月,他在另一个子系统里发现了几乎一模一样的模式。同一个错误,换了个地方又犯一遍。内核代码审查的压力太大了,维护者就那么些人,补丁像雪片一样飞过来。这事儿短期内无解。
Tags:
上一篇:堵住漏洞 补齐短板
下一篇:上海数据泄露事件最新
相关文章
dede织梦模板免费下载
综合dede织梦模板免费下载——这事儿得从一次深夜加班说起。凌晨两点,客户突然发来消息,说官网要改版,三天后上线。我打开后台一看,旧模板的代码乱得像团毛线,CSS里还藏着十年前的古董写法。当时脑子里第一个 ...
【综合】
阅读更多理财投资网站哪个好
综合我手机里装了七个理财App,最后留下的只有两个。剩下的那些,不是界面花哨得让人眼花缭乱,就是首页飘着大红K线图,像赌场一样让人心慌。说句实在话,大部分理财网站根本不是给你用的,是给你看的。 真正好用的 ...
【综合】
阅读更多小网站来几个
综合小网站来几个 我电脑里存着十几个书签,全是些没名没姓的小网站,每个都像藏在巷子深处的苍蝇馆子。今天挑几个说说,你尝尝咸淡。 先说一个查古籍的,叫“书格”。界面素得跟白衬衫似的,但里头全是高清扫描的善本 ...
【综合】
阅读更多