Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

BIGMAC: Fine-Grained Policy Analysis of Android Firmware

作者:Grant Hernandez1, Dave (Jing) Tian2, Anurag Swarnim Yadav1, Byron J. Williams1, and Kevin R. B. Butler1

单位:1Florida Institute for Cyber Security (FICS) Research, University of Florida;2Purdue University, West Lafayette, IN, USA

会议:USENIX Security‘ 20

链接:https://www.usenix.org/system/files/sec20-hernandez.pdf

简介

作者开发了一个细粒度的访问控制分析的框架,静态提取Android固件的信息,构建运行中系统的安全状态。作者在Samsung和Pixel的四个版本的Android固件上运行,结果可以恢复到高达74.7%的进程凭证,并且对文件系统的DAC和MAC信息恢复的准确性超过98%。

作者对Samsung S8 +和LG G7固件的评估揭示了多个策略问题,包括LG上的不受信任的应用程序能够与内核监视服务进行通信,Samsung S8+允许从不受信任的应用程序到某些root进程的IPC,至少有24个具有CAP_SYS_ADMIN capability的进程。

Shattered Chain of Trust: Understanding Security Risks in Cross-Cloud IoT Access Delegation

作者: Bin Yuan, Yan Jia, Luyi Xing, Dongfang Zhao, XiaoFeng Wang, Deqing Zou, Hai Jin, Yuqing Zhang

单位:Huazhong Univ. of Sci. & Tech. , Indiana University Bloomington, National Engineering Research Center for Big Data Technology and System, Cluster and Grid Computing Lab, Services Computing Technology and System Lab, Shenzhen Huazhong University of Science and Technology Research Institute, Xidian University, National Computer Network Intrusion Protection Center, University of Chinese Academy of Sciences

会议:Usenix Security 2020

链接: https://www.usenix.org/system/files/sec20-yuan.pdf

一般情况下,IoT设备在供应商指定的云平台下进行管理,设备和用户也可以通过云来进行连接交互。

目前,一些主流的IoT云平台还支持跨供应商的设备访问管理, 例如Philips和SmartThings云支持委派设备访问另一个云(Google Home),这样用户就可以通过Google Home来管理来自不同供应商的多种设备。

作者发现在缺少标准化的IoT委派协议的情况下,IoT云委派机制存在普遍的安全缺陷。本文系统化的分析了IoT访问授权委派机制的安全性,开发了一个半自动化的验证工具VerioT,结果表明几乎所有的委派机制都存在安全问题,可能会导致设备的未授权访问和设备冒充;为此作者实施了端到端PoC攻击来对这些问题进行确认,并进行了相应的评估。

Saffire: Context-sensitive Function Specialization Against Code Reuse Attacks

作者:Shachee Mishra, Michalis Polychronakis

单位:Stony Brook University

出处:EuroS&P 2020

资料:Paper

1. Abstract

本文作者提出了一个基于编译技术的针对代码重用攻击的防御方案Saffire。对于所有的关键函数函数上下文,Saffire会为它一个函数拷贝,并且严格限制调用时传入的参数。作者用17个真实世界的ROP以及3个完整函数重用的利用进行了评估,Saffire可以成功防御这些攻击,并且引入的开销可以忽略不计。

Muzz: Thread-aware Grey-box Fuzzing for Effective Bug Hunting in Multithreaded Programs

作者:Hongxu Chen^4^ ^1^, Shengjian Guo^2^, Yinxing Xue^4^, Yulei Sui^3^, Cen Zhang^1^, Yuekang Li^1^, Haijun Wang^5^, and Yang Liu^1^

单位:^1^Nanyang Technological University, ^2^Baidu Security, ^3^University of Technology Sydney, ^4^University of Science and Technology of China, and ^5^Ant Financial Services Group

出处:USENIX Security ‘20

原文:https://www.usenix.org/system/files/sec20-chen-hongxu.pdf

Abstract

灰盒模糊测试已经被广泛应用在现实存在的软件系统上并发现了成千上万的漏洞,这一切都要归功于其轻量级的代码插桩、快速的代码覆盖率反馈以及动态的模糊测试种子调整策略。然而,直接将灰盒模糊测试应用在输入依赖的多线程程序上的效果可能很差,这是因为在现实中多线程相关的错误通常都隐藏在复杂的程序控制流中。同时,现有的灰盒模糊测试也并不关心可能影响多线程程序执行状态的线程交错。

因此,作者提出了一个新的面向多线程程序的灰盒模糊测试框架Muzz,其采用了三种线程敏感的代码插桩,包括代码覆盖率插桩、线程上下文插桩以及线程调度插桩。在模糊测试的过程中,这些插桩产生的运行时反馈可以帮助Muzz探索线程交错相关的多线程程序执行状态。作者在12个现实存在的多线程程序上评估了Muzz。评估结果表明,Muzz在生成多线程相关的模糊测试种子以及检测并发漏洞与错误这两方面的表现都优于AFL。其中,Muzz一共发现了8个新的并发漏洞与19个新的并发错误。

Let’s Revoke: Scalable Global Certificate Revocation

作者:Trevor Smith, Luke Dickinson, Kent Seamons

组织:Brigham Young University

会议:USENIX 2020

原文:https://www.ndss-symposium.org/wp-content/uploads/2020/02/24084.pdf

Abstract

