freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

疯狂的SOVA:Android银行木马“新标杆”
2022-09-06 19:25:22
所属地 上海

2021年8月初,一款针对Android银行APP的恶意软件出现在人们的视野中,ThreatFabric 安全研究人员首次发现了这一木马,在其C2服务器的登录面板,研究人员发现,攻击者将其称之为SOVA。

SOVA简介

在俄语中,SOVA译为猫头鹰,或许是攻击者期望该恶意软件如同猫头鹰一般,成为夜间的优秀捕食者。研究人员确认这是一个全新的Android银行木马,且被发现时正处于开发和测试阶段。

与之同时,研究人员还发现,攻击者已经为其未来可实现的功能建立了清晰的路线图。随后几个月的时间里,SOVA陆续更新了多个版本,真的实现了其更新路线图中提到的诸多功能,包括双因素身份验证 (2FA) 拦截、cookie 窃取和针对新目标、国家(例如多家菲律宾银行)的注入等。

SOVA 路线图(2021 年 9 月)

很明显,SOVA表现出想要“大干一场”的强烈意愿,这也是其在初始阶段就进行分发的原因之一。该恶意软件希望将分布式拒绝服务(DDoS)、中间人(MiTM)和RANSOMSORT功能整合到其武器库中——在现有的银行覆盖、通知操作和键盘记录服务之上,足以给目标用户造成难以置信的伤害。它还有一个其他Android 恶意软件中不常见的功能:窃取会话cookie,这意味着犯罪分子无需知道银行凭据即可访问用户的有效登录会话,这也是很多银行APP感到非常头痛的地方。

此外,SOVA 以完全使用 Kotlin 开发而著称,Kotlin 是一种 Android 支持的编码语言,被许多人认为是 Android 开发的未来。如果作者对未来功能的承诺保持不变,那么 SOVA 可能会成为迄今为止在 Kotlin 中完全开发的最完整、最先进的 Android 恶意软件。

在迭代了V2和V3版本后,SOVA在一段时间内陷入了“沉睡”状态,但却在2022年5月再次被研究人员监测到处于活跃状态,并更新至V4版本,针对的目标也从2021年的90个增加至200个,包括银行应用程序和加密货币交易所/钱包。

有意思的是,安全研究人员还发现SOVA增加了一个令人意想不到的新功能——可对手机等移动端进行数据加密和勒索攻击。

起底SOVA

1、语境

如下图所示,该截图包含了SOVA 混淆和打包版本的 VirusTotal 页面。在文件哈希下方突出显示的字符串是文件上传到 VirusTotal 时使用的名称,文件名为“Vormastor test crypted.apk”。

根据作者的说法,美国和西班牙的不同银行机构已经有多种叠加可供选择,但它们提供了在买方有需要的情况下创造更多叠加的可能性。该恶意软件未来的版本可能会再次切换到JaVa,以解决其使用混淆软件的兼容性问题。

2、命令

以下是SOVA常用的命令列表:

3、能力

SOVA 的一大特点是不容易被发现,为了实现这一点,SOVA 滥用覆盖机制来诱骗受害者泄露他们的密码和其他重要的私人信息。在覆盖攻击中,用户在他们认为是合法的银行应用程序中输入他们的凭据,于是这些信息就交到了攻击者手中。SOVA 也有可能从设备中窃取会话 cookie,该功能并非第一次出现,但在现代 Android 木马中绝对不常见,且绝对是攻击者获取账户凭证的利器。

与大多数银行木马一样,SOVA 严重依赖 Accessibility SerVices。首次启动时,该恶意软件会隐藏其应用程序图标,并滥用辅助功能服务来获取正常运行所需的所有权限。在其更新路线图中我们还可以看到,该恶意软件具备躲避双因素身份验证的能力。

具体来说,SOVA恶意软件的主要能力如下:

  • 窃取设备数据
  • 发信息
  • 覆盖和 Cookie 注入
  • 通过推送通知进行覆盖和 Cookie 注入
  • USSD 执行
  • 信用卡覆盖有效性检查
  • SMS的隐藏拦截
  • 通知的隐藏拦截
  • 键盘记录器
  • 卸载应用程序
  • 从受害者卸载中恢复

此外,在其之前发布的路线图中,研究人员还发现了以下的能力:

  • 自动 3 阶段叠加注射
  • 自动 cookie 注入
  • 剪贴板操作
  • 分布式拒绝服务
  • 改善面板健康
  • 勒索软件(卡号覆盖)
  • 中间人(MitM)
  • 普通推送通知
  • 更多叠加
  • VNC
  • 2FA拦截

从上述能力可以看出,SOVA 背后的组织者的思路非常激进,尝试将恶意软件和僵尸网络的功能相结合,并力推SOVA 进入Android 银行恶意软件的不同领域。随着这些功能在后续版本中陆续变成现实,SOVA 也逐渐成为Android领域中具备高危险性的恶意软件。

(1)、覆盖攻击

