Group of Software Security In Progress

Towards a Lightweight, Hybrid Approach for Detecting DOM XSS Vulnerabilities With Machine Learning

作者:William Melicher, Clement Fung

单位:Carnegie Mellon University

会议:WWW 2021

链接:https://users.ece.cmu.edu/~lbauer/papers/2021/www2021-dom-xss-dnn.pdf

Abstract

DOM XSS是web应用中常见的漏洞,而且不易防御。污点分析是最常用的检测DOM XSS的方法,但是对于许多实际的例子来说非常的消耗计算资源。所以作者提出了用机器学习方法来解决这一问题,相较于污点分析,其花销降低了3.43倍,检测到了94.5%的漏洞。

DynPTA: Combining Static and Dynamic Analysis for Practical Selective Data Protection

作者:Tapti Palit, Jarin Firose Moon, Fabian Monrose, Michalis Polychronakis

单位:Stony Brook University, UNC Chapel Hill

会议:S&P 2021

链接:https://www.computer.org/csdl/pds/api/csdl/proceedings/download-article/1t0x9hWW2iI/pdf

Abstract

随着控制流劫持攻击的缓解措施被广泛部署,攻击者逐渐关注针对内存破坏漏洞和信息泄露漏洞的data-only attack。在一定的条件下,通过破坏一些数据仍然能达到劫持控制流的目的。数据泄露同样会带来很大的安全隐患,例如secret server keys、用户隐私信息等。近年来出现的瞬态执行攻击同样可以用于敏感信息的泄露。

虽然各种针对于数据泄露攻击的缓解措施被提出,从保护思路是可以主要分为缓解memory corruption bugs的方案以及选择性的保护部分数据的方案。前者通过memory safety、dataflow integrity等方式消除攻击原语,但是这些方案通常会带来很高的性能开销且unscalable,即很难应用在一些复杂的real-world程序上,而且无法抵御瞬态执行攻击。后者则是通过权限隔离、安全执行环境、沙箱、细粒度内存隔离等方式有选择性的保护程序中的一部分数据。然而这些技术需要对代码进行较大规模的重构,对于较大规模的程序而言是一个挑战。

考虑到选择性保护数据方案的实用性,近年来的一些方案选择让开发者在源代码中对security-critical的变量进行标记,随后在编译时对这些被标记的变量进行保护。具体的有Datashield、Glamdring、Selective in-memory encryption等方案。

为了高准确度(减少插桩带来的开销)、合理的复杂度(能够应用于较大规模程序的分析),作者提出了DynPTA,结合静态程序分析和动态数据流追踪(DFT)技术使得被标记的数据在内存中一直处于加密状态。

Happer: Unpacking Android Apps via a Hardware-Assisted Approach

作者:Lei Xue, Hao Zhou, Xiapu Luo, Yajin Zhou, Yang Shi, Guofei Gu, Fengwei Zhang, Man Ho Au

单位:The Hong Kong Polytechnic University, Zhejiang University, Tongji University, Texas A&M University, Southern University of Science and Technology, The University of Hong Kong

会议:42nd IEEE Symposium on Security and Privacy

原文:http://malgenomeproject.org/papers/sp21_happer.pdf

Abstract

恶意软件通常都会使用加密壳来防止其安装包被分析。尽管现在已经有很多脱壳工具,但是这些工具很容易被加密壳检测并绕过,并也不能有效地收集到脱壳得到的真实 DEX 文件。为了填补其中的技术空白,作者提出了第一种基于硬件的先进的脱壳工具。这种工具通过监控加密壳的行为动态选择合适的脱壳方法对受监控软件进行脱壳,并收集其 DEX 文件。不仅如此,作者还进一步开发了一种行为描述语言 BDL 和脱壳工具 Happer 来针对不同的加密壳行为来脱壳。作者最后在 12 个安卓商业加密壳和超过 2 万 4 千个安卓 App 上进行评估,观察到了 27 个加密壳行为,其中有 17 个行为都是之前没有研究过的。基于这些行为,Happer 使用了正确的脱壳方法来对这些采用商业加密壳的应用进行了完全地脱壳,并组装成了合法的 DEX 文件。

SpecFuzz: Bringing Spectre-type Vulnerabilities to the Surface

作者:Oleksii Oleksenko1, Bohdan Trach1, Mark Silberstein2, and Christof Fetzer1

单位:1TU Dresden, 2Technion

会议:USENIX Security 2020

论文链接:SpecFuzz: Bringing Spectre-type vulnerabilities to the surface

Abstract

SpecFuzz是一个通过动态分析检测推测执行漏洞(speculative execution vulnerabilities )的工具。该工具在对被检测程序进行修改后,让传统的模糊测试(fuzzing)工具,能够对被检测程序中的推测执行路径进行测试,从而识别出潜在的推测执行漏洞。

Static Detection of Unsafe DMA Accesses in Device Drivers

作者:Jia-Ju Bai, Tuo Li, Kangjie Lu, Shi-Min Hu

单位:Tsinghua University, University of Minnesota

出处:Usenix Security 2021

原文:https://www.usenix.org/system/files/sec21fall-bai.pdf

Introduction

直接内存访问(Direct Memory Access,DMA)是提高硬件I/O性能的常用方法,并在现有设备驱动中广泛应用。

