BadBluetooth: Breaking Android Security Mechanisms via Malicious Bluetooth Peripherals(NDSS 2019)

本文针对Android 4.2后google开发的蓝牙栈 BlueDroid中存在的粗粒度权限管理问题,提出了并实现了在多版本中的攻击BadBluetooth

通过将蓝牙设备伪装为键盘,网络接入点和耳机,同时配合Android 恶意app发起静默配对,最终实现控制手机截屏偷取用户隐私数据,劫持通信流量,甚至在锁屏状态下拨打电话等攻击。

最后,作者在AOSP项目上实现了对应的防御框架

阅读更多

LEOPARD: Identifying Vulnerable Code for Vulnerability Assessment through Program Metrics(ICSE 2019)

识别代码中的脆弱点漏洞评估的重要步骤,当前主要的两种方法为:基于度量和基于模式。前者基于机器学习,后者依赖先验知识。本文提出并实现了一个通用、轻量且具有可扩展性的基于程序指标识别漏洞函数的框架 LEOPARD,这个框架不需要任何漏洞的先验知识就能识别脆弱点。第一步,通过复杂的程序指标将目标应用的函数分类;第二步,对每个分类中的函数进行排序,并将排位靠前的函数作为漏洞函数。在实际应用中,LEOPARD将20%的函数中识别出了74%的漏洞函数,从PHP,r2等应用中找到了22个新bug,其中8个是新漏洞。

阅读更多

FUZZIFICATION: Anti-Fuzzing Techniques(USENIX 2019)

fuzz作为一种自动化技术,在安全人员手中能够用来发现漏洞,但同时也让hacker能够通过fuzz寻找0day进行攻击。

为了解决这个问题,本文提出了FUZZIFICATION技术。在实际应用中,对外发布使用FUZZIFICATION处理过的二进制文件,提高hacker fuzz的难度和成本,而对内,由于安全人员拥有未处理过的二进制,使得安全人员能够在hacker fuzz出漏洞前更早的发现漏洞并进行修补。

阅读更多

B2SFinder——Detecting Open-Source Software Reuse in COTS Software(ASE 2019)

B2SFinder: Detecting Open-Source Software Reuse in COTS Software

B2SFinder 主要是为了解决闭源二进制软件中对复用开源组件检测的问题,由于复用了开源组件,当开源组件发现存在漏洞时,复用它的二进制软件也会存在漏洞,即OSS复用漏洞。

PS:我挂了个n作

Abstract

虽然此前也有一些工作致力于研究二进制和源代码的匹配方法,并能进行大规模的分析,但他们只支持一些简单的特征。在他们的研究中只能近似的衡量OSS复用,忽略了项目中的代码结构。

为了解决这个问题,B2SFinder通过对二进制文件和源代码中的7种特征进行提取,并对7种特征使用三种匹配方法和两种重要性加权方法,计算匹配分数。通过这种方法,我们对1000个流行的二进制软件中的21991个二进制文件和2189个开源库的复用进行了评估。平均每个二进制文件耗时53.85秒。我们也讨论了如何使用B2SFinder检测OSS复用漏洞。

阅读更多

源码二进制比对工具Pigaios

Pigaios原理简介

目的: 为了解决符号表问题

两种方案:

  1. 编译源码,使用 Diaphora (or BinDiff) 导出符号表,导入符号表缺失样本
  2. 从源码题符号表,导入符号表缺失样本

第二种方法好处在于不需要完全编译,因为对于旧的源码,有的很难编译成功

阅读更多