与大多数 Android 银行木马一样,SOVA 依靠覆盖攻击从受害者那里窃取 PII。如果用户试图访问包含在 SOVA 的活动目标列表中的银行应用程序,恶意软件将收到 Accessibility SerVices 的通知,并将显示一个 WebView 覆盖,伪装成预期的银行应用程序。

此外,攻击者声称未来的 SOVA 版本将具有所谓的 3-stage-oVerlay,如下图所示:

可以预见的是,3段叠加之后SOVA将拥有更强大的功能,甚至将额外的软件下载到目标设备上。

而目标列表包含在名为“packageList.txt”的资产文件中,此列表非常广泛,包含需要信用卡访问权限才能运行的银行应用程序、加密货币钱包和购物应用程序。

(2)、cookie窃取

SOVA 的另一个关键能力是窃取 cookie 的能力。由于Cookie允许用户在浏览器上保持打开的会话而无需输入任何凭据,因此攻击者窃取 cookie 后就可以直接访问受害者的 Web 会话。具体来说,SOVA 将创建一个 WebView 以打开目标应用程序的合法 Web URL,并在受害者成功登录后使用 Android CookieManager 窃取 cookie。

根据已发现的代码片段,研究人员已经知晓攻击者是如何创建覆盖 WebView,具体代码如下:

this.setContentView(0x7F070001);  // layout:actiVity_web_View

    WebView V1 = (WebView)this.a(0x7F05001D);  // id:web_View

    Checks.checkNotNullWithName(V1, "web_View");

    WebSettings webSettings = V1.getSettings();

    Checks.checkNotNullWithName(webSettings, "web_View.settings");

    webSettings.setJaVaScriptEnabled(true);

    ((WebView)this.a(0x7F05001D)).setLayerType(2, null);  // id:web_View

    String link = this.getIntent().getStringExtra("link");

    boolean getCookieFlag = this.getIntent().getBooleanExtra("getCookie", false);

    CookieManager cookieManager = CookieManager.getInstance();

    CookieSyncManager.createInstance(this.getApplicationContext());

    cookieManager.setAcceptThirdPartyCookies(((WebView)this.a(0x7F05001D)), true);  // id:web_View

    cookieManager.acceptCookie();

    CookieSyncManager.getInstance().startSync();

    WebView webView2 = (WebView)this.a(0x7F05001D);  // id:web_View

    Checks.checkNotNullWithName(webView2, "web_View");

    Checks.checkNotNullWithName(cookieManager, "cookieManager");

    webView2.setWebViewClient(new CustomWebViewClient(this, ((boolean)(((int)getCookieFlag))), cookieManager));

    if(link != null) {

        ((WebView)this.a(0x7F05001D)).loadUrl(link);  // id:web_View

    }

需要注意的是,该恶意软件不需要特定权限即可运行此代码,研究人员在测试过程中发现,SOVA可轻松地从 Gmail 或 PayPal 等主要网站窃取会话 cookie,甚至是创建应用程序列表自动监控 cookie 的选项。

(3)、DDoS攻击

DDoS 攻击是SOVA的核心能力之一,也是当前 Android 恶意软件生态系统中不常见的功能,其目标是耗尽设备的资源,使其对目标用户不可用。在最初的版本中这个功能并没有出现,但是背后的组织者已经设置了一个startddos命令,它将在 Kotlin 协程中执行以下代码:

do {

        retrofitManager V3 = this.mRetrofitManager;

                if(!V3.isActiVe) {

                    return l.a;

                }

                Objects.requireNonNull(V3.retrofitClient);

                this.i = V1_1;

                this.j = 1;

    }

    while(retrofitClient.ddosEndpoint.request(this.link, this) != V0);

在SOVA的路线进化图中,我们可以发现这个功能还在继续开发之中,但尽管如此,SOVA实际上能够使用 RetroFit 为给定的 URL 创建请求。

RetroFitBuilder DDOSretroFitBuilder = new RetroFitBuilder();

    DDOSretroFitBuilder.setHTTPClient(okHTTPClient);

    DDOSretroFitBuilder.setBaseUrl("http://google.com/");

    myConVerterFactory DDoSConVerterFactory = myConVerterFactory.c();

    DDOSretroFitBuilder.conVerterFactories.add(DDoSConVerterFactory);

    retrofitClient.ddosEndpoint = (ddosEndpoint)DDOSretroFitBuilder.buildRetrofit().getProxyClass(ddosEndpoint.class);

如上所示,尽管它将 “google.com” 设置为基本 URL,但通过使用 RetroFit 的 @Url 注释,作者能够动态输入一个全新的 URL。

SOVA V4

SOVA V4版本是一次阶段性更新,在这个版本中SOVA的威胁指数更高,且传播能力、隐藏能力也都有了相应的提升。例如在V4版本中,SOVA 背后的组织者 (TA) 尝试将恶意软件隐藏在假冒的 Android 应用程序中,这些应用程序带有流行应用程序的徽标,例如 Chrome、亚马逊、NFT 平台或其他。