当前的撤销策略存在许多问题,包括可伸缩性、私密性和新的基础设施需求。撤销往往被忽视,使客户容易受到中间人攻击。本文介绍了一种可伸缩的全局撤销策略Let ‘s Revoke,该策略解决了当前撤销检查的问题。与现有的撤销方案进行比较,所需的存储和网络带宽更少。作者通过模拟进一步证明,即使在大规模的撤销事件中,也可以线性扩展到100亿个证书。

PTAuth: Temporal Memory Safety via Robust Points-to Authentication

作者:Reza Mirzazade farkhani, Mansour Ahmadi, Long Lu

单位:Northeastern University

会议:USENIX Security 2021

原文:PTAuth: Temporal Memory Safety via Robust Points-to Authentication

Abstract

本文讲述的是运行在 ARMv8.3 下的一个内存防护机制,用于在运行时检测时序内存漏洞。所谓时序内存漏洞,在论文中特指 double free, use after free 以及 invalid free 漏洞。关键的思想在于将内存对象与指向内存对象的指针通过某种特定的方式绑定起来,并在解引用指针检测指针是否合法。在 evaluation 部分,作者用 juliet 测试集以及 SPEC CPU2006 benchmarks 测试工具的安全性以及运行时的效率,并将其与其它几款类似的工具进行了比较。

SoK: Understanding the Prevailing Security Vulnerabilities in TrustZone-assisted TEE Systems

会议:S&P 2020

论文名称:SoK: Understanding the Prevailing Security Vulnerabilities in TrustZone-assisted TEE Systems

本文中,作者对TrustZone-assisted TEE Systems中存在的安全问题进行了研究,整理了目前各种TEE的实现中所存在的Attack Surface,并对出现的漏洞进行了归类、讨论了TrustZone-assisted TEE Systems中的缓解措施。文中对比了Qualcomm, Trustonic, Huawei, Nvidia, and Linaro的TEE实现。

ParmeSan: Sanitizer-guided Greybox Fuzzing

作者:Sebastian Österlund, Kaveh Razavi, Herbert Bos, Cristiano Giuffrida

单位:Vrije Universiteit Amsterdam

出处:Usenix Securiy 2020

原文:ParmeSan: Sanitizer-guided Greybox Fuzzing

摘要

Fuzzing的关键问题之一是在哪里寻找漏洞。考虑到错误覆盖率通常与代码覆盖率相关,覆盖率指导的fuzzer会不加选择地进行优化以覆盖尽可能多的代码。由于代码覆盖率过高地估计了错误覆盖率,因此这种方法不太理想,可能会导致错误的平均暴露时间(TTE)。定向fuzzer尝试通过将fuzzer定向到具有潜在漏洞的基本块来解决此问题。这种方法可以极大地降低特定漏洞的TTE,但是可能会大大降低总体漏洞覆盖率。

在本文中,作者介绍了sanitizer指导的模糊测试,这是该领域的一个新设计点,专门针对错误覆盖进行了优化。为此,作者做出的主要观察是,尽管现有sanitizer通常用于检测fuzzer引起的错误条件,但它们还可以作为一种通用且有效的机制来识别有趣的基本块以指导fuzzing。 作者设计并实现了sanitizer指导的fuzzer——ParmeSan。其大大降低了实际错误的TTE,发现错误的速度比现有的基于覆盖率的fuzzer器(Angora)快37%,比定向的fuzzer(AFLGo)快288%,并同时保有相同的bug集。

Sys: A Static/Symbolic Tool for Finding Good Bugs in Good (Browser) Code

作者:Fraser Brown^1, Deian Stefan^2, Dawson Engler^1

单位:Stanford University^1, UC San Diego^2

出处:29th USENIX Security Symposium (USENIX ‘20)

原文:Sys: a Static/Symbolic Tool for Finding Good Bugs in Good (Browser) Code

Abstract

本文介绍了一个将静态检查和符号执行结合起来的漏洞检测工具Sys。Sys将漏洞检测分为两个步骤:首先利用静态检查将可能出现错误的代码进行标记;然后利用符号执行判断标记的代码是否存在bug。 作者利用Sys对Chrome,Firefox以及FreeBSD进行了测试,总共发现51个bug,其中有43个被确认(并且作者获得了很多奖金)。

FANS: Fuzzing Android Native System Services via Automated Interface Analysis

作者:Baozheng Liu1,2∗ , Chao Zhang1,2 , Guang Gong3 , Yishun Zeng1,2 , Haifeng Ruan4 , Jianwei Zhuge1,2

单位:1Institute of Network Science and Cyberspace, Tsinghua University; 2Beijing National Research Center for Information Science and Technology; 3Alpha Lab, 360 Internet Security Center; 4Department of Computer Science and Technology, Tsinghua University

会议:USENIX Sec’ 20

链接:FANS: Fuzzing Android Native System Services via Automated Interface Analysis

简介

作者提出了一个自动的基于生成的fuzz Android native系统服务的方法,之前很少有工作关注这个方面,这其中存在3个挑战:

  1. multi-level interface识别。只有top-level interface会在Service Manager中注册,有很多嵌套的interface可与被用户app通过top-level interface调用。
  2. 提取interface模型。为了有效的生成transaction的输入data,需要提取目标interface语法。不同的transaction可能有不同的语法,语法可能还与路径要求共存,如分支条件,循环,嵌套循环等
  3. 生成语义正确的输入。需要通过各种各样的检查,如对size的检查。

FANS在6个Android版本为android-9.0.0_r46的设备上运行了30天,从上千个crash中发现了30个不同的漏洞和触发了138个不同的Java异常。