博客

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

皮特-德-克雷默
发表于2017年10月31日

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

手持移动电话的用户
手持移动电话的用户
查看资源
查看资源

有时,应用程序必须能够验证一个动作是在用户完全知情和同意的情况下进行的。

想了解更多信息?

应用安全研究员-研发工程师-博士生

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

预定一个演示
分享到
作者
皮特-德-克雷默
发表于2017年10月31日

应用安全研究员-研发工程师-博士生

分享到
手持移动电话的用户
手持移动电话的用户

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。完成后,请随时再次禁用它们。
手持移动电话的用户

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

访问资源

点击下面的链接,下载本资料的 PDF 文件。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

查看报告预定一个演示
下载PDF
查看资源
分享到
想了解更多信息?

分享到
作者
皮特-德-克雷默
发表于2017年10月31日

应用安全研究员-研发工程师-博士生

分享到

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

目录

下载PDF
查看资源
想了解更多信息?

应用安全研究员-研发工程师-博士生

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

预定一个演示下载
分享到
资源中心
资源中心