SOVA V4 使用的主要图标

SOVA V4版本还更新了一项新的功能,即获取受感染设备的屏幕截图,以此从受害者那里获取更多信息。例如该恶意软件可以投射/录制屏幕,悄无声息获取用户的关键信息,并对对敏感信息进行记录和存储(如下图所示)。这些功能与可访问性服务相结合,使 TA 能够执行手势,从而实现在受感染设备上进行欺诈活动。这和目前我们常见的Android 银行木马(Oscorp或BRATA)的做法并无二致。

SOVA V4 的投射/录制功能

在SOVA V4版本,攻击者可以轻松管理多个命令。其中包括屏幕点击、滑动、复制/粘贴、显示覆盖屏幕以此隐藏屏幕信息获取的能力等。所有已经获取或存储的敏感信息都会发送回C2服务器,这是一个十分明显的指标,意味着SOVA仍然只是一个过渡版本,其背后的组织者还在不断开发新的功能和特性。

同时,SOVA V4版本还对其核心功能cookie 窃取机制进行了重构和改进。其组织者详细列出了他们感兴趣的 Google 服务(如 Gmail、GPay 、Google 密码管理器等),以及其他应用程序的列表。对于每一个被盗的 cookie,SOVA 还将收集附加信息,以便更精细化实施欺诈活动。

另一个重构的功能是其“保护模块”,该模块最主要的功能是保护恶意软件被卸载。当用户试图从设置中卸载该恶意软件时,SOVA 能够拦截这些操作,自动返回主屏幕,并弹出一个小窗口“此应用程序是安全的”。

SOVA V3 和 V4 之间的“保护”代码比较

和市场上主流Android 银行木马一样,SOVA 使用 .apk后缀只是为了解压恶意软件,释放真正具备恶意功能的 .dex 文件。在之前的版本中,SOVA 将 .dex 文件存储在应用程序的目录中,而在当前版本中,它使用设备的共享存储目录(“Android/obb/”)进行存储,更直接也更加有效。

此外SOVA V4还增加了一个全新的模块,专门用于Binance交易所和Trust Wallet(Binance 官方加密钱包)。对于这两种应用程序,攻击者旨在获取不同的信息,例如账户余额、受害者在应用程序内执行的不同操作,最后甚至是用于访问加密钱包的助记词(单词集合)等。

SOVA V5

就在SOVA V4版本重出江湖之际,Cleafy ASK又在野外发现了多个SOVA变异样本,疑似是SOVA V5版本。在对其新版本的代码进行分析后,安全研究人员再次发现其代码又有了重大的变化,增加了不少新的功能,此外恶意软件与 C2 服务器之间通信也发生了一些小变化。

例如在 SOVA V5版本中并未观察到 V4版本的VNC模块,安全人员认为这个功能尚未集成到V5版本中。有意思的是,安全人员发现了多个用于调试的日志,综合这些信息 SOVA V5很有可能还处于开发之中。

SOVA V5 命令列表

尽管还在开发初期,但是SOVA V5有一个核心功能值得引起行业的注意,新增加了一个勒索软件模块,该模块在2021 年 9 月公布的路线图中宣布,没想到如今真的成为了现实。

SOVA V5 的勒索软件模块

虽然目前勒索软件功能似乎并未全部完成,但是不妨碍大家对此感兴趣,这在Android 银行木马领域十分罕见。毕竟在用户的普遍认知中,勒索软件一般是针对PC端。该恶意组织十分敏锐地顺应了近年来的发展趋势,目前移动设备已成为大多数的个人和商业数据的中央存储。一旦勒索软件功能落地,SOVA将一骑绝尘。

SOVA正气势汹汹

根据Cleafy ASK的报告,2022年 Android 银行恶意软件家族呈爆炸式增长;无论是从数量上还是质量上皆是如此。随着进入数字化转型期,以及移动支付使用量急剧增加,攻击者开始转换思路跟随这一大趋势,因此积极新技术、新方法强化移动端的攻击力度也就不足为奇了。

SOVA就是其中代表之一,虽然它仍然处于起步阶段,但是已表现出极大的野心,正气势汹汹而来。目前SOVA的基础功能已经完善,并且可以和其他现代 Android 银行恶意软件一较长短。关键是SOVA没有停下更新迭代的脚步,其背后的组织者显然也对其寄予厚望,那份明确的功能路线图也从侧面印证了这一观点。

如果真的按照路线图所展示的功能,那么在不久的将来,SOVA可通过 VNC、DDoS 功能、勒索软件和高级覆盖攻击来识别设备上的欺诈行为。这些功能将使它成为市场上功能最丰富的 Android 恶意软件,并可能成为Android 银行木马的“新标杆”。

参考来源

https://www.cleafy.com/cleafy-labs/sova-malware-is-back-and-is-evolving-rapidly

https://www.threatfabric.com/blogs/sova-new-trojan-with-fowl-intentions.html

# 黑客 # 网络安全 # 系统安全 # 木马
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录