APP下载

Android勒索软件防护技术研究*

2020-05-04胡建伟崔艳鹏

计算机工程与科学 2020年4期
关键词:勒索静态加密

胡建伟,张 玉,崔艳鹏

(西安电子科技大学网络与信息安全学院,陕西 西安 710075)

1 引言

勒索软件是一种非常典型的恶意软件,它通过将用户设备锁住或将设备中的数据以及资源加密来向用户索要赎金进行牟利。由于勒索软件一般采用强加密手段加密用户数据,因此其造成的后果几乎是不可逆转的,由此给用户和企业带来了极大的隐私和安全威胁。最早的勒索软件可以追溯到20世纪80年代末[1],但是直到近几年才开始大规模爆发。据统计,2013年勒索软件的数量同比增长超过500%,逐渐成为最引人注目的恶意软件威胁之一[2]。2016年勒索软件数量激增至170万,被称为“勒索软件之年”。根据Symantec的数据报告[3],2017年勒索软件变种的数量增加了46%,爆发范围波及到全球。2018年,虽然勒索软件活跃度总体降低,但是勒索软件目标开始转向企业,企业感染数量上升了12%,造成的危害仍然不容小觑[4]。勒索软件最初只针对PC(Personal Computer)端使用率最大的Windows平台,但随着Android智能手机的快速发展,其越来越开放的应用市场和相对宽松的审查机制给了勒索软件可趁之机。Kaspersky labs在2015年第一季度发现了1 113个针对Android设备的勒索软件样本。2016年手机勒索软件再次激增,是2015年的4倍,360手机卫士共截获Android平台勒索软件新增样本17万个。Symantec发布的2019年《互联网安全威胁报告》[4]显示,2018年移动设备上的勒索软件的感染比例比2017年高出1/3,手机感染勒索软件的事件呈急速上升趋势。

由于手机勒索软件越来越猖獗,Android平台勒索软件的预防与检测得到人们越来越多的重视,研究人员提出了很多相关研究成果。但是,目前尚没有系统地对Android平台勒索软件预防和检测技术进行研究综述,比较相关的是Monika等[5]和Bander等[6]的研究。前者只对Android平台勒索软件的发展和演变作了系统的描述,并未对Android平台勒索软件的预防和检测技术做调研。后者对所有平台的勒索软件预防与检测技术进行了综述,但是针对Android平台的调研只有3篇相关文献。现在针对Android平台勒索软件的预防与检测技术已取得较多的进展,需要重新归纳总结。因此,本文搜索了IEEE Explorer、ACM数据库、Springer数据库和Elsevier数据库中目前为止所有针对Android平台勒索软件的防护技术,全面分析比较了不同技术的优缺点,并对未来的研究方向进行了探讨。

2 Android勒索软件分析

勒索软件是一种恶意软件,其根本目的是迫使用户交付赎金以重新获取系统的访问权。勒索软件可分为2类:锁屏勒索软件与加密勒索软件。锁屏勒索软件顾名思义,是指能将用户设备锁定,然后在屏幕上显示一条付款消息。加密勒索软件则是对设备中的数据资源进行加密,使用户无法访问。

2.1 典型的Android勒索软件

2017年,臭名昭著的WannaCry勒索软件在全球范围内大爆发,主要针对用户量大的Windows平台。受其影响,WannaLocker勒索软件以类似的方式攻击Android平台,它伪装成游戏插件,诱骗用户下载启动。这个伪插件会对外部存储中的数据进行编码并使用对称加密算法AES(Advanced Encryption Standard)加密这些文件。完成加密后,在屏幕上将显示一条勒索信息。

2017年,另一个臭名昭著的勒索软件是DoubleLocker,DoubleLocker通过对受攻击的网站以冒充Adobe Flash更新的形式传播,它是第一个滥用Android可访问性的勒索软件,而这通常是Android银行木马用来窃取银行凭证的手段。

另一种特别的勒索软件名为LeakerLocker,LeakerLocker不像通常的勒索软件对文件进行加密,而是威胁用户手机中保存的个人数据。侵入设备后,LeakerLocker会收集尽可能多的私人信息,然后显示一份赎金通知,说明所有的个人数据都已被复制到攻击者的云端,并且表示除非支付赎金,否则这些信息都将发给所有受害人的联系人。

