GREBE-Unveiling Exploitation Potential for Linux Kernel Bugs

GREBE: Unveiling Exploitation Potential for Linux Kernel Bugs 时间:2022 作者:Zhenpeng Lin,Yueqi Chen,Yuhang Wu 会议:SP ABSTRACT​ 最近,动态测试工具显著提升了Linux内核漏洞的发掘速度,这些工具会在挖掘漏洞时自动地生成报告,具体说明Linux系统的error。报告中的error暗示了相应的内核错误的可能的exploitability,因此,许多安全分析员使用(报告中)表现出来的error来推断一个错误的可利用性,从而考虑其exploit开发的优先级。然而,使用报告中的error可能会低估一个错误的可利用性。报告中表现出的error可能取决于该error是如何被触发的。通过不同的路径或在不同的背景下,一个error可能表现出各种错误行为,意味着非常不同的利用潜力。 ​ 此文提出了一个新的内核fuzz技术来找到所有可能的内核漏洞的error的表现。与传统的专注于内核代码覆盖率的内核fuzzing技术不同,我们的fuzzing技术更多的是针对有漏洞的代码片段。为了探索不同触发同一个bug的上下文/路径,文章引入了object-driven内核fuzzing技术。通过新探索的error,安全研究人员可以更好地推断出一个error的可利用性。 ​ 为了评估我们提出的技术的有效性、效率和影响,我们将我们的fuzzing技术作为一个工具GREBE来实现,并将其应用于60个真实世界的Linux内核漏洞。平均来说,GREBE可以为每个内核漏洞表现出2个以上的额外错误行为。对于26个内核错误,GREBE发现了更高的开发潜力。我们向内核供应商报告了其中的一些错误—这些错误的可利用性被错误地评估了,相应的补丁还没有被仔细地应用—导致他们迅速地采用补丁。

阅读全文

Demons in the Shared Kernel--Abstract Resource Attacks Against OS-level Virtualization

Demons in the Shared Kernel: Abstract Resource Attacks Against OS-level Virtualization 时间:2021.11 作者:Nanzi Yang(西电)、Wenbo Shen(浙大) 会议:CCS 对docker的一种Ddos攻击,实现了自动化检测。 ABSTRACT​ 由于其更快的启动速度和更好的资源利用效率,操作系统级虚拟化(OS-level virtualization)已被广泛采用,并已成为云计算的一项基本技术。与硬件虚拟化相比,操作系统级虚拟化利用共享内核设计来达到更高的效率,并在共享内核上运行多个用户空间实例(又称容器)。然而,在本文中,我们揭示了一个新的攻击面,此漏洞是操作系统级虚拟化技术所固有的,会影响到Linux、FreeBSD和Fuchsia。 ​ 产生漏洞的根本原因是,操作系统级虚拟化中的共享内核设计导致容器直接或间接地共享成千上万的内核变量和数据结构。在不利用任何内核漏洞的情况下,非特权容器可以轻易地用尽共享的内核变量和数据结构实例,对其他容器进行DoS攻击。与物理资源相比,这些内核变量或数据结构实例(称为抽象资源)更普遍,但受到的保护不足。 ​ 为了显示限制抽象资源(Abstract Resources)的重要性,我们针对操作系统内核的不同方面进行了抽象资源攻击。结果表明,攻击抽象资源是非常实用和关键的。我们进一步进行了系统分析,以识别Linux内核中易受攻击的抽象资源,成功检测出1010个抽象资源,其中501个可以被动态地重复消耗。我们还在四大云厂商的自部署共享内核容器环境中进行了攻击实验。结果显示,所有环境都容易受到抽象资源的攻击。我们得出结论,限制抽象资源的使用是很难的,并给出了减轻此风险的多种策略。

阅读全文

(技术积累)Symbolic Execution----从思维上理解符号执行

Symbolic Execution:从思维上理解符号执行​ 符号执行作为软件分析、漏洞发掘领域经常出现的技术,国内已经有不少文章总结讨论。但新手直接翻阅学习这些总结性质的文章时碰到的诸如“符号路径约束”、“约束求解”、“执行状态”等专有名词会难以理解,思维逻辑与理论概念不易同轨。本文从国外的一些热门教程入手, 将符号执行从思维上捋一遍, 诠才末学,仅做抛砖引玉之用。 1. 引子:1.0 一个样例​ 从一段经典的代码入手,解释符号执行的核心思路。 ​ 分析目标:对于任意可能的输入组合(a,b),找到使得断言assert语句失败的所有输入。

阅读全文

(论文复现)How Machine Learning Is Solving the Binary Function Similarity Problem

