银行抱怨扎根的Android。它真的比 Windows 桌面更糟糕吗?

信息安全 安卓 银行 特权升级
2021-09-06 08:19:19

当我使用我银行的Android 应用程序时,该应用程序注意到我的手机已root,并显示一条带有大红色“危险”符号的消息和一条显示“易受攻击的设备”的消息。我完全理解他们这样做,因为金融机构总是喜欢保持安全。然后银行可以说“我们警告过你!” 如果有根设备的人的网上银行受到损害。

现在,我意识到我的手机不如没有 root 权限的 Android 设备安全。我相信每个人都会欣然同意这一点。(少多少显然取决于很多事情。)

但我的想法是,这与在 Windows 桌面上运行的浏览器中使用网上银行真的有什么不同吗?我的意思是,从某种意义上说,Windows 也是“root”的,您可以为您想要的任何应用程序授予“root”(管理)权限?

所以从某种意义上说,他们抱怨我的手机有能力给应用程序“root”权限,这不就像在也有这种能力的桌面操作系统上使用网上银行一样吗?

如果我通过手机上的浏览器应用程序使用网上银行怎么办?这会比应用程序更安全吗?

在我手机上的浏览器应用程序中使用网上银行与在 Windows 桌面上的浏览器中使用网上银行有什么不同吗?(两者都是在“根”操作系统下运行的浏览器。)

3个回答

一切都与安全模型有关

