APP下载

基于Android平台的移动智能终端安全防护系统应用设计

2018-04-25林振文

长春师范大学学报 2018年4期
关键词:应用程序终端程序

林振文

(厦门软件职业技术学院,福建厦门 361024)

随着智能芯片技术的不断发展,智能终端在过去一段时间获得长足发展,当前移动智能终端已经与人们的生活紧密结合在一起,并通过其自身搭载的系统实现各种生活需求。Android系统便是在该背景下被应用到智能终端中,并已经成为当前移动智能终端占比最大的应用系统。随着Android平台应用范围的不断扩大,该种系统带来的安全问题也逐渐受到人们的重视。Android平台与其他系统能够实现有效兼容,在此背景下Android为人们带来极大便利,同时也带来一些安全隐患,因此合理构建基于Android平台的移动智能终端安全防护系统尤为重要。

1 系统需求分析

结合当前移动智能终端用户实际需求,在研发安全防护系统时需要其具备三方面功能,分别为防盗模块、程序锁模块、垃圾信号拦截模块。这三个模块在移动智能终端运行过程中实时展开工作,为移动智能终端的运行奠定坚实基础[1]。

1.1 防盗模块

当前移动智能终端均需在其内部安装一个移动运营商通信卡,该卡的卡号是唯一的。例如手机里面的SIM卡,用户可通过将SIM卡号绑定方式保证其安全。Android系统在实际操作中会将其保存到系统后台中,此时该移动智能终端便成为唯一产品。若移动智能终端出现丢失情况,即使别人更换里面的SIM卡也无法使用,卡被更换后系统在开机时会自动产生开机信息,并通过后台系统自动判断当前卡号是否与之前卡号一致,若不一致则将当前卡号记录并发送至用户规定的另一个密保移动智能终端上,并开始对更换卡后的移动智能终端进行实时定位,帮助用户找寻到自己的移动智能终端。用户需要通过该程序设定其安全密码,一般而言安全密码十分重要,用户设置该安全密码后实现对移动智能终端的远程控制,只要用户发现手机丢失便可通过网络验证方式获得控制权限,保障移动智能终端丢失后自己信息不被泄露,同时也可及时找回丢失的移动智能终端。

1.2 程序锁模块

用户可将自己的隐私通过移动智能终端添加到网络数据库中,用户在某些时候不希望自己的这些信息被别人看见,此时就会对这些信息进行上锁,此即为程序锁。在此基础上用户便可自由地对想保密的文件进行上锁后将其加入数据库。对于确定需要打开的程序后台会首先判断该程序是否位于数据库中,此时用户移动智能终端便会通过后台服务器打开相应程序,在打开过程中将受保护的文件列出来,将需要输入密码才能打开的文件显现出来,用户必须输入与数据库中密码一致的结果才能打开该文件[2]。

1.3 垃圾信息拦截模块

垃圾信息拦截则是Android系统的一项重要安全防护功能,通过该功能可对外来信息进行过滤,挑选出其中一些疑似垃圾信息。当前Android系统在判断信息是否为垃圾信息时均通过关键词时间,例如当信息中含有敏感字眼便会提醒用户是否为垃圾信息,同时也可根据信息是否被多次举报来判断。

2 系统模型构建

2.1 Android防护系统解决方案与设计

图1为本研究构建的Android防护系统框架结构,系统在运行过程中对运行程序进行扫描,检验系统中是否存在恶意程序,在系统运行中主要通过特征码比对方式进行检验,发现系统中存在的病毒,并在检测到恶意程序后将其加入黑名单,并提醒用户删除恶意程序[3]。

图1 Android防护系统框架结构

对系统中存在的应用程序进行实时监测,消息可以被接收或发送到应用程序,通过电话进行窃听,并建立Wi-Fi连接方式,通过无线连接监控互联网连接的行为。当应用程序生成这些行为时,可以通过技术手段截获系统广播消息,如果系统敏感且可疑,则该系统弹出一个对话框,询问用户是否允许。即使我们不能确定应用程序是否是恶意的,也可以监视其行为,停止其危险行为,最后通过应用管理程序禁止操作甚至卸载。

