在Linux上使用AFL对Stagefright进行模糊测试

前言

模糊测试是一种自动向程序传递输入数据并监控其输出的自动化测试技术。通过这种技术,安全人员可以测试程序的可靠性以及识别潜在的安全漏洞。

我们(360成都安全响应中心)将对Stagefright Media Framework进行模糊测试。它是Android系统上用于解析多媒体文件的逻辑算法库,其中包含了大量的安全漏洞,攻击者通过构造特殊的多媒体文件导致拒绝服务或特权升级甚至远程执行代码。

我们将要使用的模糊测试工具为Michał Zalewski开发的一款最为流行的基于代码覆盖率的开源测试工具:AFL(American Fuzzy Lop)。 借助于其高效的策略,AFL已经在[……]

MORE

两个CVE案例分析:如何利用Android中的可信区域

前言

本文将从实际出发,讲述如何一步步地利用Android中的可信区域(TrustZone)。这里我使用的是华为海思的可信执行环境(Trusted Execution Environment,TEE)。首先我找到了一个可以获得内核权限的漏洞,然后我又发现了一个可以在TEE中执行任意代码的漏洞。以上试验结果证明了在华为海思可信执行环境中任何本地应用都可以执行shellcode这一概念的可行性。

 

背景

“ARM®TrustZone®技术是一种针对各种客户端和服务器计算平台(包括手机,平板电脑,可穿戴设备和企业系统)的安全性的全系统方法。”使用可[……]

MORE

科普 | 你必须了解的漏洞利用缓解及对抗技术

随着软件系统越来越复杂,软件漏洞变得无法避免。业界逐渐推出了让漏洞无法利用或利用难度提高的方法,简称漏洞缓解技术。我们简单介绍下Android和iOS中广泛使用的一些漏洞缓解及可能的绕过技术。当然这里也包含一些相关联的安全限制,而非真正意义的缓解技术。

缓解及绕过技术点

User Permissions

每个app有自己uid,selinux_context,只有申请并且用户允许才有权限做它想做的事。要突破这些限制,可以考虑通过每个app合理的权限相互结合后产生的不合理性来入手。或者App之间交互的漏洞,如Android的FileProvider,先拿下此app等。[……]

MORE

CVE-2016-6771: Android语音信箱伪造漏洞分析

谷歌近期对外公布了12月份的安全公告,其中包含腾讯安全平台部终端安全团队提交的语音信箱伪造漏洞(CVE-2016-6771),该漏洞可导致恶意应用进行伪造语音信箱攻击。目前谷歌已经发布补丁,本文将对该漏洞进行分析。

漏洞概述

Phone应用中存在一处未受保护的暴露组件com.android.phone.vvm.omtp.sms.OmtpMessageReceiver,该组件接收来自外部的Intent,解析承载的VVM协议,构造语音信箱。该漏洞可以被本地恶意应用触发,进行伪造语音信箱攻击。该漏洞属于比较常规的暴露组件问题。

漏洞详情

在对AOSP中系统应用进行分析[……]

MORE

彻底理解Android Binder通信架构

基于Android 6.0的源码剖析, 本文深度剖析Binder IPC过程, 这绝对是一篇匠心巨作,从Java framework到Native,再到Linux Kernel,带你全程看Binder通信过程.

一. 引言

1.1 Binder架构的思考

Android内核是基于Linux系统, 而Linux现存多种进程间IPC方式:管道, 消息队列, 共享内存, 套接字, 信号量, 信号. 为什么Android非要用Binder来进行进程间通信呢. 从我个人的理解角度, 曾尝试着在知乎回答同样一个问题 为什么Android要采用Binder作为IPC机制?. 这是我第一次认认真真地在知[……]

MORE

Android系统新权限模型剖析与预警

一、    新权限模型介绍

(一)Android版本演变与权限模型变更

前不久Google发布了新的系统版本Android 7.0。在之前发布的6.0版本中,引入了一种新的权限模型。新权限模型在旧模型基础上加入了运行时动态权限检查,权限不再是安装时一次性全部授予,而是运行时动态申请与授予,如果开发者未按要求动态申请权限或者权限申请未被用户许可,应用程序的相应行为将无法实施;同时,用户可以在应用程序权限管理中随时撤销掉已授予的权限。这样的动态权限模型让用户对应用程序运行时权限拥有更强的可视性与控制性,赋予了用户更多权限管理主动权,增强了权限模型的安全性。在最新的7.0版本中,依旧沿用了此权限[……]

MORE

农民斗地主——Binder fuzz安全研究

0.为什么要研究Binder fuzz

以目前最热门的指纹方案为例。

soter

TZ:Trustzone(请自行百度)
CA:Trustzone框架中的Clinet App
TA:Trustzone框架中的Trustzone APP

上层APP通过Binder机制调用keystore和FingerprintService两个底层系统服务,来获取密钥存储和指纹的能力。底层服务再通过CA跟TZ驱动通信,调用TZ中TA提供的服务,如指纹识别等安全性要求较高的服务。

我们今天只看Android侧的Binder体系。

Binder其实是提供了一种进程间通信(IPC)的功能。这些系统服[……]

MORE

基于自适应热补丁的Android内核漏洞生态修复方案

1. 背景

Android内核漏洞严重影响了Android平台的安全。一旦内核被攻破,所有依赖内核完整性的安全机制都岌岌可危(比如加密、进程隔离、支付、指纹验证等)。作为Android平台最后的防线,TrustZone也会受到威胁,因为内核可以从很多被信任的接口向TrustZone发起攻击。因此,理想情况下Android生态圈应该及时消灭内核漏洞。然而从Google的Android Security Bulletin上看,Android内核漏洞的数量呈飞快上涨的趋势(Figure 1所示)。虽然这代表着人们对内核安全的投入逐渐增大,但与此同时这些漏洞一旦公诸于众,在很长一段时间都难以得到[……]

MORE

让子弹继续飞-如何利用一个漏洞代码root更多手机

0x01 前言

  随着linux漏洞挖掘的深入,品相极好的任意地址读写皆备的漏洞已经难得一见
(如putuser/getuser)。大部分的漏洞都是任意地址写或者是代码执行路径可控的漏洞,而且从内核2.6.37开始,普通shell用户没有办法从/proc/kallsyms中读到内核符号表地址,为了适配不同的安卓/linux设备,大部分的漏洞利用代码不得不针对不同的设备进行硬编码适配。

本文介绍一种方法,这种办法不需要对特定的手机进行硬编码,使得漏洞利用代码更容易在各种设备上运行和验证。
为了方便学习,本文的附件中还给出了相关的针对CVE-2014-4323漏洞的免硬编码的利用[……]

MORE