2.2 Android勒索软件的特征

(1)锁屏。

锁屏勒索软件通过获得管理权限锁定智能手机屏幕。锁屏勒索软件主要有2种方式,一种是利用WindowManager.LayoutParams通过控制flags属性设置一个特殊的全屏窗口并置顶;另一种则是通过激活设备管理器的方式,设置系统的锁屏密码,导致无法进入系统操作界面[7,8]。该类型的勒索软件目标明确,通常针对特定的设计漏洞。锁屏勒索软件实现流程如图1所示。

Figure 1 Implementation process of lock ransomware图1 锁屏勒索软件实现流程

(2)文件加密。

加密勒索软件通常采用对称加密算法AES进行加密,但也有勒索软件采用对称加密和非对称加密混合加密的强加密方式,因此文件一旦被加密几乎很难在没有密钥的情况下恢复。加密使用的加密密钥通常在二进制文件中以纯文本的形式进行硬编码或者通过与命令与控制C&C(Command & Control)服务器交互获得。加密勒索软件的实现流程如图2所示。

Figure 2 Implementation process of encrypted ransomware图2 加密勒索软件实现流程

(3)C&C服务器通信。

安装成功后,大多数Android勒索软件会向C&C服务器发送报告,现代勒索软件主要通过C&C服务器获取密钥。勒索软件会与C&C服务器建立一个永久的C&C通信通道,用来一直监听并执行来自勒索软件攻击者发送的命令,这样就建成了由攻击者控制的受感染Android设备的网络。这些命令除了显示索要赎金的警告信息,还包括向所有设备中的联系人发送邮件、访问消息、关闭WiFi、关闭移动数据、跟踪用户的全球定位系统信息等等。

(4)权限许可。

与其他恶意软件相比,勒索软件没有明显的恶意行为,相反,勒索软件在打开弹出窗口、文件加密等方面与良性软件十分相似。ACCESS_NETWORK_STATE、READ_PHONE_STATE和INTERNET是勒索软件和恶意软件普遍要求的权限,因此这些权限与服务器进行网络通信是必须的。而考虑到勒索软件特有的行为,其更加倾向于与设备请求相关的权限,如WALK_LOCK、DISABLE_KEYGUARD、SYSTEM_ALERT_WINDOW、KILL_BACKGROUND_PROCESS、GET_TASK等。勒索软件会在智能手机重启后显示警告勒索信息。劫持活动是锁定手机的主要任务。

(5)勒索警告信息。

勒索就需要向用户显示警告信息,用来显示赎金的金额、支付方式、地址以及期限等。大多数勒索软件要求通过比特币等加密货币的方式支付赎金,达到隐藏攻击者身份的目的。除此之外,有的勒索软件显示的警告信息包含恐吓内容,如Locker勒索软件,它声称在用户的设备发现了色情图片必须要交罚金,否则将向FBI报告的警告信息。

3 Android平台勒索软件防护

Android平台勒索软件预防与检测的研究成果非常多,本文按照检测方法的差异将其归纳为基于程序分析方法、形式化方法、机器学习方法、用户意图、数据备份和结构熵6大类。

3.1 基于程序分析方法

程序分析方法一般分为静态分析、动态分析和混合分析。静态分析是在程序不运行的情况下,利用自动化静态分析工具(如IDA Pro)对程序源码进行分析的技术。在分析Android可执行文件时,需要首先对可执行程序进行逆向工程,并通过分析逆向工程得到的文件查找恶意代码和资源,常见的有:可疑字符串、可疑图像、可疑操作码序列等静态资源。动态分析则是在程序运行的状态下,通过监控程序的运行,找到与恶意程序相似的模式或行为。混合分析则是静态分析与动态分析的结合,检测精度更高。3种方法的比较如表1所示。

Table 1 Comparison of three program analysis methods表1 3种程序分析方法的比较

3.1.1 基于静态分析方法

文献[9]基于静态分析方法提出了实时检测方法RansomGuard,该方法从大量样本中提取出勒索软件的典型特征,如权限、威胁文本等,然后利用模块化规则归纳学习算法得到分类规则。文献[9]的作者采用2 721个勒索软件和5 396个良性样本作为数据集,准确率最高可达95.3%且误报率仅为0.6%。此外,针对性能测试,发现系统平均花费5 s就能弹出警告。但是,由于RansomGuard是建立在静态分析的基础上,因此使用代码加密、反射等混淆技术会使得某些特征无法提取,导致准确率降低。

