APP下载

移动僵尸网络检测方法研究

2016-02-23

计算机技术与发展 2016年12期
关键词:僵尸安卓应用程序

徐 建

(南京邮电大学 计算机学院,江苏 南京 210023)

移动僵尸网络检测方法研究

徐 建

(南京邮电大学 计算机学院,江苏 南京 210023)

移动设备的普及和强大功能引来了越来越多的网络攻击。攻击者利用人们所使用的各种电子设备,将病毒传播到网络上。感染了病毒的移动设备,将会被加入到移动僵尸网络中,听从移动僵尸网络主控机的指挥,去感染其他机器并控制其传送信息。如不采用有效措施,随着移动僵尸网络的不断扩大,僵尸主控机有控制整个网络的可能,给整个网络安全带来极大的威胁。当前的移动僵尸网络威胁的解决方案还处于改善阶段,无法完全地检测到恶意攻击,因此迫切地需要更多的有关移动僵尸网络的分类、检测和响应等方面的研究。为了不断提高检测的效率和准确率,对移动僵尸网络的检测方法进行了详细的分析。综合其他研究成果可知,混合的分析方式可以大大地提高僵尸网络检测的效率和准确率。

移动僵尸网络;静态分析;动态分析;混合分析

0 引 言

由于新技术的出现和移动设备的特点,移动通信已成为教育、商业以及研究的各个方面不可缺少的组成部分。移动网络不是孤立存在的,现在又与互联网融合在一起(如:3G、4G和LTE技术)。这些设备在全球范围内的使用在不断增加,移动安全已经成为一个至关重要的问题[1]。现如今,使用移动设备不仅仅是打电话或发送信息,也用于Web浏览、社交网络、网上银行交易以及其他的一些扩展功能。所有的机密信息,例如:银行账号、网上银行的用户名和密码,信用卡卡号,珍贵的私人照片等都会保存在移动设备里。因此移动设备现在已成为网络犯罪的理想目标。针对移动设备的攻击和威胁有很多种形式,如:病毒、木马、蠕虫和移动僵尸网络等[2],然而移动僵尸网络更加危险,会给移动设备和移动网络带来严重的威胁[3-4]。文献[3]定义了一组移动设备的移动僵尸网络,它们被特定的恶意软件或是用户未知的软件所感染,这些感染的设备相互通过C&C机制进行通信,并由被称为僵尸主控机的攻击者来控制。攻击者利用僵尸主控机控制被感染的设备进行网络犯罪或网络攻击,例如:发送垃圾信息、中断、拒绝服务(DOS)和收集敏感信息用于非法的活动。移动僵尸网络检测方法的研究主要是通过对数据的不同分析方式进行比较,证实混合分析方式更适合对移动僵尸网络的检测。主要从静态分析、动态分析和混合分析中挑选出检测率高的数据分析方式。

1 移动设备所面临的威胁

图1显示了移动僵尸网络的基本体系结构,入侵者通过控制僵尸主控机来控制整个被感染的网络设备[5]。通常来看,智能移动设备面临的威胁[6]主要有以下几个方面:敏感数据泄露(手机密码、联系信息)、钓鱼攻击(从网站、公共的WiFi假身份验证)、安全隐患(蓝牙、越狱或浏览器的漏洞)、恶意软件的攻击(来自App Store或第三方的恶意应用程序)。随着使用智能移动设备安全意识的增强,有些威胁是可以避免的,但技术上的威胁是很难避免的,例如:各种漏洞和恶意软件攻击。

图1 移动僵尸网络结构

