盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)-阿里云开发者社区

开发者社区> 雷锋网> 正文

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

简介:
 
    雷锋网按:本文来自盘古实验室,雷锋网(公众号:雷锋网)获授权发布。

2017年2月13-17日,RSA Conference 2017 信息安全大会在美国旧金山Moscone中心隆重举行。大会第一天就是一系列关于Ransomware(勒索软件)的议题,而在刚刚过去的2016年,“MongDB数据库网络勒索事件”,“ElasticSearch数据库网络勒索 事件”,网络勒索问题已成为互联网安全的重点关注问题之一。

此前,某安全研究人员在知乎专栏爆料,某黑产团伙利用嵌入恶意代码的刷钻应用进行QQ盗号和恶意锁屏,感染用户高达八千人。近日,盘古实验室发现同一团伙传播的升级版恶意应用,企图锁屏用户移动设备,进行敲诈勒索。

一、背景概述

在某社区平台,有安卓用户称在QQ群中下载了“爱扣字”这款应用,导致手机被恶意锁住,无法正常使用。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

通过感染用户提供的锁屏图片中的QQ群号码,我们找到了管理员的QQ号。管理员的QQ签名明确标注了解锁的价格。

管理员签名:“想要解锁自己的手机,需要联系加QQ群189894077,联系管理员,QQ红包35元,微信支付宝40元。”

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

二、恶意锁屏触发流程

盘古实验室在获取到恶意样本后,在安卓模拟器上进行了测试,还原其锁屏触发流程及技术原理。下图为恶意锁屏的触发流程图。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

在安装“爱扣字”应用后,打开应用程序,弹出“扣字神器”的安装界面,提示安装“扣字神器”应用。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)



安装并打开“扣字神器”。“萌宠大揭秘”中的GIDGET,看起来萌萌的。在点击“点击开始免费激活”按钮后,跳转到下图第二个界面。弹窗“激活完全免费”,点击“激活”。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)


同时第三个界面弹窗询问是否激活设备管理器,激活后,跳转到上图第四个界面。前面的几个界面看起来都相对可靠,这个界面看着些许不适,风格诡异。

点击“点击开始root”后,设备黑屏并重启。重启后,设备已经被恶意应用锁屏。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)



在整个锁屏触发的过程中,真正具有恶意锁屏行为的应用是“爱扣字”推送安装的程序“扣字神器”。

三、样本技术原理

(1)锁屏原理

锁屏类勒索软件通常利用WindowManager.LayoutParams的flags属性,设置成全屏显示,使悬浮窗口悬浮置顶。本文中的恶意应用也利用了同样的方法。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)


国内的大多数勒索类软件也大多是利用同样的手段。

除了锁屏,对于按键操作,程序也进行了监控。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)


当按键为4或82时,执行com.bugzapk.z的代码。4代表的是返回键,82代表的是菜单键。代码中并未出现监控音量键、关机键等特征代码。

com.bugzapk.z中的代码主要作用是将bug.apk放在system目录中,作为系统应用开机启动,达到长期恶意锁屏的目的。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

而bug.apk正是重命名的“扣字神器”这款应用。

(2)密码加密算法

应用程序中解锁密码并没有明文存储,而是利用了AES加密和压缩算法,将密码进行加密后存储。

  • AES加密:

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

  • 压缩算法:

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

  • 解密前原数据:

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

  • 解密后明文:

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

(3)其他恶意行为

在恶意应用运行的过程中,会主动请求网页“http://www.wencaojun.top/xnsmtp.html“而网页中的内容是邮箱和一串类似密码的字符串。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

历史恶意样本是发送序列号加密后的字符串到指定邮箱,而这个恶意应用虽然保留了部分历史代码,在此基础上添加了代码,但是在测试的过程中并未出现发送邮箱的行为。

在代码中也出现了一些可疑邮箱。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

四、快速解锁

快速解锁只需要三个密码即可。

第一个解锁密码为:

a.安装恶意软件时联网,密码为 "http://www.wencaojun.top/sj.html"中声明七中的数字。

