在QQ上检测安卓锁机勒索软件

 

近年来,越来越多的锁机勒索软件(Locker-Ransomware)对Android平台以及用户的财产构成了巨大威胁。锁机勒索软件通过强制锁定设备勒索受害者的赎金,更糟糕的是,已经形成了成熟的勒索软件交易链。有效检测锁机勒索软件是一个紧急但至关重要的问题,为了解决这个问题,在本文中提出一种轻量级的自动方法来检测锁机勒索软件。

首先,对锁机勒索软件的交易市场进行了全面调查,并对锁机勒索软件的行为进行了全面分析。其次,为解决代码混淆问题,基于观察到的行为提取了显示文本和后台操作的特征。细粒度的特征是从多个来源提取的,可以从各个方面分析锁机勒索软件。最后,采用四种机器学习算法的集合进行检测,实验结果表明方法优于VirusTotal。以99.98%的检测精度实现最佳性能。

 

0x01 Introduction

勒索软件是一种恶意软件,它通过阻止对设备或数据的访问来勒索用户勒索赎金。通常,勒索软件可分为锁机勒索软件和加密勒索软件。更具体地说,锁机勒索软件通过重置PIN码或弹出全屏窗口来阻止用户与设备的互动。窗口覆盖了屏幕,使用户无法与设备进行交互。只有在受害者付款并输入了密码后,窗口才能消失。

加密勒索软件会加密用户的数据,并要求支付解密费用。锁机勒索软件和加密勒索软件有时会同时出现。应该注意的是,支付赎金并不能保证用户可以获得密码并重新获得对设备的访问权。大多数勒索软件攻击者都是由利润驱动的。为了诱使用户毫不犹豫和怀疑地支付赎金,攻击者转向了心理战术。他们经常为勒索软件配备侮辱性的信息和色情图片。他们对技术和心理学的巧妙使用使勒索软件成为公众的严峻问题。

勒索软件首先出现在计算机上。第一个勒索软件(称为AIDS)是在1980年代后期创建的。它加密文件并要求通过邮件勒索。随着互联网和加密货币的发展,勒索软件已经变得强大起来,具有多种传播和支付方式,在过去几年中造成了巨大损失。 2017年,在感染了150个国家的200,000台计算机并造成40亿美元的经济损失后,WannaCry获得了迄今为止最广泛的勒索软件攻击知名度。

近年来,智能移动设备已受到广泛青睐。作为最受欢迎的移动操作系统,Android以85.9%的全球份额占领了市场。 Android系统的开放性和易于使用的应用程序分发机制吸引了许多攻击者。2014年出现的Sypeng是第一个Android 锁机勒索软件样本。它通过伪造的Adobe Flash更新消息感染了设备。它锁定了屏幕,并弹出一条伪造的FBI消息,要求支付200美元的赎金。 Koler因其自我复制的行为而成为第一个Android勒索软件蠕虫,它会自动将包含该蠕虫的下载链接的消息发送给受感染设备的联系人列表中的每个人。

在2015年,Lockerpin成为第一个能够重置设备PIN码的勒索软件的真实示例,它给受害者配备了锁定的手机屏幕,要求支付500美元的赎金。 2017年,卡巴斯基实验室检测到超过54.4万个移动勒索软件。 McAfee Lab声称,移动恶意软件作者将目光投向了获利。他们增加了勒索软件功能,以在移动平台上造成新的威胁。显然,针对Android的移动勒索软件已经对Android生态系统和用户的财产构成了巨大威胁。

中国是世界上最大的智能手机市场。 2018年,中国人口的50.37%使用了智能手机。 2017年12月,Android占据了中国移动操作系统市场78%的份额。但是,根据腾讯移动分析,中国用户的系统版本中有42%仍低于Android 6.0。平台早期版本的缺点(例如缺乏灵活的权限管理)使用户面临遭受攻击的高风险。

腾讯开发的QQ是全球最大的在线社区之一,拥有超过8.99亿活跃帐户。它的流行和匿名注册机制使其成为勒索软件交易的热门市场。针对Android的勒索软件的飞速增长,越来越需要能够自动分析和检测它们的有效方法。

