[2023.03.03][NDSS2023]Assessing the Impact of Interface Vulnerabilities in Compartmentalized Software

Source: https://arxiv.org/pdf/2212.12904.pdf Authors: Hugo Lefeuvre, Vlad-Andrei B ̆adoiu, Yi Chien, Felipe Huici , Nathan Dautenhahn, Pierre Olivier Download Note: https://jbox.sjtu.edu.cn/l/u1xSvc Contributor: fy Overview 计算机安全设计通常遵循最小特权原则,确保系统中的每个信任单元只能访问它履行职责真正需要的内容,由此主动抵御一些未知的攻击。隔离机制就是很典型的例子,将不安全、不受信任或高风险组件与可信的、高安全级别的组件分离,近年来隔离机制的工作趋向于细粒度,甚至代码函数/块级别。 但将应用划分、隔离后,应用的不同部分之间在交互时的控制和数据依赖关系,会在interface引入新的漏洞,例如混淆代理攻击、Iago攻击等,设计者在设计时忽略了interface上的不可信预设。本文作者归类整理了这些interface上的攻击及现有的对此类漏洞的定位工作,并且设计了一种in-memory的ConfFuzz,以检测来自interface双边的威胁。

[2022.12.09] [OSDI 2022] CAP-VMs: Capability-Based Isolation and Sharing in the Cloud

Source: https://www.usenix.org/conference/osdi22/presentation/sartakov Authors: Vasily A. Sartakov; Lluís Vilanova; David Eyers; Takahiro Shinagawa; Peter Pietzuch Affilication: Imperial College London; University of Otago; The University of Tokyo Download Note: https://jbox.sjtu.edu.cn/l/x1thXO Contributor: pdh Overview 本文主要解决现有云计算栈的TCB大,同时只能按照页力度进行数据的共享和传递,跨VM之间的通信低效的问题。传统方法会使用MMU来对组件之间进行强制隔离,TCB过大等问题也是由这一方法带来的。本文利用即将推出的具有硬件支持内存功能的CPU提出了解决方案,通过对硬件的修改,提供一个动态的细粒度内存划分机制,来支持机密计算。这里作者复用了CHERI的解决方案,利用CHERI构造了cVM,这是一种新的类似VM的抽象。cVM可以安全的共享一个虚拟地址空间,每个VM只能访问自己的内存。同时cVM能够(1)在不同cVM之间共享缓冲区的异步读写接口;以及(2)在cVM之间转移控制的调用接口。基于这两个功能原语来构建更有效的跨cVM通信表达机制。实现使用的是CHERI RISC-V功能。 总结一下,本文主要有三个贡献: 通过CHERI的Capabilities机制实现强隔离。多个cVM通过capability共享单个虚拟地址空间,每个cVM都被一对默认的capability沙盒化,它们将cVM中所有指令的访问限制在自己的内存边界中; 利用LibOS来定制虚拟机内部的操作系统。cVM自己包含一块小的TCB,来减少对外部云堆栈的依赖,同时提供POSIX标准的兼容。在LibOS中,每个cVM实现了自己命名空间中的文件系统、虚拟设备、密码学IO密钥等,只有底层资源如线程和IO设备操作才会通过外部OS kernel实现共享; 高效的数据共享原语。cVM提供了底层原语,用来在不用泄露应用层代码给capability的前提下实现cVM之间的数据共享:(1)CP_File API允许应用程序组件通过异步读/写接口共享任意缓冲区;(2)CP_Call API在cVM之间传递控制,例如可以实现cVM之间的同步机制;(3)CP_Stream API提供了cVM之间使用一个内存副本来进行面向数据流的数据交换。 本文在CHERI RISC-V64架构上实现cvm,可在支持CHERI的FPGA硬件和多核RISC-V硬件上执行。评估表明,cVM提供了一个实用的隔离抽象和高效的数据共享: 使用CP_Stream API进行cVM间通信,与传统的Socket接口相比,Redis的延迟减少了54%,标准偏差减少了2.1×。当隔离基于python的服务的加密组件时,与单片的baseline相比,cVM引入了最多12%的开销。

[2022.10.14][ISCA 2020] Nested Enclave: Supporting Fine-grained Hierarchical Isolation with SGX

Source: https://ieeexplore.ieee.org/document/9138984 Authors: Joongun Park, Naegyeong Kang, Taehoon Kim, Youngjin Kwon, Jaehyuk Huh Download Note: Contributor: cyp Overview 现在Intel SGX的局限性就是monolithic的Enclave设计,Enclave中所有的代码都有相同的权限,并没有一个比较等级分明的权限等级。在Enclave里面提供权限隔离会使得低权限的用户代码无法获取到高权限等级的数据,可以保护高权限等级的数据不会被低权限的漏洞代码所窃取。 本文把MLS(mutil-level security)的概念应用到TEE上,提出了Nested Enclave。 本文贡献: 提出了enclave新的模型,给原本的enclave增加了一些指令,使其支持权限隔离。 通过实验展示,可以通过修改比较少的代码增加该扩展 通过case studies可以论证nested enclave的高效性和安全性。