攻击者利用系统、网络、软件等各种各样的漏洞,绕过自身的安全策略去攻击和访问目标系统或ROOT系统。面对这样的威胁,可以通过安装补丁、不停进行更新,以最大限度减少损失,而移动恶意软件的攻击就很难防范了。移动恶意软件不断地以指数的速度增长,是最受黑客欢迎的技术。移动恶意软件在用户不知情的状态下,下载并安装到移动设备上,通过C&C进行信息的通信,形成一个移动僵尸网络。这也是最著名的恶意软件代表之一。它一直是用户隐私和财产安全的最大威胁。攻击者利用工具Zeus偷取银行凭证等各种浏览器上的信息,并发送到远程数据库。起初它主要针对台式计算机,但现在出现的Zeus移动木马病毒ZitMo,它是专门用在安卓系统上的。ZitMo是一个间谍木马病毒程序,它可以一直在手机后台运行,并且无法被关闭。而ZitMo最主要的功能是窃取用户使用手机支付时的交易授权码,在用户使用手机支付时,密码以及认证码等信息就可能会被ZitMo记录,从而导致财产和经济受损。其次ZitMo的变种还可以窃取短信信息,使该病毒的手机用户隐私就无从保证了。在2012年攻击安卓、塞班、Windows和黑莓智能手机的Eurograbber,它对银行账户进行欺诈,使得受害者的损失超过4 700万美元。

近年来,移动恶意软件的攻击和威胁一直在上升。Fsecure调查研究表示,移动恶意软件的威胁数量同比2013年第三季度上升了26%,2013年第三季度相比2012年第三季度有259个新的威胁出现。由于移动僵尸网络给用户带来了难以估量的损失,在此主要研究在安卓系统上如何检测移动僵尸机上感染的特定的恶意移动应用。

2 移动僵尸网络的基本理论

移动僵尸网络是僵尸网络的扩展,其相关理论知识沿袭了僵尸网络。下面主要从它的传播、命令控制和攻击三个方面来简单介绍。移动僵尸网络的传播目的是为了构建移动僵尸网络,大都是在用户不知情的前提下完成的,并带有明显的攻击行为。

2.1 传 播

移动僵尸网络的传播方式多种多样。它继承了传统的下载式传播和电脑连接式传播。入侵者利用被盗用的手机,使用蓝牙搜索附近的设备,在与其他设备配对后,会试图把他们的恶意软件注入到周边的移动手机用户。由于蓝牙技术的局限性,它不会出现病毒大规模爆发的情况。但在手机集中的公共场所,在蓝牙的通信范围之内,感染病毒的智能手机就会大幅增加,所以蓝牙还是一种传播病毒的载体。蓝牙手机病毒的传播不是集中式的,它是攻击者与受害者之间的暂时性连接,使其很难被监控、预防。

相对于蓝牙传播的局限性,WiFi传播具有一定的优势,无线僵尸网络可以实现更快的传输速度,支持多种僵尸网络活动,范围可以分散到多个城市。但是对于加密的网络来说,无线僵尸网络如果想入侵就比较困难,因此无线僵尸网络主要用于开放的和非加密的无线网络。家庭WiFi网络不想被别人占用,基本上都是加密的,而一些公共场所(如餐馆、咖啡馆)却都是开放的和非加密的。这给无线僵尸网络提供了传播的环境。这种传播形式的覆盖面还不是很广,而随着SMS/MMS的大量使用,利用SMS/MMS来传播越来越普遍。

在日常使用手机过程中,经常会使用SMS/MMS来发送消息。很多的控制命令就嵌入在短信、图片、声音、视频里,再通过SMS/MMS传播到用户的手机上。在用户不知情的情况下,在后台安装、运行。

现如今智能手机有自己的操作系统,计算机大部分的工作都可以用智能手机来完成,因此僵尸网络的一些传播方式也可以移植到移动僵尸网络中来。所以智能手机也可能通过网络浏览和Email的方式受到移动僵尸网络的感染。在未来的发展中,将会有更多的方式来传播、加入到移动僵尸网络中。

2.2 移动僵尸网络的命令控制机制

移动僵尸网络的命令控制(C&C)是指移动僵尸程序通过命令控制信道传输控制命令及数据,它主要是用来与移动僵尸网络的控制者进行通信。控制命令机制是由控制信道的网络拓扑结构、通信协议与算法和控制者使用的软件资源构成。