有效检测锁机勒索软件的挑战之一是,大多数锁机勒索软件都是使用代码混淆构建的。函数的名称被替换为简单的字母,例如,reset_password()被替换为a(),这增加了分析代码的难度。此外,锁机柜勒索软件通常与shell一起出现。它冒充流行的下载应用程序。安装后,shell程序将立即释放内部的锁机程序勒索软件,以执行恶意行为。在shell的保护下,大量的勒索勒索软件可以逃脱现有的检测方法。

 

0x02 Android Locker-Ransomware

在本节中将描述锁机勒索软件的传播和行为,发现数百个与锁机勒索软件交易相关的QQ群。勒索软件交易已成为成熟的产业链。观察到以下有关Android锁机勒索软件传播和行为的策略。

A.传播

1)市场

为了逃避法规和提高交易概率,交易环境需要匿名以及交易者进行谈判和付款的便利。 QQ的匿名注册机制及其数字钱包完全符合要求。此外,大量的QQ用户是勒索软件销售商的潜在客户。要出售勒索软件,卖方可以加入现有的QQ群或创建自己的群组。通过搜索关键字可以找到销售勒索软件的QQ群。群成员的数量从几十到上千。对于买家,他们可以付费加入该群,并向所有群成员发送消息以请求勒索软件。值得注意的是,不仅群所有者,而且群中的所有其他成员都可以是卖方。团体是一个开放的市场。经过协商,一种勒索软件的价格通常低于¥10。买方可以通过QQ钱包向卖方付款,卖方将向他发送勒索软件。

在某些群中,群所有者共享勒索软件开发工具,视频教程和源代码。一旦支付了大约¥100的费用,他们还将提供有关如何开发勒索软件的一对一辅导。因此,除了出售勒索软件外,卖方还可以从会费,勒索和辅导费中获利。尽管单价似乎不令人满意,但是由于有大量购买者,利润是诱人的。许多普通人甚至受害者都在从事勒索软件交易,这使得勒索软件市场在社交网络上繁荣起来。交易过程如下图所示。

为了遏制勒索软件的传播,QQ配备了在线防病毒引擎,可以扫描上载的文件并删除已识别的恶意软件。但是,卖方通过将勒索软件压缩为加密的.rar文件并将带有密码的文件发送给买方就可以避免扫描。没有密码,防病毒引擎将无法提取和检测勒索软件。结果,卖方可以轻松地打破防御并共享群文件。

2)开发工具

Android Studio是可在PC上运行的Android官方集成开发环境。但是,为了加速开发过程,攻击者更可能使用可以在Android设备上操作的AIDE。它可以通过简单的操作来编辑,调试,编译,签名和运行APK。为了生成自己的勒索软件,新学习者可以通过仅更改解锁密码和联系信息来利用现有勒索软件的源代码。通过详细的教程,即使对Android知识不多,也可以完成重新打包过程。硬件和技能的低要求使AIDE成为勒索软件开发中最受欢迎的工具。

3)伪装

勒索软件总是伪装成流行的应用程序,以诱使下载。根据勒索软件的名称,锁机勒索软件通常伪装成热门游戏,抢红包机器人,QQ附加服务提供商和色情图形视频播放器。这些应用程序具有一些共同点:(1)大多数目标应用程序是非法的,并且在官方应用程序市场上不可用。因此,无论谁需要它们,都必须求助于其他来源,这为勒索软件的发行创造了机会。 (2)这些应用程序往往需要更多权限,甚至需要root权限。熟悉这些应用程序的受害者会在安装过程中毫不犹豫地授予权限。 (3)他们拥有广泛的用户群。勒索软件针对具有特殊需求但对Android知识很少的用户。勒索软件会伪装成引诱的下载,毫不费力。

B.行为

1)锁屏