严格控制授予应用程序的所有权限。将隐私安全权限分为两方面,短信、联系人记录、通话记录、手机定位、识别码、记录和视频相机等属于隐私权;发短信、接听电话、打开移动网络、打开Wi-Fi、蓝牙软件信息公开、阅读属于安全权限。获得所有应用程序的权限,并根据权限对它们进行分类。对被监视的软件设置规则,包括允许、提示和禁止[4]。

2.2 系统关键技术

2.2.1 代码注入

代码注入主要有两种形式,分别为静态注入和动态注入。其中,静态注入主要针对可执行文件,包括ELF、DEX等文件,其辅助工具较多,包括IDA、JEB、ApkTool等。动态注入针对进程,如对系统进程寄存器以及内存值的修改等。

2.2.2 Binder Proxy技术分析

在Android系统安全防护中需要首先对Broadcast Receiver的优先级进行提升,即对Android系统开机广播事件BOOT_COMPLETED进行监听,系统启动后开启一个Service,并进行动态的注册BroadcastReceiver,将注册的优先级调整到最高级integer.MAX_VALUE.该过程涉及代码如下:

Intent Filter filter=new

Intent Filter("android.provider.Telephony.SMS_RECEIVED");

filter.set Priority(Integer.MAX_VALUE);

register Receiver(new Sms Receiver(), filter);

为提高系统应对高级恶意软件的效果,在向系统中额外添加以下几个出发点:

WIFI_STATE_CHANED

CONNECTIVITY_CHANGE

ACCESS_NETWORK_STATE

ACCESS_WIFI_STATE

这些系统时间较之BOOT_COMPLETED均触发更早,因此恶意软件可能优先拦截到短信。Android在广播发送过程中通过Activity Manager Service(AMS)进行转发,因此Activity Manager Service(AMS)中存有多个Broadcast Receiver的相关信息,可通过Binder Proxy进行调整,将代码注入进程中,调整广播顺序。Android系统Binder机制中的四个组件Client、Server、Service Manager和Binder 驱动程序的关系如图2所示[5]。

图2 Binder机制关系图

在图2中,Service Manager、Client、Server的功能是在用户空间实现,Binder的功能是在内核空间实现。Binder和Service Manager封装于系统中,通过接口与外界空间相连,用户通过这些接口实现对应的Client、Server的功能;用户在与系统进行交接的过程中需通过Binder提供设备文件/dev/binder,Client、Server和Service Manager则以open和ioctl文件操作函数实现与Binder的通信;在系统运行过程中需要通过Binder实现Client和Server之间的通信,并以Service Manager对Server进行管理。在Android系统中,几乎所有的IPC都是通过绑定机制进行的,包括客户端与服务器之间的通信,将所有的服务称为本地服务,多个客户机可以对应同一个本地服务。

3 系统设计

3.1 病毒扫描模块

该模块的主要作用是对系统中的程序进行扫描,检查其是否为恶意软件,且在系统运行过程中需要让用户直观地观察系统程序运营情况,检测APP是否为安全的。在实际设计过程中可将界面划分为三部分,自上而下分别为正在扫描的信息、扫描进度条、被扫描用于程序名称及检测结果。其具体界面显示见图3。

图3 病毒扫描模块界面

在系统运行过程中首先需要获取病毒库资源,其中病毒样本信息主要通过Andro Mal Share等平台得到,之后将其集中存储于Virus.db数据库中,并建立其本地存储空间,便于将扫描的APP HASH值与系统 DATABASE中的样本HASH值进行匹配。其具体实现过程如下:(1)通过系统连接网络,从服务器端下载最新数据库,之后将其作为本地存储文件存储于本地数据库;(2)从Android端获取所有APP的程序名称以及签名;(3)对获取的信息进行MDS加密处理,并得到对应HASH值;(4)将得到的对应HASH值与病毒文件库中的程序签名进行比对;(5)通过Scroll View标签将得到的结果进行滚动显示。流程如图4所示[6]。

图4 病毒查杀流程图