移动僵尸网络的拓扑结构可分为中心结构、P2P结构、组合结构和混合结构。纯中心结构是由移动僵尸网络的控制者通过控制中心节点来操控整个移动僵尸网络。在传统的僵尸网络中一般采用IRC和HTTP来构建中心结构的僵尸网络;而在移动互联网中相对比较复杂,中心节点是群发短信的手机,或具有群发功能的设备。这种结构的移动僵尸网络比较好检测,也容易破坏。因此后来又出现了纯P2P结构,通过在每个手机终端设置转发指令的僵尸网络通信录列表来解决转发的问题,这样没有中心的结构加大了检测和防御的难度。为了提高移动僵尸网络的传播,增加检测的难度,将中心结构与P2P结构相结合,称为组合结构。组合结构的僵尸网络是基于信誉度的,控制者将可信度高、在线时间长、计算能力高的节点添加到核心节点群,既保证通讯效率又保证僵尸网络的安全性。例如李书豪等提出的MRRbot就是这种结构。还有一种混合结构是利用以上两种或两种以上的结构进行搭配,来提高整个网络的生存性。在移动僵尸网络中使用的通讯协议包括基于IRC的、基于HTTP的、基于P2P的。攻击者最终的目的就是利用最新技术不断增强移动僵尸网络的鲁棒性和容纳能力。

2.3 移动僵尸网络的攻击

僵尸网络是当今最具有威胁的网络攻击平台,它几乎可以发动任何形式的攻击,例如DDOS、垃圾邮件、网络钓鱼、隐私窃取等等。移动僵尸网络的自身特点包括恶意扣费、通话窃听、垃圾短信、行为嗅探等。移动僵尸网络不像传统的软件病毒,它是有组织的,由控制者操纵的行为,是具有连续性的攻击行为。因此检测移动僵尸网络的存在是非常有必要的。

3 移动僵尸网络检测方法

在众多的移动应用程序中,检测和响应技术主要的目的就是检测恶意程序的存在。一旦发现,就净化、隔离、屏蔽或删除。现在已经有几种专门针对移动应用程序的检测技术[7-12],但这些研究大都集中在对移动恶意软件的检测,不过也适用于基本的移动僵尸网络检测技术的研究。一般的移动恶意软件检测可以分为静态分析、动态分析和混合分析。

3.1 静态分析

静态分析是在应用程序还没有执行的时候进行分析。它可以发现僵尸程序的详细功能,为动态分析提供补充。静态分析可以利用反编译工具查看僵尸程序源代码,并从程序中提取特性和方法,为以后追踪僵尸网络提供帮助。静态分析主要是利用了自动分析网站和反编译工具[13]。

(1)网站自动分析。

目前有很多网站支持恶意程序自动分析功能。例如360、金山的火眼系统等。因此,只需要提供僵尸程序,这些网站很快就可以做出分析结果。可以从这些网站所给的分析结果中直观地查看僵尸程序的恶意行为。但是只能从这种分析中大致了解它的恶意行为,以作为动态分析结果是否全面的映证。因此利用网站进行分析是一种辅助行为,是动态分析结果的补充。

(2)利用反编译工具进行分析。

反编译工具可以将僵尸程序反编译为可以阅读的代码,方便直观地查看原程序。主要目的是为了提取僵尸程序中的解密密钥和解密方式。因为移动僵尸网络在发布控制命令时,都要对控制命令进行加密。如果不知道解密密钥和解密步骤,即使与僵尸网络建立了连接,所截获的控制命令也是一串没有语义的代码。只有找到僵尸程序中的解密密钥,掌握解密的步骤,才能破解所追踪僵尸网络发布的控制命令,才可以实时掌握僵尸网络的动向,为切断和移除僵尸网络提供帮助。