锁机勒索软件最常见的行为是通过在屏幕上创建浮动窗口或更改PIN码来使设备不可用。浮动窗口显示威胁性消息以及攻击者的联系信息和付款方式。窗口不响应任何触摸事件,后退或主页按钮也不响应,从而使设备完全不可访问。在Android平台上,窗口的放置和外观由WindowManager 控制。勒索软件通过设置Win dowManager的特定布局参数来创建浮动窗口。例如,当窗口的类型设置为TYPE_SYSTEM_ERROR时,将被授予最高特权。它可以出现在所有内容之上。如果将其标志设置为FLAG_NOT_FOCUSABLE或FLAG_NOT_TOUCHABLE,则窗口将永远无法获得按键输入焦点或接收触摸事件,因此用户无法向其发送按键或其他按钮事件。一个例子可以在下图中看到。

要禁用物理或虚拟键(例如主页,后退和菜单),攻击者将覆盖onKeyDown()方法以忽略按下事件。一些勒索软件诱使用户授予设备管理员特权。勒索软件使用DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN的动作创建了一个意图,以将自己作为新的设备管理员添加到系统中。管理员活动后,勒索软件将具有重写/data/system/password.key文件并重置PIN码以锁定屏幕的权限。更糟糕的是,具有管理员权限的应用无法像普通应用一样通过拖到垃圾箱中来卸载。因此,不熟悉系统设置的用户很难摆脱勒索软件。

下图显示了锁定电话的屏幕。将向受害者显示文本视图以插入密码。密码的生成基于屏幕上显示的密钥。攻击者将其QQ号码留作联系信息。希望受害者联系其QQ并支付赎金以获取密码。

2)阻止通话

一些勒索软件可以阻止电话,使设备无法访问。每当有电话打入时,Android系统都会将事件广播到所有应用程序。勒索软件可以通过注册广播接收器来监听事件。它可以从TelephonyManager中提取电话号码。如果该数字不是攻击者预先定义的数字,勒索软件将终止呼叫。通过将振铃器模式设置为RINGER_MODE_SILENT,运行的软件可以使电话静音以在暗中进行阻止过程。

3)高优先级

设备启动完成后,大多数勒索软件便开始工作。它注册一个BroadcastReceiver并监听BOOT_COMPLETED意图。在AndroidManifeat.xml中,有一个意图过滤器属性,称为优先级。它控制广播接收器的执行顺序。具有较高优先级值的应用程序将在具有较低优先级值的应用程序之前被调用。勒索软件将优先级设置为整数的最大值,从而赋予其最高优先级。这将是第一个知道设备已完成启动的应用程序,然后它将中止广播并启动恶意服务。一个例子可以在图4中看到。

4)劫持活动

设备完成启动后,勒索软件将利用ActivityManager定期检测到顶级活动。如果top活动的软件包名称不属于勒索软件,则勒索软件可以通过调用killBackgroundProcesses()并重新启动其自己的活动来终止顶级活动。

5)root shell

某些勒索软件利用根shell伪装成流行的应用程序。根shell的任务是获得root许可并在系统目录中发布勒索软件。锁定屏幕的真正勒索软件隐藏在/ asset目录中,并伪装为.so文件,例如dalvik.so。获得root许可后,root shell将dalvik.so复制到/ system / app /目录,并将其重命名为x.apk。重新启动系统后,勒索软件将自动安装在设备上。 Android将其视为无法直接卸载的预装系统应用程序。尽管大多数勒索软件都可以通过Android调试桥(ADB,Android Debug Bridge)删除,但它仍然困扰着普通用户。

C.密码和解锁

1)密码

a:没有密码

勒索软件会弹出一个全屏浮动窗口,其中仅包含联系信息。攻击者收到赎金后,将通过致电或发短信给受害者来触发。

b:恒定密码

某些密码是恒定值,例如可以很容易记住的生日或句子。只有输入正确的密码后,浮动窗口才会消失。专业人员可以毫不费力地在反编译代码中找到常量密码。

c:高级密码

这种密码采用复杂的逻辑计算或加密算法,例如AES,DES。为了生成大量不同的密码,勒索软件可以创建一个随机数并将其用于计算。在某些情况下,加密进度包括几轮以使密码坚不可摧。

2)解锁

a:输入密码

解锁设备的最常见方法是支付密码。在浮动窗口中输入密码后,该窗口将消失,受害者重新获得对设备的控制。

