Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

The Rise of the Citizen Developer_Assessing the Security Impact of Online App Generators

出处:S&P 2018

作者:Marten Oltrogge, Erik Derr, Christian Stranksy, Michael Backes等

单位:CISPA等

原文链接:https://saschafahl.de/papers/appgens2018.pdf


文章概述

越来越多的App都由在线应用生成器(online application generators, OAGs for short)自动生成、分发、维护,这降低了对开发人员的技术要求,因而吸引了不少业余开发者(citizen developers)。然而,使用这类工具可能导致的安全问题尚未被研究。如果使用这一类工具生成的App存在安全问题,那么将会对整个移动应用生态系统的安全性造成影响。在本文中,作者对OAGs进行了系统、深入的分析,主要工作包括: + 通过对常用OAGs所支持的工作流、平台、App生命周期等特征进行分析,(首次)对常用OAGs进行分类。 + 分析不同OAGs所生成App的指纹,从而确定OAGs的市场占有情况。 + 综合利用动态、静态、人工分析,研究OAGs的安全性。

Dazed Droids: A Longitudinal Study of Android Inter-App Vulnerabilities

作者:Ryan Johnson, Mohamed Elsabagh, Angelos Stavrou, Jeff Offutt

单位:Kryptowire, George Mason University

出处:ASIA CCS ’18

资料:论文

1 ABSTRACT & INTRODUCTION

随着Android应用复杂性的提高和功能的丰富,Android更依赖于应用之间的代码和数据共享,以缩短响应时间并提供更丰富的用户体验。

绝大部分的Android App之间和其本身发生数据通信的时候使用的都是intent对象:intent类似于消息的抽象,提供了一种便于数据交换的基本通信机制。但是有些时候开发者们有意或无意地暴露了一些App Components内部的接口,让它们可以被本地的其他的一些App可以访问。

这些暴露的接口有些没有实现较强的error catch或数据访问控制就会导致一些安全问题。在本文中,作者发现了如下问题:DoS、提权、系统crash和数据泄露。作者设计并实现了一个Fuzzing工具去自动化地检测inter-app通信时所存在的漏洞。Daze通过null和not-null但不为空的payloads去fuzz App中export="True"的组件所公开的接口,并通过监控外置存储卡上文件的修改和系统设置的变化来验证漏洞是否存在。

作者分析的样本涵盖了32个不同的Android设备,AOSP4.4-8.0所有版本和18,583个Google Play上的免费App。平均每个设备分析的时间为3小时,每个应用的时间为2分钟。大约有51.7%的Android设备和Google Play上49%的Top300应用至少存在一个inter-app漏洞。

ICSREF: A Framework for Automated Reverse Engineering of Industrial Control Systems Binaries

作者: Anastasis Keliris (NYU); Michail Maniatakos (NYU Abu Dhabi)

单位: NYU

出处: NDSS’19

原文: https://arxiv.org/abs/1812.03478

源码: https://github.com/momalab/ICSREF


INTRODUCTION

过去几年工业控制系统(ICS)的安全性受到越来越多的关注,尽管如此,对PLC二进制文件的逆向分析仍然是一个开放的问题,考虑到PLC二进制文件不同于传统的二进制文件,作者提出了一种结构化的方法来实现自动化逆向。作者选择CODESYS平台编译的PLC文件作为研究的目标,通过解析该平台生成的所有二进制文件的相关信息,然后执行自动二进制分析,生成CFG图,用r2反汇编,用angr确定运行时的函数参数,最终通过修改代码实现修改任意函数的参数。

为了评估该框架,作者创建了一个样本数据库,这些包括从公共代码存储库收集的PLC二进制文件,以及内部开发的二进制文件。结果证明了ICSREF可以成功分析各种不同的PLC二进制文件。最后,作者在Nexus 5上测试了ICSREF,使用它自动化的攻击一个化学过程的试验台。该攻击过程通过逆向分析PRG文件,动态提取PID算法函数的参数,并修改其参数达到破坏工控系统稳定运行的目的。

Software Grand Exposure: SGX Cache Attacks Are Practical

