安全编码技术。让我们来谈谈 "窃听"。
Tapjacking,是 "tap "和 "劫持 "的组合,就是这个意思。这是一种攻击,攻击者劫持用户的点击,诱使他做一些他不打算做的事情。那么,它是如何工作的,我们如何防止它?
我们的故事从屏幕覆盖开始。屏幕覆盖,或如谷歌所称,使用TYPE_APPLICATION_OVERLAY类型的窗口。 这些是绘制在其他应用程序之上的窗口,通常只遮挡屏幕的一部分。当一个应用程序请求新的权限时,这些窗口经常被使用(如下面的示例图片)。

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

然而,这些覆盖物也存在一些安全风险。任何活动的屏幕叠加都可以监听轻拍,否则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


Tapjacking,是 "tap "和 "劫持 "的组合,就是这个意思。这是一种攻击,攻击者劫持用户的点击,诱使他做一些他不打算做的事情。那么,它是如何工作的,我们如何防止它?
我们的故事从屏幕覆盖开始。屏幕覆盖,或如谷歌所称,使用TYPE_APPLICATION_OVERLAY类型的窗口。 这些是绘制在其他应用程序之上的窗口,通常只遮挡屏幕的一部分。当一个应用程序请求新的权限时,这些窗口经常被使用(如下面的示例图片)。

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

然而,这些覆盖物也存在一些安全风险。任何活动的屏幕叠加都可以监听轻拍,否则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

Tapjacking,是 "tap "和 "劫持 "的组合,就是这个意思。这是一种攻击,攻击者劫持用户的点击,诱使他做一些他不打算做的事情。那么,它是如何工作的,我们如何防止它?
我们的故事从屏幕覆盖开始。屏幕覆盖,或如谷歌所称,使用TYPE_APPLICATION_OVERLAY类型的窗口。 这些是绘制在其他应用程序之上的窗口,通常只遮挡屏幕的一部分。当一个应用程序请求新的权限时,这些窗口经常被使用(如下面的示例图片)。

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

然而,这些覆盖物也存在一些安全风险。任何活动的屏幕叠加都可以监听轻拍,否则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
Tapjacking,是 "tap "和 "劫持 "的组合,就是这个意思。这是一种攻击,攻击者劫持用户的点击,诱使他做一些他不打算做的事情。那么,它是如何工作的,我们如何防止它?
我们的故事从屏幕覆盖开始。屏幕覆盖,或如谷歌所称,使用TYPE_APPLICATION_OVERLAY类型的窗口。 这些是绘制在其他应用程序之上的窗口,通常只遮挡屏幕的一部分。当一个应用程序请求新的权限时,这些窗口经常被使用(如下面的示例图片)。

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

然而,这些覆盖物也存在一些安全风险。任何活动的屏幕叠加都可以监听轻拍,否则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
资源
安全技能基准测试:简化企业安全设计
寻找有关 "按设计确保安全 "计划成功与否的有意义的数据是众所周知的难题。首席信息安全官(CISO)在试图证明投资回报率(ROI)和安全计划活动在人员和公司层面上的商业价值时,往往会面临挑战。更不用说,企业要深入了解自己的组织是如何以当前的行业标准为基准的,更是难上加难。美国总统的《国家网络安全战略》向利益相关者提出了 "通过设计实现安全和弹性 "的挑战。让 "按设计保证安全 "计划发挥作用的关键不仅在于为开发人员提供确保代码安全的技能,还在于向监管机构保证这些技能已经到位。在本演讲中,我们将分享大量定性和定量数据,这些数据来自多个主要来源,包括从超过 25 万名开发人员那里收集的内部数据点、数据驱动的客户洞察力以及公共研究。利用这些数据点的汇总,我们旨在传达一个跨多个垂直领域的 "按设计保证安全 "计划的现状。报告详细阐述了这一领域目前未得到充分利用的原因、成功的技能提升计划对降低网络安全风险的重大影响,以及消除代码库中各类漏洞的潜力。