Schmidt是第一个提出在移动设备上检测恶意软件的研究人员,特别是在装有安卓系统的智能手机。系统从应用程序的二进制文件中提取函数调用,并运用聚类机制检测未知恶意软件,称为重心。这是通过执行静态分析在安卓环境,Linux ELF(Executable and Linking Format)的目标文件使用readelf命令。这些文件中包含的信息如函数调用和修改的文件。将函数调用与恶意软件的可执行文件相比较,利用决策树学习(DTL)、最近邻算法(NN)和规则诱导因子(RI)进行分类。他们宣称该技术具有96%的检测精度,而误报率只有10%。但是该系统中主要使用的是小的恶意软件样本集合。这些恶意软件样本都是由自己编码的,并不能代表是在安卓市场上的移动恶意软件。此外,当时没有真正可用的安卓设备,无法正常测试该系统。同一年,一些专家[8]提出另外一种静态分析方式,即扫描匹配的恶意软件应用程序模式,被称为Kirin。定义具有各种潜在危险的权限组合规则来阻止潜在的不安全应用程序的安装。然而,Kirin更多的是对应用程序漏洞的评估,而不是移动恶意软件的检测。

文献[14]中也运用静态分析,提出将安卓恶意软件检测工具命名为DroidMat。DroidMat通过清单文件和API调用的痕迹来检测恶意软件。证明使用Androguard工具包能够找到比其他安卓检测工具更多的安卓恶意软件。然而,仅仅一个单一的安卓恶意软件样本,DroidMat无法预测和学习新恶意软件的行为。此外,有两个恶意软件家族(BaseBridge and DroidKungFu)使用了更新的攻击技术,这是DroidMat检测不到的[15]。

静态分析主要是针对已知的移动恶意软件,提供快速、简单、有效的检测和分类。但是对于通过加密和模糊等技术处理的新的、未知的移动恶意软件却无法检测。为了解决这个问题,就要使用动态分析来检测移动恶意软件。

3.2 动态分析

与静态分析相比,动态分析不检查源代码,而是对受控环境下执行的应用程序样本进行分析。在目前的研究中,有很多方法可以监视应用程序的行为,一般有登录行为序列、系统调用和动态污染、数据流和控制流[16]。通过监控和记录每个相关的执行操作生成报告,然后再对报告进行检测分析。

移动僵尸网络检测的动态分析主要借助于沙箱、蜜罐等设备分析移动僵尸程序、记录这些僵尸程序的详细活动过程,再对这些数据进行分析,步骤如下[13]:

(1)建立沙盒环境。用来获取僵尸程序运行的日志文件。目前使用比较广泛的有PC平台的SandBox、安卓平台的DroidBox等。

(2)在沙盒中运行僵尸程序。主要是用来记录僵尸程序活动的详细情况。由于运行周期较长,为了能得到完整的活动记录,所以要有较长的运行时间。

(3)获取行为日志。在沙盒中运行僵尸程序的目的就是为了获取僵尸程序的活动日志。目前各种主流的沙盒都是提供自动记录所运行恶意程序的日志,因此,只需在运行结束后,取出沙盒中自动记录的日志,再对所记录的日志信息进行分析。

在2010年,A. Shabtai和Y. Elovici提出了一种恶意软件检测方法。在移动设备执行应用程序时,通过监测获得各种特性和事件,然后利用机器学习异常检测器对正常良性的和非正常恶意的数据进行分类。他们将CPU的消耗,通过WiFi发送数据包的数量,键盘或触摸屏的按压以及应用程序的启动都作为一种特性。使用了信息增益、Fisher Score、卡方分布三种选择特性的方式来验证此模型。这种方法的准确度达到92%,然而这个系统有两个不足之处,一个是使用的不是真正的恶意软件样本,另一个是使用的被称为ADB Monkey的模拟用户交互应用程序并非是真正的用户。

I.Burguera和U. Zurutuza[11]针对安卓市场的应用程序行为提出了一种动态分析方法。他们使用一种名为CrowDroid的众包系统来获取应用程序的行为,如系统调用。CrowDroid收集在运行时间中一组用户的所有系统调用。主要采用K-均值聚类算法,将采集的数据分为两组(即良性组和恶意组),用来识别将恶意应用程序重新打包的特定用户。CrowDroid需要一组用户去执行恶意应用程序相应的原始应用程序。虽然实验结果表明检测的准确率达到100%,但是他们使用小规模的恶意数据集作为训练集。此外,该评价机制也是使用一套自我实施的恶意软件样本,而不是网络市场中公共的恶意软件样本。