Maiorca等[10]利用静态方法提取API包构建了模型R-PackDroid,对Android勒索软件进行检测。该模型不依赖于勒索软件加密的先验知识,只依赖于应用程序中API包及其调用频率,检测精度比HelDroid高,但是其抗混淆能力较差,因此误报率较高。

由于只用静态分析方法检测勒索软件准确率无法满足用户需求,Kanwal等[11]将静态分析方法进行了拓展,除了使用静态分析方法从文本和图像中检测勒索软件威胁信息外,还提供了硬件交互,在用户遭受锁屏勒索软件侵害的情况下,通过使用广播接收器多次按下电源按钮取得屏幕的控制权。此外,该应用程序提供了一个功能—将重要文件上传到在线服务器,以避免文件被加密型勒索软件加密无法恢复的情况。但是,作者只用了一个特定的应用程序进行实验,因此其通用性和性能有待测试。

3.1.2 基于动态分析方法

文献[12]提出了一种动态分析方法。该方法包含3个模块:配置模块、监控模块和处理模块。配置模块负责将重要文件所在区域注册到监控模块的监视列表,将监控模块检测到的用户处理注册到数据库;监控模块负责监控进程对CPU(Central Processing Unit)、内存、I/O(Input/Output)和文件的操作;一旦检测到可疑进程就将信息发送到处理模块,强制停止该进程并向用户询问对该进程的处理。由于该方法可以在Android源代码中实现,因此检测速度可以非常快,但是无法检测到带有威胁文本和锁型勒索的软件。此外,因为此方法只检测CPU和I/O使用中的异常行为,模拟攻击可以避开这种检测。

文献[13]提出了一种能保护隐私和检测勒索软件的应用程序—Sdguard。该应用程序基于Linux DAC机制细粒度的权限控制检测加密型和锁型勒索软件。当一个外部应用程序对文件进行操作时,Sdguard首先根据访问控制列表检查其权限,并将所有的I/O操作转存到日志文件,通过分析日志文件检测恶意行为;同时,Sdguard检测Android系统的活动堆栈,如果发现存在应用程序长时间处于顶层堆栈,则将其视为锁型勒索软件并杀死相应的进程,不过遗憾的是该技术尚未经过实践检验。

3.1.3 基于混合分析方法

2015年,第1个用于Android勒索软件检测的混合分析方法—HelDroid被提出[14]。该工具包括基于自然语言处理NLP(Natural Language Processing)监督分类器的威胁文本检测器、使用静态污点分析跟踪文件加密流的加密检测器和基于轻量级仿真技术的启发式锁定检测器3个组件。该工具的主要弱点是依赖于文本检测器,因此通过字符串加密和混淆等技术可轻易绕过。此外,由于此工具很大程度上依赖于语言词典,因此需要考虑不同语言。从性能来说,该工具在443个样本中识别出375个勒索软件,由于语言问题而未检测出11个,在12 842个样本中误报了9个,即误报率约为0.07%。

2017年,Zheng等[15]进一步拓展了HelDroid,并命名为GreatEatlon。该工具改进了加密检测器和文本检测器,增加了设备管理API滥用的检测,能检测勒索软件通过图像传达的威胁文本,在一定程度上反字符串混淆。此外,该工具还采用监督学习分类算法进行轻量级的预过滤,以区分良性软件和可疑软件。但是,该工具仍未克服过度依赖文本检测器的弱点,此外如果勒索软件将威胁文本分割存储在多个图像中,则图像探测器将失效。

文献[16]指出静态分析具体可以从Android系统的访问权限、API调用序列、提取伪装成资源文件的可执行程序以及验证签名4个方面进行分析;动态分析则从敏感路径、恶意域名获取、恶意收费以及权限绕过这些角度进行检测。但是,该方法仍处于提案层面,没有得到实施,因此没有任何结果能证明其有效性。

