基于Binder的Android支付信息安全的研究

来源 :计算技术与自动化 | 被引量 : 0次 | 上传用户:icanfly316
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着移动互联网的发展,Android手机平台内越来越多的APP具有移动支付功能。移动支付涉及到金融交易,支付信息安全显得尤为重要。本文分析了Android的Binder机制,通过将监控代码动态注入目标模块,对進程间的通信数据进行提取,通过比对既有信息,分析是否有恶意软件窃取目标APP的用户隐私信息。在支付环节之前将检测结果对用户给予提示,且对支付过程无较大影响,一定程度上保障了用户支付信息的安全。
  关键词:Android系统;Binder;动态注入;信息提取
  中图分类号:TN918.9
  文献标志码:A
  1 引 言
  基于Android系统庞大的使用人群,各应用公司开发了各式各样的APP为人们的生活提供了便利。但随着Android应用数量的急剧上升,应用质量参差不齐,恶意软件严重威胁着终端用户的财产和隐私安全,也制约着移动终端应用的进一步发展[1][2]。根据360互联网安全中心发布的《2016年安卓恶意软件专题报告》,2016年全年,Android平台新增恶意程序样本1403.3万个,平均每天新增3.8万恶意程序样本。
  随着手机支付功能的普遍化,恶意代码藏匿于普通应用程序盗取用户账户信息和密码的现象时有发生,恶意程序威胁着正常的支付功能,泄露了用户的敏感信息,对用户直接或间接造成经济损失[3]。手机支付越来越受到人们重视,使用的场景越来越多,但手机安全却阻碍其突破性发展。
  目前应用市场上存在手机管家,手机安全卫士等安全应用来管理和保护用户的手机,但安装这些安全应用会对手机产生一定的额外开销,且针对特定APP中的敏感信息无法做到精准的保护[4]。本文针对这一现象,为Android系统中涉及支付功能的应用提出一种支付信息的保护方式,通过比对进程间的通信数据,找到获取隐私信息的恶意APP,提醒用户进行处理,以此保障用户的信息安全。
  2 Binder通信机制
  Android系统是由谷歌公司基于Linux内核开发的智能操作系统,在Linux系统中,进程间的通信机制有很多种,包括pipe(管道)通信,socket(套接字)通信,signal(信号)通信这些传统IPC(Inter Process Communication进程间通信)。Android为每个APP分配了一个区分进程身份的属性-UID,传统的IPC只能由用户在数据包里填入UID/PID[5-6],但这样容易被恶意程序所利用。由IPC机制在内核中添加的属性才是最可靠的。Binder的出现满足了Android对通信方式,传输性能和安全性的要求,与其他进程间通信方式相比,Binder通信机制更安全、简洁、高效、快速,消耗的内存资源更少。
  Binder通信是Android系统的基础通信机制,转发应用之间的通信信息。Binder在完成本身转发信息的功能之外,在底层拷贝应用之间的通信信息,用户在使用手机过程中并不会察觉到。Binder在Android的各个版本中很少变动,因此基于Binder机制的方案便于移植到Android的各版本,具有很好的兼容性,可实现更多种类Android移动终端的覆盖。[7]
  图1表示了Binder基于Client-Server的通信模式,传输过程只需一次拷贝,为发送方添加UID/PID身份,既支持实名Binder也支持匿名Binder,安全性高。Binder的CS架构由四大部分组成,分别是服务端、客户端、服务管理器和内核空间里的Binder驱动[8]。
  服务端Server提供服务,一个或多个Client客户端向服务发起请求,通信过程由Binder接口实现,数据的交互与处理在Binder驱动中完成。服务需在服务管理器Service Manager中进行注册,Service Manager是Android系统中的守护进程,负责监听客户端的请求。
  3 系统设计与实现
  3.1 整体设计方案
  本方案设计的支付信息保护模块依托于APP的支付功能,整体流程如图2所示。
  当用户生成订单信息时,支付信息保护模块同时开始工作,从生成敏感信息时开始监控信息的流向。当用户发起支付时,客户端首先调用APP后台服务器接口,APP向后台接口传入等待付款的订单号,支付方式及一系列业务相关的参数,服务器收到请求后返回JSON格式数据。若请求成功,JSON数据里包括服务器根据订单号查询到的商品信息,交易的标题,订单金额等等。客户端收到成功的指令后,根据用户选择的支付方式准备调用相应的第三方支付平台的接口。根据支付平台的要求,需要传入JSON格式数据里的敏感信息。
  在敏感信息的流动过程中,支付信息保护模块同步检测敏感信息是否被其他恶意应用窃取,支付环境是否安全,将检测结果在页面予以显示,告知用户。支付信息保护模块同步覆盖支付的整个流程。
  3.2 代码注入
  代码注入是Linux系统提供的Ptrace系统调用,在目标内存空间进行hook操作。Android的动态链接器为Linker[9],可以实现ELF格式链接库的加载与链接。Ptrace使用PTRACE—ATTACH模式跟踪正在运行的进程,使其变为可控子进程[10]。具体过程如下:
  (1)调用Ptrace的PTRACE_ATTACH模式关联到目标进程;
  (2)获取目标进程的子进程、内存及寄存器信息并保存;
  (3)装载指定的共享库,将代码写入到目标进程上完成加载;
  (4)将函数重定向,使用新函数。主要修改PLT表和GOT表;
  (5)调用Ptrace的PTRACE_DETACH脱离目标进程。
  当客户端生成订单信息时,系统同时调用支付信息保护模块,首先将监控代码注入到对应模块。当目标进程被动态注入后,执行ioctl函数(i/o通道控制函数)时会跳到共享库中对应的重定向函数hooked_ioctl位置上执行。利用栏截到的ioctl函数返回的数据对进程间通信的数据进行解析,从而提取出应用程序在运行时刻的行为参数,可以进行提前预判和管理。ioctl函数的调用方式为intioctl(int fd, int cmd, struct binder___ write_read*bwr),第一个参数是文件描述符;cmd是用户程序对设备的控制命令,一般分为GET(从内核读数据)、SET(向内核写数据)等命令;第三个参数为类型为binder_write_read结构的数据流指针。   由Binder通信机制,应用程序使用服务时会优先同Service Manager进程通信来获取相应服务信息。Service Manager的Binder进程间通信数据流采用结构体binder_transaction_data表示,保存在结构体binder_write_read中的write_buffer和read_buffer所指向的字节缓冲区域。在应用同Service Manager进行交互时,Service Manager用read_buffer记录应用的IPC数据。所以接下来要通过结构体binder_transaction_data来解析read_buffer中指向的缓冲区域的数据。
  3.3 数据提取与比较
  binder—transaction__ data包含成员变量target,target是一个联合体,表示一个目标Binder对象,Binder驱动根据其中的handle找到应该由哪个进程处理该事件;code是一个命令,它描述了Binder对象执行的操作,当应用程序需要ServiceManager来查询相应的服务时,code为GET—SERVICE—TRANSACTION; sender _pid和sender euid为发起请求进程的PID和UID,用于识别应用的身份;data是一个联合体,存放数据,data_size表示数据的大小,其结构体ptr中的buffer保存通信数据。下面的伪代码用于提取buffer中的数据。
  //定义数据包保存提取的数据
  typedef struct Packet{
  pid__t sender__ pid;
  uid_t sender_euid;
  charservice_name;
  )packet;
  char*ptr;
  //遍历read_buffer缓冲区存放进一个移动指针
  for(i=O;1
其他文献
<正>当我们仰望浩瀚夜空时,最闪亮的那颗叫做金星当我们纵观当今舞林时,最"有名"的那位,也叫金星。我希望讲述的是,一个叫金星的舞者的一些故事,关于她的人生,关于她的车,关
当前课堂教学中有效性的缺失严重抑制了课堂教学功能的整体实现。追求“有效教学”,关注学生的发展已成为新课改的热点问题。文章分析了语文课堂教学无效性的情形并提出实施有
常言道:玩物丧志。到底如何去定义这四个字呢?他是一位平凡的古玩玩家,出生在一个非同寻常的年代,在那个年代里,把玩古玩是一种奢侈的生活方式,面对朋友们的冷嘲热讽,他选择走
随着社会不断进步,科技不断发展,人们的身体素质与体育教学之间的联系愈加紧密,初中体育教学作为极为重要的一环在体育教学系统中得到了越来越多的重视。兴趣教学在这样的背景下
初中语文核心素养和语文教学内容有着相辅相成的作用,初中语文核心素养在一定程度上推动了语文教学内容的整合,而语文教学内容的整合又有利于培养学生的语文核心素养。本文从初
<正>"檐前燕语唤村晨,三月由来景片新",阳春三月,万物更迭,别克君威GS2.0T豪情运动版、燃情运动版联袂君威1.6T精英技术型迎来焕新内饰,推出Alcantara~太妃棕镶拼绒面内饰,
<正>目前出现在市面上的电动分轴混合动力车都是使用单速变速器,然而固定的齿比在加速性能和最高车速方面对电力驱动装置存在一定的限制,因为为了防止电机转速过快,达到临界
随着社会的发展,我们逐步发现一个有进取心的孩子,他对待生活、学习一定是充满热情的;一个积极进取的孩子,他永远也不会满足于眼前所取得的成就,一个上进心十足的孩子,他绝不会像困
高中阅读范围中,选编了旧体诗歌,这是我国古代文学的精华,其中占多数的唐诗宋词更是千古传唱的名篇。当代人杨义说:“唐宋名篇已成为民族精神约定俗成的教科书”、“唐宋名篇沉积
近年来,教学改革不断深化,教学改革的重点是培养人的核心素养的全面发展。在这样的背景下,多元化评价模式的意义更加重要,在各个教育阶段都得到了充分的重视。本文分析了多元化评