3.3 混合分析

前面对应用程序分别进行了静态和动态的分析,并指出了不足之处。T. Bläsing等[10]提出一种静态分析和动态分析相结合的混合方法,称为AAsandbox。静态分析是通过解压缩apk文件,将它们的类文件转换成java源代码,搜索可疑的模式并标记出良性的或恶意的。在安卓模拟器应用程序执行期间,AAsandbox统计了所有系统调用的数量,用来检测恶意行为。但是通过AAsandbox获得的数据是多样化的,也导致了较低的检测精度[17]。另外,他们在动态分析模拟中也使用了ADB monkey。

Y. Zhou等[16]也提出了一种混合的分析方式,称为DroidRanger。DroidRanger使用静态和动态的分析技术去开发行为配置文件,通过扫描大量的安卓第三方应用程序的恶意行为,来检测可扩展的移动恶意软件。DroidRanger实现了一个基于许可的行为足迹的结合来检测已知的恶意软件族样本和基于启发式过滤方案检测未知的恶意族。在动态部分,使用了一个内核模块记录仅仅由安卓开发的系统调用或恶意软件,但是只监控现有root权限下的root开发的系统调用,因此不是在root权限下开发的新的恶意软件的系统调用,就很有可能避免被发现。这种使用启发式的检测假阴性率高,从5.04%到23.52%不等[18]。

无论是哪种结构的检测方式都有它的优缺点,也都可以通过不断进步的技术手段进行改善。尽管移动僵尸网络是最危险的移动恶意软件,大多数的系统都专注于移动恶意软件的检测。X. Jiang和Y. Zhou[19]研究显示,对1 260个移动恶意软件样本进行分析,有93%属于移动僵尸网络行为,因此迫切需要深入研究移动僵尸网络的检测。

4 结束语

通过静态分析、动态分析以及混合分析的方式解决移动僵尸网络的检测问题,仅仅是一个初级阶段,目前主要是针对移动恶意软件的检测。对不同数据分析方式的分析验证表明,一定条件下,混合分析方法更加有效可行。今后的研究工作应集中于移动僵尸网络组织结构及其个体的控制方式等方面。

[1] Flo A,Josang A.Consequences of Botnets spreading to mobile devices[C]//Proceedings of the 14th nordic conference on secure IT systems.[s.l.]:[s.n.],2009:37-43.

[2] Eslahi M,Salleh R,Anuar N B.Bots and botnets:an overview of characteristics,detection and challenges[C]//IEEE international conference on control system,computing and engineering.[s.l.]:IEEE,2012:349-354.

[3] LaPolla M, Martinelli F,Sgandurra D.A survey on security for mobile devices[J].IEEE Communications Surveys & Tutorials,2013,15(1):446-471.

[4] Pieterse H, Olivier M S.Android botnets on the rise:trends and characteristics[C]//2012 information security for South Africa.[s.l.]:[s.n.],2012:1-5.

[5] Abdullah Z,Saudi M M,Anuar N B.Mobile Botnet detection:proof of concept[C]//2014 IEEE 5th control and system graduate research colloquium.[s.l.]:IEEE,2014:257-262.

[6] Pu Shi,Chen Zhouguo,Huang Chen,et al.Threat analysis of smart mobile device[C]//General assembly and scientific symposium.[s.l.]:IEEE,2014.

[7] Schmidt A,Bye R,Schmidt H,et al.Static analysis of executables for collaborative malware detection on android[C]//IEEE international conference on communications.[s.l.]:IEEE,2009.

[8] Enck W, Ongtang M, McDaniel P. On lightweight mobile phone application certification[C]//Proceedings of the 16th ACM conference on computer and communications security.[s.l.]:ACM,2009.

[9] Shabtai A,Fledel Y,Elovici Y.Automated static code analysis for classifying Android applications using machine learning[C]//International conference on computational intelligence and security.[s.l.]:[s.n.],2010:329-333.