2017年,Gharib等[17]提出了一个实时检测Android勒索软件的方法DNA-Droid。它首先使用静态分析方法扫描应用程序,然后对可疑应用程序用动态分析方法进一步检查。该方法使用深度学习技术对已知分类的数据集进行训练。静态分析模块是从文本分类、图像分类、API调用以及权限许可进行分析;动态分析模块则通过在沙箱中运行检测其API调用序列,周期为5 min。DNA-Droid具有98.1%的准确率和低于1.5%的虚警率。但是,该方法具有一个明显的缺点:严重混淆的勒索软件可以绕过静态分析检测,从而避免动态分析。

由于混合静态动态检测方法准确率比较高,2018年Ferrante等[18]也作了这方面的研究。他们同时采用了基于操作码使用频率的静态分析,以及基于CPU、内存、网络的使用率以及系统调用信息的动态分析。研究表明,该方法的准确率能达到100%且误报率低于4%。但是,该方法需要20~60 s才能检测到勒索软件,这个过程有可能会给用户带来比较大的文件损失。

文献[19]提出了一种基于结构相似性的检测方案RanDroid。该方案使用静态分析技术从解析后的APK文件中提取字符串文本和图像,使用动态分析技术捕获应用程序活动,若检测到存在威胁文本提示或锁定屏幕,则提取文本并截获图像。之后与数据库中存储的勒索软件的文本与图像进行对比,超过阈值则认为是勒索软件并报警。通过100个勒索软件与200个良性软件组成数据集进行实验,实验准确率达到91%。但是,由于该方案不能识别英语之外的其他语言,因此漏报率较高。此外,若应用程序中包含太多书籍或杂志的相关文本,误报率也较高。

3.2 基于形式化方法

在计算机科学中,形式化方法是建立在逻辑演算、形式语言、自动机理论等理论基础之上,对计算机系统进行描述和分析的一系列符号与技术的集合[20]。使用形式化方法是使用适当的数学分析以提高设计的可靠性和健壮性,使用形式化的规范语言来定义系统的每个特性。该语言非常特殊并采用了一种包含对象、关系和规则组件的独特语法,这些组件可以验证每个特性的正确性[21]。

文献[22]描述了一种基于形式化方法的检测方法。该方法能检测勒索软件并能识别出勒索软件中的恶意代码部分。评估了由勒索软件与良性软件组成的2 477个样本集,召回率为99%。此外,该方法针对Java字节码而不是源代码,因此不需要反编译。但是,该方法的主要弱点在于构建逻辑规则需要人工操作。

后来,Cimitile等[23]在此基础上进行了拓展,提出了基于模型检测的工具Talos。此方法主要通过Java字节码识别勒索软件,通过字节码而不是直接在源代码上检测,具有独立于源代码编程语言,不需要反编译,且能反混淆等众多优点。文献[23]评估该工具的检测准确率达99%。但是,当从Java字节码派生出形式化模型后,需要手工制定逻辑规则,用于判断勒索软件的恶意行为。

3.3 基于机器学习方法

机器学习是依靠模式和推理对用于执行特定任务的算法和统计模型的计算机系统的科学研究[24]。学习的过程需要训练数据来寻找某种模式,以实现对任意例子都能做出更好的决策或预测。随着物联网时代的到来,人工智能学科正发展得如火如荼,在勒索软件检测领域中机器学习也发挥着重要作用。

Karimi等[25]提出将可执行指令序列转换为灰度图像,使用隐含狄利克雷分布LDA(Latent Dirichlet Allocation)从中选择最佳操作码,作为区分勒索软件和良性软件的特征,最后用LDA对应用程序进行分类。LDA主要用于寻找特征的线性组合,以便将对象分离。文献[25]测试了280个样本集,准确率可达97.3%。

文献[26]提出了一种使用机器学习的工具R-PackDroid。检测分为预处理、特征提取和分类。预处理从可执行代码中提取DexCode;特征提取则从DexCode所在的代码行提取API包;分类器则根据监督学习算法训练的结果将其分类。该工具的主要思想是通过静态分析分析 API包的Dalvik字节码。文献评估了8 304个样本,对勒索软件的检测精确度为97%和误报率为1%;对普通恶意软件的检测精确度和误报率分别为85%和2%,且能对抗反混淆技术。但是,由于R-PackDroid完全依赖于静态分析,因此它会受到一些固有限制。例如,不可能分析在运行时加载特征码或加密类的勒索软件,而且它只能使用已知的训练样本检测新的勒索软件。

