Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Understanding Cross App Remote Infections on Mobile Webviews

作者:Tongxin Li, Xinhui Han, Xueqiang Wang, Mingming Zha, Kai Chen, XiaoFeng Wang, Luyi Xing, Nan Zhang, Xiaolong Bai

单位:Peking University, Indiana University Bloomington, Institute of Information Engineering, Chinese Academy of Sciences, Indiana University Bloomington, Tsinghua University

出处:CCS 2017

论文:https://www.informatics.indiana.edu/xw7/papers/p829-li.pdf


摘要

跨应用的URL调用在提升用户体验的同时,引入了一定安全隐患,使得远程攻击者可以通过恶意网页窃取应用的控制权,这种威胁被称为XAWI(Cross-App WebView Infection)。它使得一种全新的多应用串通攻击成为可能,这样攻击者可以利用多个被感染的应用逐步提高自己在此移动设备的权限,或进行钓鱼攻击。

检验发现Google Play最流行的应用中7.4%的都可能遭受XAWI攻击,包括Facebook、Twitter、Amazon。论文指出了跨应用沟通这一提高用户舒适度的需求与对通道进行安全控制之间的矛盾,为了减轻安全威胁提出了一种系统层面的保护方法。

Securify: Practical Security Analysis of Smart Contracts

作者:Petar Tsankov, Andrei Dan,Dana Drachsler-Cohen,Arthur Gervais,Florian Bünzli,Martin Vechev

单位:ETH Zurich,Imperial College London

出处:CCS ‘18

原文:https://dl.acm.org/citation.cfm?id=3243780

INTRODUCTION

以太坊是仅次于比特币的第二大电子加密货币,其允许非信任的双方在没有可信的第三方情况下进行交易,交易能通过执行一段代码实现(即智能合约)。然而以太坊安全问题频发,开发者编写的智能合约存在很多漏洞,作者针对这个问题开发了Securify这个工具。

The Cryptopals Crypto Challenges 解题报告(1)

作者:上海交通大学蜚语安全(G.O.S.S.I.P)研究小组实习生张一苇

链接:https://cryptopals.com/

参考:https://github.com/ickerwx/cryptopals

下载:PDF

the cryptopals crypto challenges 中包含8组练习,共48个挑战。我们可以通过完成挑战,来学习密码学的相关知识。

这些挑战源于现实世界系统和加密结构的弱点,通过挑战中提供的足够的信息,我们可以了解基础密码学概念,以及常见的密码误用和密码算法的弱点。当完成这些挑战后,我们不仅可以了解密码系统的构建方式,还可以了解它们是如何受到攻击的。

Comparing the Usability of Cryptographic APIs

作者:Yasemin Acar, Michael Backes, Sascha Fahl, Simson Garfinkel, Doowon Kim, Michelle L. Mazurek and Christian Stransky

单位:CISPA, Saarland University; National Institute of Standards and Technology; University of Maryland, College Park

出处:IEEE Symposium on Security and Privacy 2017

原文:https://saschafahl.de/papers/cryptoapis2017.pdf

相关材料:Video

背景

在许多应用程序中都存在着潜在的密码学算法误用问题。传统观点认为,许多密码学算法误用问题是由加密的应用程序编程接口(API)引起的,这些接口过于复杂,缺乏安全性,或者文档不完善等。许多研究人员使用静态和动态分析技术来识别和调查源代码或二进制文件中的密码学误用问题。这种方法对于说明密码学误用问题的普遍性以及识别实践中最常见的错误种类非常有价值,但它不能揭示根本原因。安全社区的传统观点认为,这些错误在很大程度上会增加,因为对于非密码学专家来说,很难正确的使用这些密码库。特别的,密码库和应用程序编程接口(API)被广泛认为是复杂的,有许多令人困惑的选项和很差的默认选项(有时候甚至是不安全的默认选项)。

Mission Accomplished? HTTPS Security After DigiNotar

作者:Johanna Amann, Oliver Gasser, Quirin Scheitle, Lexi Brent, Georg Carle, Ralph Holz

单位:ICSI / LBL / Corelight, Technical University of Munich, The University of Sydney

出处:IMC 17

原文:http://conferences.sigcomm.org/imc/2017/papers/imc17-final227.pdf

简介

为了防范各种针对SSL/TLS协议设计和实现的攻击,TLS、HTTPS、web PKI增加了很多新的特性。 这篇文章的主要工作就是对这些新特性的使用情况作了一个大规模调查。

  • 作者主要从不同新特性的应用普遍性、各种特性部署的正确性、特性应用普遍性与部署难度之间的关系特性部署的相关性等多个维度进行调查。
  • 考察的安全特性主要包括:Certificate Transparency(CT),HSTS,HPKP,CAA,TLSA,SCSV等。
  • 作者声称这是第一个针对这些特性应用情况的大规模调查(实际上不是,NDSS’15上有篇文章是针对HSTS、HPKP部署情况的调查,只是调查的范围没有这次广、覆盖的安全特性没有这次多,其它也有一些相关工作提及部分安全特性的应用情况)。
  • 作者采用了主动扫描和被动测量的方法,调查覆盖的域名数量达193M,是截止到2017.3所有注册域名数量(330.6M)的58%。

Enforcing Unique Code Target Property for Control-Flow Integrity

作者:Hong Hu, Chenxiong Qian, Carter Yagemann, Simon Pak Ho Chung, Taesoo Kim and Wenke Lee, William R. Harris

