Push 2FA 方法对 Android 和 iOS 恶意软件安全吗?

信息安全 恶意软件 多因素
2021-08-19 09:21:31

我正在对各种 2FA 解决方案进行调查,最近我遇到了“Push” 2FA(例如 Duo Security)。在该解决方案中,站点(例如银行站点)向用户的手机推送通知,如果交易合法,用户点击“是”,如果不合法,则点击“否”。

现在,假设用户密码已经被泄露,并且只有第二个因素在阻碍,那么驻留在用户手机上的精心设计的恶意软件难道不能简单地生成“是”点击吗?2FA 应用程序如何确保用户输入来自用户而不是恶意软件?

我一直听说应用沙盒,就像在 Android 中一样,会阻止一个应用程序与另一个应用程序进行交互。这是否意味着恶意软件无法生成模仿用户对 2FA 应用程序输入的虚假输入?

1个回答

我将假设 2FA 与两个单独的设备一起使用。考虑到与恶意软件相关的风险,具有 2FA 的单个设备对我来说没有任何意义。


可以欺骗2FA吗?

现在,驻留在用户手机上的恶意软件难道不能简单地生成“是”点击吗?

是的,这是可能的。

对于允许对设备进行 root 访问的恶意软件,几乎没有什么是安全的。如果您启用了 2FA,并且设备上有键盘记录器或某种形式的远程管理工具,您可以使用各种不同的方法轻松绕过几乎所有形式的 2FA。

但是,2FA 大大降低了这种风险。虽然恶意软件可能做到这一点,但攻击者控制您拥有的每台设备的可能性也小得多。

2FA 应用程序如何确保用户输入来自用户而不是恶意软件。

在大多数情况下,这是假设的。

就像我说的那样,攻击者不太可能破坏您的所有设备。此外,如果攻击者可以访问您的设备,则不需要“生成点击”;他们只需要幻影单击设备屏幕的“ X”和“ Y”边界,其中会出现图像按钮。

以下是它的工作原理:

  1. 通过系统或从已知设备及其分辨率列表中获取用户的设备分辨率。
  2. 根据 Push 2FA 按钮的预期位置计算设备分辨率。你知道它会在%屏幕的某个范围内。事实上,这就是视频游戏通常定位 UI 元素的方式。
  3. 恶意软件会在该按钮的预期区域的任意位置发起“点击”。
  4. ???
  5. 利润。

等等,你怎么能强制点击?好吧,Android 上的一个恶意软件可以做这样的事情:

dispatchTouchEvent(
   MotionEvent.obtain(downTime, eventTime, action, x, y, pressure, size, 
                      metaState, xPrecision, yPrecision, deviceId, edgeFlags));

那么,两因素身份验证有什么好处呢?

2FA 为设法获取您的密码但无法访问您的计算机或手机的人提供了强大的保护。

或者他们可以访问您的计算机,但不能访问您的手机。如果他们可以访问您的计算机,则可以在适当的情况下快速绕过非 Push-2FA。例如,键盘记录器。

也许您在设备上发现了恶意软件,并将其删除。他们可能仍然拥有您的密码,但除非他们也可以访问您的辅助身份验证方法,否则他们无法真正做任何事情。

它有助于防止可能已经找到甚至猜到您的密码的人进行未经授权的访问。它还可以防止人们劫持您的会话。

2FA 不是万能的解决方案——它只是另一层保护。我会推荐使用它。

我一直听说应用程序沙盒,就像在 Android 中一样,会阻止一个应用程序与另一个应用程序进行交互。这是否意味着恶意软件无法生成模拟用户对 2FA 应用程序输入的虚假输入

这真的取决于。如果您通过漏洞利用对设备具有 root 访问权限,那么您也很可能可以访问正在发生的任何沙盒。以编程方式“点击”手机的屏幕区域相对容易。