安全编码技术。让我们来谈谈 "窃听"。

发表于2017年10月31日
作者:Pieter De Cremer
案例研究

安全编码技术。让我们来谈谈 "窃听"。

发表于2017年10月31日
作者:Pieter De Cremer
查看资源
查看资源
手持移动电话的用户
手持移动电话的用户

Tapjacking,是 "tap "和 "劫持 "的组合,就是这个意思。这是一种攻击,攻击者劫持用户的点击,诱使他做一些他不打算做的事情。那么,它是如何工作的,我们如何防止它?

我们的故事从屏幕覆盖开始。屏幕覆盖,或如谷歌所称,使用TYPE_APPLICATION_OVERLAY类型的窗口。 这些是绘制在其他应用程序之上的窗口,通常只遮挡屏幕的一部分。当一个应用程序请求新的权限时,这些窗口经常被使用(如下面的示例图片)。

允许应用程序访问您的联系人弹出窗口

这实际上是一个很酷很有趣的功能,越来越多的应用程序开始使用它,想想Facebook的聊天气泡,或者谷歌地图在你屏幕一角的导航,就像下面的截图。

Secure Code Warrior 介绍视频

然而,这些覆盖物也存在一些安全风险。任何活动的屏幕叠加都可以监听轻拍,否则Facebook怎么会知道我们轻拍或拖动了泡沫?这使得应用程序可以监视你,并有可能窃取密码和信用卡数据。

再进一步,这就是 "窃听 "一词的由来,覆盖层可以在其他应用程序上绘制东西,欺骗用户执行不同的动作。用户认为他是在与覆盖层互动,但实际上,他的点击也在底层应用中执行动作。这样一来,覆盖层可以欺骗你启用某些权限,或改变一些危险的设置,正如这个古老的YouTube视频所展示的那样。

上面的演示视频是2010年上传到YouTube的,所以是在较早版本的Android上完成的。但这种攻击在今天仍有意义,因为在新版本的安卓系统(如Nougat和Marshmallow)中出现了允许窃取的漏洞

那么你能做些什么呢?作为一个用户,重要的是意识到这些覆盖的后果,并注意使用它的应用程序。从API级别23(Android 6.0 Marshmallow)开始,这已经成为一个必须由用户明确授予的权限。然而,这使得50%的安卓用户仍然很脆弱。你仍然可以在 "显示在其他应用程序之上 "的设置中检查哪些应用程序使用了这个权限。

作为开发者,我们有责任确保用户的操作是在用户完全知情和同意的情况下进行的。安卓系统为你的视图提供了一个设置,它的作用就是这样,叫做 filterTouchesWhenObscured. 当它被启用时,只要视图窗口被另一个可见窗口遮挡,框架就会丢弃收到的触控。就这么简单,把 filterTouchesWhenObscured 为 "true",你的应用程序就不会被窃听。

祝您好运,下周见!

有时,应用程序必须能够验证一个行动是在用户完全知情和同意的情况下进行的,如授予许可请求、进行购买或点击广告。不幸的是,一个恶意的应用程序可以通过隐瞒视图的预期目的,试图欺骗用户,使其在不知情的情况下执行这些行动。

https://developer.android.com/reference/android/view/View.html

查看资源
查看资源

作者

皮特-德-克雷默

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

安全编码技术。让我们来谈谈 "窃听"。

发表于2017年10月31日
作者:Pieter De Cremer

Tapjacking,是 "tap "和 "劫持 "的组合,就是这个意思。这是一种攻击,攻击者劫持用户的点击,诱使他做一些他不打算做的事情。那么,它是如何工作的,我们如何防止它?

我们的故事从屏幕覆盖开始。屏幕覆盖,或如谷歌所称,使用TYPE_APPLICATION_OVERLAY类型的窗口。 这些是绘制在其他应用程序之上的窗口,通常只遮挡屏幕的一部分。当一个应用程序请求新的权限时,这些窗口经常被使用(如下面的示例图片)。

允许应用程序访问您的联系人弹出窗口

这实际上是一个很酷很有趣的功能,越来越多的应用程序开始使用它,想想Facebook的聊天气泡,或者谷歌地图在你屏幕一角的导航,就像下面的截图。

Secure Code Warrior 介绍视频

然而,这些覆盖物也存在一些安全风险。任何活动的屏幕叠加都可以监听轻拍,否则Facebook怎么会知道我们轻拍或拖动了泡沫?这使得应用程序可以监视你,并有可能窃取密码和信用卡数据。

再进一步,这就是 "窃听 "一词的由来,覆盖层可以在其他应用程序上绘制东西,欺骗用户执行不同的动作。用户认为他是在与覆盖层互动,但实际上,他的点击也在底层应用中执行动作。这样一来,覆盖层可以欺骗你启用某些权限,或改变一些危险的设置,正如这个古老的YouTube视频所展示的那样。

上面的演示视频是2010年上传到YouTube的,所以是在较早版本的Android上完成的。但这种攻击在今天仍有意义,因为在新版本的安卓系统(如Nougat和Marshmallow)中出现了允许窃取的漏洞

那么你能做些什么呢?作为一个用户,重要的是意识到这些覆盖的后果,并注意使用它的应用程序。从API级别23(Android 6.0 Marshmallow)开始,这已经成为一个必须由用户明确授予的权限。然而,这使得50%的安卓用户仍然很脆弱。你仍然可以在 "显示在其他应用程序之上 "的设置中检查哪些应用程序使用了这个权限。

作为开发者,我们有责任确保用户的操作是在用户完全知情和同意的情况下进行的。安卓系统为你的视图提供了一个设置,它的作用就是这样,叫做 filterTouchesWhenObscured. 当它被启用时,只要视图窗口被另一个可见窗口遮挡,框架就会丢弃收到的触控。就这么简单,把 filterTouchesWhenObscured 为 "true",你的应用程序就不会被窃听。

祝您好运,下周见!

有时,应用程序必须能够验证一个行动是在用户完全知情和同意的情况下进行的,如授予许可请求、进行购买或点击广告。不幸的是,一个恶意的应用程序可以通过隐瞒视图的预期目的,试图欺骗用户,使其在不知情的情况下执行这些行动。

https://developer.android.com/reference/android/view/View.html

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。