博客

安全编码技术:聊聊点击劫持 (Tapjacking)

October 31, 2017
Pieter De Cremer
身穿粉色衬衫和牛仔裤的人手持智能手机,拇指靠近屏幕。

“点击劫持”(Tapjacking)顾名思义,就是“点击”与“劫持”的结合。这是一种攻击手段,攻击者会劫持用户的点击操作,诱导用户执行非本意的操作。那么,它是如何运作的?我们又该如何防范呢?

我们先从屏幕覆盖层说起。屏幕覆盖层,即 Google 所称的类型为 TYPE_APPLICATION_OVERLAY 的窗口。 这些窗口会绘制在其他应用之上,通常只会遮挡屏幕的一部分。当应用请求新权限时,经常会用到这种方式(如下图所示)。

Allow Application To Access Your Contact Popup

这其实是一项很酷且有趣的功能,越来越多的应用开始使用它,比如 Facebook 的聊天气泡,或者屏幕角落里的 Google 地图导航,如下面的截图所示。

Secure Code Warrior Introduction Video

然而,这些覆盖层也存在一些安全风险。任何活动的屏幕覆盖层都可以监听点击操作,否则 Facebook 怎么知道我们点击或拖动了气泡呢?这使得应用能够监视您,并可能窃取密码和信用卡数据。

更进一步,这就是“点击劫持”一词的由来:覆盖层可以在其他应用之上绘制内容,诱导用户执行不同的操作。用户以为自己在与覆盖层交互,但实际上,他们的点击操作也在底层应用中执行了动作。通过这种方式,覆盖层可以诱导您启用某些权限或更改危险设置,正如这个 旧版 YouTube 视频所演示的那样。

上述演示视频于 2010 年上传至 YouTube,因此是在较旧版本的 Android 上完成的。但这种攻击在今天仍然具有现实意义,因为 漏洞 的曝光表明,在 Nougat 和 Marshmallow 等较新版本的 Android 系统中,点击劫持依然可能发生。

那么您能做些什么呢?作为用户,了解这些覆盖层的后果并警惕使用它们的应用非常重要。从 API 23 级别(Android 6.0 Marshmallow)开始,这已成为一项 必须由用户明确授予 的权限。然而,这仍然意味着 50% 的 Android 用户处于易受攻击的状态。您仍然可以在设置中的“在其他应用上层显示”选项下查看哪些应用使用了此权限。

作为开发者,我们有责任确保用户的操作是在其完全知情并同意的情况下完成的。Android 为视图提供了一个专门的设置,名为 filterTouchesWhenObscured。 启用后,当视图窗口被其他可见窗口遮挡时,框架将丢弃接收到的触摸事件。就是这么简单,将 filterTouchesWhenObscured 设置为 true,您的应用就能免受点击劫持的威胁。

祝您好运,下周见!

有时,应用程序必须能够验证某项操作是在用户完全知情并同意的情况下执行的,例如授予权限请求、进行购买或点击广告。不幸的是,恶意应用程序可能会通过隐藏视图的真实意图,诱骗用户在不知情的情况下执行这些操作。

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

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。