Android平台下的安全检测软件的设计与实现

2015-01-04 08:51:30曹欢欢李永忠
电子设计工程 2015年12期
关键词:应用程序短信病毒

曹欢欢,李永忠

(江苏科技大学 计算机科学与工程学院,江苏 镇江 212003)

Android是一个开源的移动平台操作系统,占据了大部分市场份额。随着Android的快速发展,针对Android的恶意软件也越来越多。从2004年第一个手机病毒出现起[1],现在已发展有数百种,而且还在继续增长。根据日前发布的“2014年上半年手机安全状况报告”显示,2014年上半年互联网安全中心共截获Android平台新增恶意程序样本21.53万个,较2013年同期增长116%,手机木马增长一倍、垃圾短信规模已超百亿,造成用户大量的直接或间接经济损失、隐私泄露等危害。

Android恶意软件的危害越来越严重,本文结合Android系统自身特点,提出并实现了一个安全检测软件。

1 Android体系结构

Android的系统架构采用了分层架构的思想[2],如图1所示。从上层到底层共包括四层,分别是应用层(Applications)、应用框架层(Application Framework)、系统库和Android运行时 (Libraries、Android Runtime) 以 及 Linux 内 核 层 (Linux Kernel)。

应用层主要是一些核心应用程序包,包括系统自带的和用户安装的应用程序。应用框架层是Android应用开发的基础,为应用程序提供API,包括活动管理器、内容提供者、电话管理器、位置管理器等。系统库为应用框架层提供C/C++库,Android运行时提供JAVA核心库和Dalvik虚拟机。Linux内核层是Android的核心,也是作为硬件与软件栈的抽象层,提供底层服务。

图1 Android系统架构图Fig.1 System architecture of Android

2 Android平台的安全检测软件的设计

2.1 设计原理

针对Android系统的恶意软件类型包括:

1)资费消耗[3]:这类恶意软件在后台连网,上传用户的隐私信息或者在后台下载其他应用程序、订购业务或者其它病毒程序。

2)获取隐私[4]:这类恶意软件主要窃取用户位置信息、通讯录、支付信息等隐私资料,通过网络上传到指定的服务器或者通过短信发送到指定的手机上。

3)流氓软件:这类恶意软件一般从网络上下载或者被二次打包到别的应用中,难以卸载,影响手机的正常使用。

4)恶意扣费软件[5]:这类恶意软件通过短信或者电话等诈骗用户,或在用户不知情的情况下,向SP订购付费业务,造成用户的经济损失。

现在恶意软件大多采用伪装的方式,骗取用户安装并授予一定的权限,之后滥用这些权限在后台执行一些特定行为,给用户造成损失。因此本文着重加强短信、电话、网络方面的检测,加强手机的安全。

2.2 系统设计

本文根据Android手机特点,研究实现了一个在应用层上保护和加强系统和用户数据的安全检测软件[6-8]。

该软件主要根据病毒特征[9-10],进行病毒扫描,查杀病毒程序,同时监听短信、电话、网络、流量、支付环境和程序安装等敏感行为,实时检测系统的安全状态。系统主要由5个模块构成:手机杀毒、支付检测、安全检测、安全日志、和手机防盗模块,如图2所示。

图2 Android安全检测系统结构图Fig.2 Schematic diagram of the Android security detection system

系统中手机杀毒和支付检测模块是提取手机的特征码,并与病毒库中的特征码进行比较,是依赖已有的病毒库来杀毒的。安全检测模块是在后台检测手机的短信、电话、流量等来判断程序是否正常,除了依赖已有的病毒库,还由用户来进行判断程序是否是病毒程序。日志模块用来显示检测的信息,手机防盗模块防止手机丢失后,用户的信息泄露。系统的这些模块可以全面的保护Android手机用户的安全。

3 Android平台安全检测软件的实现

3.1 手机杀毒模块

杀毒模块使用静态检测方法,提取Android设备中所有应用程序的特征值,与病毒特征库中的值相匹配。每一种病毒都有特定的特征码,就是MD5值。杀毒模块就是根据程序和文件的特征码来判断是否是病毒。

每一个Android应用程序的包名和签名都是一一对应的,对在Android上已经安装的应用程序,只要提取到应用程序的特征码,然后查询数据库,对比即可实现病毒的查询。用PackageManager类可以获取已安装的应用程序的签名信息,遍历应用程序的签名信息,将签名信息转成MD5值,用于与病毒数据库比对。

而杀毒过程就是一个卸载应用程序的过程,需要将病毒存入缓存中,然后通过遍历卸载即可。

3.2 支付检测模块

随着手机支付的流行,支付类病毒越来越多,保护网购的环境至关重要。本系统中,支付检测模块可以在手机进行网上支付的时候,检测手机的环境是否有病毒。

当用户选择支付检测保护之后,会发送一个Brocast Receiver的子类PaymentReceive,用来监听正在运行的程序。如果正在运行手机钱包、米折等支付类程序时,扫描手机正在运行的程序是否是病毒程序,以保证用户支付环境的安全。

3.3 安全检测模块

安全检测模块是具有主动防御的功能。此模块可以监听短信、监听电话、监听程序的安装、监听网络、流量检测等,可以检测除了病毒库之外的恶意软件和病毒。此模块是一个后台的Service服务,在应用上没有显示界面,可以实时监控手机的安全,有病毒入侵时可以及时检测出来,提醒用户处理病毒。

在Service中创建一个BrocastReceiver的子类Detection Receiver,为了防止广播被病毒优先接到而终止,把优先级设为最大整型数,监听短信电话、网络、流量等信息,流程图如图3。

图3 安全检测流程图Fig.3 Flow chart of the security detection