b.安装恶意软件时未联网,密码为4312。

第二个解锁密码为:

2415

第三个解锁密码为:

a.若安装时激活设备管理器,密码为"http://www.wencaojun.top/pin.html"中的数字。

b.若安装时未激活设备管理器,密码为3957。

五、解锁细节分析

在整个解锁的流程中,并不如“解锁管理员”签名中所述,解锁只需35元或者40元就可以解除屏幕锁定。经过测试我们发现,想要解锁设备至少要有三个密码才能解锁。而这些密码,与解锁界面中生成的序列号毫无关系,其中有两个密码保存在远程服务器上,管理员可以随意修改。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

(a)第一个解锁界面

在恶意软件安装后,程序会自动发送HTTP请求到指定的服务器。若HTTP请求成功,则设置第一个解锁界面的解锁密码为网页"http://www.wencaojun.top/sj.html"中声明七中的数字;若HTTP请求失败,则设置第一个解锁界面的解锁密码为4312。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

(b)第二个解锁界面

第二个解锁界面中有三个密码可以使用,分别是4951、997998和2415。这几个密码加密存储在恶意应用的代码中,并不是明文可见。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

这里的逻辑处理很有趣。密码输入4951会返回到第一个解锁界面;密码输入2415,成功解锁,跳转到第三个解锁界面;密码输入997998,则会提示机型不支持,需提供机型给管理员解锁。

这里的机型是程序通过获取设备信息获取到的,是真实信息,但是机型不支持只是一个套路罢了。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

在输入997998跳转到如上图所示界面后,输入密码2415跳转到第三个解锁界面。

(c)第三个解锁界面

第三个解锁界面实际上修改了系统的pin值,设置了新的pin值。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

第三个解锁界面的解锁密码与在安装程序时是否激活设备管理器有关。

程序安装时会询问是否激活设备管理器。若激活设备管理器,则程序从远程服务器端获取密码,密码来源于"http://www.wencaojun.top/pin.html"。若未激活设备管理器,则密码为程序加密存储的数字3957。

至此,整个程序才算解锁完毕。当然,这仅是解锁完毕。如果解锁后没有立即删除该恶意应用,重新启动手机后该应用仍会继续自动启动并锁屏。

六、恶意锁屏产业链

恶意样本代码中包含若干手机号码、QQ号、QQ群等信息,根据以上信息及感染用户提供的信息摸索,其产业链也越发清晰。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

该团伙利用受害者贪小便宜的心理,多次在安卓逆向破解群、安卓反编译群、扣字群、QQ刷赞群等多个群中埋伏,在群文件中共享包含恶意代码的锁屏应用,并伪造成免费应用的样子,伺机传播。

在用户下载安装后,通过指定QQ群进行联系。QQ群一般伪装成普通的游戏交流群或日常沟通群。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

通常情况下,群主不参与整个勒索的流程,会提示受害者联系管理员进行解锁。管理员则会对受害者多次索取解锁费,达到勒索钱财的目的。

勒索团伙具备高度的反侦查意识。在获取样本后的短短几天内多次更换群主和管理员,解散QQ群,建立新的牟利链。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

QQ账号注册成本低,一个手机号码可注册多个QQ号。即使QQ号被举报,被腾讯公司收回,也可以使用相同的手机号继续注册,并且经常更换QQ号码也会在一定程度上避免其账号在社交平台大肆流传,影响牟利。

而之前在其他社交平台被披露的QQ群,大多数已解散。现在仍旧被用来维持业务的QQ群基本上都是16年之后建立的。

与其他敲诈勒索团伙不同的是,这个团伙在百度贴吧中专门建了一个贴吧进行自己的解锁宣传。虽然贴吧排名不高,帖子数量少的可怜,但是仍然可以通过其中几个解锁管理员的QQ搜索到。

盘古实验室揭秘:安卓手机勒索软件套路(内含安卓勒索软件快速解锁方法!)