作者:Ferdinand Brasser, Ahmad-Reza Sadeghi, Urs Muller, Alexandra Dmitrienko, Kari Kostiainen, Srdjan Capkun

单位:System Security Lab, Technische Universitat Darmstadt, Institute of Information Security, ETH Zurich

原文:https://www.usenix.org/system/files/conference/woot17/woot17-paper-brasser.pdf

出处:USENIX woot17


本文发表在WOOT 2017国际学术会议上,作者介绍了一种Intel SGX可信计算方案的Cache侧信道攻击方法。作者认为这种方法相较现有方法,易于实现且能抵御现有的防御方法。作者着重关注了敏感信息的处理过程,认为这类程序天生难以避免此类攻击,且目前的防御方法均不实用。

Angora: Efficient Fuzzing by Principled Search

作者:Peng Chen, Hao Chen

单位:ShanghaiTech University, University of California, Davis

原文:https://spinpx.com/papers/Chen2018Angora.pdf

出处:IEEE S&P’18

贡献

作者实现了一个叫做Angora的fuzzer,其具有以下特点:

  • 用上下文敏感的方式进行分支覆盖
  • 利用字节级别的taint tracking分析数据
  • 使用梯度下降来求解条件语句
  • 能够分析数据类型是否带符号和长度
  • 能够探测输入的长度

思路

上下文敏感的分支计数

AFL所使用的上下文不敏感的分支处理,会使得其不能识别相同分支潜在的不同内部状态。相较于AFL只将分支的始块和终块作为分支特征,作者在此基础上又加入了上下文特征。
利用对栈进行hash的方法,来获取上下文。为了避免产生过多的独立分支,作者使用的hash函数会异或调用栈。 如Figure 3,f中的x参数是输入的一部分,而trigger所控制的分支,受“是否第一次调用f”这个上下文环境影响。该分支是一种内部状态。

Cloud Strife: Mitigating the Security Risks of Domain-Validated Certificates

作者:Kevin Borgolte, Tobias Fiebig, Shuang Hao, Christopher Kruegel, Giovanni Vigna

单位:UC Santa Barbara, TU Delft, UT Dallas

原文:PDF

出处:NDSS 2018


1. Abstract & Introduction

近年来,Infrastructure-as-a-Service (IaaS),也就是大家所称的云服务,给网络整体环境带来了很大的变化。它使用虚拟主机技术,让算力、存储空间、网络带宽等资源得以共享,如今云服务的应用与部署已经变得非常普遍。但是当这种新加入网络的动态成分与传统的基于信任的网络生态架构(e.g, SSL证书)相组合起来时,可能会产生不可预知的新的攻击面。

针对云服务的所提供的弹性与灵活性,在这篇文章中作者提出了一种称为IP地址use-after-free的漏洞,当一个主机用户释放了他的IP地址(文中称这种IP地址为过期IP),但还没来得及更改域名相应DNS记录时,攻击者可以申请相同的IP地址,因此能够伪装成域名所有者,向CA申请相应证书。这种攻击被称为域名劫持攻击。

PatternListener_ Cracking Android Pattern Lock Using Acoustic Signals

作者:ManZhou1,QianWang1,JingxiaoYang1,QiLi2,FengXiao1,ZhiboWang1,XiaofengChen3

单位:School of Cyber Scienceand Engineering, Wuhan University, Graduate School at Shenzhen & Department of Computer Science,Tsinghua University, School of Cyber Engineering, Xidian University

出处:CCS’18

论文:https://arxiv.org/pdf/1810.02242.pdf


ABSTRACT

手势密码的应用十分广泛,包括解锁手机或是应用内授权等。传统的攻击方式一般需要满足至少一条:

  1. 物理上接近被攻击者
  2. 控制被攻击者所在网络中的设备(例如,路由器)

本文提出了一种新的方法,称为PatternListener,能够利用受害者手机的扬声器和话筒完成攻击。当受害者输入手势密码时,PatternListener通过扬声器播放一种18kHz以上大部分人无法察觉的音频,并用话筒进行录音。通过分析输入手势密码时,手指动作对声波的干扰,对密码进行恢复。

Mystique: Uncovering Information Leakage From Browser Extensions

作者: Quan ChenAlexandros Kapravelos

