Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

HEAPHOPPER: Bringing Bounded Model Checking to Heap Implementation Security

原文:https://seclab.cs.ucsb.edu/media/uploads/papers/sec2018-heap-hopper.pdf

作者:Moritz Eckert , Antonio Bianchi, Ruoyu Wang, Yan Shoshitaishvili , Christopher Kruegel , and Giovanni Vigna

单位:University of California, Santa Barbara, The University of Iowa, Arizona State University

作者通过使用符号执行技术,自动化分析堆分配器,根据配置文件定义的情况可以自动生成不同exploitation primitive 的POC

overview

背景

当程序逻辑存在漏洞时可以攻击堆分配器拿到程序控制权。为了缓解这些攻击,各大堆分配器都在内部进行了安全检查,然而并没有一个标准能评估加入一个补丁是否能缓解攻击。

Shielding Software From Privileged Side-Channel Attacks

20180905110724

摘要

商用操作系统内核,例如Windows、Mac OS X、Linux、FreeBSD,容易受到多种安全漏洞的影响,攻击者能够通过这些漏洞控制操作系统内核,获取对于所有的应用数据和系统资源的访问权限。

InkTag、Haven、Virtual Ghost等防护系统能够在操作系统内核被攻击者控制的前提下保护敏感应用数据。然而,这些防护系统依旧没有办法防护恶意操作系统内核实施的侧信道攻击。

文章提出了针对恶意操作系统内核实施的页表侧信道攻击与LLC(Last-Level Cache)侧信道攻击的防护方案,并通过在优化过的Virtual Ghost系统上部署以上防护方案,提出了防护系统Apparition。

Automated Binary Analysis on iOS – a Case Study on Cryptographic Misuse in iOS Applications

作者: Johannes Feichtner, David Missmann, Raphael Spreitzer

出处: WiSec’18

单位: Graz University of Technology

这篇论文介绍了一种在iOS应用程序中发现密码学误用的方法。他们通过将64位ARM二进制文件反编译为LLVM中间表示(IR),接着应用静态程序切片来确定相关代码段中的数据流,然后将提取的执行路径与一组预定义的安全规则相比较,最后确认iOS应用程序中存在问题的语句。

Digtool: A Virtualization-Based Framework for Detecting Kernel Vulnerabilities

出处:USENIX Security Symposium 2017

作者:Jianfeng Pan, Guanglu Yan, Xiaocao Fan

单位:IceSword Lab, 360 Internet Security Center

原文https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-pan.pdf

相关材料Slide, Video

一、背景

目前,自动化检测系统内核漏洞的工具比较少,而且,很多的工具都是只能检测开源的系统内核(例如:Linux操作系统),对于不开源的操作系统(例如:Microsoft Windows)则无能为力。因此,很有必要开发一款专用的系统内核漏洞检测工具,在二进制层面检测系统内核潜在的漏洞。漏洞检测工具通常分为两个方面:路径探测和漏洞识别,路径探测通常使用fuzzer工具,查找尽可能多的分支路径;漏洞识别则用于检测这些路径上可能存在的漏洞。而在这篇文章中,作者结合了这两个方面的技术,具体检测了内核中的以下四种漏洞类型:

Tackling Runtime-based Obfuscation in Android With TIRO

1534825536001

出处:USENIX 18’

资料:SlidesPaper

1 Abstract & Introduction

混淆技术经常被使用在恶意软件上对抗自动化的程序分析。在Android 平台恶意软件经常使用Java反射、加壳还有字符串加密等方式。作者把常见的混淆技术如字符串加密、动态解密、Java反射调用native方法归类为language-based混淆,而完全避开Java完全在Native代码中执行的混淆方式叫做full-native混淆。作者在文中提出了一种新型的混淆技术,它会破坏Android运行时完整性的同时使用混淆技术,作者称之为runtime-based 混淆。runtime-based混淆优于language-based混淆和full-native代码混淆。 虽然language-based的混淆技术必须在调用混淆代码之前立即发生,但runtime-based混淆技术可以在同地方发生,并在应用程序看似无关的部分中改变代码执行。一旦程序的完整性被破坏,在运行时就不会遵循正常情况下所期望的代码执行和方法调用流程,runtime-based混淆修改了方法调用的解析方式和代码执行方式。

作者提出了一个Android平台去混淆的框架TIRO(Target-Instrument-Run-Observe)。TIRO既可以对抗传统的混淆方式,也可以处理runtime-based混淆技术。作者最后测评了来自VT的2000个恶意软件样本,最后有80%左右的样本都使用了runtime-based混淆。