文献[27]介绍了一种基于操作码的加密勒索软件检测方法。首先使用IDA Pro自动提取样本中的操作码(443个);然后构建操作码的密度直方图,并归一化作为特征向量;最后用WEKA中的2-classes SMO分类器、6-classes SMO分类器以及8个特征简约模型进行分类。实验结果表明,使用2-classes SMO分类器可以达到100%的检测精确度,使用6-classes SMO的精确度可达到96.5%。此外,使用CorrelationAttributeEval过滤器可以使操作码减低至180个,且没有检测精确度损失。使用CFSSubset滤波器可使操作码降为10个,但检测准确率降低为94.2%。

随着锁型勒索软件越来越多,对用户的财产和隐私也构成了巨大威胁,Su等[28]系统地分析了中国社交网络中的锁型勒索软件并提出了一种轻量级、自动化的检测方法。首先对其反汇编提取6类显示文本和后台操作特征,然后用4种机器学习算法集成检测。实验结果表明,该方法准确率可达99.98%。此外,由于良性软件和锁型勒索软件通常不会对小部件混淆,因此从配置小部件(布局文件、字符串资源和反编译代码)中提取的文本特征能克服代码混淆和root shell带来的影响。但是,样本集中只有301个勒索软件,因此结果的准确度有待详细证明。

3.4 基于用户意图

考虑到正常应用程序在执行敏感操作时会提醒用户,而勒索软件执行加密操作时则必须在后台运行或显示欺骗窗口来隐藏自身,Chen等[29]从用户意图的角度出发,提出了一种新的实时检测系统—RansomProber。该系统通过分析相关Activity的用户界面小部件和用户手指移动的坐标,推断出文件加密操作是否由用户发起,从而检测加密型勒索软件。RansomProber的检测分为3个模块:加密分析、Foreground分析和Layout分析。加密分析通过分析加密前后文件的信息熵的变化来判定文件是否进行加密;Foreground负责确定加密过程是否是前台应用程序触发,如不是则很可能不被用户所知;最后通过Layout模块进一步分析用户界面UI(User Interface)小部件以及操作坐标,来确定文件加密对用户来说是否是已知的,进而确定应用程序是否是加密型勒索软件。RansomProber能以很高的准确率—99%检测加密型勒索软件,误报率不到1%,并且文件损失和运行时的内存消耗也很小。但是,如果勒索软件重新打包那些能加密或压缩的应用程序将突破此系统。针对RansomProber的缺点,Ko等[30]对其进行了改进并结合文献[31]提出了一种能实时检测未知勒索软件的新方法。该方法理论上能提高检测未知勒索软件的准确率,但是未经实验验证,因此实际效果未知。

3.5 基于数据备份

由于勒索病毒一般采用强加密算法,因此在没有密钥的情况下很难恢复,而如果提前进行数据备份,就能完全避免由勒索软件加密带来的损失。Yalew等[32]提出了一种基于数据备份的解决方案——RANSOMSAFEDROID。它是一种基于TrustZone的备份服务,定期将文件备份到一个安全的本地存储,并将其发送到外部存储、远程服务器或云计算服务。最初,该方案对整个设备的文件系统进行完整备份,然后进行增量备份。文献[32]在一台手机设备上进行了测试,初始备份在设备运行之前进行,因此不考虑其时间长短;运行备份与备份文件的多少有关,11 MB的文件需要3 s和100个文件需要4.1 s;空备份大约2 s。但是,由于大多数商业支持的TrustZone在手机中不被允许使用,因此该系统的使用范围具有一定的局限性。

3.6 基于结构熵

信息熵是1948年香农提出的一个概念,用于解决对信息的量化度量问题。信息熵类似热力学中的热熵,是用来描述信源的不确定度[33]。如果一个系统越有序,信息熵越低,反之则信息熵越高。而对于可执行程序来说,打包或加密的恶意软件要系统内部相对普通应用软件要混乱,因此熵也较高。根据这个特征,熵也被用于恶意软件检测领域[34 - 36]。

