有没有可以破译微信密码的软件?退休警员教你如何分辨...

访客3年前黑客文章942

Android系统服务即由Android提供的各种服务,比如WIFI,多媒体,短信等等,几乎所有的Android应用都要使用到系统服务。系统服务在为用户提供便利的同时,也存在着一些风险。比如,如果一个应用获取到了系统服务中的短信服务,那么他就可能会查看用户的短信信息,用户隐私就有可能暴露。此外,如果在使用系统服务的过程中,使用了异常的外部数据,有可能会导致系统服务崩溃,甚至是远程代码执行,内存破坏等等严重后果。因此Android系统服务的安全问题需要重视。

在以前的工作发现主要的漏洞和攻击主要包括特权提升攻击,恶意软件攻击,重打包,组件劫持攻击等类型。尽管安全研究人员已经针对Android上层app的漏洞挖掘做了大量的工作,但是针对Android系统服务的漏洞挖掘一直被安全人员所普遍忽视。

通过Binder机制可以对Android的系统服务漏洞进行深入的挖掘。本文基于Android的Binder机制编写了一套漏洞挖掘框架。

下面我们首先介绍一下先验知识。

1 基础知识1.1 Android的Binder机制

1.1.1 Binder概述

Binder其实也不是Android提出来的一套新的进程间通信机制,它是基于OpenBinder来实现的。Binder是一种进程间通信机制,它是一种类似于COM和CORBA分布式组件架构,是提供远程过程调用(RPC)功能。

什么是Binder

直观来说,Binder是Android中的一个类,它继承了IBinder接口 从IPC角度来说,Binder是Android中的一种跨进程通信方式,Binder还可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder,该通信方式在Linux中没有 从Android Framework角度来说,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager,etc)和相应ManagerService的桥梁 从Android应用层来说,Binder是客户端和服务端进行通信的媒介,当你bindService的时候,服务端会返回一个包含了服务端业务调用的Binder对象,通过这个Binder对象,客户端就可以获取服务端提供的服务或者数据,这里的服务包括普通服务和基于AIDL的服务 
在Android系统的Binder机制中,由一系统组件组成,分别是Client、Server、Service Manager和Binder驱动程序,其中Client、Server和Service Manager运行在用户空间,Binder驱动程序运行内核空间,如图1-1所示。Binder就是一种把这四个组件粘合在一起的粘结剂,其中核心组件便是Binder驱动程序了,Service Manager提供了辅助管理的功能,Client和Server正是在Binder驱动和Service Manager提供的基础设施上,进行Client-Server之间的通信。Service Manager和Binder驱动已经在Android平台中实现好,开发者只要按照规范实现自己的Client和Server组件就可以了。 

这里写图片描述

图1-1 Binder架构图

1.1.2 为什么使用Binder 
Android中有大量的CS(Client-Server)应用方式,这就要求Android内部提供IPC *** ,而linux所支持的进程通信方式有两个问题:性能和安全性。 
目前linux支持的IPC包括传统的管道,System V IPC(消息队列/共享内存/信号量),以及socket,但只有socket支持Client-Server的通信方式,由于socket是一套通用的 *** 通信方式,其传输效率低下切有很大的开销,比如socket的连接建立过程和中断连接过程都是有一定开销的。消息队列和管道采用存储-转发方式,即数据先从发送方缓存区拷贝到内核开辟的缓存区中,然后再从内核缓存区拷贝到接收方缓存区,至少有两次拷贝过程。共享内存虽然无需拷贝,但控制复杂,难以使用。 
在安全性方面,Android作为一个开放式,拥有众多开发者的的平台,应用程序的来源广泛,确保智能终端的安全是非常重要的。终端用户不希望从网上下载的程序在不知情的情况下偷窥隐私数据,连接无线 *** ,长期操作底层设备导致电池很快耗尽等等。传统IPC没有任何安全措施,完全依赖上层协议来确保。首先传统IPC的接收方无法获得对方进程可靠的UID/PID(用户ID/进程ID),从而无法鉴别对方身份。Android为每个安装好的应用程序分配了自己的UID,故进程的UID是鉴别进程身份的重要标志。使用传统IPC只能由用户在数据包里填入UID/PID,但这样不可靠,容易被恶意程序利用。可靠的身份标记只有由IPC机制本身在内核中添加。其次传统IPC访问接入点是开放的,无法建立私有通道。比如命名管道的名称,system V的键值,socket的ip地址或文件名都是开放的,只要知道这些接入点的程序都可以和对端建立连接,不管怎样都无法阻止恶意程序通过猜测接收方地址获得连接。 
基于以上原因,Android需要建立一套新的IPC机制来满足系统对通信方式,传输性能和安全性的要求,这就是Binder。Binder基于 Client-Server通信模式,传输过程只需一次拷贝,为发送发添加UID/PID身份,既支持实名Binder也支持匿名Binder,安全性高。


相关文章

黑客攻击美国事件(美国黑客攻击腾讯)-黑客修改网赌存款金额

黑客攻击美国事件(美国黑客攻击腾讯)-黑客修改网赌存款金额

黑客攻击美国事件(美国黑客攻击腾讯)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑客业...

黑客攻击教育平台(黑客教育机构)

黑客攻击教育平台(黑客教育机构)

本文目录一览: 1、年仅10岁的天才“黑客”:因不想写作业而黑掉学校网站,他现状如何呢? 2、中国安全网安全教育平台怎么登录 3、天津4所幼儿园报名系统疑遭黑客攻击是怎么回事? 4、为什么...

微信聊天记录少了几条「微信聊天记录有几条」

微信聊天记录少了几条「微信聊天记录有几条」

  在手机上是无法直接统计出与某人有多少条聊天记录的。   但你可以把微信聊天记录导出到电脑上来,然后在Word中进行统计。   苹果手机微信聊天记录导出到电脑Word的步骤如下 :   如果你...

微信定位找人软件下载 微信好友定位软件

每日要闻最好不要用微信!小心泄露你的位置信息、微信源地图或泄露位置信息!你担心你的位置会被曝光吗?也许很多人并不担心这一点,毕竟,这些照片通常是发给他们的熟人的,但如果你发给陌生人的照片被一些坏人看到...

保险柜密码锁怎么开?附详细的步骤和图解(一看就会)

1、多拨式密码锁 最简单的密码锁,常见于安全设定较低的自行车锁,存在多个拨圈。每个圈的中间会有凹位,锁的中心部位有一条轴,上面有几个凸出的齿轮,用来卡住拨圈。当拨圈转到正确的密码组...

王者荣耀520皮肤买哪款好?刘备和孙尚香时之恋人买哪个?

王者荣耀520皮肤买哪款好?刘备和孙尚香时之恋人买哪个?

王者荣耀520新皮肤都已经上线了,刘备和孙尚香喜提新皮肤,这两款皮肤的背景故事和皮肤原画图都是不错的,很有意境,但是大家也知道游戏内模型和原画都是有比较大差距的,再加上两款皮肤价格也是有点小贵,那么这...