单位:Georgia Institute of Technology, Galois Inc

出处:CCS’18

论文:https://www.cc.gatech.edu/~hhu86/papers/ucfi.pdf

在这篇文章中,作者主要介绍了一种准确率更高的确保CFI的应用方式:Unique Code Target(UCT)。对于每次间接跳转(ICT),作者们设计了一个叫μUCT的系统来确保这一特性的实施。

在编译时,μCFI就识别那些可能影响ICT的指令并让程序去记录一些必要的执行环境;在运行时,μCFI在另一个进程中监视程序的运行,并且在一些关键性的指令上使用内存安全地记录着地运行环境来做一些对点分析,判断这些指令的跳转是否符合预期。

Erays: Reverse Engineering Ethereum’s Opaque Smart Contracts

作者: Yi Zhou, Deepak Kumar, Surya Bakshi, Joshua Mason, Andrew Miller, and Michael Bailey

单位:University of Illinois, Urbana-Champaign

出处:USENIX Security ‘18

原文:https://www.usenix.org/conference/usenixsecurity18/presentation/zhou

作者开发了一个针对以太坊智能合约的逆向分析工具Erays,用以将bytecode翻译成便于人类分析的伪代码。并且使用这个工具分析了以太坊生态系统的代码复杂性和重用性,以及将闭源的代码和开源的代码比较,降低整个生态系统的隐匿度。最后,作者给出使用Erays逆向4个智能合约的例子。


Background

以太坊作为第二代电子加密货币,其中的流通金额超过$10B USD。但是,以太坊智能合约容易出错,并且含有较高的金融风险。截止2018年1月份,作者采集了区块链上的所有智能合约,其中包含34K的独立合约。在这34K的智能合约中,26K(77.3%)没有源代码,并且涉及了31.6%的交易和$10B USD的金额流通。

Check It Again: Detecting Lacking-Recheck Bugs in OS Kernels

作者:Wenwen Wang, Kangjie Lu, and Pen-Chung Yew

单位:University of Minnesota

出处:ACM CCS’18

原文:https://www-users.cs.umn.edu/~kjlu/papers/lrsan.pdf

1. 简介

论文中,作者主要介绍分析操作系统内核中的LRC(lacking-recheck)类型bug。并介绍了自己设计的一个静态分析系统LRSan(在Linux上实现),用于检测操作系统内核中的LRC bug。

本文的主要贡献: 1. 定义了LRC bugs,并第一次展示了关于LRC bug的深入研究。 2. 实现一个自动化的LRC bug检测系统(LRSan),基于LLVM,使用在Linux内核上,可以检测内核中的LRC bug。LRSan运用了很多新的程序静态分析技术。结果显示LRSan在Linux内核发现了2808个LRC case,检测耗时为4小时。并且作者会将它开源。 3. 识别Security checkSC)和相关Critical variableCV)的方法。 4. 发现了Linux内核中的19个新的LRC bug。

Smart Locks: Lessons for Securing Commodity Internet of Things Devices

作者:Grant Ho, Derek Leung, Pratyush Mishra, Ashkan Hosseini, Dawn Song, David Wagner

单位:University of California at Berkeley

出处: Asia CCS 2016

原文:https://www2.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-11.pdf

ABSTRACT

本文研究了市场上的五款智能门锁,发现了这些智能门锁在设计、部署、交互模型上存在的漏洞。实现了几种攻击并提供了一些防护方案。

INTRODUCTION

原有的大部分成果,专注于对加密协议的分析。本文将关注点放在智能门锁通用的网络架构的安全隐患,以及,用户与设备之间的交互模型上。

(针对新兴的交互模型,作者提到了一款门锁,它能够在合法用户靠近门锁时自动开锁。)

为了研究智能门锁的安全问题,本文设计了一个智能门锁的安全模型并分析了可从市场上购买到的五款较为流行的智能门锁。 通过分析,发现了三种类型的攻击方式。本文分析的五款门锁中,每一款门锁至少可被其中一种方式攻击。

作者认为,漏洞的产生是由于现有的系统都采用了不安全的机制来判断用户的潜在行为。

FirmUp: Precise Static Detection of Common Vulnerabilities in Firmware

作者:Yaniv David, Nimrod Partush, Eran Yahav

单位:Technion, Israel

出处:ACM ASPLOS 2018

原文:https://dl.acm.org/citation.cfm?doid=3173162.3177157

Overview

对于两个片段代码片段,即使有语法上的差别,其中的局部代码还是有很多相同的语义。从语义上讲,两个完整的函数不可能完全一致,但是肯定有很高的相似性,问题的难点正是在于,在不同的指令选择,指令顺序,寄存器使用下,如何挖掘这种相似性。
为了能把不同编译选项编译好的二进制文件拿来比较,将其中的函数进行基本块级别的拆分,然后将基本块进一步切片成更小的片段,再将这种片段中的寄存器名和地址偏移一致化,以函数为单位制成一张表。以这两个表中相同的代码片段的数量作为相似度。
单纯用函数大小来统一化相似性分数会产生误差,因为函数大小的受制因素很多。此外,如果匹配行为的目标是整个binary,则会因为一些编译选项会丢失一部分源码的缘故,产生局部的不匹配,而这种不匹配会产生连锁反应。使用往复博弈的方法来更好的完成局部匹配的任务。