DMA访问在以下两种情况下是不安全的: 1. 如果没有正确对数据进行同步,存储在CPU cache与硬件寄存器的缓冲区数据可能会不一致,进而导致非预期的硬件行为(不一致DMA访问) 2. 恶意或者不受信任的硬件设备可以向系统内存写入恶意数据,当驱动未经正确验证使用数据时,可能会触发安全问题(缓冲区溢出或者非法指针访问)(未检查的DMA访问)

在本文中,作者设计了一种静态分析方法,并实现了名为SADA的检测工具,以自动和精确的检测设备驱动中不安全DMA访问的问题。

作者使用5.6版本的Linux代码对SADA进行了实验评估,并且发现了284处不安全DMA访问。其中121处可以触发buffer overflow,36处可以触发非法指针访问进而造成任意内存读写。作者将其报告Linux驱动开发者,其中的105个已经被确认。

Android Custom Permissions Demystified From Privilege Escalation to Design Shortcomings

作者:Rui Li, Wenrui Diao,Jianqi Du,Shanqing Guo

单位:Shandong University, University of California

会议:IEEE S&P 2021

链接:https://www.computer.org/csdl/pds/api/csdl/proceedings/download-article/1t0x94Xmr9C/pdf

Introduction

本篇论文系统地评估了 Android 自定义权限的设计和实现。作者开发自动化模糊测试工具CUPERFUZZER,以发现与自定义权限相关的提权漏洞。在4部 Android 9 / 10 的 Pixel 2 手机上运行,最终在执行 40,195 次模糊测试后发现了 2,384 个成功利用案例。作者在分析了30个关键路径后,总结了4个Android权限框架的设计缺陷。

Hey Alexa Is This Skill Safe Taking a Closer Look at the Alexa Skill Ecosystem

作者:Christopher Lentzsch, Sheel Jayesh Shah, Benjamin Andow, Martin Degeling, Anupam Das and William Enck

单位:Ruhr-Universitat Bochum, North Carolina State University, Google Inc.

会议:NDSS 2021

链接:https://www.ndss-symposium.org/ndss-paper/hey-alexa-is-this-skill-safe-taking-a-closer-look-at-the-alexa-skill-ecosystem/

0 Abstract

Amazon Alexa语音助手能够使用户通过语言对话来直接与各种web服务进行交互,并且提供了一系列选项使得开发人员能够创建在Alexa上运行的第三方应用(即技能skill)。

本文作者对Alexa的技能生态系统进行了首次大规模的安全分析,发现了一些潜在漏洞和审计缺陷,使得攻击者能够发布恶意的技能来欺骗用户以及用户隐私信息泄露等危害。

Detecting Filter List Evasion With Event-Loop-Turn Granularity JavaScript Signature

作者: Quan Chen^1^, Peter Snyder^2^, RBen Livshits^2^, Alexandros Kapravelos^1^

单位: ^1^ North Carolina State University(北卡罗莱纳州立大学), ^2^Brave Software

会议: IEEE S&P 2021

链接: Detecting Filter List Evasion With Event-Loop-Turn Granularity JavaScript Signature

内容过滤器一般使用源的URLs来对恶意资源进行辨识,然而攻击者可以通过改变URLs或域、将代码与良性代码捆绑或内联页面代码来避免被检测。在本篇论文中,作者通过构建一个系统,该系统可以为JS代码生成与隐私和安全行为的签名,来对恶意资源进行标识。

One Engine to Fuzz Em All Generic Language Processor Testing With Semantic Validation

作者:Yongheng Chen∗, Rui Zhong†, Hong Hu†, Hangfan Zhang†, Yupeng Yang‡, Dinghao Wu† and Wenke Lee∗

单位:∗Georgia Institute of Technology, †Penn State University, ‡UESTC

会议:IEEE S&P 2021

论文:One Engine to Fuzz ’em All: Generic Language Processor Testing with Semantic Validation

Abstract

来自佐治亚理工学院的研究人员提出并实现了针对多种程序语言处理器的通用fuzz框架PolyGlot。通过将PloyGlot用于针对9种程序语言的21个语言处理器,作者发现了173个新的bug,其中18个获得了CVE,113个已得到修复。

EVMPatch Timely and Automated Patching of Ethereum Smart Contracts

作者:Michael Rodler1, Wenting Li2, Ghassan O. Karame2, Lucas Davi1

单位:1University of Duisburg-Essen , 2NEC Laboratories Europe

出处:Usenix Sec 2021

原文:EVMPatch: Timely and Automated Patching of Ethereum Smart Contracts

1 Abstract

近段时间里,许多攻击利用以太坊智能合约(下称合约)的漏洞,带来了毁灭性的后果,这也因此让这项技术受到质疑。与此同时,修复漏洞并及时将安全合约部署在区块链上也具有很高的挑战性,并且对合约修复的及时性也十分重要,尤其是当合约关系着大量资产安全的时候。

本文提出了EVMPATCH框架,用于自动化修复合约。其利用了以太坊字节码重写引擎,透明地/自动地将合约修复。

本文最后也对14000个真实合约做了测试,EVMPATCH成功地组止了相应攻击交易的发生,同时保证了合约原本的功能不变。同时与其他相关工具比较之后发现,本文的工具实用性很强,能够减少了97.6%的修复漏洞的时间。