我们在几乎所有移动应用程序安全检查表(例如OWASP中都看到了“检查越狱/root 设备”的参考。在将其与台式机或 Web 浏览器进行比较时,我们必须记住它们具有不同的威胁模型。
例如,在桌面计算机上设计应用程序时,我们已经知道其他应用程序具有管理员权限。

举个例子,Windows 或 Linux 等操作系统的安全模型不会阻止应用程序访问另一个应用程序的目录或内存。

现在在移动环境中,以Android为例,操作系统阻止应用程序访问彼此的目录,root权限绕过了这个安全控制。因此,通过植根您的设备,您正在对应用程序开发人员可能无法预见的设备进行更改,并且可能不会考虑其风险。

现在回到OWASP 的移动安全项目(越狱/生根的危险),生根方法分类如下:

  • Userland Exploits:越狱访问只能在用户层内获得。例如,用户可能具有 root 访问权限,但无法更改引导过程。这些漏洞可以通过固件更新进行修补;
  • iBoot Exploit:越狱访问用户级别和启动过程。iBoot 漏洞可以通过固件更新进行修补;
  • Bootrom Exploits:越狱访问用户级别和启动过程。Bootrom 漏洞利用无法通过固件更新进行修补。在这种情况下需要修补 bootrom 的硬件;

风险是:

通用手机

  1. 一些越狱方法使用众所周知的默认密码(例如 alpine)启用 SSH,攻击者可以使用该密码进行命令和控制;
  2. 越狱设备的整个文件系统容易受到恶意用户插入或提取文件的攻击。此漏洞被许多恶意软件程序利用,包括 Droid Kung Fu、Droid Dream 和 Ikee。这些攻击也可能会影响已解锁的 Windows Phone 设备,具体取决于达到的解锁级别;
  3. 敏感应用程序(如银行或企业应用程序)的凭据可以通过密钥记录、嗅探或其他恶意软件被盗,然后通过互联网连接传输。

iOS

  1. 越狱设备上的应用程序在 iOS 沙箱之外以 root 身份运行。这可能允许应用程序访问包含在其他应用程序中的敏感数据或安装恶意软件来否定沙盒功能;
  2. 越狱设备可以允许用户安装和运行自签名应用程序。由于这些应用程序不通过 App Store,Apple 不会对其进行审查。这些应用程序可能包含可用于利用设备的易受攻击或恶意代码。

安卓

  1. 更改设备权限以授予应用程序 root 访问权限的 Android 用户增加了对恶意应用程序和潜在应用程序缺陷的安全风险;
  2. 第三方 Android 应用程序市场已被确定为托管具有远程管理 (RAT) 功能的恶意应用程序。

非技术风险

  1. 无法立即应用软件更新,因为这样做会删除越狱。这使设备容易受到已知的、未修补的软件漏洞的影响;
  2. 用户可能会被诱骗下载恶意软件。例如,恶意软件通常使用以下策略诱骗用户下载软件;
    应用程序通常会宣传它们提供附加功能或从流行应用程序中删除广告,但也包含恶意代码;
    某些应用程序的初始版本中不会包含任何恶意代码,但后续的“更新”会插入恶意代码。

每个平台都有无数的风险,从 Web、移动应用程序、桌面应用程序等,可以计算出无数的风险,并且在安全性方面比较这些平台并非易事。它可能高度依赖特定平台(Android 与 iOS、Windows 与 Linux),并且还依赖于用户行为(拥有具有大量垃圾应用程序的移动设备与仅具有已知应用程序的移动设备)。在每种情况下,我们都会尝试采取措施来降低风险,一旦平台变得过于不安全,我们可能会停止在其上提供服务(例如通过固定电话或 USSD 进行的电话银行业务)。

回到您关于使用手机网络浏览器与使用手机银行本机应用程序的问题,风险取决于手机银行应用程序的实施以及手机上可能存在的恶意软件类型。

Android 中的应用程序在底层 Linux 中分配了不同的 UID/GID,因此以这种方式相互隔离。将其与用户运行的所有程序通常具有相同权限的标准桌面应用程序进行对比(在没有适用于 Linux 的 AppArmor 或 SELinux 配置的情况下)。Windows不相似吗?浏览器提供了一些沙盒功能,但仅来自其他浏览器运行的代码,甚至这种环境也充满了潜在利用的跨站点途径。

Rooting 使用户能够授权任意应用程序具有提升的权限。这肯定会带来威胁并困扰银行,因为他们觉得这是他们无法控制的。但它在用户的控制范围内。重要的一点是,用户的能力和行为始终不在银行的控制范围内。据推测,任何扎根手机的人都可能至少对风险有一些更高的理解,并伴随着对缓解的理解。所以,当然,银行不知道用户还和谁睡觉 - 具有更高的特权 - 或者他们有多精明。另一方面,生根可以采取可以增强安全性的对策。如果用户粗心,生根会使他们非常暴露。

即使没有 root 权限,任何应用程序都可以显示伪装成银行应用程序并诱使用户提供身份验证凭据。诚然,如何成功实现这一目标具有挑战性,但对于许多潜在的受害者来说绝对是可能的。

我认为 root 使手机“不安全”的教条 - 一个定义不明确的术语 - 具有误导性,银行应该将注意力集中在其他问题上。

FWIW,除其他原因外,我使用 root 来配置 iptables,因为有趣的是,库存 Android 不允许我有选择地授权应用程序访问 Internet。我们都可以猜到这种情况符合什么利益。

我同意@Silverfox 提供的信息。金融机构的目标当然是通过将其安全策略基于目标设备独有的威胁模型来降低欺诈风险。

许多网上银行系统都采用多因素身份验证 (MFA) 来证明其用户的身份。这意味着获得您的用户名/密码组合的攻击者无法访问您的帐户(这将要求他们要么获取验证码,要么欺骗/破坏以前“受信任的 PC”)。

权限提升允许攻击者打破隔离并访问任何敏感数据。由于手机现在是用户身份验证方案的关键部分,因此,如果设备遭到入侵,已获得 root 权限的设备对金融公司来说将是一个更大的风险。例如,恶意软件可以从银行应用程序中窃取凭据,甚至可以获取作为 MFA 的一部分发送的 SMS 验证码,并立即将其删除以隐藏用户的踪迹。

但是,需要考虑的一件重要事情是,这些运行时环境检查通常很容易被绕过。有各种方法和 API 可以进行检查,但例如,许多应用程序大致会这样做:检查“su”二进制文件是否存在,如果存在,则假定设备具有 root 权限。通过简单地重命名“su”,很可能绕过这种类型的检查。

为了获得更好的结果,许多现代 Android 应用程序将使用类似于 Google SafetyNet API 的东西来进行远程证明并检查设备的合规性状态。此外,在移动设备管理 (MDM) 应用程序的保护伞下还有第三方解决方案,这些解决方案通常由大型企业部署,这些企业承担员工携带敏感数据的风险,例如,如果根设备被感染。