b:电话或短信

另一种方法是通过给受害者打电话或发短信来触发。攻击者用勒索软件的代码预定义了他的电话号码,并注册了一个监听器来监视电话状态。当有电话或短信进入时,勒索软件会检查它是否来自攻击者。如果呼叫号码与预定义的电话号码相同,则勒索软件将终止其服务。但是通过这种方式,攻击者的电话号码被暴露了。

c:通过解锁工具

为了解密高级密码,攻击者通常会开发一种解锁工具来自动对加密算法进行逆向计算。他们将在收到赎金后向受害者提供工具,受害者可以生成密码并自行解锁手机。

d:通过互联网

为了保护其个人信息,攻击者应用了匿名通信技术(例如Onion Network)来远程解锁设备。该技术最初旨在保护发送者和接收者的隐私,但被大量恶意软件滥用。

D.付款

大多数攻击者将其QQ号码留作联系信息,并指示受害者通过QQ钱包付款。与其他国家的高赎金不同,QQ的锁机勒索软件使用户可以负担得起,通常是¥20-¥50,因此受害者不会以“麻烦越少越好”的心态报警。此外,QQ是假名,受害者无法找到有关攻击者的个人信息。一些攻击者通过留下QR码来隐藏其QQ号。 QRcode链接到攻击者的QQ钱包的付款界面。因此,受害者在不了解攻击者的情况下支付了赎金。尽管一些国际勒索软件支持比特币,但尚未在QQ上观察到任何样本。

E. API的早期版本

发现大多数锁机勒索软件都基于API的早期版本,86%的示例针对的是与Android 5.0相对应的API 21。早期版本缺乏灵活的权限控制机制。用户需要授予应用安装时间权限,否则将无法成功安装该应用。如果用户轻率地安装了运行软件并授予他们危险的权限,则这些权限是不可撤销的,这使勒索软件有机会损坏设备。但是,仍有42%的中国用户的系统版本使用Android 6.0。与使用更高版本的Android的用户相比,他们更容易受到勒索软件的攻击。

F.心理技巧

勒索软件受利润驱动。攻击者会充分利用心理技巧来达到目标。他们利用用户的贪婪并通过提供免费应用程序诱使他们安装勒索软件。为了防止受害者寻求帮助,他们转向恐惧和羞辱。与大多数恶意软件的地下和偷偷摸摸的行为不同,勒索软件倾向于展示胜利。勒索软件显示威胁性消息和色情图片,伴随响亮的音乐和频繁的振动,迫使受害者支付赎金。受害人将耻于寻求专业人士的帮助,必须顺服地付款。

 

0x03 Method

A.概述

在本节中提出一个框架,用于根据发现的行为来分析和检测锁机勒索软件。如下图所示,在将应用程序馈入框架后,文本和行为模块并行工作以提取UI中显示的文本和背景中的行为。提取六类特征。通过四个分类器的组合,最终将这些应用程序识别为良性应用程序或锁机勒索软件。

B.特征提取

特征的提取和选择对于有效检测锁机勒索软件非常重要。在以前的工作中,一种类型的特征通常来自一个来源。例如,权限仅从清单文件中提取,而API是从反编译代码中提取的。但是,在锁机勒索软件的开发过程中,有多种现有方法可用于同一特征,例如,小部件中的文本可能会出现在布局文件,字符串资源或反编译的代码中。因此,在工作中,特征集中的一种功能可能来自不同的来源。有两个观察结果:

(1)与其他隐藏了恶意行为的恶意软件不同,Locker-Ransomware明确声明它是导致锁定行为的原因。

(2)与良性应用程序的各种功能不同,lockerransomware的功能非常简单,例如,创建浮动窗口或重置PIN码以锁定屏幕。基于观察,同时考虑了显示的文本和背景行为。提取以下六类特征。下表列出了特征摘要。

1)文字

