[2023.05.06] [NDSS 2023] DARWIN: Survival of the Fittest Fuzzing Mutators

Source: https://www.ndss-symposium.org/ndss-paper/darwin-survival-of-the-fittest-fuzzing-mutators/ Authors: Patrick Jauernig, Domagoj Jakobovic, Stjepan Picek, Emmanuel Stapf, and Ahmad-Reza Sadeghi. Download Note: https://jbox.sjtu.edu.cn/l/41v4gr Contributor: lt Overview 模糊测试是一种被工业界广泛使用的自动化软件测试技术,其主流类别之一是基于变异的模糊测试。虽然学术界多年来一直在研究基于变异的模糊测试,但算法在模糊测试器中的相互作用非常复杂,可能与随机性一起导致不可预测的结果。大多数优化模糊测试的方法聚焦于种子的能量分配。但是,真实世界的结果(比如谷歌的FuzzBench)表明,这些方法在实践中并没有实质性的性能提升。另一种改进模糊测试的方法是优化种子的变异,但它存在两个问题:第一,缺乏真实世界的性能提升;第二,有太多用户控制的参数,其配置需要与目标程序相关的专业知识。这让“实现可度量的改进”成为了一个具有挑战性的问题。 本文提出了DARWIN,一个基于AFL的新变异器。它不需要引入额外的用户配置参数,而且可以在真实世界中改进模糊测试的效率。DARWIN采用进化策略(Evolution Strategy,ES)系统地优化并选择变异操作的概率分布(适者生存)。 在覆盖率实验(FuzzBench)中,DARWIN显著地优于最新的变异器(应该是MOPT)与AFL。 在漏洞挖掘实验(MAGMA)中,DARWIN最快地找出了21个漏洞的15个漏洞。 在漏洞挖掘实验(widely-used real-world applications)中,DARWIN找到了20个unique bug(1个新漏洞),比AFL多66%。

[2023.04.28][ISCA 2023] ISA-grid: Architecture of Fine-grained Privilege Control for Instructions and Registers

Authors: Shulin Fan Institute of Parallel and Distributed Systems (IPADS), Shanghai Jiao Tong University Download Note: https://jbox.sjtu.edu.cn/l/M0kend Contributor: ydh 目前存在的隔离系统大多数都关注于内存隔离而忽略指令和寄存器隔离(ISA resources)。已有的一些工作表明滥用这些ISA资源会导致严重的安全问题,例如滥用x86的CR3寄存器会打破内存隔离的特性。目前的硬件对ISA的隔离的粒度非常的粗糙,如ARM Cortex A53只提供4个异常级别(EL0 – EL3),EL1(kernel mode)中控制了上百个指令和寄存器。这篇文章提出了ISA-grid,一个硬件扩展,允许软件创建多个ISA域,每个域访问指令和寄存器有不同的权限。

[2023.04.07] [Security 2023] Guarding Serverless Applications with Kalium

作者:Deepak Sirone Jegan, Liang Wang, Siddhant Bhagat, Michael Swift 单位:University of Wisconsin-Madison, Princeton University, Microsoft, University of Wisconsin-Madison 会议:Security 2023 链接:https://www.usenix.org/conference/usenixsecurity23/presentation/jegan 笔记链接:https://jbox.sjtu.edu.cn/l/U1pG7d 概述 Serverless计算作为一种新兴的应用范式受到了越来越多的关注。然而传统web应用程序的安全工具由于其分布式特性而不能轻松地移植到Serverless计算中,现有的Serverless安全解决方案侧重于强制执行用户指定的信息流策略,而这些策略无法检测应用程序控制流路径中函数顺序的操作。在本文中,我们提出了Kalium,这是一个可扩展的安全框架,它利用本地函数状态和全局应用程序状态来强制Serverless应用程序中的控制流完整性(CFI)。我们使用真实的开源应用程序评估Kalium的性能开销和安全性。我们的结果表明,Kalium以相对较低的性能开销减轻了几种类型的攻击,并且优于最先进的Serverless信息流保护系统。 以前的工作利用信息流控制(IFC)来解决Serverless应用中的数据保隐私性问题。IFC技术简单来说就是对数据的传递作约束,利用格的概念,构建偏序关系,使得数据只能单向传播。然而,基于IFC的技术还没有在Serverless应用的背景下被探索,即防止未经授权的用户对存储的数据进行修改。现有的信息流控制系统并没有强制执行Serverless应用中各项功能的预定执行顺序,违反这一规定会导致整个应用不安全,并可能允许对手修改外部存储的数据。例如,攻击者可能会绕过认证函数,直接调用对数据存储有写入权限的函数。 本文希望用我们的CFI保护技术来补充基于IFC的方法。可以利用Serverless应用程序的几种常见设计模式来提高Serverless的安全性:(1)租户需要将函数产生的数据外化到其他服务中供以后使用,以避免因Serverless函数的无状态性质而导致的数据丢失。这种外部化行为可以被监控并用于异常检测。(2) 由于复杂的应用被分解为具有相对简单逻辑的专用任务函数,因此有可能对每个函数单独建模,并构建应用的全局视图。(3) 应用的分解使其更容易为不同的组件执行定制的策略,从而促进更灵活和高效的安全监控。 受上述见解的启发,本文设计了一个新颖的Serverless安全框架Kalium。Kalium是一个可扩展的安全框架,它利用本地函数状态和全局应用状态来强制执行Serverless应用的控制流完整性(CFI)。Kalium的目标是解决Serverless数据完整性的问题,即防止未经授权的用户修改存储在外部服务中的数据。 Kalium的主要贡献有: 设计并开源实现了一个灵活、可扩展的Serverless安全框架Kalium,该框架允许在Serverless应用中进行控制流保护,通过将加密方法部署到容器运行时来实现一种新型的加密流量拦截技术。 确定Serverless在控制流监控方面的具体挑战,并设计控制流建模和执行机制,以跟踪跨服务的控制流。 对现有工作的性能开销进行评估和比较。 本文使用真实的开源应用评估了Kalium的性能开销和安全性,结果显示Kalium可以缓解多种攻击,且性能开销相对较低,并且优于现有的无服务器信息流保护系统。

[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检测提供了新的思路。