[2022.04.13] [CCS 2017] Directed Greybox Fuzzing

Source: https://dl.acm.org/doi/abs/10.1145/3133956.3134020 Authors: Marcel Böhme; Van-Thuan Pham; Manh-Dung Nguyen; Abhik Roychoudhury Download Note: https://jbox.sjtu.edu.cn/l/f1PAWf Contributor: lt Overview Question:传统的灰盒模糊测试专注于覆盖率,不具备导向性。覆盖率对每段代码一视同仁,无论新发现的边是否触发crash,它对覆盖率的贡献都是相等的。但存在漏洞的代码段比例很小,这说明,传统的灰盒模糊测试做了很多无用功,比如贡献了覆盖率但没有贡献crash的测试用例所消耗的计算资源。 Answer:AFLGo(DGF的开山之作)面向被测程序的目标点,而非覆盖所有的执行路径;它通过基于模拟退火的能量调度方案实现导向性。 Experiment 比较对象:非导向型的灰盒模糊测试、基于符号执行的导向型白盒模糊测试(DWF)。 应用场景:补丁测试、连续测试、crash复现。 小白鼠:binutils、diffutils、LibXML2、LibMing;BugRedux的benchmark。 Result AFLGo在补丁测试、crash复现上优于非导向型的灰盒模糊测试、基于符号执行的DWF。 17个CVE

[2022.10.21] [S&P 2022] BEACON: Directed Grey-Box Fuzzing with Provable Path Pruning

Source: https://ieeexplore.ieee.org/abstract/document/9833751 Authors: Heqing Huang; Yiyuan Guo; Qingkai Shi; Peisen Yao; Rongxin Wu; Charles Zhang Download Note: https://jbox.sjtu.edu.cn/l/j1GAAq Contributor: lt Overview 缘起 从测试用例的占比来看,导向型灰盒模糊测试所生成的“有效”测试用例,占比极低,即,绝大部分测试用例的执行路径无法抵达目标点。 剪去某些“无效”测试用例,可以显著地提高导向型灰盒模糊测试的效率。 方法:通过静态分析生成一些前置条件,使得无法抵达目标点的测试用例及时地在前置条件处结束运行。 实验:与 AFL, AFL++, Mopt, AFLGo, and Hawkeye 相比,评估 BEACON 的性能(速度和“剪枝”比例);多因素的消融实验;分析了 BEACON 的插桩开销。 Observation:从测试用例的占比来看,导向型灰盒模糊测试所生成的“有效”测试用例,占比极低,即,绝大部分测试用例的执行路径无法抵达目标点。剪去某些“无效”测试用例,可以显著地提高导向型灰盒模糊测试的效率。 Methodology:通过静态分析生成一些前置条件,使得无法抵达目标点的测试用例及时地在前置条件处结束运行。 Experiment:与 AFL, AFL++, Mopt, AFLGo, and Hawkeye 相比,评估 BEACON 的性能(速度和“剪枝”比例);多因素的消融实验;分析了 BEACON 的插桩开销。

[2023.02.10] [NDSS 2021] JMPscare: Introspection for Binary-Only

Source: https://www.ndss-symposium.org/ndss-paper/auto-draft-154/ Authors:Dominik Maier, Lukas Seidel Note: https://jbox.sjtu.edu.cn/l/919eOR Contributer: lt Overview 研究者为了(模糊)测试某个目标程序,需要花费数小时甚至数天添加harness(若将被测程序比作一匹马,被测程序的harness则是马鞍)。研究者运行种子队列,观察测试效果。但研究者关于被测程序的的理解对模糊测试器帮助不大,因为模糊测试的行为相当于一个黑盒。为了覆盖未被执行过的边,JMPscare让研究者发现模糊测试过程的瓶颈,并克服它们。JMPscare可以高效地分析数千个queue entry(种子队列的种子数),定位瓶颈。这使得人机交互可以提升模糊测试器、变异器和harness的性能。在ARM的固件上,JMPscare进行了评估。实验表明,JMPscare可以有效地提高模糊测试的覆盖率。

[2022.06.08] [ESEC/FSE 2020] Object Detection for Graphical User Interface: Old Fashioned or Deep Learning or a Combination?

Source: https://doi.org/10.1145/3368089.3409691 Authors: Jieshan Chen, Mulong Xie, Zhenchang Xing, Chunyang Chen, Xiwei Xu, Liming Zhu Download Note: https://jbox.sjtu.edu.cn/l/H1d8nr Contributor: zyt Overview Android应用的UI检测工作对于前端代码自动生成,Android自动化测试等软件工程任务有重要的应用价值,现有的UI检测工具大多基于计算机视觉领域中目标检测的研究成果,包含传统图像方法(Canny边缘检测等)以及深度学习方法。但UI检测与传统的目标检测有很多特征上的差异,例如:一个UI元素中往往混合着图标、图片、文字等信息,而它们必须要作为一个整体被识别出来;UI检测对包围盒的精度要求很高,而传统的目标检测则对精度要求相对较低。现有的工作并未将这些因素纳入考量,因此检测结果较差。 本文针对这种现象,提出了一种新的UI检测方法,其采用传统图像方法,利用Android UI的图像特征,通过区块划分的方式确定UI的范围,并利用ResNet50网络进行UI的分类。通过在25000个GUI图像上进行对比测试,证明了该方法在文本UI和非文本UI上的F1-Score都优于之前的方法,为Android UI检测提供了新的思路。