由于锁机勒索软件旨在勒索赎金,因此在UI小部件上显示的文本与良性应用程序有很大不同。例如,大多数勒索软件的文本都包含关键字“锁定”,“解锁”和“付款”,这在良性应用程序中很少见。定义了22个与锁定和解锁行为有关的关键字。窗口小部件中的文本可以通过多种方式设置:(a)布局xml文件,(b)字符串资源和(c)反编译的代码。对这些文件进行了全面的分析以获取文本。

2)权限

大量的锁机勒索软件要求设备管理员重新设置PIN码。为了使用设备管理员API,(a)应用应包含BIND_DEVICE_ADMIN权限和意图过滤器,以响应ACTION_DEVICE_ADMIN_ENABLED意图。 (b)在XML文件中,应用程序需要声明相关的安全策略,例如“ reset-password”,“ wipe-data”等,示例如下图所示。在代码中,攻击者将覆盖DeviceAdminReceiver类中的API以实现锁定行为。将这些与管理员相关的操作提取为特征集。

3)窗口属性

大量的锁定勒索软件通过创建浮动窗口来实现锁定行为。勒索软件操纵窗口的属性,以阻止其响应用户。通过在WindowManager类中设置布局参数,它将创建一个浮动窗口,该窗口显示在顶部,并忽略所有触摸事件。提取与窗口属性相关的API以形成特征集。

4)系统操作

对于受shell保护的用户,root shell可以在获得root许可后重新挂载系统目录并释放锁机勒索软件。定位系统目录的“ remount”,“ chmod”,“ cp”和“ mv”命令被视为可疑行为。

5)优先

为了实现在设备完成启动后立即锁定屏幕的目标,锁机勒索软件将注册一个意图过滤器以监听BOOT_COMPETED广播。同时,它将意图过滤器的优先级设置为最高值,以便成为第一个接收消息的优先级。之后,一些锁机勒索软件甚至中止广播。在文件中设置优先级并在代码中中止广播被认为是可疑的。

6)权限

Android通过权限控制对系统资源的访问。当应用与系统API或数据库进行交互时,需要特定的权限。权限在AndroidManidest.xml中声明。开发人员定义的权限和系统定义的权限都被考虑在内。

分类需要高维特征向量。代表恶意软件样本的特征向量定义为F =(f1,f2,…. fn),其中n是特征数。提取的特征都是二进制特征。如果应用具有第i个功能,则fi将设置为1,否则设置为0。

C.检测算法

采用四种机器学习方法进行分类,即支持向量机(SVM),决策树(DT),随机森林(RF)和逻辑回归(LR)。由于每种算法都有两面性,为了弥补缺点,应用集成学习以获得最终的检测结果。如果两个或多个分类器将其识别为良性应用,则测试应用的最终标签将为“良性”,反之亦然。在锁机勒索软件检测中,整体决策优于单一机器学习算法。

 

0x04 Evaluation

A.数据集

良性应用程序是从中国最大的第三方市场之一安智市场下载的。收集了9类热门应用。具体来说,下载了许多良性壁纸应用程序。打算测试特征是否能够区分锁机勒索软件和良性壁纸应用程序。下表中显示了应用程序的类别。

勒索软件样本是在现实世界中收集的,加入了30个最受欢迎的勒索软件交易QQ群,并从共享文件中下载了664个锁机勒索软件。根据重复的SHA1值将其删除,最终总共获得301个锁机勒索软件。

使用Apktool来反编译更衣的勒索软件APK并获取目标文件。为了解决root shell的问题,尝试反编译/ assets /目录中的每个文件,而不管其扩展名如何。结果,在301个APK中,发现了另外226个APK。将shell和内部APK视为一个APK。

实验是在配备四核3.4 GHz i7处理器和16G内存的PC上进行,方法是用Python语言实现的。整个检测过程可以通过shell命令自动进行,而无需人工干预。

B.检测结果

分别在支持向量机(SVM),决策树(DT),随机森林(RF)和逻辑回归(LR)上测试提取特征的有效性。然后运用整体学习方法做出最终决定。在实验中使用n折交叉验证以减少过度拟合。每个分类器的平均准确度如上图所示。

