[Solution] Algorithmic Heap Layout Manipulation in the Linux Kernel

IF 1 Q3 SOCIOLOGY Journal of World-Systems Research Pub Date : 2023-02-01 DOI:10.5070/sr33160040
Max Jens Ufer, Daniel Baier
{"title":"[Solution] Algorithmic Heap Layout Manipulation in the Linux Kernel","authors":"Max Jens Ufer, Daniel Baier","doi":"10.5070/sr33160040","DOIUrl":null,"url":null,"abstract":"To evaluate the severity of a security vulnerability a security researcher usually tries to prove its exploitability by writing an actual exploit. In the case of buffer overflows on the heap, a necessary part of this is manipulating the heap layout in a way that creates an exploitable state, usually by placing a vulnerable object adjacent to a target object. This requires manual effort and extensive knowledge of the target. With a target as complex as the Linux kernel, this problem becomes highly non-trivial. At the current time, there has been little research in terms of employing algorithmic solutions for this. In this work, we present Kernel-SIEVE, a framework for evaluating heap layout manipulation algorithms that target the SLAB/SLUB allocator in the Linux kernel. Inspired by previous work that targets user-space allocators [34–36] it provides an interface for triggering allocations/deallocations in the kernel and contains a feedback loop that returns the resulting distance of two target objects. With this, we create the (to our knowledge) first performance benchmarks for heap layout manipulation algorithms in the Linux kernel. We present and evaluate two algorithms: A pseudo-random search, whose performance serves as a baseline, and KEvoHeap, a genetic algorithm based on Heelan’s EvoHeap [34,36]. We show that KEvoHeap is successful at creating the desired heap layout in all test cases and also surpasses the user-space performance benchmarks of EvoHeap. Finally, we discuss the challenges of applying these kinds of algorithms in real-world scenarios and weigh different possible approaches to tackle the problems that arise. Our research results are publicly available on GitHub [18].","PeriodicalId":36882,"journal":{"name":"Journal of World-Systems Research","volume":"172 1","pages":""},"PeriodicalIF":1.0000,"publicationDate":"2023-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of World-Systems Research","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.5070/sr33160040","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"SOCIOLOGY","Score":null,"Total":0}
引用次数: 0

Abstract

To evaluate the severity of a security vulnerability a security researcher usually tries to prove its exploitability by writing an actual exploit. In the case of buffer overflows on the heap, a necessary part of this is manipulating the heap layout in a way that creates an exploitable state, usually by placing a vulnerable object adjacent to a target object. This requires manual effort and extensive knowledge of the target. With a target as complex as the Linux kernel, this problem becomes highly non-trivial. At the current time, there has been little research in terms of employing algorithmic solutions for this. In this work, we present Kernel-SIEVE, a framework for evaluating heap layout manipulation algorithms that target the SLAB/SLUB allocator in the Linux kernel. Inspired by previous work that targets user-space allocators [34–36] it provides an interface for triggering allocations/deallocations in the kernel and contains a feedback loop that returns the resulting distance of two target objects. With this, we create the (to our knowledge) first performance benchmarks for heap layout manipulation algorithms in the Linux kernel. We present and evaluate two algorithms: A pseudo-random search, whose performance serves as a baseline, and KEvoHeap, a genetic algorithm based on Heelan’s EvoHeap [34,36]. We show that KEvoHeap is successful at creating the desired heap layout in all test cases and also surpasses the user-space performance benchmarks of EvoHeap. Finally, we discuss the challenges of applying these kinds of algorithms in real-world scenarios and weigh different possible approaches to tackle the problems that arise. Our research results are publicly available on GitHub [18].
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
[解决方案]Linux内核中的算法堆布局操作
为了评估安全漏洞的严重性,安全研究人员通常试图通过编写实际的漏洞来证明其可利用性。在堆上缓冲区溢出的情况下,其中一个必要部分是以一种创建可利用状态的方式操纵堆布局,通常是通过将易受攻击的对象放置在目标对象附近。这需要手工工作和对目标的广泛了解。对于像Linux内核这样复杂的目标,这个问题变得非常重要。目前,在使用算法解决这一问题方面的研究很少。在这项工作中,我们提出了kernel - sieve,这是一个框架,用于评估针对Linux内核中的SLAB/SLUB分配器的堆布局操作算法。受先前针对用户空间分配器的工作的启发[34-36],它提供了一个在内核中触发分配/释放的接口,并包含一个返回两个目标对象的最终距离的反馈循环。据此,我们创建了(据我们所知)Linux内核中堆布局操作算法的第一个性能基准。我们提出并评估了两种算法:伪随机搜索,其性能作为基准;KEvoHeap,一种基于Heelan的EvoHeap的遗传算法[34,36]。我们表明,在所有测试用例中,KEvoHeap都成功地创建了所需的堆布局,并且还超过了EvoHeap的用户空间性能基准。最后,我们讨论了在现实场景中应用这些算法所面临的挑战,并权衡了解决这些问题的不同可能方法。我们的研究成果在GitHub上是公开的[18]。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
Journal of World-Systems Research
Journal of World-Systems Research Social Sciences-Political Science and International Relations
CiteScore
1.80
自引率
0.00%
发文量
24
审稿时长
30 weeks
期刊最新文献
Cancelling Apocalypse by Risking to Envision Analyzing Global Commodity Chains and Social Reproduction Weathering the Crisis Europe in a State of Denial Travesty of “Anti-Imperialism"
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1