造谣太容易!揭开Windows蓝屏事件背后真相
- 信息安全
- 2024-08-16
- 587
揭开Windows蓝屏事件背后真相,造谣太容易
微软支持中心的客服人员表示,目前了解到大部分蓝屏问题都是由于公司电脑安装了三方杀毒软件之后出现的。微软已经确认是相关的杀毒软件更新导致的蓝屏,如果修改驱动文件名称无效,建议用户联系公司的IT部门进行进一步处理。
作者:李欣宜
链接:https://www.zhihu.com/question/662014968/answer/3568920811
来源:知乎
简单来说,就是CrowdStrike最近更新的代码有某个地方没检查nullptr问题就直接推送生产环境了,
虽然这个错误很低级(review + CI/CD上sanitizer + test 可以避免)但绝大多数软件即使有这样不干净(指unsanitized pointer)但问题,一般破坏力不大,
因为很多kernel上的数据和指令本来就没权限读写,程序会自己结束。而作为杀毒软件它又有访问kernel space的特权,
某个地方返回的指针异常为NULL但没检查和处理,强行计算NULL(0) + 某个offset作为地址(实际上是一个被保护的invalid memory),
某种程度上Windows蓝屏是对强制读写这段地址的一种保护吧,不然可能发生更难说的事(比如在读取后强制cast为指令数据执行什么鬼都不认识的东西)
上图来自于X用户Zach Vorhies, 可以看到读取的地址异常的低,绝大多数情况是空指针+offset的数值,另外插嘴多说一句,平时碰到的Windows蓝屏问题很多都来源于nullptr,包括这次也是C++语言+无sanitize处理造成的很典的异常。
https://www.bilibili.com/video/BV1fZ421N76L/?spm_id_from=333.788&vd_source=db9c7fd4ef825ea7af69719cecffed5f