正如恶意样本技术分析中描述的一样,用户设备受到感染至少执行3个步骤,至少可牟利100元。而这样低成本的恶意锁屏软件,每天感染3个用户,月收入就过万了,日积月累,涉案金额并不是一个小数目。

七、安全建议

恶意锁屏敲诈勒索的事件中,所安装的应用均来自QQ群,论坛等非正规渠道,而这些渠道并不具备大型应用市场相对严格的审核制度。

  • 对于已经感染该恶意样本的用户,可通过本文中的解锁流程进行解锁操作,解锁后立即删除该应用,避免掉入循环付费解锁的黑洞。

  • 针对安卓用户,应尽量避免安装来历不明的应用,对于应用获取root权限等敏感行为的操作也应该保持警惕,避免遭受损失。

雷锋网版权文章,未经授权禁止转载。详情见转载须知

分享:
相关文章

文章点评:

表情  同步到新浪微博

编辑

雷锋网专栏编辑,欢迎各位大牛来分享技术科普。微信:king9jmq,添加请备注姓名和职位,方便沟通。
当月热门文章

OpenAI最新研究:“对抗样本”能轻易黑掉AI系统,如何抵御?

本文作者:亚萌 2017-02-17 19:43
导语:OpenAI发表最新研究,论述了AI安全领域的一大隐忧:“对抗样本”,它可以轻易地让机器学习系统产生误判,这会对AI的应用实践产生影响。

OpenAI最新研究:对抗样本能轻易黑掉AI系统,如何抵御?

雷锋网(公众号:雷锋网)按:近日,OpenAI发表最新研究,论述了AI安全领域的一大隐忧:“对抗样本”,它可以轻易地让机器学习系统产生误判,这会对AI的应用实践产生影响。在这篇由“GANs”之父Ian Goodfellow领衔撰写的文章里,OpenAI针对“对抗样本”进行了防御策略的实验,其中有两种方法效果显著,但也并不能解决根本问题。OpenAI表示设计出抵抗强大、具有适应性攻击者的防御策略,是非常重要的研究领域。本文原载于OpenAI Blog,由雷锋网编译整理。

“对抗样本”是攻击者故意设计的,被用来输入到机器学习模型里,引发模型出错的值,它就像是让机器在视觉上产生幻觉一样。在这篇文章里,我们将会展现“对抗样本”是如何通过不同的媒介工作的,并且将会讨论为什么针对“对抗样本”的安全防御很困难。

在OpenAI,我们认为“对抗样本”是安全方面非常好的一个议题,因为它代表了AI安全领域里的一种具体的问题,我们可以在较短期里去关注和解决,而且这个问题的难度也是足够的,需要进行一些重要的研究工作(尽管我们需要探索机器学习安全的很多方面,以达到我们建造安全、广泛应用AI的目标)。

什么是“对抗样本”?

这篇论文里“Explaining and Harnessing Adversarial Examples”有一个例子:这是一只熊猫的图片,攻击者加入了一个小干扰到计算里,导致系统将其误认为是长臂猿的照片。

OpenAI最新研究:对抗样本能轻易黑掉AI系统,如何抵御?

一个对抗输入值,覆盖了一个典型的图片,分类器将一只“熊猫”误分类为一只“长臂猿”

这个方法是十分有效的,最近的一项研究(论文“Adversarial examples in the physical world”)显示,把“对抗样本”用标准的纸张打印出来,然后用普通的手机对其拍照制成的图片,仍然能够影响到系统。

OpenAI最新研究:对抗样本能轻易黑掉AI系统,如何抵御?

“对抗样本”可以在普通纸张上打印出来,再让带有标准分辨率的智能手机拍摄,仍然可以引发分类器产生错误。在上图例子里,系统错把“洗衣机”标签为“保险箱”。

“对抗样本”很有可能变得危险。比如,攻击者可以用贴纸或一幅画制成一个“停止”指示牌的“对抗样本”,以此来攻击汽车,让汽车将原本的“停止”指示牌误理解“让行”或其它指示牌,就像论文“Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples”讨论的那样。

