导语:本文从社会工程学和复杂技术机制两方面介绍了网络犯罪分子在Android手机攻击中采用的多种技巧。

谷歌官方商店中的恶意软件从未停止出现过。对于网络犯罪分子来说,将他们的恶意app潜入真正的应用程序市场是一个巨大的胜利。

尽管分析师们发现了分析恶意软件的新方法,而且用户也已经开始了解这些情况,但网络犯罪分子正在寻求在手机中隐藏以及攻陷设备的新方法。

而用来增加攻击效果的绝佳技巧可以分为两大类:第一,迷惑用户的社会工程;第二,阻碍恶意软件检测和分析的复杂技术机制。

本文总结了过去几年中恶意Android代码的一些常见行为。

一、基于社会工程的欺骗

使用Play商店中的欺诈帐户传播恶意软件

谷歌官方商店中的恶意软件从未停止出现过。对于网络犯罪分子来说,将他们的恶意app潜入真正应用程序的市场是一个巨大的胜利,因为他们可以接触到更多潜在的受害者,因此感染力几乎坚如磐石。

更重要的是,用于传播不安全或恶意应用的虚假开发者帐户与真实帐户很相似,用来欺骗不知情的用户,最终让他们感到困惑。最近的一个例子中,研究人员发现了一款假冒的使用Unicode字符技巧的应用程序WhatsApp,以给出通过官方帐户分发的假象。

利用纪念日和预定的应用发布日

网络犯罪世界中的一种常见做法是使恶意软件看起来像大多数突然流行起来的游戏app版本。这些程序要么预定发布,要么在某些国家的官方商店中不可用。这种情况在PokémonGO、Prisma和Dubsmash上都发生过,全球共增加了数十万例传染。

劫持和覆盖窗口

Tapjacking是一种通过显示两个叠加的应用程序来捕获用户屏幕键入的技术。因此,受害者相信他们正在轻敲他们看到的应用程序,但他们实际上正在轻敲隐藏在视图中的底层应用程序。

另一种类似的策略是覆盖窗口,它被广泛用于间谍软件中,窃取Android中的凭证。在这个过程中,恶意软件不断跟踪用户正在使用的应用程序,当它与某个目标应用程序一致时,它会显示自己的对话框,该对话框看起来就像合法应用程序,向用户请求凭据。

伪装系统应用

到目前为止,恶意代码隐藏在设备上的最简单方法是将其作为系统应用程序自动关闭,并尽可能不被注意。如安装完成后删除应用程序图标,使用系统应用程序以及其他受欢迎应用程序的名称、安装包和图标攻陷设备这些策略,会出现在代码中,就像银行木马一样将代码自动转换为Adobe Flash Player以窃取凭据。

模拟系统和安全应用程序来请求管理员权限

由于Android结构限制了应用程序权限,因此很多恶意代码需要请求管理员权限才能正确实现其功能。授予此权限会使卸载恶意软件变得更加困难。

所以伪装成安全工具或系统更新的方法成为了网络犯罪分子的应对之策。因为,它可以让网络犯罪分子在受信任的开发人员背后隐藏自己,因此用户可以毫不犹豫地授权应用程序访问管理函数。

模拟真实数据的安全证书

用于签署APK的安全证书也可用于确定应用是否已被更改。尽管大多数网络犯罪分子在颁发证书时使用通用文本字符串,但许多人却冒着与开发人员使用相对应数据的麻烦,更努力地迷惑执行检查的用户。

二、使分析复杂化的技巧

多个功能集成在同一代码中

近年来,移动领域一直有一个发展趋势就是将过去不同类型的恶意软件组合成一个可执行文件。LokiBot就是这样一个例子,它是一种银行木马,可以隐蔽窃取设备中的信息;但是,如果用户尝试移除管理员权限来卸载,它就会通过加密设备的文件来激活其勒索功能。

隐形app

使用释放器和下载器,即将恶意代码嵌入另一个APK或从互联网下载恶意代码,这种策略不仅限于笔记本电脑和计算机的恶意软件,也是恶意移动代码编写者普遍使用的策略。

由于之前的Google Bouncer(现在更名为Google Play Protect)使网络犯罪分子能够将恶意软件上传到官方商店,因此攻击者选择将此类行为包括在内,试图绕过控制措施……而且它很有效(至少在一段时间内)!

从那时起,这两种形式的恶意软件代码已被添加到最常用的恶意技术组合中。

多种编程语言和不稳定的代码

新的多平台开发框架和新的编程语言不断出现。给误导恶意软件分析师带来了便利,比如使用Xamarin设计应用程序或使用Lua代码执行恶意命令。该策略改变了可执行文件的最终体系结构,并增加了复杂程度。

一些攻击者使用动态脚本加载或从远程服务器下载,并在使用后自删除的代码添加到此组合中。因此,一旦服务器被网络犯罪分子移除,就不可能准确知道代码在设备上所执行的操作。

具有这些特征的样本开始出现在2014年底,当时研究人员发布了这个特别复杂的恶意软件分析报告。

协同作战的恶意软件

将样本分析复杂化的另一种方法是将恶意功能划分为能够彼此交互的一组应用程序。这样,每个应用程序都是具有权限和恶意功能的子集,然后他们互相交互以实现更多目的。而且,分析师若想了解恶意软件的真正功能,他们必须能够访问所有单独的应用程序,就像拼图一样。

尽管这不是一个常用的策略,但已经有样本表现出此类行为,正如Virus Bulletin最近发表的一篇文章。

隐蔽通道和新的通信机制

要与C&C服务器或其他恶意应用进行通信,恶意软件需要传输信息。这可以通过传统的开放通道或隐藏通道(个性化通信协议、亮度调节、唤醒锁、CPU利用率、内存空间、声音或振动级别以及加速计等)完成。

此外,近几个月来,我们看到网络犯罪分子利用社交网络传输C&C消息,例如Twitoor,它是使用Twitter帐户发送命令的僵尸网络。

其它反分析技术

加壳、反仿真、反调试、加密和混淆等其他规避技术的使用在Android恶意软件中非常普遍。为了解决诸如此类的保护问题,可以hook函数(通过Frida等应用程序)。

也可以使用默认避开这些控件的分析环境,例如MobSF——包含一些反仿真技术,Inspeckage——在加密前后可以看到文本字符串以及使用的密钥,或者AppMon也行。

为防止感染,记得查看这些恶意行为,并了解如何检查手机是否已遭到入侵。

源链接

Hacking more

...