5月的第一期阅读推荐,又是我们的“G.O.S.S.I.P与朋友”环节。今天介绍的这篇NDSS 2025论文 A Comprehensive Memory Safety Analysis of Bootloaders 的第一作者王健强在2019年作为G.O.S.S.I.P成员时就设计并实现了一套基于NLP的内存安全漏洞检测系统NLP-Eye
,并启发了后来的Goshawk系统。在今天这篇论文中,他和其他论文作者一起研究了Bootloader这一特殊软件的内存问题:
这篇论文的基本思路就是中国的一句古话——温故而知新。作者首先去调查了此前跟Bootloader相关的CVE,以此作为历史的经验教训,然后去想办法开发漏洞检测工具。所以我们要先看看到底历史上和Bootloader相关的CVE到底有哪些:
作者对收集到的85个CVE进行了分类,通过下图我们可以看到,这些安全漏洞涉及到了非常多 乱七八糟 的功能(你一个Bootloader你去解析图像连接网络干嘛……),可以看到Bootloader这些年来暴露了越来越多的attack vector,这种先污染再治理的思路,下一步是不是又可以考虑引入各种沙盒隔离机制来让Bootloader成为下一个内核或者浏览器?
搞清楚了各种威胁来源,接下来的研究进入到了很四平八稳的阶段,就是想办法去开发一个能够对Bootloader进行模糊测试的fuzzer……由于需要运行Bootloader,所以作者基于kAFL这个框架来实现了针对Bootloader各方面的输入进行模糊测试的一套系统(如下图所示)。当然这个fuzzer也主要只是针对内存破坏漏洞,整个设计看起来没有什么特别的新颖之处。
最后的实验部分,本文的主要贡献就在于找到了一堆内存破坏问题:
不过,这些问题看起来也不是不能用静态分析工具检测,例如下面这个例子:
可是作者表示,现在的静态分析工具不太行:通过和CSA、CodeQL进行对比,他们发现,静态分析工具基本上只能发现个位数的问题,而且一大堆误报,而fuzzer就明显厉害很多:
本文提供了完整的代码,大家可以去看看
https://github.com/wjqsec/bootloader
论文:https://www.ndss-symposium.org/wp-content/uploads/2025-330-paper.pdf
原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2025-05-06 温故而知新
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论