The Dangers of Key Reuse: Practical Attacks on IPsec IKE

论文链接:https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-felsch.pdf

作者:Dennis Felsch, Martin Grothe, and Jörg Schwenk, Ruhr-University Bochum; Adam Czubak and Marcin Szymanek, University of Opole

会议:the 27th USENIX Security Symposium

摘要

在不同版本和不同模式的IKE之间重用密钥对会导致绕过跨协议认证,从而使攻击者可以模仿受害者主机或网络。 Bleichenbacher oracle存在于Cisco、华为、Clavister以及ZyXEL的IKEv1实现中。各平台现已进行了修复。

Guarder: A Tunable Secure Allocator

会议:USENIX Security 2018

作者:Sam Silvestro, Hongyu Liu, Tianyi Liu, Zhiqiang Lin, Tongping Liu

原文silvestro.pdf


背景简介

linux系统默认的堆分配器ptmalloc自设计之初就未考虑到安全性问题,因此关于堆攻击的问题被研究得很多。由于设计理念上的缺陷,ptmalloc的安全性问题不能仅靠打几个补丁来解决,因此许多关于安全的堆分配器方案被提出来,这篇论文就提出了一个安全的堆分配器方案guarder。这是林志强老师在安全的堆分配器上的第二次实践,他的上一篇论文提出的free guarder也是一个安全堆分配器方案,在这篇论文里面,作者多次提到FreeGuard并与之作出比较并得出相对于FreeGuard,Guarder更加安全的结论。

An Empirical Analysis of Single Sign on Account Hijacking and Session Management on the Web

出处:USENIX Security’18

简介

这篇文章研究了SSO账号劫持和相关会话管理的情况,区别于以往的研究,本文主要聚焦在IdP账号被劫持对SSO的安全性带来的一系列影响。

同时,作者基于OpenID Connect提出了一种Single Sign-Off扩展方案以降低这类账号劫持的危害。

本文的主要贡献点:

  • 首次对SSO生态系统现状进行了大规模分析,调查了Alexa top 1M 的网站使用IdP的情况。
  • 对SSO中IdP账号被劫持的后果进行了深入分析,以95个流行的web和mobile RP为样本,分析了IdP账号被劫持对后续授权、RP账号创建等过程的影响。
  • 作者的分析发现当前的SSO系统无法阻止攻击者在RP授权被撤销后仍能访问受害人RP账号,针对这种情况他们提出了一种基于OpenID Connect协议的single sign-off扩展;

本文涉及的SSO协议主要是OAuth 2.0和OpenID Connect.

SoK: Make JIT-Spray Great Again

原文:https://www.usenix.org/system/files/conference/woot18/woot18-paper-gawlik.pdf

作者:Robert Gawlik、Thorsten Holz

出处:WOOT 2018

1. 论文简介

JIT可以加快脚本代码的执行。在浏览器中通常会使用JIT。JIT编译器对于攻击者来说是一个很大的攻击面,存在各种各样的攻击,例如: 1. JIT-Spray 2. JIT-based code-reuse attacks 另外JIT编译器由于代码很复杂,也导致了攻击面很大。

作者的贡献: 1. 对JIT-Spray在x86和ARM上的使用进行了调查,包括了学术界和非学术界的一些攻击案例,并介绍了攻击技术。最近的JIT-Spray攻击技术出现在Mozilla Firefox的ASM.JS上 2. 将JIT-Spray和JIT-based code-reuse进行区分,解释了基于JIT编译器的代码重用攻击 3. 总结了一些利用JIT编译器绕过缓解措施的方法,并介绍了一些这些年的JIT的一些防护措施

Fear and Logging in the Internet of Things

作者: Qi Wang, Wajih Ul Hassan, Adam Bates, Carl Gunter

出处: NDSS’18

单位: University of Illinois at Urbana-Champaign

原文: http://seclab.illinois.edu/wp-content/uploads/2017/12/wang2018fear.pdf

作者观察到IoT平台存在一种新的威胁,当多个app和多个智能设备绑定在一起时,我们很难定位某个设备被攻击或者配置错误的原因。那首先想到的方法就是查看日志,然而存在的日志只记录了设备在某事某刻发生了什么,但不能解释不同事件之间的因果关系,比如是谁通过何种途径触发了设备状态的改变。因此,本文以Samsung的SmartThings为例,使用数据溯源的技术,来追踪IoT事件发生的一连串因果关系。