从上表中可以看出,所有检测精度均在99%以上。它证明了特征可以有效区分锁机勒索软件与良性应用程序,而与检测算法无关。对于单一算法,DT达到最高TPR,为98.92%。 LR实现了99.93%的最高准确度和0.02%的最低FPR。可以看出,在采用具有多数表决机制的所有分类器的集合之后,实现了99.98%的最高准确性。集成方法比单机学习方法表现更好。

为了评估方法的时间消耗,对301勒索软件数据集的每个阶段的执行时间进行了分析,如上表所示。反编译是最耗时的步骤,占总时间的99%。反编译301勒索软件样本及其内部APK需要3250秒,每个样本为10.8秒。反编译非常耗时,因为一个勒索软件样本可能包含多个内部隐藏的APK。在没有root shell的情况下反编译应用程序将花费更少的时间。特征提取轻巧,每个样本花费0.1秒。然后在分类步骤中,四个分类器并行工作。预测过程不会花费很多时间。最后,应用四个分类器的整体结果。通常,分析每个样本平均需要10.91秒。实验结果表明,方法可以有效地检测出锁机勒索软件。

C.特征比较

为了找出锁机勒索软件的行为,根据特征的出现频率对其进行排名。上表中显示了最常出现的特征。最多96.25%的更衣勒索软件请求具有receive_boot_completed权限。可以理解,大多数锁定行为都是由完成引导的广播触发的。

System_alert_window是签名级权限。它允许一个应用程序创建一个显示在所有其他应用程序顶部的窗口。尽管《开发人员指南》 建议很少有应用程序应使用此权限,但92.49%的锁机勒索软件要求使用此权限。此外,有81.91%的锁机勒索软件打算获得最高的过滤意图。不出所料,超过80%的勒索软件的关键词为“锁定”和“解锁”。显示的文字提醒受害者,他们的设备已被锁定,他们必须支付赎金才能解锁手机。

为了弄清锁机勒索软件和良性应用程序之间的区别,还对它们的功能进行了比较。值得指出的是一类名为壁纸的良性应用程序,它具有类似的功能来操纵屏幕。一些壁纸应用程序不仅可以更改壁纸,还可以关闭并锁定屏幕或重设密码。一方面,功能上的相似性导致许可请求中的相似性。由于它们的目的性功能,比其他类别的良性应用程序提供更复杂的服务时,更容易使锁机勒索软件和墙纸应用程序请求的权限更少。比较了不同数据集中应用程序请求的平均权限数:(A)储物柜勒索软件数据集,(B)良性应用程序数据集,(C)墙纸应用程序,(D)良性应用程序不包括墙纸应用程序,如下表所示。

锁机勒索软件和壁纸应用程序请求的平均权限数约为8,而其他种类的良性应用程序则请求16个权限。另一方面,锁机勒索软件和壁纸应用程序确实存在差异。最直观的区别是,良性壁纸应用程序的行为遵循用户的命令,而锁机勒索软件则强制控制手机,这与用户的期望无关。按功能频率对功能进行排名,并在排名中列出最不同的功能,如下图所示。可以看到70.65%的锁机勒索软件要求管理员特权,而只有2.23%的墙纸应用程序具有此功能。 65.53%的锁机勒索软件在收到已完成的启动信号后中止广播,而只有5.94%的良性应用程序会中止广播。相比之下,大多数锁机勒索软件不要求提供位置信息,这导致2.05%的百分比,而所有良性应用程序的比例为52.41%。

D.与其他工作的比较

1)与VirusTotal比较

VirusTotal是最先进的工具,可免费检查文件是否包含病毒。它包含60多种广泛使用的防病毒引擎,例如McAfee和Symantec。它分析提交的应用程序并返回每个防病毒引擎的检测结果。该应用程序被标记为“ True”或“ False”,分别表示恶意或良性。以前的许多工作都使用VirusTotal的检测结果来标记其数据集。将301个锁机勒索软件样本上载到VirusTotal,以测试在线防病毒引擎的检测性能。