[2022.11.25][S&P 2021]Android Custom Permissions Demystified From Privilege Escalation to Design Shortcomings

Source: https://ieeexplore.ieee.org/document/9519385 Authors: Rui Li, Wenrui Diao, Zhou Li, Jianqi Du, Shanqing Guo Download Note: https://jbox.sjtu.edu.cn/l/D1AmXQ Contributor: zyt Overview 本文对Android的自定义权限机制进行了系统性的研究,发现了由于权限机制设计的缺陷,当一些特定行为触发时,会导致权限提升的漏洞,使得恶意应用程序可以在未经用户同意的情况下获得危险的系统权限,并进一步访问未经授权的平台资源。为了全面地测试出与Android自定义权限机制有关的漏洞,作者设计了一个模糊测试工具CuPerFuzzer,用于探测哪些特定指令序列(包含自定义权限设定、修改,操作系统更新等)能够导致权限提升漏洞。实验结果表明,CuPerFuzzer发现了2384个有效测试用例,以及30条能触发权限提升漏洞的关键路径。通过对关键路径的总结,作者发现了Android权限框架中的几个设计缺陷,包含悬空的自定义权限、不一致的权限-组映射、自定义权限提升和不一致的权限定义,对应了四个高危CVE。

[2022.07.20][S&P 2022]Augury: Using Data Memory-Dependent Prefetchers to Leak Data at Rest

Source: https://www.cs.tau.ac.il/~mad/publications/sp2022-augury.pdf Authors: Vicarte J S, Flanders M Download Note: https://jbox.sjtu.edu.cn/l/S19GoE Contributor: fy 本文主要通过利用瞬态执行漏洞构建微架构侧通道攻击,泄露内存中的不依赖投机执行的数据(data at rest)。 大部分微架构侧通道攻击只能在运行时泄露数据(data in use),通过利用CPU中的微架构,比如预测执行时的架构寄存器,数据被读入这样的寄存器,由一条指令以操作数相关的方式影响了硬件的使用情况,通过侧通道泄露。可以通过常量时间编程技术来抵御。 本文则针对更广泛的情况,也就是不会依赖投机执行的数据。这种提升是由于CPU增加了更多的微架构,其中一种是Data Memory-dependent prefetcher。DMP又被称作间接内存prefetcher,位于内存系统中,被设计用来预取不规则的地址模式。会根据memory中的值,例如指针解引用等,直接取到相应值存入cache中。由于秘密数据只在cache中,没有进入CPU core,常量时间编程技术对其无效。利用这一微架构可对内存发起越界读取(平均准确率为92.0%),阻碍投机负载硬化、通过Prime+Probe检索泄露地址和破坏ASLR等攻击。

[2022.11.18] [CCS 2022] SymLM: Predicting Function Names in Stripped Binaries via Context-Sensitive Execution-Aware Code Embeddings

作者:Xin Jin, Kexin Pei, Jun Yeon Won, Zhiqiang Lin 单位:The Ohio State University, Columbia University 出处:CCS 2022 原文:https://dl.acm.org/doi/pdf/10.1145/3548606.3560612 Contributor: FRH 笔记:https://jbox.sjtu.edu.cn/l/h14FR3 预测被去除符号信息的二进制文件(stripped binary)中的函数名对许多具体的安全应用都有帮助,包括恶意软件分析、漏洞识别、二进制代码加固等。作为具体的例子,Mandiant等安全公司投入大量资源开发各种逆向工具用于符号恢复、函数标注、二进制代码匹配等,从而帮助开发人员更高效地分析恶意软件的功能,并进一步追溯其来源。然而,构建有意义的函数名是非常有挑战的任务。函数名提供了函数行为的高层次总结,预测函数名需要理解函数的具体操作,并将其组合、映射到自然语言中。然而,不同的编译器方言(idioms)、优化、混淆以及不同操作系统的ABIs、不同架构的硬件规格导致相同语义的代码存在多样的二进制表示,为预测带来困难。这篇文章中,作者提出SYMLM(Symbol name prediction and binary Language Modeling)这一框架,利用神经网络技术,通过对调用上下文和指令的联合建模来理解函数语义,最终实现预测。作者在27个流行开源项目(1,431,169个函数)上针对4种不同的架构(x64、x86、ARM和MIPS)、4种优化(O0-O3)、4种混淆进行实验。SYMLM相较于SOTA工具在精度、召回率和F1-score上分别有15.4%、59.6%和35.0%的提升。同时,作者的消融实验证明其框架各个组件的必要性。最后,作者进行案例分析,进一步证明了SYMLM可以用于分析实际的固件。