3.4 安全日志模块

安全日志模块用于记录手机扫描的结果和安全检测发现病毒的日志,包括手机扫描的时间、扫描的结果,以及后台监听的时候发现病毒的时间、名称、路径、处理结果。

利用SQLite在本地创建一个数据库securitylog.db,发现可疑程序后,先与病毒库比对,如果不在病毒库内,再让用户判断;如果确定是病毒程序,就用SQL语句,将可疑病毒加入到病毒库,并在安全日志中记录。

3.5 手机防盗模块

随着手机支付的流行,手机里不仅有用户的个人隐私信息,还有个人的银行账号信息。如果手机不小心遗失,里面的信息都会泄露,可能会遭受经济损失。手机防盗模块可以向绑定的安全号码发送一些防盗指令,来获取手机位置、播放报警音乐、远程锁屏、清除手机数据,从而保护用户的信息安全。

对于手机,当SIM卡发生变化时,系统会重新启动,然后重新识别SIM卡。系统重新启动时,手机发出“android.intent.action.BOOT_COMPLETED”的消息广播,需要配置接收开机自动启动广播的权限和发送短信的权限:

android.permission.RECEIVE_BOOT_COMPLETED

android.permission.SEND_SMS

当SIM卡改变之后,可以向指定的安全号码发送消息。安全号码收到报警信息之后,可以向丢失的手机发送一些指令:播放报警音乐、锁屏、获取位置信息、清除数据恢复至出厂设置。丢失的手机收到信息之后,分析信息类容,获取超级管理员权限,做出相应的处理:

#*location*#获取手机位置

#*alarm*# 播放报警音乐

#*locksrceen*#远程锁屏

#*wipedata*#清除数据

4 测 试

Android安全检测系统的实现如图4所示。

图4 Android安全检测系统实现图Fig.4 Implementation diagram of Android detection system

4.1 功能测试

测试项:1)手机杀毒;2)支付检测;3)安全检测;4)日志;5)手机防盗。

测试时,对每项功能都进行了验证,结果如表1。

4.2 压力测试

Android自带的Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Tracball、按键灯操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。

表1 测试结果Tab.1 Test result

将安装Eclipse的tools路径添加到环境变量中,在PC上执行Monkey对程序进行1000次测试:

adb shell monkey-p com.example.mobilesafe-v 1000

参数-p用于指定限制包名,-v用于反馈信息级别,就是日志的详细程度。测试结果如图5所示。

图5 测试结果Fig.5 Test result

测试共耗时9 746 ms,在1000次测试中,只有2个按键操作丢失,其它事件的丢失数为0,表明此软件具有较强的稳定性。

5 结 论

根据测试结果,软件在应用层能够有效查杀已安装的病毒程序和病毒文件,并能实时监控短信、电话、流量等。同时,抗压能力较强,能够稳定的运行,有效保护Android用户的安全。

[1]Aubrey-Derrick Schmidt,Hans-Gunther Schmidt,Batyuk L,et al.Smartphone malware evolution revisited:Android next target[R].International Conference on Malicious and Unwanted Software,2009.

[2]乜聚虎,周学海,余艳玮,等.Android安全加固技术[J].计算机系统应用,2011,20(10):74-77.NIE Ju-hu,ZHOU Xue-hai,YU Yan-wei,et a1.Android security reinforcement technology[J].Computer Systems&Applications,2011,20(10):74-77.

[3]程胜利.计算机病毒及其防治技术[C].北京:清华大学出版社,2004.

[4]罗忠,张旭,罗英,等.手机病毒——一个并不遥远的话题[J].移动通信,2002(5):83-85.LUO Zhong,ZHANG Xu,LUO Ying,et a1.Mobile phone virus-A not too distant topic[J].Mobile Communications,2002(5):83-85.

[5]朱圣军,刘功申.智能手机病毒与信息安全[J].信息安全与通信保密,2011(5):96-97.ZHU Sheng-jun,LIU Gong-shen.Smartphone virus and information security[J].Information Security and Communications Privacy,2011(5):96-97.

[6]沈才樑,唐科萍,俞立峰,等.Android权限提升漏洞攻击的检测[J].电信科学,2012.28(5):115-119.SHEN Cai-Liang,TAGN Ke-Ping,YU Li-Feng,et a1.Android privilegeescalation vulnerability attacksdetection[J].Telecommunications Science,2012,28(5):115-119.

[7]王力生,叶希哲.一种基于Android的防火墙的研究与实现[J].计算机安全,2009(10):36-38.WANG Li-Sheng,YE Xi-Zhe.Study and realization of a firewall based on android[J].Network and Computer Security,2009,(10):36-38.

[8]Ming-Yang Su.Prevention of selective black hole attacks on mobile ad hoc networks through intrusion detection systems[J].Computer communications,2011,34(1):107-117.

[9]Olli-Pekka Niemi,Jukka Manner et al.Dismantling Intrusion Prevention Systems[J].Computer Communication Review,2012.42(4):285-286.

[10]Cheung,Steven.Securing Collaborative Intrusion Detection Systems[J].IEEE Security&Privacy,2011,9(6):36-42.

猜你喜欢
应用程序短信病毒
病毒
感冒病毒大作战
幼儿园(2021年16期)2021-12-06 01:06:36
病毒,快滚开
感冒病毒
删除Win10中自带的应用程序
电脑报(2019年12期)2019-09-10 05:08:20
道歉短信
当代工人(2019年4期)2019-04-22 12:04:26
代发短信
当代工人(2018年21期)2018-03-06 12:41:08
关闭应用程序更新提醒
电脑迷(2012年15期)2012-04-29 17:09:47
三星电子将开设应用程序下载商店
“八一”节日短信之一