勒索软件也是一类恶意软件,文献[37]基于熵和模糊分类算法提出了一种检测方法。文献中基于熵的方法指的是基于对Android 可执行文件结构熵的估计。获得结构熵是将.dex文件分成固定大小的块,计算每块的香农熵,然后比较2个.dex文件的块,以获得相似性得分。相似性得分是基于Levenshtein距离,该值表示2个.dex文件基于相应熵的相似度百分比。一旦获得结构熵,就对其进行分类,文献评估了10 052个样本,考虑了8种模糊分类算法,结果表明,使用FuzzyRoughNN分类算法能获得高达84.1%的精确度。

表2总结了Android平台勒索软件防护技术的研究成果。其中-表示文献中无该选项;R表示勒索软件;M表示除勒索软件之外的其他恶意软件;B表示良性软件;(R+B)或(R+M+B)表示数据集(各种类软件的数量之和);(A/B):分子A表示正确分类的个数,分母B表示测试数据集的个数;s表示秒;min表示分钟;P表示精确度。

4 Android平台勒索软件防护技术比较

4.1 评估指标

为了对现有Android勒索软件的防护技术进行比较,本文提出以下评判指标来评估系统性能的高低,以克服潜在的攻击与安全威胁。

(1)准确率、精确度和误报率:在对恶意软件检测过程中,检测出的恶意样本占所有样本的比例即为准确率;所有检测出恶意样本中真正为恶意样本的比例为精确度;将检测出的良性样本归为勒索样本的比例即为误报率。准确率和精确度反映了系统检测恶意样本的能力,因此越高越好;而误报率是指把良性样本错当成恶意样本的比例,因此越低越好。

(2)检测速度:由于勒索软件的加密均是难以恢复的,因此检测速度越慢,勒索软件加密的文件越多,用户损失越大。

Table 2 Comparison of the schemes表2 各方案对比分析结果

(3)性能消耗:手机与PC不同,手机中的内存和CPU是非常小的(相对PC而言),而人们对手机的响应速度却要求很高。因此,如果检测系统的性能消耗过高,影响用户体验效果,则其也会被用户摒弃。

(4)抗混淆:勒索软件为了逃避越来越完备的检测系统,纷纷采取变形、加壳等一系列混淆手段以逃避检测系统的检测,而如果检测系统的抗混淆能力较差,则随着时间的推移,勒索软件变种越来越多,该系统终将被淘汰。

上述指标用于评估现有方案的性能,本文将其中一些指标进一步划分为3个层次:高、中、低,以衡量现有方案在多大程度上满足每个需求。比较结果如表2所示。

4.2 比较结果分析

根据制定的指标和表2中的比较结果,发现基于静态分析的方法性能消耗非常低、检测速度非常快,是非常轻量级的方法,而且误报率较低。但是,其抗混淆变形能力较差,准确率相对较低,而且针对未知的、新品种的勒索软件的威胁识别能力也相对较差。

基于动态分析的方法中有的方案作者只进行了理论证明未经实验验证,而有的方案作者只用一个勒索软件进行验证,因此它们的效果均有待研究。

基于混合分析的方法集中了静态分析和动态分析的优点,准确率普遍较高且抗混淆能力较强。但是,作为第1个检测Android平台勒索软件的工具——HelDroid,由于其依赖于文本检测器,因此对语言的要求过高,具有一定的局限性,准确率相对较低。GreateEatlon在HelDroid的基础上进行改进,可以识别图像中的威胁文本,能在一定程度上抗混淆。HelDroid正常情况下可以平均在4 s内检测出勒索软件,但是若需动态分析威胁文本,则检测时间降为5 min,因为动态分析带来的性能消耗也是非常大的,因此检测速度根据采取的方法有快慢之分。

基于形式化方法的方案准确率和误报率非常高,且由于在字节码层次制定逻辑规则,因此抗混淆能力强,性能消耗低,但由于逻辑规则需要人工制定,因此加大了人工操作的负担。

基于机器学习的方法是近年来研究的热点,同样具有准确率高、检测速度快和性能消耗低的优点,其抗混淆能力虽然比静态检测方法强,但是依然有待提升。