[10] Bläsing T,Batyuk L,Schmidt A,et al.An Android application sandbox system for suspicious software detection[C]//2010 5th international conference on malicious and unwanted software.[s.l.]:[s.n.],2010:55-62.

[11] Burguera I,Zurutuza U.Crowdroid:behavior-based malware detection system for Android[C]//Proceedings of the 1st ACM workshop on security and privacy in smartphones and mobile devices.[s.l.]:ACM,2011.

[12] Grace M,Zhou Y,Zhang Q,et al. S.Riskranker:scalable and accurate zero-day android malware detection[C]//Proceedings of the 10th international conference on mobile systems,applications,and services.[s.l.]:[s.n.],2012:281-293.

[13] 王 帅.移动僵尸网络检测与追踪技术研究[D].北京:中国科学院大学,2013.

[14] Wu D J,Mao C H,Wei T E,et al.DroidMat:Android malware detection through manifest and API calls tracing[C]//2012 seventh Asia joint conference on information security.[s.l.]:[s.n.],2012:62-69.

[15] Kwong L,Yin Heng.DroidScope:seamlessly reconstructing the OS and Dalvik semantic views for dynamic Android malware analysis[EB/OL].2013.https://www.researchgate.net/publication/267203108_DroidScope_Seamlessly_Reconstructing_the_OS_and_Dalvik_Semantic_Views_for_Dynamic_Android_Malware_Analysis.

[16] Zhou Y,Wang Z,Zhou W,et al.Hey,you,get off of my market:detecting malicious Apps in official and alternative Android markets[J].NDSS,2012,25(4):50-52.

[17] Lin Y D,Lai Y C,Chen C H,et al.Identifying android malicious repackaged applications by thread-grained system call sequences[J].Computer and Security,2013,39:340-350.

[18] Suarez-Tangil G,Tapiador J E,Peris-Lopez P,et al.Evolution,detection and analysis of malware for smart devices[J].IEEE Communications Surveys & Tutorials,2014,16(2):961-987.

[19] Jiang X,Zhou Y.Android malware[M].New York,NY:Springer,2013.

Investigation on Mobile Botnets Detecting

XU Jian

(College of Computer Science,Nanjing University of Posts and Telecommunications,Nanjing 210023,China)

The popularity of mobile devices and its powerful functions have attracted more and more attacks.An attacker uses a variety of electronic equipment used by people to spread the virus to other mobile devices on the network.The mobile devices with infected virus can be integrated into mobile Botnet to obey the dictates from the master control machine in the mobile Botnet and to infect other machines and control the transmission of information.Without the use of effective measures,the mobile Botnet has been expanding so quickly that the master control machine could have the potential to control the whole network leading to a great threat to the security of the whole network.Since the current solution for the threat of mobile botnet is still under evolution and unable to detect malicious attacks.Therefore it is an urgent need to develop the means of classification,detection and response for mobile Botnet.In order to improve efficiency and accuracy of detection,the detection method of mobile botnet has been analyzed in detail.The results integrated with other comprehensive investigations show that the hybrid analysis has greatly improved efficiency and accuracy of the mobile Botnet detection.

mobile Botnets;static analysis;dynamic analysis;hybrid analysis

2015-07-01

2015-12-16

时间:2016-11-21

国家自然科学基金资助项目(61202353)

徐 建(1980-),男,硕士,工程师,研究方向为信息安全、人工智能。

http://www.cnki.net/kcms/detail/61.1450.TP.20161121.1633.002.html

TP309

A

1673-629X(2016)12-0117-05

10.3969/j.issn.1673-629X.2016.12.026

猜你喜欢

僵尸安卓应用程序
iPhone不卡的秘密曝光:安卓也能享受
笔记本电脑“僵尸”
文物表情包
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
你愿意当吸血鬼还是僵尸?
一种基于安卓系统的手机侧抓包分析方法
在舌尖上筑牢抵御“僵尸肉”的防火墙
App已死?80%的僵尸应用带来的困惑
安卓L未至安卓M来了!安卓首泄漏M系统