本文在设计结构模型时采用MVC模式,通过View层以及Controller层建立模型方式,该种方式不仅可保证系统充分发挥其功能,还能从根本上消除系统中存在的不足。该种结构在应用中可将不同逻辑功能代码进行分层管理,在此基础上得到一个与之相应的应用程序,保证程序结构的逻辑性和清晰度,并需要保证Model以及View的同步性,当该结构中的Model发生变化时系统中的View也会发生同步改变,因此就要采用结构中的Controller对其进行控制。

3.2 防盗模块

防盗模块是移动智能终端的重要组成部分,该部分的主要作用是通过设置各种密码并将移动智能终端信息与SIM卡进行绑定实现相应功能。在开机时便需要验证,验证方式可以是指纹识别,也可以是输入数字密码方式,并可通过SIM卡信息识别进行验证,在开机时会自动产生开机信息,并通过后台系统自动判断当前卡号是否与之前卡号一致,若不一致则将当前卡号记录并发送至用户规定的另一个密保移动智能终端上,并开始对更换卡后的移动智能终端进行实时定位,帮助用户找寻到自己的移动智能终端。垃圾信息拦截模块与防盗模块工作原理类似,并且构建系统的模式较为类似,因此在本研究不再对此进行详细概述。

3.3 程序锁模块

在设计程序锁模块时主要通过建立表的方式,将用户需要进行保护的文件进行加密处理后存放于数据库中,在下次使用时需要进行验证,只有在验证无误的情况下才能获得相应文件的访问权限。基于Android系统的程序锁模块较为简单,所有程序自身包含的程序包名都是一致的,因此在实际设计中应该通过已设定的标准比对判断其正误。表1为一种常见的程序表数据结构。

表1 程序锁数据结构表

3.4 垃圾信息拦截模块

在以上设计的基础上,可将垃圾信息拦截模块设置于系统中,本文设计的系统是以关键词作为判断依据,判断Android系统接收到的信息是否为垃圾信息。当收到垃圾信息时系统便会自动发出关于垃圾信息处理的广播,并通过相关应用程序对垃圾信息的内容进行比对处理,若最终确定其为垃圾信息则将其标记并提醒用户谨慎打开,防止不良程序在移动智能终端中扩散,以此实现对垃圾信息的有效拦截,从根本上降低垃圾信息的危害。

4 结语

本研究对Android平台的移动智能终端安全防护系统应用设计进行分析,结合当前移动智能终端用户实际需求,所研发的安全防护系统具备三方面功能,分别为防盗模块、程序锁模块、垃圾信号拦截模块。在实际设计中设置病毒扫描模块、防盗模块、程序锁模块、垃圾信息拦截模块,对系统中存在的应用程序进行实时监测,消息被接收或发送到应用程序,通过电话窃听、Wi-Fi连接方式、无线连接监控互联网连接等操作,及时发现系统中存在的安全威胁,保障Android平台安全稳定运行。

[参考文献]

[1]储小宝,马兆丰,黄勤龙.基于Android平台的移动智能终端敏感信息安全防护技术的研究与实现[D].北京:北京邮电大学,2015.

[2]吴斌,逯全芳.基于Linux日志系统的Android移动智能终端操作系统攻击测评[J].网络安全技术与应用,2015(12):75-76.

[3]李春杰,史正乐,高慧敏,等.移动智能终端的个人隐私保护系统的开发设计[J].计算机应用与软件,2017(6):217-220.

[4]吴斌,逯全芳.Android移动智能终端操作系统权限机制的安全评估[J].网络安全技术与应用,2015(12):74.

[5]龙则灵,李祎.基于Android移动平台的档案利用服务系统[J].兰台世界,2016(8):9-11.

[6]周克辉.基于Android平台的手机导航系统设计[J].现代商贸工业,2016(33):383-384.

猜你喜欢

应用程序终端程序
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
删除Win10中自带的应用程序
试论我国未决羁押程序的立法完善
谷歌禁止加密货币应用程序
GSM-R手持终端呼叫FAS失败案例分析
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
创卫暗访程序有待改进
ABB Elastimold 10kV电缆终端及中间接头