增强学习智能体也可以被“对抗样本”所操纵,根据 UC伯克利大学、OpenAI和宾夕法尼亚大学的一项最新研究(论文“Adversarial Attacks on Neural Network Policies"),以及内华达大学(论文“Vulnerability of Deep Reinforcement Learning to Policy Induction Attacks”)的一项研究显示,广泛使用的增强学习算法,比如DQN、TRPO和A3C,在“对抗样本”面前都十分脆弱。即便是人类难以观察出来的微妙的干扰因素,也能导致系统性能减弱。比如引发一个智能体让乒乓球拍在本该下降时反而上升,或者干扰锁定敌人的能力。

OpenAI最新研究:对抗样本能轻易黑掉AI系统,如何抵御?

如果你想要做一个击溃自己模型的实验,可以使用cleverhans,这是一个由Ian Goodfellow和Nicolas Papernot联合开发的开源库,可以用它来测试你的模型在面对“对抗样本”时的脆弱性。

“对抗样本”是AI安全的隐忧

当我们思考AI安全问题时,往往总是去思考最困难的问题:如何确保成熟的增强学习智能体能够按照设计者的意图行事,比人类还要更加智能?

“对抗样本”展示出,就算是简单的现代算法,不论是监督学习还是增强学习,就已经可以不以设计者的意愿行事了,且是以令人惊讶的方式。

抵御“对抗样本”的一些尝试

让机器学习模型更稳定的传统技术,比如与权重衰减(weight decay)和dropout,通常不会对“对抗样本”造成实际的防御。到目前,只有两种方法有明显防御效果。

  • 对抗训练(Adversarial training)

这是一个暴力解决方法,我们自己生成许多“对抗样本”,让后用这些样本来训练我们的模型,让它不被其中任何一个蒙骗。cleverhans库已经有开源的对抗训练机制,这里面(https://github.com/openai/cleverhans/blob/master/tutorials/mnist_tutorial_tf.md)有使用方法详解。

  • 防御净化(Defensive distillation)

这个策略,是让训练模型输出分类概率,而不是直接输出最终的某个类别。概率由早期的一个模型提供,在同样的任务上进行训练,使用hard类别标签。这种方法会创建方向平滑的模型,攻击者由此难以找到“对抗样本”产生的关键点。(“净化”最初源于Distilling the Knowledge in a Neural Network这篇论文,为了节省计算量,“净化”作为一种模型压缩的方法,把小模型进行训练来模仿大模型)。

然而,如果攻击者获得更多的计算力,那么即使是这些特定算法,也会很容易就被攻克。

失败的抵御:“梯度隐藏”(gradient masking)

“梯度隐藏”这种失败的抵御方法,可以让我们好好思考一下,简单的抵御方法是如何失败的。

“梯度隐藏”这个术语最初出现在“Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples”这篇论文里,用来描述一大类失败的防御方法,这类方法会拒绝攻击者进入一个有用梯度。

大部分的“对抗样本”构建技术都是利用模型梯度来进行攻击的。比如说,他们观察一张飞机的图片,反复测试图片空间的哪一个方向上,“猫”的概率会增加,然后它们就在这个方向上“推波助澜”一下(换句话说,他们扰乱输入值)。那么这张经过修改的新图片就会被错误识别为“猫”了。

但是,如果没有梯度呢--如果照片上一个极小的修改对模型输出不会造成任何影响呢?这看起来是可以进行一些防御,因为这种情况下,攻击者无法得知应该在图片哪个方向上“推波助澜”。

我们可以很容易想到一些微小的方法来摆脱梯度。比如,大部分图片分类模型是以两种模式运行的:一种是直接输出“最可能类别”;另一种模式,就是输出“概率”。如果模型输出的是“99.9%飞机、0.1% 猫”,那么输入值的微小变化,也会对输出值的产生微小影响。但如果我们的模型直接采用第一种运行模式,直接输出“飞机”,那么输入值的微小变化,将对最终输出结果没有影响,而梯度也不会告诉透露任何信息。

如果我们使用“最可能类别”模式,而不是“概率”模式,那么让我们来思考一下,这种方法抵抗对“抗样本”的表现如何。在“最可能类别”模式下,攻击者不知道到哪里去找能被归类为“猫”的输入值,以此我们能够有一些防御力。很不幸,之前每张被分类为“猫”的图片,现在依然会被分类为“猫”。但是,如果攻击者能够猜测到防御弱点,由此制作“对抗样本”,那么图片仍然会被错误归类。我们目前还没让模型更加稳定,我们只是让攻击者弄清楚模型防御的弱点的线索变更少。

更不幸的是, 攻击者可以有非常好的策略,来猜测防御弱点在哪。攻击者可以自己训练一个模型,一个拥有梯度的光滑模型,制作“对抗样本”,然后将这些“对抗样本”放进我们防御的非平滑模型里。而我们的防御模型,往往也会把这些“对抗样本”错误分类。最终,这个思考结果暴露出,把梯度藏起来解决不了问题。

执行梯度隐藏的防御策略,会造成一个在特定方向和训练点周围非常平滑的模型,这使得攻击者很难找到暗示模型弱点的梯度。然而,攻击者可以训练一个替代模型:攻击者会构建一个防御模型的复制品,方法是观察防御模型输入值的标签,然后小心选择输入值。

进行这样的一个模型抽取攻击(model extraction attack)的流程,最早是在黑箱攻击论文里介绍的。攻击者可以使用替代模型的梯度,来找到“对抗样本”,以此来让防御模型发生误判。上图来自于“Towards the Science of Security and Privacy in Machine Learning”这篇论文对梯度隐藏的发现,这个例子里我们将这种攻击策略看做是一维的机器学习问题。梯度隐藏现象在面临更高维度的问题时,会变得更加严重,但是更难以描述出来。

我们发现,对抗训练和防御净化都会偶然产生梯度隐藏。这两种算法都显然不是为执行梯度隐藏而特意设计的,但是当机器学习算法训练保护自己而没有被给予特定方法指导时,梯度隐藏很显然是算法自身相对比较容易产生的一种防御方法。如果将“对抗样本”从一个模型转移至第二个模型,就算第二个模型用对抗训练或防御净化训练过,攻击往往会胜利,虽然“对抗样本”直接攻击第二个模型会失败。这说明,对抗训练和防御净化这两种技术能使模型更加平坦,移走梯度,而不能保证让分类更加正确。

为什么抵御“对抗样本”如此之难?

“对抗样本”很难抵御,因为很难为“对抗样本”的制作过程构建一个理论模型。“对抗样本”是很多机器学习模型非线性和非凸最优化问题的解决方法,包括神经网络。因为我们没有好的理论工具,来描述这些复杂优化问题的方法,很难有理论论据表明某一种防御方法能阻止一系列“对抗样本”。

“对抗样本”很难抵御,也是因为它们要求机器学习模型为每一个可能的输入值产生好的输出结果。大多数情况下,对于遇到的所有可能的输入值,机器学习模型只能够对其中少量运行地比较好。

到目前为止,我们测试的每一种防御策略都失败了,因为策略不具有适应性:一种策略或许能抵御一种攻击,但是会对熟知它的攻击者暴露出弱点。设计出抵抗强大、具有适应性攻击者的防御策略,是非常重要的研究领域。

总结

“对抗样本”显示出,很多现代机器学习算法都能被击溃,且是以令人惊讶的方式。这些机器学习的失败证明,即使是简单的算法,也会违背其设计者的意图。我们鼓励机器学习研究者投身其中,找出阻止“对抗样本”的方法,以此减小设计者意图和算法运行之间的鸿沟。如果你对于“对抗样本”方面的工作感兴趣,可以考虑加入我们OpenAI。

  

本文作者:小芹菜

本文转自雷锋网禁止二次转载,原文链接

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

秉承“关注智能与未来”的宗旨,持续对全球前沿技术趋势与产品动态进行深入调研与解读。

官网链接