在68个防病毒引擎中,ESET-NOD32以98.98%的平均检测准确率排名第一,其次是McAfee,以95.90%的准确率排名第一。对于赛门铁克,准确性为84.30%。上显示了VirusTotal中防病毒引擎的平均检测准确性。每个点代表一个防病毒引擎。总体检测结果是不高的。只有20个引擎的精度高于90%。36个引擎的精度低于50%。微软仅达到13.65%。

根据每个锁机勒索软件样本的检测结果,发现只有50%-60%的防病毒引擎可以检测到它们。如上图所示,没有一个样本触发70%或更多的防病毒引擎。注意到,样本的最低检测率为25.42%,这意味着只有25.42%的防病毒引擎将其视为恶意软件样本。此示例被根root覆盖。它伪装成自动的红包抓取器,并诱使用户授予root权限。然后,它在系统目录中释放锁机勒索软件并重新启动设备。设备完成启动后,屏幕将被浮动窗口锁定。很明显,大多数防病毒引擎无法处理shell。他们只能分析外层。如果没有异常,他们会将样本视为良性应用。但是,大多数antivirus引擎忽略的内层是真正的恶意部分。

在本文方法中,将反编译/ assets /目录中的每个文件,而不管其扩展名如何。shell和内部隐藏应用程序的功能都已考虑在内。因此,本文方法比VirusTotal中的防病毒引擎具有更好的性能。

2)与R-PackDroid的比较

为了便于与现有工作进行比较,使用Canfora等人提出的R-PackDroid进行了实验 R-PackDroid是用于检测Android勒索软件的受监督机器学习系统。它通过系统API包列表来表征应用程序,并使用Random Forest进行分类任务。从良性数据集中随机选择了1500个良性应用程序,以及300个锁机勒索软件样本,以此为基础来实现和评估R-PackDroid。在实验中使用了n折交叉验证,检测结果如下表所示。与R-PackDroid相比,方法可获得更好的检测结果。TPR比R-Droid高10%。它验证了本文的特征可以更好地分析锁机勒索软件,并将其与良性应用程序区分开。

E.讨论

为了减小APK的大小并逃避检测,勒索软件采用了混淆处理,这种混淆处理可以在不影响功能的情况下转换代码,从而使其变得晦涩难懂。由于混淆可以重命名类或函数,因此许多以前的工作使用基于API名称的功能来检测恶意软件可能会变得无效。但是,根据观察,良性和锁机勒索软件通常不会混淆小部件(Widget)。因此,即使来自API的信息无效,仍然可以根据小部件中显示的文本找出其尝试。从配置小部件的三个来源中彻底提取文本:布局文件,字符串资源和反编译的代码。与其他代表性特征(例如窗口属性)一起,全面介绍了锁机勒索软件的行为。

应用静态分析的主要原因是,大多数信息特征可以通过静态代码分析有效地提取。相反,在动态分析过程中,每次执行锁机勒索软件样本后,就会锁定模拟器。尽管可以使用ADB命令对其进行修复,但是静态功能可以更好地满足面对大规模运行Somware时高效高效的需求。

动态有效载荷可能会影响检测性能,但是,动态有效负载和根shell都可以达到隐藏恶意组件和逃避检测的目的。根据调查,由于较低的技术要求,锁机勒索软件更喜欢根shell。 root shell的任务是获得root许可并在系统目录中释放锁机勒索软件。这样可以挖掘出内部隐藏的APK,以克服根shell问题并获得比VirusTotal更好的性能。

 

0x05 Conclusion

锁机勒索软件使用各种技术诱使用户下载,使设备无法访问并迫使受害者支付赎金,从而对用户的财产构成极大威胁。此外,通过代码混淆和shell程序,勒索软件可以绕过许多防病毒引擎的检测,这使Android生态系统不安全。

在这项工作中,对锁机勒索软件的交易过程和行为进行了全面分析。为了保护用户免受锁机勒索软件的侵害,致力于提供一种轻便有效的检测框架。为了克服代码混淆和根root的挑战,从多个来源中提取了六种类型的特征。这些特征可以高度概括出锁机勒索软件的行为。通过多数表决采用四个分类器的组合,以得到最终的检测结果。实验结果证明了该特征和方法的有效性。以99.98%的精度获得最佳检测结果。

(完)