单位:North Carolina State University

会议:CCS’18

原文链接:https://www.kapravelos.com/publications/mystique-CCS18.pdf

1 简介

浏览器的第三方扩展程序可以注入一些JavaScript代码得到一些私密信息(例如:URL、cookies、输入等),也可以使用特权JavaScript扩展API直接访问私密信息(例如 chrom.history)。

作者为浏览器扩展开发了一个污点分析框架Mystique,并用它来对浏览器Chrome扩展的隐私泄露问题进行大规模(181,683个扩展)研究。

首先作者提出了一种污点分析的hybrid方法:因为扩展的源代码可在JavaScript引擎运行,作者使用从JavaScript源码的静态数据流和控制流分析中收集的信息来实现和增强传统的污点分析,即将动态污点跟踪和静态分析相结合。基于此,作者进一步修改Chromium浏览器以支持对扩展的污点跟踪。

研究结果显示浏览器扩展对用户隐私构成威胁,并需要采取对策来防止行为不当的扩展滥用权限。

Bamboozling Certificate Authorities With BGP

作者:Henry Birge-Lee, Yinxin Sun, Anne Edmundson, Jennifier Rexford, Prateek Mittal

单位:Princeton University

出处:USENIX Security 2018

原文:PDF

概述

在互联网中,计算机采用 HTTPS 通讯,通过 SSL/TLS 加密明文传输的信息以保证数据安全。比如在浏览 HTTPS 网页的过程中,客户端首先向服务端发起请求连接,服务端响应并回复自己的 SSL 证书。证书可以看作是一个网站的身份证,其中包含着服务端的公钥以及一些相关信息,以证明自己确实是被请求者。接着双方协商并生成通讯时使用的一次性对称加密密钥,这个过程客户端需要使用服务端所提供的公钥来进行数据加密。
公钥基础设施 (Public key Infrastructure, PKI),是一套创造、管理、分配、使用、存储以及撤销 SSL 数字证书的网络基础架构。PKI 通过可信任的证书颁发机构 (Certificate Authority, CA) 来验证并向域名发放数字证书,以保证域名的真实所有者获得此域名对应的证书。
figure1

但在实际情况中,CA 验证并颁发证书的过程往往也可受到中间人 (MITM) 攻击,从而使得 HTTPS 的通信安全受到威胁。在此论文中,作者通过控制自治系统 (Autonomous System, AS) 来进行边界网关协议 (Border Gateway Protocol, BGP) 劫持攻击,绕过 CA 对申请域名所属权的验证,从而获得了不属于自己的域名的证书。此研究第一次演示了这种攻击在真实场景中的有效性,实验证明,这种攻击方法对目前主流的所有 CA 机构均有效。

IMIX: In-Process Memory Isolation EXtension

作者:Tommaso Frassetto, Patrick Jauernig, Christopher Liebchen, Ahmad-Reza Sadeghi

单位:Technische Universität Darmstadt, Germany

出处:USENIX Security 2018

资料:Paper | Slide


1. Abstract & Introduction

现在,研究者们已经提出了很多复杂的攻击技术,例如(JIT/blink)ROP、Counterfeit object-oriented programming。这些技术都能够使得攻击者达到任意代码执行、数据攻击的目的。与此同时,研究者们也提出了很多针对代码重用攻击的的防御方案,例如Control-flow integrity(CFI),Code-pointer integrity(CPI)。但是这些防御方案都依赖着较强的Memory isolation的保证,例如CFI的Shadow stack,CPI的Safe-region,以及一些随机化的秘密,都是需要进行隔离,不能被攻击者随意读写。由此可见进程内的内存隔离的重要性。

另外,进程内的内存隔离和进程间的内存隔离的区别从下图可以看出:

本文中,作者为Intel的x86 CPU设计了一个轻量级扩展IMIX,IMIX可以做到进程内的内存隔离。作者采取的办法是扩展x86的指令集架构,增加一个新的内存访问的权限,用来标识内存页是否是安全敏感。这些内存页只能被新设计的指令来访问。与之前的工作不同的是,IMIX并不是一个完整的防御方案,而是作为Primitive来使用。