考虑到勒索软件加密时的隐蔽性和锁定手机时将自定义界面置顶的特性,基于用户意图的方法被提出。该方法不仅准确率高、误报率低,而且检测速度快、性能消耗低,是一种非常适用于日常生活中对新应用检查的轻量级方案。但是,其也有局限性,由于UI检测是检测勒索软件的重要指标之一,因此当勒索软件加密时,用户点击不相关按钮可能会导致指标失效。

其他勒索软件的防护方法包括基于熵的检测以及基于数据备份的保护方案,其中基于熵的检测达到了84.1%的准确率,但是误报率相对较高。基于数据备份的方案备份数据非常快,但是使用范围具有一定的局限性,且大量的备份会导致性能下降,因此实用效果不很理想。

5 未来及展望

根据第4节对当前Android勒索软件防护技术的分析比较结果,发现现有的这些防护方案仍然存在不足,针对这些不足提出以下建议:

(1)从表2中得知,基于用户意图和机器学习的检测方法在准确率、误报率以及检测速度方面性能均比较高,因此,可以继续从这2方面入手,提高他们的抗混淆能力,完善他们的方案,以检测更多类型的勒索软件,更加适应勒索软件变种的攻击。此外,基于静态分析的方案抗混淆能力偏低,而基于混合分析的方案抗混淆能力较高,但是其性能消耗过大,这说明动态分析方法具有较高的抗混淆能力,但也具有高耗能的特性。因此,也可以考虑从降低动态分析的能耗或提高静态分析的抗混淆能力出发,克服相应方案的缺点,对其进行完善。基于形式化的方法准确率和抗混淆能力都很高,且检测速度相对较快,但是由于需要人工制定逻辑规则,因此比较耗时。如果可以将逻辑规则以自动化的方式快速构建,那么采用形式化方法检测勒索软件将是一个非常具有优势的策略。

(2)现有的Android平台勒索软件的检测方案大都是从“事后”的角度出发,即勒索软件感染手机之后,以最高精度检测出勒索软件和最大限度地减少用户的损失为目标,进行勒索软件的检测。但是,很少有针对“事前”的方案。只有基于数据备份的方案是“事前”进行的,但该方案无法应对数据量太大的情形,因此,应用场景有限。因此,可以考虑从遏制勒索软件的传播途径出发,以降低勒索软件进入手机的概率从而避免勒索软件带来的损失。

(3)HTTP流量检测是Android平台恶意软件检测最普遍的方式之一。文献[38-42]均是通过流量检测Android恶意软件。而勒索软件是一种特殊的恶意软件,且加密型勒索软件存在与C&C服务器流量交互的过程,因此可以尝试通过检测勒索软件与C&C服务器的流量构成其特有的签名,达到对勒索软件检测的目的。

(4)针对勒索软件的防护研究,大多数都是从“检测”角度出发,并且已经提出了很多勒索软件检测与防护系统,但是对勒索软件溯源的研究工作相对较少,这是由于比特币的匿名性等其他原因导致追踪勒索软件攻击者变得十分困难。但是,如果能通过利用网络诱骗环境或者其他方式,辅助跟踪溯源技术找到攻击者,那么这将极大地阻止利用勒索软件进行网络犯罪的发生。

(5)由于勒索软件攻击最早且范围最广的平台是Windows平台,因此针对Windows平台的勒索软件检测技术相对比较成熟[43-45],可以尝试将Windows平台中的技术沿用到Android平台,找到更加完善的针对Android平台的勒索软件防护方案。

6 结束语

勒索软件是最突出的恶意软件威胁之一,由于其后果的难以恢复性受到人们的密切关注。随着智能设备的普及,勒索软件攻击目标已从PC端蔓延到Android手机平台,给用户造成了非常严重的财产和隐私泄露损失。本文对Android平台勒索软件的检测和防护技术进行了调研,并对各防护技术进行了全面分析和比较,最后在分析结果的基础上对未来的研究方向进行了探讨。

猜你喜欢

勒索静态加密
一种新型离散忆阻混沌系统及其图像加密应用
最新进展!中老铁路开始静态验收
静态随机存储器在轨自检算法
情绪勒索:警惕以爱之名的伤害
遭遇勒索
勒索
获奖产品介绍:对勒索病毒说不
——美创科技“诺亚”防勒索系统向勒索病毒“宣战”
一种基于熵的混沌加密小波变换水印算法
加密与解密
认证加密的研究进展