生物识别更安全 – 关于恶意软件如何盗取安卓用户信息

本文受到了2023年THS会议上Jan Seredynski精彩演讲的启发。

网络安全并不是一个二元问题——没有能够保证100%安全的解决方案。实际上,它更多关乎风险评估和选择那些不太容易受到攻击的解决方案。在银行业务的背景下,一个例子是通过移动应用确认交易比使用流行的短信代码更安全,尽管这也面临一些有效的攻击方法。这些方法可能包括伪造的应用程序冒充银行应用,以及利用漏洞的应用程序(例如Pegasus)。但对移动银行的一种更有趣的攻击是如果受害者在手机上安装了一款表面上无害的应用,而这款应用滥用了Android的权限。

感染的模式往往以受害者从不可信来源安装应用开始。受害者被信息诱导,称所安装的版本可以免费解锁高级功能。

youtube premium malware
duolingo premium malware

不幸的是,有时候即便是官方Google Play商店的应用也可能是恶意的。最初这些应用不含有害功能,但在后续更新中加入了这些功能。网络犯罪分子开发表面上无害的应用,例如简单的手电筒应用或照相机工具。这些应用请求对设备中各种功能的权限。在几个月内,这些应用按照声明正常工作,没有任何问题。用户常常给予他们正面的评价,这增强了应用的声誉并鼓励更多用户下载。但在一段时间后,网络犯罪分子会修改应用,加入恶意代码或改变权限,以便能够盗取数据。这种延迟添加恶意代码的方法使得犯罪分子能够顺利通过Google Play商店的审核过程。

latarka malware w google play

辅助功能和屏幕覆盖在恶意软件中的作用

辅助功能(Accessibility Services)允许诸如读取手机屏幕上显示的信息并为用户完成表单填写等功能。

działanie ułtawień dostępu

恶意应用通过利用为残障人士设计的辅助功能,可以记录手机屏幕上发生的一切,获取输入的代码。因此,它能够知道移动应用的密码并自发地发起和确认转账。授予可疑权限是通过另一种巧妙的技巧——屏幕覆盖(Overlay)完成的。用户往往甚至不知道自己正在授予危险的权限。

一个“Overlay Services”的例子是出现在Messenger消息中的泡泡对话。

działanie dymków facebook

在下面的变体中,虚假的屏幕覆盖遮住了部分真实的屏幕(将其隐藏在用户的视线之外),然后要求受害者输入信息(通常是机密信息,如银行数据、PIN代码或安全问题的答案)。受害者以为自己在可信应用中输入了机密信息,但实际上这些信息直接传送给了攻击者。

jak malware wykradana przez nakładki dane dostępowe użytkownika

这种使用屏幕覆盖的攻击变体的目标通常是移动银行、金融科技、电子商务、游戏或零售应用。当攻击者知道了确认交易的PIN后,他可以利用辅助功能在我们打开真正的银行应用时自动登录、发起并确认转账。


真实攻击案例

  • BrasDex是一种恶意软件,专门针对Android系统,特别是攻击巴西的银行应用。当它感染设备时,BrasDex只识别并攻击特定应用。它使用Android的辅助功能来监控屏幕、控制触摸、操作键盘和进行其他恶意活动。BrasDex的主要目的是在使用银行应用时盗取登录数据,并在用户不知情的情况下进行交易。
brasdex
  • ERMAC 2.0是一种Android平台的特洛伊木马,旨在盗取用户的登录数据并将其传送给网络犯罪分子。窃贼利用这些数据接管受害者的银行和加密货币账户,并进行各种诈骗。其典型案例是一款假冒的应用,可以在合法的食品配送网站上找到。这款假冒应用要求多达43种权限,包括访问辅助功能和覆盖服务,从而可以盗取登录数据。
ermac
  • Xenomorph是一种恶意软件,尽管诞生已有两年多,但它仍然被用于攻击。最初,它通过Google Play商店传播,作为一种提高性能的应用。用户安装这些应用时,不知不觉中感染了设备,认为提高性能需要如此广泛的权限。Xenomorph能够拦截短信,这使其能够收集用于确认交易的数据。此外,它利用辅助功能权限在屏幕上创建隐蔽的覆盖。
xenomorph

防御利用辅助功能的恶意软件的建议

  • 禁止所有辅助功能服务:这对残障用户最不友好,但这是最简单的防止权限滥用的方法之一。
  • 只允许白名单上的服务:一种对辅助功能更友好的方法,利用API列出所有辅助功能服务,识别其包名并只允许某些受信任的服务在应用中运行。然而,从外部安装的应用可以模仿任何包名,因此这种防御只能保护来自Google Play商店的威胁。
  • 只允许具有合理权限的服务:你可以使用标识(android:importantForAccessibility),识别对辅助功能重要的用户界面元素。将其设置为“false”用于应用中的所有敏感字段,并限制宣称有兴趣读取不重要字段的辅助功能。你可以通过检查服务的标识属性并验证FLAG_INCLUDE_NOT_IMPORTANT_VIEWS来实现。
  • 利用生物识别和系统对话框:要求和使用生物识别身份验证用于重要交易可以帮助防止网络犯罪分子利用辅助功能进行未经授权的交易。还要求通过系统对话框进行交易,可以有效地阻止覆盖。新版本的Android不允许覆盖在系统窗口上运行。
  • 使用Android API 34:此更新确保只有经过验证的辅助服务才能查看和访问应用中的敏感信息。

检测覆盖的建议

Google引入了几个有用的API,以帮助检测和防止利用覆盖攻击的恶意软件:

  • API 9:当启用了触摸过滤选项(setFilterTouchesWhenObscured(boolean))时,如果视图的窗口被覆盖,系统会忽略用户的触摸。在这种情况下,是指其他可见窗口(或消息/提示/对话框)位于触摸点上。
  • API 29:此更新通过标识(FLAG_WINDOW_IS_PARTIALLY_OBSCURED)提供更详细的部分覆盖触摸检测,标识窗口接收到部分或完全被其他可见窗口遮盖的运动事件。重要的是要注意,如果运动没有直接通过覆盖物,事件将标识为带标记。
  • API 31:此更新为开发者提供选项setHideOverlayWindows(true),可隐藏并自动移除非系统覆盖。目前这是最有效和高效的方法。

作为普通用户,需要知道的是,辅助功能服务(Accessibility Services)无法访问生物识别数据,也无法伪造这些数据。这就是为什么建议使用生物识别方法而不是传统的PIN码/密码。使用指纹或面部识别登录应用以及确认交易要安全得多。生物识别增加了一层额外的保护,因为它对每个用户都是独特的,比传统密码或PIN码更难复制或盗取。因此,特别是在金融交易和访问重要应用的背景下,使用生物识别技术无疑是更好的选择。

更新1:一位非专业读者指出,已经出现了包含巧妙机制的新型特洛伊木马变种,这些机制旨在诱使受害者使用非生物识别身份验证方法。当特洛伊木马会自动点击“取消”按钮时,检测到生物识别验证,并因此迫使用户使用其他方法来进行身份验证,这些数据可以被截获。

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!). Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

タグ , , , , , , . ブックマークする パーマリンク.

この記事についてのあなたの意見を教えてください.