【论文复现】How Machine Learning Is Solving the Binary Function Similarity Problem一、模糊哈希(Fuzzy Hashing)1. Bytes fuzzy hashing——Catalog1 出处: ​ 1. xorpd | FCatalog ​ 2. binary_function_similarity/Models/Catalog1 at main · Cisco-Talos/binary_function_similarity (github.com) “FCatalog allows you to keep a database of all your named functions, and find similarities from this database efficiently.” 前置知识: binary blob:一串bytes; S(a):字节串a的四字截取集合,例如: \mathbf{S(a)}= \{123x,23xy,3xy1\},a=123xy1 \\ \mathbf{S(b)}= \{1111\},b=111111111 \\ Jaccard Similarity:计算两个集合相似性: J(S(a),S(b))=\frac {S(a)\cap S(b)}{S(a)\cup S(b)} minhash:文本相似度比较算法,用于快速估算两个集合的相似度。 ​ Catalog1算法利用minhash,使用哈希近似替代两个S集合,以此来估算其Jaccard系数,从而达到高效率地比较两个集合。

阅读全文

Comparing One with Many — Solving Binary2source Function Matching Under Function Inlining

【论文阅读】Comparing One with Many — Solving Binary2source Function Matching Under Function Inlining一、ABSTRACT为了在函数内联下施行b2s函数匹配,我们提出了一个叫O2NMatcher的方法,通过其生成的Source function Sets (SFSs)作为匹配结果。 我们首先提出了一个模型EOOCJ48来预测内联的位置, 为了训练这个模型,我们利用可编译的开源软件(Open Source Software)生成一个带有标记的调用点(内联或不内联)的数据集,从调用点中提取几个特征,并通过检查不同编译之间的内联相关性来设计一个基于编译器-选项的多标签分类器。 然后,我们使用这个模型来预测不可编译的开源项目,得到带标记的函数调用图。接下来,我们将SFSs的构建视为一个子树生成问题,并设计根节点选择和边缘扩展规则来自动构建SFSs。最后,这些SFSs将被添加到源函数的语料库中,并与有内联的二进制函数进行比较。 我们对OSNMatcher进行了一些实验测试,结果表明我们的方法超过所有state-of-the-art,将结果提升了6%。

阅读全文

How Machine Learning Is Solving the Binary Function Similarity Problem

【论文阅读】How Machine Learning Is Solving the Binary Function Similarity Problem 时间:2022.8 作者:Andrea Marcelli, Mariano Graziano , Xabier Ugarte-Pedrero, Yanick Fratantonio , Mohamad Mansouri and Davide Balzarotti(思科,欧洲电信学院) 会议:usenix 2022 ABSTRACT人们会期望到现在为止,对于二进制相似性问题的研究,其有可能回答一些研究问题,这些问题超出了论文中提出的非常具体的技术,可以推广到整个研究领域。不幸的是,这个目标受到许多挑战,从可重复性问题到研究结果的不透明性,阻碍了研究有意义和有效地进展。 在本文,我们开始着手于对state-of-the-art做这个领域的第一个测试性研究。 首先,我们系统化了现存的研究成果; 我们选定了一些相关方法,这些方法代表了三个不同研究社区最近提出的各种解决方案; 针对现有的方案,我们重构了方法并构建了新的数据集,以便实现更为公平的对比效果。

阅读全文

IFAttn-Binary code similarity analysis based on interpretable features with attention

【论文阅读】IFAttn-Binary code similarity analysis based on interpretable features with attention 时间:2021 作者:Shuai Jianga , Cai Fua , Yekui Qian(华科) 期刊:Computers & Security(中科院三区) 1.ABSTRACT二进制代码相似性分析(Binary code similarity analysis ,BCSA)是一项有意义的软件安全分析技术,包括漏洞挖掘、代码克隆检测和恶意代码检测。 尽管近年来出现了很多基于神经网络的很多BCSA研究成果,仍有一些问题未被解决。首先,大多数方法更聚焦于function pair similarity detection task (FPSDT),而忽略了function search task (FST),后者对漏洞挖掘更为重要。还有,现有方法为了提高FPSDT的准确率使用了一些无法解释的神经网络;最后,大多数现有方法无法抵抗BCSA中的交叉优化和交叉混淆。 为了解决这些问题,我们首次提出了一个结合了可解释特征工程和可学习注意力机制的适应性BCSA架构。我们设计了一个具有适应性的、富有可解释性特征的模型。测试结果表明对于FPSDT和FST的效果比state-of-the-art效果更好。 另外,我们还发现注意机制在功能语义表达方面具有突出的优势。 评估表明我们的方法可以显著提升FST在cross-architecture, cross-optimization, cross-obfuscation and cross-compiler binaries上的表现。

阅读全文