CN116583838A - 通过阻止与遮蔽组件的交互来防止用户交互劫持攻击 - Google Patents

通过阻止与遮蔽组件的交互来防止用户交互劫持攻击 Download PDF

Info

Publication number
CN116583838A
CN116583838A CN202180082015.5A CN202180082015A CN116583838A CN 116583838 A CN116583838 A CN 116583838A CN 202180082015 A CN202180082015 A CN 202180082015A CN 116583838 A CN116583838 A CN 116583838A
Authority
CN
China
Prior art keywords
opacity
component
determining
components
cumulative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180082015.5A
Other languages
English (en)
Inventor
贝尔纳多·鲁菲诺
莱纳斯·图韦松
爱德华·坎宁安
艾伦·迈克尔·斯托克斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN116583838A publication Critical patent/CN116583838A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/032Protect output to user by software means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一种方法,包括检测与图形用户界面(GUI)的特定区域的用户交互,并且确定该用户交互将由特定用户界面(UI)组件消耗,该特定用户界面(UI)组件被多个UI组件覆盖,该多个UI组件被配置为允许用户交互传递到特定UI组件。方法还包括,基于确定用户交互将被特定UI组件消耗,确定在GUI的特定区域处的多个UI组件的累积不透明度。方法还包括,确定该累积不透明度超过阈值不透明度,以及基于确定该累积不透明度超过该阈值不透明度,阻止特定UI组件消耗用户交互。

Description

通过阻止与遮蔽组件的交互来防止用户交互劫持攻击
背景技术
恶意软件可以被配置为故意破坏计算资源、监视计算资源的使用、和/或获取关于计算设备的用户的信息,以及其他恶意功能。在某些情况下,恶意软件可以通过利用计算设备、其操作***、和/或在其上执行的应用的已知漏洞来运行。因此,希望减少和/或消除此类漏洞,优选地不影响计算设备、操作***、和/或软件应用的正常操作和/或功能。
发明内容
用户交互劫持攻击可以涉及将用户交互传递到被多个用户界面(UI)组件阻碍的特定UI组件,该多个UI组件覆盖特定UI组件作为图形用户界面(GUI)的一部分。用户交互可以由特定UI组件而不是覆盖的多个UI组件消耗,因为多个UI组件的每个相应UI组件可以与属性相关联,该属性配置相应UI组件忽略用户交互并且因此允许它传递到GUI的底层。可以通过确定在与用户交互相关联的区域处的多个UI组件的累积不透明度来减少和/或消除用户交互劫持攻击。当累积不透明度超过阈值不透明度,并且特定UI组件的对应部分因此通过多个UI组件不充分可见时,可以阻止用户交互。
第一示例实施例涉及一种计算机实现的方法,包括检测与GUI的特定区域的用户交互。该计算机实现的方法还包括确定用户交互将由特定UI组件消耗,该特定UI组件被多个UI组件覆盖,该多个UI组件被配置为允许用户交互传递到特定UI组件。该计算机实现的方法附加地包括,基于确定用户交互将由特定UI组件消耗,确定在GUI的特定区域处的多个UI组件的累积不透明度。该计算机实现的方法进一步包括确定累积不透明度超过阈值不透明度,并且基于确定累积不透明度超过阈值不透明度,阻止特定UI组件消耗用户交互。
第二示例实施例涉及一种***,包括处理器和其上存储有指令的非暂时性计算机可读介质,该指令当由处理器执行时使处理器执行操作。该操作包括检测与GUI的特定区域的用户交互。该操作还包括确定用户交互将由特定UI组件消耗,该特定UI组件被多个UI组件覆盖,该多个UI组件被配置为允许用户交互传递到特定UI组件。该操作附加地包括,基于确定用户交互将由特定UI组件消耗,确定在GUI的特定区域处的多个UI组件的累积不透明度。该操作进一步包括确定累积不透明度超过阈值不透明度,并且基于确定累积不透明度超过阈值不透明度,阻止特定UI组件消耗用户交互。
第三示例实施例涉及一种制品,包括其上存储有指令的非暂时性计算机可读介质,该指令当由计算设备执行时使计算设备执行操作。该操作包括检测与GUI的特定区域的用户交互。该操作还包括确定用户交互将由特定UI组件消耗,该特定UI组件被多个UI组件覆盖,该多个UI组件被配置为允许用户交互传递到特定UI组件。该操作附加地包括,基于确定用户交互将由特定UI组件消耗,确定在GUI的特定区域处的多个UI组件的累积不透明度。该操作进一步包括确定累积不透明度超过阈值不透明度,并且基于确定累积不透明度超过阈值不透明度,阻止特定UI组件消耗用户交互。
第四示例实施例涉及一种***,包括用于检测与GUI的特定区域的用户交互的装置。该***还包括用于确定用户交互将由特定UI组件消耗的装置,该特定UI组件被多个UI组件覆盖,该多个UI组件被配置为允许用户交互传递到特定UI组件。该***附加地包括用于基于确定用户交互将由特定UI组件消耗,确定在GUI的特定区域处的多个UI组件的累积不透明度的装置。该***进一步包括用于确定累积不透明度超过阈值不透明度的装置,以及用于基于确定累积不透明度超过阈值不透明度来阻止特定UI组件消耗用户交互的装置。
这些以及其他实施例、方面、优点和可替选方案对于本领域普通技术人员而言通过阅读以下详细描述并适当地参考附图将变得显而易见。此外,本概述和本文中提供的其他描述和附图旨在仅通过示例的方式来说明实施例,因此,许多变体是可能的。例如,结构元件和过程步骤能够被重新布置、组合、分布、消除或以其他方式改变,同时保持在所要求保护的实施例的范围内。
附图说明
图1图示了根据示例实施例的计算设备。
图2图示了根据示例实施例的计算***。
图3图示了根据示例实施例的轻敲劫持攻击的各方面。
图4图示了根据示例实施例的图形用户界面的组件的布置。
图5图示了根据示例实施例的图形用户界面的组件的布置。
图6图示了根据示例实施例的用于防止轻敲劫持攻击的***。
图7图示了根据示例实施例的流程图。
具体实施方式
本文中描述了示例方法、设备和***。应当理解,本文中使用的词语“示例”和“示例性”是指“用作示例、实例或说明”。本文中描述为“示例”、“示例性”和/或“说明性”的任何实施例或特征不一定被解释为优选于或优于其他实施例或特征,除非如此说明。因此,能够利用其他实施例并且能够进行其他改变而不背离本文呈现的主题的范围。
因此,本文中描述的示例实施例并不意味着限制。将容易理解的是,如本文中一般描述和附图中所图示,本公开的各方面能够以多种不同的配置进行布置、替代、组合、分离和设计。
此外,除非上下文另有说明,否则每个图中所图示的特征可以相互组合使用。因此,附图通常应被视为一个或多个总体实施例的组成方面,理解并非所有图示的特征对于每个实施例都是必要的。
附加地,本说明书或权利要求中的任何元素、块或步骤的列举都是为了清楚的目的。因此,不应将此类列举解释为要求或暗示这些元素、块或步骤遵循特定安排或以特定顺序执行。除非另有说明,否则附图未按比例绘制。
I.概述
用户交互劫持攻击(诸如轻敲劫持)可能涉及显示UI组件,该UI组件看起来是用户交互的目标并且阻碍实际上最终消耗(consume)该用户交互的另一个UI组件。阻碍UI组件可能会呈现看似无恶意的内容,这些内容会诱使用户与GUI的某些部分进行交互,但这些交互可能会在用户不知情的情况下用于控制和/或修改被阻碍的UI组件的各个方面。因此,例如,恶意应用可能会诱骗用户向恶意应用授予用户可能不会以其他方式授予恶意应用的权限,诸如使用计算设备的某些硬件的权限、监视其他软件应用的操作、和/或执行某些***功能,以及其他可能性。附加地或替代地,恶意应用可以诱骗用户轻击支付按钮、拍照和/或拨打电话,以及其他可能性。这样,恶意应用可能能够以用户无意图的方式进行操作。
此类用户交互劫持攻击的可能性可能源于某些计算设备和/或操作***提供重叠和/或覆盖UI组件的能力,其中一些可以被配置为忽略用户交互并且将其向下传递到底层UI组件。在UI组件不是可由用户手动移动和/或重新定位的情况下,用户交互劫持攻击可能尤其成为问题,因为这可以防止用户注意到用户的交互被误导。由于这种覆盖UI组件的能力(其中一些可能会忽略用户交互)可以可期望实现某些GUI效果和/或功能,因此消除这种能力以防止用户交互劫持攻击通常不是理想的解决方案。
因此,为了消除和/或减少用户交互劫持攻击的可能性,计算设备可以被配置为阻止通过UI组件的某些用户交互,这些UI组件有效地阻碍了用户对UI组件的查看,如果未被阻止,则该UI组件将消耗用户交互。当特定UI组件被单个UI组件覆盖时,可以将单个UI组件的不透明度与阈值不透明度进行比较。如果不透明度低于或等于阈值不透明度,则用户交互可以被允许传递到特定UI组件并且由其消耗,否则可以被阻止。然而,考虑到个别地、而不是整体的UI组件阻碍可能仍然允许用户交互劫持攻击。例如,两个不同的UI组件可能各自具有低于阈值不透明度的相应不透明度。然而,当这两个不同的UI组件相互在顶部(并且在特定UI组件的顶部)覆盖时,由于两个UI组件的堆叠而产生的净效果可能仍然是特定UI组件的障碍。
因此,除了独立地将每个UI组件的不透明度与阈值不透明度进行比较之外,计算设备可以被配置为确定与多个UI组件的堆叠相关联的累积不透明度,该多个UI组件被配置为通过其传递用户交互。具体地,每个UI组件的不透明度可以与对应的透明度相关联(例如,不透明度和透明度可以相加为预定值,并且因此可以被视为互补)。累积不透明度可以基于与覆盖将消耗用户交互的特定UI组件的多个UI组件相关联的透明度(缩放到单位间隔)的乘积。在某些情况下,由于UI组件的不透明度可能在其整个面积中变化,因此可以针对和/或基于用户交互所指向的区域(例如,用户触摸或点击的GUI的区域)来确定累积不透明度。因此,累积不透明度可以量化特定UI组件的区域在某些情况下对用户可见和/或可能对用户可见的程度。
在一些实施方式中,累积不透明度可以是应用不可知的。具体地,可以针对多个UI组件来确定累积不透明度,而不管多个UI组件中的每个UI组件是由相同的软件应用还是由不同的软件应用生成的。当应用不可知的累积不透明度指示用户能够足够清楚地看到(如由阈值不透明度判断的)特定UI组件的相关部分时,特定UI组件可以被允许消耗用户交互,并且当用户无法足够清楚地看到特定UI组件的相关部分时,特定UI组件可能会被阻止消耗用户交互。由与将消耗用户交互的特定UI组件相同的软件应用生成的覆盖UI组件,在某些情况下可以被包括作为应用不可知的累积不透明度的一部分,或者在其他情况下可以从中排除。
在其他实施方式中,累积不透明度可以基于一个或多个应用特定的累积不透明度。例如,可以基于与第一软件应用相关联的第一多个UI组件来确定第一应用特定的不透明度,并且可以基于与第二软件应用相关联的第二多个UI组件来确定第二应用特定的不透明度。第一软件应用和第二软件应用可以不同于与预期消耗用户交互的特定UI组件相关联的第三软件应用。累积不透明度可以是第一应用特定的不透明度或第二应用特定的不透明度中的较高者。因此,应用特定的累积不透明度可以量化任何单个软件应用是否能够足够清晰地阻止用户看到特定UI组件的给定区域,但是多个不同的软件应用可以以一种可能会遮挡特定UI组件的给定区域的方式来独立地堆叠它们的相应UI组件。
在许多情况下,计算设备和/或其操作***可以强制执行这些多个软件应用的独立操作。因此,给定的软件应用可能不知道其他软件应用正在执行的操作,因此无法确定性地协调其UI组件与其他软件应用的UI组件的显示。因此,由于不同软件应用之间的恶意协调不太可能,因此应用特定的累积不透明度仍然可以降低和/或消除用户交互劫持的可能性,同时不太可能干扰计算设备的非恶意操作。
在进一步的实施方式中,一些UI组件可能被排除在累积不透明度的计算之外。例如,由操作***和/或明确受信任的软件应用生成的UI组件可能不会对累积不透明度做出贡献,因为这些UI组件可以基于其来源被认为是受信任的。附加地,可以排除不透明度为零的UI组件,因为这些UI组件是完全透明的,因此不会影响累积不透明度。基于其他信任标志的其他例外是可能的。
在一些实施方式中,UI组件的监视、累积不透明度的确定、和/或用户交互的阻止,以及本文中讨论的其他操作,可以由计算设备的操作***执行。例如,这些操作可以被自动地执行,而不涉及选择加入过程和/或向软件应用提供选择退出过程。通过自动地提供这些操作作为操作***的一部分,可以自动地保护操作***执行的每个软件应用免受用户交互劫持攻击。也就是说,避免用户交互劫持攻击可能不依赖于每个软件应用调用可以由操作***提供的这些保护和/或其他保护,从而导致***在设计上是安全的。
II.示例计算设备和***
图1图示了示例计算设备100。计算设备100被示出为移动电话的形状因子。然而,计算设备100可以可替选地实现为台式计算机、膝上型计算机、平板计算机或可穿戴计算设备(例如,手表),以及其他可能性。计算设备100可以包括各种元件,诸如主体102、显示器106以及按钮108和110。计算设备100还可以包括一个或多个摄像头,诸如前置摄像头104和后置摄像头112。
前置摄像头104可以位于主体102的侧面,在操作时通常面向用户(例如,与显示器106在同一侧)。后置摄像头112可以位于主体102的与前置摄像头104相对的侧面。将摄像头称为前置和后置是任意的,并且计算设备100可以包括位于主体102的各个侧面的多个摄像头。
显示器106可以表示阴极射线管(CRT)显示器、发光二极管(LED)显示器、液晶(LCD)显示器、等离子显示器、有机发光二极管(OLED)显示器或本领域已知的任何其他类型的显示器。在一些示例中,显示器106可以用作前置摄像头104和/或后置摄像头112的取景器。显示器106还可以支持允许与计算设备100的各方面交互的触摸屏功能。
计算设备100还可以包括环境光传感器,其可以连续地或不时地确定计算设备100存在的外界环境的环境亮度。在一些实施方式中,环境光传感器能够被用于调整显示器106的显示亮度。附加地,环境光传感器能够被用于确定摄像头104或112中的一个或多个的曝光长度,或帮助进行该确定。
图2是显示示例计算***200的一些组件的简化框图。例如但不限于,计算***200可以是蜂窝移动电话(例如,智能电话)、计算机(诸如台式机、笔记本计算机、平板计算机或掌上计算机)、家庭自动化组件、数字视频录像机(DVR)、数字电视、遥控器、可穿戴计算设备、游戏机、机器人设备、车辆或其他一些设备类型。计算***200可以表示例如计算设备100的各方面。如图2所示,计算***200可以包括通信接口202、用户接口204、处理器206和数据存储208,所有这些都可以通过***总线、网络或其他连接机制210通信地链接在一起。
通信接口202可以允许计算***200使用模拟或数字调制与其他设备、接入网络和/或传输网络通信。因此,通信接口202可以促进电路交换和/或分组交换通信,诸如普通老式电话服务(POTS)通信和/或互联网协议(IP)或其他分组化通信。例如,通信接口202可以包括芯片组和天线,其被布置用于与无线电接入网络或接入点进行无线通信。此外,通信接口202可以采用有线接口的形式或包括有线接口,诸如以太网、通用串行总线(USB)或高清晰度多媒体接口(HDMI)端口。通信接口202还可以采用无线接口的形式或包括无线接口,诸如Wi-Fi、全球定位***(GPS)或广域无线接口(例如,WiMAX、3GPP长期演进(LTE)、和/或3GPP 5G)。然而,可以在通信接口202上使用其他形式的物理层接口和其他类型的标准或专有通信协议。此外,通信接口202可以包括多个物理通信接口(例如,Wi-Fi接口、蓝牙接口、和广域无线接口)。
用户界面204可以用于允许计算***200与人类或非人类用户交互,诸如接收来自用户的输入并且向用户提供输出。因此,用户接口204可以包括诸如小键盘、键盘、触敏面板、计算机鼠标、轨迹球、操纵杆、麦克风等的输入组件。用户界面204还可以包括一个或多个输出组件,诸如例如可以与触敏面板组合的显示屏。显示屏可以基于CRT、LCD、和/或LED技术,或者现在已知或以后开发的其他技术。用户界面204还可以被配置为经由扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或其他类似设备生成(多个)可听输出。用户界面204还可以被配置为通过麦克风和/或其他类似设备接收和/或捕获(多个)可听话语、(多个)噪声和/或(多个)信号。
在一些示例中,用户界面204可以包括用作由计算***200支持的静态摄像头和/或视频摄像头功能的取景器的显示器。附加地,用户界面204可以包括一个或多个按钮、开关、旋钮和/或有助于摄像头功能的配置和聚焦以及图像的捕获的拨盘。这些按钮、开关、旋钮和/或拨盘中的一些或全部可以是通过触敏面板实现的。
处理器206可以包括一个或多个通用处理器——例如微处理器——和/或一个或多个专用处理器——例如数字信号处理器(DSP)、图形处理单元(GPU)、浮点单元(FPU)、网络处理器,或专用集成电路(ASIC)。在某些情况下,专用处理器可以能够进行图像处理和/或执行机器学习模型,以及其他可能性。数据存储208可以包括一个或多个易失性和/或非易失性存储组件,诸如磁性、光学、闪存或有机存储,并且可以全部或部分地与处理器206集成。数据存储208可以包括可移除和/或不可移除的组件。
处理器206能够执行存储在数据存储208中的程序指令218(例如,编译的或非编译的程序逻辑和/或机器代码)以执行本文中描述的各种功能。因此,数据存储208可以包括非暂时性计算机可读介质,其上存储有程序指令,当这些程序指令由计算***200执行时使计算***200执行本说明书和/或附图中公开的任何方法、过程或操作。由处理器206执行程序指令218可以导致处理器206使用数据212。
例如,程序指令218可以包括安装在计算***200上的操作***222(例如,操作***内核、(多个)设备驱动器和/或其他模块)和一个或多个应用程序220(例如,摄像头功能、地址簿、电子邮件、网页浏览、社交网络、音频到文本功能、文本翻译功能和/或游戏应用)。类似地,数据212可以包括操作***数据216和应用数据214。操作***数据216可以是主要对于操作***222可访问的,并且应用数据214可以是主要对于一个或多个应用程序220可访问的。应用数据214可以被布置在文件***中,该文件***对计算***200的用户是可见或隐藏的。
应用程序220可以通过一个或多个应用编程接口(API)与操作***222通信。这些API可以促进例如应用程序220读取和/或写入应用数据214、经由通信接口202传输或接收信息、在用户接口204上接收和/或显示信息等。
在一些情况下,应用程序220可以简称为“app”。附加地,应用程序220可以通过一个或多个在线应用商店或应用市场下载到计算***200。然而,应用程序也能够以其他方式安装在计算***200上,诸如经由网络浏览器或通过计算***200上的物理接口(例如,USB端口)。
III.示例轻敲劫持攻击
图3图示了示例轻敲劫持(tapjacking)(轻敲劫持(tap hijacking)的缩写)攻击,其涉及恶意软件应用劫持和误导用户的触摸输入,从而诱骗用户做一些用户无意图做的事情。贯穿本说明书轻敲劫持被用作用户交互劫持的一般概念的示例。因此,应当理解,本文中讨论的示例技术通常适用于GUI的场境,而不管与GUI交互的特定模式(例如,轻敲、点击、按压、眼睛注视等)。
具体地,如图3所图示,轻敲劫持攻击可能涉及生成UI组件302的恶意应用,该UI组件302覆盖由另一个软件应用和/或操作***生成的UI组件300。UI组件302可以被配置为将用户交互传递到GUI的底层。也就是说,UI组件302可以被配置为忽略用户交互,从而允许这些交互传递到UI组件300,在那里它们被消耗。UI组件300可以被配置为消耗用户交互。由给定的UI组件消耗用户交互可以包括给定的UI组件接收用户交互并且响应于用户交互(例如,基于和/或响应于用户交互来触发操作的执行)。当给定的UI组件被配置为消耗用户交互时,用户交互与给定的UI组件交互,而不是通过给定的UI组件,并且因此不能用于由其他UI组件消耗。
附加地,UI组件302可以是不透明的,使得UI组件300对于用户不可见。因此,UI组件302可以充当阻止用户对用户在不知不觉中进行交互的UI组件300的查看的伪装。此外,在一些情况下,UI组件300和302的相应位置可以相对于GUI是固定的,因此用户可能无法移动UI组件302以显露UI组件300。
在图3的示例中,UI组件300表示并且提供与生成UI组件302的应用相关联的权限修改。具体地,UI组件300包括并且提供权限308和权限310到权限312(即,权限308至312)的修改,对于上述权限的授权可以允许生成UI组件302的应用例如使用执行该应用的计算设备的硬件(例如,摄像头、麦克风等)、使用计算设备来获取屏幕截图、监视由计算设备接收的键盘输入、和/或调用操作***功能,以及其他可能性。在其他情况下,UI组件300可以替代地提供对“支付”按钮的选择、拍照、和/或拨打呼出电话,以及其他可能性。
UI组件302可以提供看起来非恶意的内容,并且因此可以诱使用户与按钮304交互。UI组件302的按钮304覆盖对应于权限310的拨动开关,如框314所指示的。因此,由于UI组件302被配置为忽略用户交互,与按钮304的交互实际上可能导致对于应用权限310的授权。由于UI组件302的内容看起来是非恶意的并且UI组件302是不透明的,因此用户可能被诱骗与按钮304交互,这导致在用户不知情的情况下对于应用权限310的授权。
应用可以被配置为生成其他内容,这些内容看起来是非恶意的、对于用户不透明的、并且包括覆盖权限308至312的其他权限的按钮,从而秘密地获取可能允许应用以用户无意图的方式运行的权限。在其他情况下,除了覆盖UI组件300之外,UI组件302可以替代地覆盖其他UI组件,该其他UI组件显示和提供对于由其他软件应用提供的其他***设置和/或其他UI组件的修改。因此,生成UI组件302的应用可以诱骗用户以用户无意图的方式配置其他***设置和/或操作其他软件应用。
IV.阻止轻敲劫持攻击的示例***和操作
图4图示了与阻止轻敲劫持攻击相关的示例场景,其中,被配置为忽略或传递(而不是消耗)用户交互的多个UI组件覆盖在被配置为消耗(例如,接收和对其做出反应)用户交互的UI组件的顶部。具体地,图4图示了UI组件400、402和404以及用户交互410。UI组件400、402和404以及本文中讨论的任何其他UI组件可以包括和/或采取以下形式:***警报窗口、覆盖图、toast、对话框、卡片、表单、通知、边栏和/或能够作为多层GUI的一部分显示的任何其他UI构造或元素。
UI组件404覆盖UI组件402,UI组件402覆盖UI组件400。UI组件404和402的每个相应UI组件可以与配置相应UI组件以忽略用户交互的属性相关联,从而允许用户交互410传递到UI组件400。因此,尽管用户交互410看起来(例如,对用户而言)被指向UI组件404,如区域406所指示的,但用户交互实际上由UI组件400消耗,如区域408所指示的。
在UI组件400仅由单个UI组件(例如,仅UI组件404)覆盖的情况下,可以通过以下方式来避免轻敲劫持攻击,让提供GUI的计算设备当UI组件404的不透明度低于阈值不透明度时允许用户交互传递到UI组件400,并且当UI组件404的不透明度满足或超过阈值不透明度时阻止UI组件400消耗用户交互。也就是说,当用户能够通过UI组件404足够清楚地看到UI组件400时,可以允许用户与UI组件400交互,同时UI组件400被UI组件404覆盖。UI组(UI组件404)的不透明度可以表示例如UI组件对源自另一底层UI组件(例如,UI组件400)的视觉信号的阻止的范围和/或程度。
然而,逐个地考虑UI组件的方法可以允许多个UI组件的堆叠,多个UI组件中的每个UI组件的不透明度可以低于阈值不透明度,以有效地阻碍用户对将消耗用户交互的UI组件的查看。因此,计算设备可以被配置为基于覆盖特定UI组件的UI组件的累积不透明度来确定是阻止还是允许由特定UI组件消耗用户交互。因此,在图4图示的场景中,计算设备可以被配置为确定UI组件404和402的累积不透明度。当UI组件404和402的累积不透明度满足或超过阈值不透明度时,可以阻止由UI组件400消耗用户交互410。当UI组件404和402的累积不透明度低于阈值不透明度时,可以允许由UI组件400消耗用户交互410。
在一个示例中,可以根据以下公式来计算累积不透明度:θZ=1-Πi∈l(1-oi),其中,θZ表示相对于UI组件Z的累积不透明度,I表示覆盖UI组件Z的UI组件的集合,并且oi(范围从零到一)表示在集合I中的第i个UI组件的不透明度(其中不包括UI组件Z)。相对于UI组件Z的累积不透明度θZ基于UI组件i∈覆盖UI组件Z的I,但不基于UI组件Z本身的不透明度,因为UI组件Z的不透明度不会影响UI组件Z被其上方的UI组件遮挡的范围。多个UI组件(例如UI组件402和404)的累积不透明度可以表示例如由多个UI组件对源自另一底层UI组件(例如,UI组件400)的视觉信号的阻止的组合范围和/或程度。
因此,在图4所示的示例中,累积不透明度可以被表示为θ400=1-((1-o402)(1-o404))。例如,如果UI组件404和402各自具有0.7的不透明度,则累积不透明度可以等于(1-(1-.7)(1-.7))=.91。因此,如果阈值不透明度为0.8,则UI组件404和402中的每一个分别低于阈值,但是UI组件404和402的累积不透明度超过阈值。因此,当UI组件404和402相互在顶部堆叠时,依赖于累积不透明度可以防止恶意应用将用户交互410传递到UI组件400并且有效地阻止用户对UI组件400的查看。
给定的UI组件的不透明度和给定的UI组件的透明度可以是互补的。也就是说,给定的UI组件的不透明度和给定的UI组件的透明度可以总和为预定值(例如,1或255),并且因此可以是可互换的。具体地,λ=oi+ti,其中,λ表示预定值(例如,在上面讨论的示例中λ=1)并且ti表示第i个UI组件的透明度。因此,可以取决于例如由计算设备、操作***和/或(多个)软件应用如何表示GUI的属性显式地使用oi或隐式地使用ti来表示第i个UI组件的不透明度。
因此,最大不透明度(对应于最小透明度)可以被表示为oi=λ,最小不透明度(对应于最大透明度)可以被表示为oi=0,最大透明度可以被表示为ti=λ,并且最小透明度可以被表示为ti=0。因此,UI组件的透明度可以表示例如由UI组件对源自另一底层UI组件的视觉信号的传输的范围和/或程度。多个UI组件的累积透明度可以表示例如由多个UI组件对源自另一底层UI组件的视觉信号的传输的组合范围和/或程度。
上面讨论的等式θZ=1-Πi∈I(1-oi)(其中λ=1)可以可替选地表示为(i)θZ=λ-λΠi∈I((λ-oi)/λ)、(ii)θZ=λ-λΠi∈I(ti/λ)、(iii)TZ=λΠi∈I((λ-oi)/λ)、或(iv)TZ=λΠi∈I(ti/λ),其中,TZ表示累积透明度,其中,λ=TZZ,并且其中λ>0。即,累积不透明度可以基于覆盖UI组件Z的每个相应UI组件的透明度的乘积,如由λΠi∈I((λ-oi)/λ)或λΠi∈I(ti/λ)表示的。累积不透明度可以如(i)或(ii)中那样基于预定值与乘积之间的差值显示地表示,或者如(iii)或(iv)中那样使用累积透明度隐式地表示。
类似地,阈值不透明度θTHRESHOLD可以根据λ=θTHRESHOLD+TTHRESHOLD来表示。因此,当累积不透明度等于或低于阈值不透明度(即θZ≤θTHRESHOLD)或当累积透明度大于或等于阈值透明度(即TZ≥TTHRESHOLD)时,可以允许由UI组件Z消耗用户交互。当累积不透明度大于阈值不透明度(即θZ>θTHRESHOLD)或当累积透明度低于阈值透明度(即TZ<TTHRESHOLD)时,可以阻止由UI组件Z消耗用户交互。
在一些情况下,累积不透明度的确定可能特定于用户交互410指向的GUI的区域。因此,在图4的示例中,可以基于(i)UI组件404的区域406和(ii)对应于区域406的UI组件402的区域的相应不透明度来确定累积不透明度。在给定的区域与多于一个的不透明度值相关联(例如,对于其不同部分)的情况下,最高不透明度(或最低透明度)可以被用于确定累积不透明度。因此,如果用户交互410沿着图4的y轴被提供得更低,使得它在UI组件404的面积之外,那么累积不透明度可能基于UI组件402,而不是UI组件404。考虑交互所针对的特定区域的不透明度,而不是例如作为一个整体的给定的UI组件的最大不透明度,可能允许在某些非恶意情况下不那么频繁地阻止用户交互。
可以基于(i)在非恶意情况下用户交互阻止的频率和/或(ii)阻止恶意攻击的成功率的考虑来选择用于确定累积不透明度的特定区域的大小。特定区域的大小可以基于用户交互的位置(例如,中心、质心等)、用户交互的大小和/或面积(例如,由用户的触摸输入涵盖的面积),和/或围绕用户交互的位置和/或面积提供的缓冲区。在一个示例中,特定区域的大小可以等于用户交互的面积加上通过在沿着用户交互的面积的周边的所有点处添加预定数量的像素而定义的缓冲区。在累积不透明度的确定不特定于用户交互410所指向的GUI的区域,而是基于作为整体的相应UI组件的不透明度的情况下,相应UI组件的最高不透明度(或最低透明度)可以被用于确定累积不透明度。
在一些实施方式中,累积不透明度可以是应用不可知的。也就是说,无论UI组件402和404是由相同的软件应用还是不同的软件应用生成,都可以相对于UI组件400来确定单个累积不透明度。当用户交互410被允许传递到UI组件400并且被其消耗时,使用这种应用不可知的累积不透明度可以允许用户足够清楚地看到UI组件400的内容(至少在区域408中)。因此,当UI组件400的内容(至少在区域408中)对用户来说不足够可见时(通过将应用不可知的累积不透明度与阈值不透明度进行比较来确定),可以阻止用户交互410传递到UI组件400并且被其消耗。
值得注意的是,在一些情况下,如果给定的UI组件是由与被配置为消耗用户交互的UI组件(例如,400)相同的应用生成的,则给定的UI组件(例如,402)可以被排除在累积不透明度计算之外。这可能是因为软件应用不太可能具有生成UI组件以遮挡或促成遮挡其自身内容的意图的情况。因此,应用不可知的累积不透明度可能对覆盖UI组件之间的关系无关紧要(例如,使这些UI组件被生成的应用),但仍然可以考虑消耗用户交互的底层UI组件与覆盖UI组件如何相关。
图5图示了与阻止轻敲劫持攻击相关的另一个示例场景,其中被配置为忽略或传递用户交互的多个UI组件覆盖在被配置为消耗用户交互的UI组件的顶部。具体地,图5图示了第一多个UI组件,包括已经由第一软件应用生成的UI组件502和502(用斜线图案指示),以及第二多个UI组件,包括UI组件504,508和510(用虚线图案指示),它们是由不同于第一软件应用的第二软件应用生成的。用户交互516(其看起来针对UI组件510的区域512),实际上可以被传递到UI组件500,如区域514所指示的。由于第一和第二软件应用可以被配置为彼此独立运行,并且每个应用可能不知道另一个应用的活动,这两个应用不太可能协作执行恶意活动。
因此,在一些情况下,可以以应用特定的方式来确定累积不透明度。即,可以基于UI组件502和506为第一软件应用确定第一应用特定的累积不透明度,并且可以基于UI组件504、508和510为第二软件应用确定第二应用特定的累积不透明度。总累积不透明度可以基于第一应用特定的累积不透明度和/或第二应用特定的累积不透明度。例如,总累积不透明度可以被表示为(i)、(ii)、(iii)/>、和/或(iv)/>其中,u表示集合{uids}的特别软件应用的标识符,集合{uids}表示具有覆盖UI组件Z的UI组件的多个软件应用的相应标识符。即,总累积不透明度可以基于(i)与多个软件应用相关联的多个应用特定的累积不透明度的最大应用特定的不透明度和/或(ii)与多个软件应用相关联的多个应用特定的累积透明度的最小应用特定的透明度。
在图5的示例中,可以根据(i)θ500=max{λ-λ((λ-o502)/λ)((λ-o506)/λ),λ-λ((λ-o504)/λ)((λ-o508)/λ)((λ-o510)/λ)}、(ii)θ500=max{λ-λ(t502/λ)(t506/λ),λ-λ(t504/λ)(t508/λ)(t510/λ)}、(iii)T500=min{λ((λ-o502)/λ)((λ-o506)/λ),λ((λ-o504)/λ)((λ-o508)/λ)((λ-o510)/λ)}和/或(iv)T500=min{λ(t502/λ)(t506/λ),λ(t504/λ)(t509/λ)(t510/λ))来评估总累积不透明度。因此,当(i)UI组件502和506的应用特定的累积不透明度和/或(ii)UI组件504、508和510的应用特定的累积不透明度的最大值超过阈值不透明度时,可以阻止用户交互516由UI组件500消耗。
在一些情况下,当由UI组件500对用户交互516的消耗被许可时,这种布置可能导致用户无法看到(例如足够清晰地和/或完全的)与用户交互516相对应的UI组件500的区域514。然而,区域514的这种遮挡很可能是至少两个不同软件应用的巧合、非恶意和/或非协调操作的结果,其中没有一个是遮挡的唯一、独立的原因。
具体地,由恶意应用对非恶意应用操作的利用可能涉及确定非恶意应用正在做什么的恶意软件应用。例如,如果与附加的恶意UI组件结合,恶意软件应用可能尝试确定非恶意应用是否正在显示UI组件,该UI组件将完全地遮挡被试图攻击的UI组件。然而,由于缺少特殊权限(其默认情况下通常不被授予),许多计算设备和/或操作***不允许软件应用监视彼此的执行和/或操作。因此,恶意应用可能无法监视其他应用的操作,并且因此无法利用非恶意软件应用的独立操作。
两个恶意应用之间的进一步串通可能涉及用户安装这两个恶意应用,和/或向第一个恶意应用授予权限,然后允许它安装附加的恶意应用。用户不太可能安装被配置为相互协作的两个恶意应用。附加地,操作***提供保护措施(例如,权限对话)以防止应用被授予安装其他应用的权限。因此,由第一恶意应用安装附加的恶意应用也是不太可能的,并且通过本文中讨论的技术进一步降低了这种可能性。
因此,计算设备可以认为巧合的和/或非协调的遮挡是安全的,并且因此只要没有单个应用生成超过阈值不透明度的UI组件,就允许用户交互516传递到UI组件500并且由其消耗。使用应用特定的累积不透明度,而不是应用不可知的累积不透明度,可以减少响应于非恶意遮挡而被阻止的用户交互的数量。因此,应用特定的累积不透明度可以提供更大的灵活性,而不会显著牺牲计算设备的安全性(如果有的话)。
例如,非恶意软件应用可以被配置为通过在GUI的整个面积上显示彩色和透明的UI组件来改变GUI的配色方案(例如,以便控制由GUI发出的光的波长)。在累积不透明度的应用不可知的计算下,此非恶意应用将有效地降低其他软件应用在给定的UI组件被阻止接收用户输入之前能够对其进行遮挡的程度。另一方面,在累积不透明度的应用特定的计算下,此非恶意应用不会影响其他软件应用在给定的UI组件被阻止接收用户输入之前能够对其进行遮挡的程度。
在一些情况下,可以同时计算和使用应用特定的累积不透明度和应用不可知的累积不透明度。例如,对于超过阈值不透明度的应用特定的累积不透明度的响应可能涉及阻止用户交互的消耗,而对超过阈值不透明度的应用不可知的累积不透明度的响应可能涉及显示提示。该提示可以(i)指示用户交互将由对于用户而言不足够可见的UI组件消耗,以及(ii)显式地请求权限以允许用户交互被消耗。这种方法可以提供增加的安全性和灵活性以允许用户交互在某些情况下传递到完全遮蔽的UI组件。
图6图示了被配置为基于UI组件不透明度过滤用户交互的示例***。具体地,***660包括重叠计算器632、可触摸性过滤器636、类型过滤器640、累积不透明度计算器644和用户交互过滤器650。***660可以形成计算设备的操作***(例如,操作***222)的一部分,和/或可以是作为计算设备的一部分提供的独立组件。***660的组件可以被实现为形成计算设备100和/或计算***200的一部分的硬件、软件和/或其组合。在一些实施方式中,重叠计算器632、可触摸性过滤器636和/或类型过滤器640的顺序可能与所示出的不同。
***660可以被配置为接收定义UI组件600到UI组件620和/或与UI组件600到UI组件620(即,UI组件600至620)相关联的属性,以及定义用户交互612和/或与用户交互612相关联的属性作为输入。基于这些属性,***660可以被配置为确定用户交互612是被传递到被配置为消耗用户交互的UI组件还是被阻止,如框652所指示的。
UI组件600可以与应用标识符602、类型604、不透明度606、位置608和可触摸性610以及其他可能的属性相关联。应用标识符602可以指示生成和/或请求生成UI组件600的软件应用。类型604可以是UI组件600的预定数量的可能类型或类别之一。不透明度606可以包括对应于UI组件600的不同区域的一个或多个不透明度(其可以用透明度表示)。给定区域的不透明度可以表示该区域中存在的最高不透明度(即,该区域的某些部分可能具有更低的不透明度),或者该区域中存在对应的最低透明度(即,该区域的某些部分可能具有更高的透明度)。
位置608可以包括UI组件600的竖直位置(例如,沿着图4和5中所示的z轴)和/或UI组件600的水平面积(例如,沿着图4和5所示的xy平面)。可触摸性610可以指示UI组件600是否被配置为消耗用户交互,或忽略用户交互并且因此将它们传递到底层(例如,具有更低z轴值的层)。类似地,UI组件620可以与应用标识符622、类型624、不透明度626、位置628和可触摸性630以及其他可能性相关联。
用户交互612可以与由用户交互612跨越的GUI区域614相关联。例如,GUI区域614可以是xy平面的子集,如图4和5所示,并且可以基于用户触摸、点击来确定,和/或以其他方式与GUI交互。例如,GUI区域614可以对应于图4的区域406和/或区域408,和/或图5的区域512和/或区域514。
重叠计算器632可以被配置为基于UI组件600至620和用户交互612来识别重叠的UI组件634。具体地,重叠的UI组件634可以包括UI组件600至620的子集,其中该子集的每个UI组件是与GUI区域614重叠的水平面积的相关联的。例如,重叠计算器632可以被配置为基于位置608的水平分量来确定UI组件600是否与GUI区域614重叠。重叠的UI组件634可以包括被配置为忽略用户交互612和被配置为消耗用户交互612的UI组件。重叠的UI组件634可能不包括用户交互612与其不重合和/或不重叠的UI组件,因此可能不需要被视为累积不透明度的一部分。
可触摸性过滤器636可以被配置为基于重叠的UI组件634及其属性来确定不可触摸的UI组件638。具体地,不可触摸的UI组件638可以包括重叠的UI组件634的子集,其中该子集的每个UI组件被配置为忽略、传递和/或以其他方式不消耗用户交互612。例如,可触摸性过滤器636可以被配置为基于可触摸性610来确定UI组件600是否可触摸。
类型过滤器640可以被配置为基于不可触摸的UI组件638及其属性来确定不可信的UI组件642。具体地,不可信的UI组件642可以包括不可触摸的UI组件638的子集,其中该子集的每个UI组件属于被分类为不可信的类型。例如,类型过滤器640可以被配置为基于类型604来确定UI组件600是否是不可信的。
类型604可以采用多个不同的预定义值。这些值中的一些值可以被分类为和/或被认为是可信的,而其他值可以被分类为和/或被认为是不可信的。例如,由操作***生成的UI组件可能与被分类为可信的第一类型相关联,因此可能不需要被视为累积不透明度计算的一部分。在另一个示例中,由已经被显式地授予更高权限(例如,由用户或操作***)的软件应用生成的UI组件可以与被分类为可信的第二类型相关联,因此可以不需要被视为累积不透明度计算的一部分。另一方面,由未被显式地授予更高权限的软件应用生成的UI组件可以与被分类为不可信的第三类型相关联,因此可以被视为累积不透明度计算的一部分。
累积不透明度计算器644可以被配置为基于不可信的UI组件642、重叠的UI组件634及其属性来确定累积不透明度646。具体地,累积不透明度计算器644可以被配置为基于重叠的UI组件634来选择被配置为消耗用户交互612的至少一个UI组件。由于重叠的UI组件634取决于与用户交互612相关联的GUI区域614,所以被配置为消耗用户交互612的至少一个UI组件也基于GUI区域614。例如,累积不透明度计算器644可以被配置为从重叠的UI组件634中选择最顶层的UI组件,其是(i)可触摸的,并且因此被配置为消耗用户交互612(其将被所有覆盖的UI组件忽略),以及(ii)与和至少一个不可信的UI组件642不同的应用标识符相关联(因为给定的应用不太可能尝试攻击自身)。
在UI组件600的情况下,累积不透明度计算器644可以被配置为基于位置608和可触摸性610来确定UI组件600是否是最顶层的可触摸组件。累积不透明度计算器644可以被配置为确定UI组件600的应用标识符是否基于应用标识符602和不可信的UI组件642的对应应用标识符而不同于不可信的UI组件642的至少一个其他应用标识符。在一些情况下,最顶层的可触摸组件的选择可以替换地由可触摸性过滤器636执行。
累积不透明度计算器644可以被配置为使用本文中讨论的任何技术来确定关于最顶层的可触摸UI组件的累积不透明度646。具体地,累积不透明度计算器644可以被配置为基于不可信的UI组件642的子集来确定关于最顶层的可触摸UI组件的累积不透明度646,其中该子集中的每个UI组件具有不同于最顶层的可触摸UI组件的应用标识符的应用标识符。
在一个示例中,不可信的UI组件642可以包括图4的UI组件404和402,并且累积不透明度646可以是应用不可知的不透明度。在另一示例中,不可信的UI组件642可以包括图5的UI组件502、504、506、508和510,并且累积不透明度646可以是应用特定的不透明度。
用户交互过滤器650可以被配置为基于累积不透明度646和阈值不透明度648来确定是传递还是阻止用户交互612,其中的每一个都可以根据不透明度和/或透明度来表达。具体地,用户交互过滤器650可以被配置为当累积不透明度646超过阈值不透明度648时(或者当对应的累积透明度低于对应的阈值透明度时)阻止用户交互612。在一些实施方式中,基于和/或响应于用户交互过滤器650阻止用户交互612,***660可以被配置为附加地或可替选地采取其他保护动作。例如,***660可以生成指示用户交互612已经被阻止和/或询问是否丢弃用户交互612或允许它被消耗的提示。
在一些实施方式中,***660可以被配置为跟踪给定的软件应用生成导致和/或促成被阻止的用户交互的UI组件的频率。这些跟踪的频率可以跨多个设备被聚合(例如,由应用商店运营商)并且用于识别一个或多个应用,这些应用比其他应用更频繁地生成导致和/或促成阻止用户交互的UI组件。因此,当跨多个计算设备使用时,由***660生成的数据可以附加地被用于识别潜在的恶意软件应用。
V.附加的示例操作
图7图示了与防止轻敲劫持攻击相关的操作流程图。操作可以由计算设备100、计算***200和/或***660以及其他可能性来执行。图7的实施例可以通过去除其中所示的任何一个或多个特征来简化。此外,这些实施例可以与任何先前附图或本文中以其他方式描述的特征、方面和/或实施相结合。
块700涉及检测与GUI的特定区域的用户交互。
块702涉及确定用户交互将由特定UI组件消耗,该特定UI组件被多个UI组件覆盖,该多个UI组件被配置为允许用户交互传递到特定UI组件。
块704涉及基于确定用户交互将被特定UI组件消耗,确定在GUI的特定区域处的多个UI组件的累积不透明度。
块706涉及确定累积不透明度超过阈值不透明度。
块708涉及基于确定累积不透明度超过阈值不透明度来阻止特定UI组件消耗用户交互。
在一些实施例中,多个UI组件中的每个相应UI组件可以与GUI的特定区域的对应的不透明度相关联。确定累积不透明度可以包括基于每个相应UI组件的对应的不透明度来确定在GUI的特定区域处的多个UI组件的累积不透明度。
在一些实施例中,在GUI的特定区域处的多个UI组件的累积不透明度可以不同于每个相应UI组件的对应的不透明度。
在一些实施例中,相应UI组件的对应的不透明度可以指示在GUI的特定区域中相应UI组件的内容的最大不透明度。
在一些实施例中,多个UI组件可以包括(i)由第一软件应用生成的第一多个UI组件和(ii)由第二软件应用生成的第二多个UI组件。确定多个UI组件的累积不透明度可以包括(i)确定在GUI的特定区域处的第一多个UI组件的第一应用特定的累积不透明度和(ii)确定在GUI的特定区域处的第二多个UI组件的第二应用特定的累积不透明度。确定累积不透明度超过阈值不透明度可以包括确定第一应用特定的累积不透明度或第二应用特定的累积不透明度中的至少一个超过阈值不透明度。
在一些实施例中,多个UI组件可以包括(i)由第一软件应用生成的第一多个UI组件和(ii)由第二软件应用生成的第二多个UI组件。确定多个UI组件的累积不透明度可以包括确定在GUI的特定区域处的第一多个UI组件和第二多个UI组件的应用不可知的累积不透明度。确定累积不透明度超过阈值不透明度可以包括确定应用不可知的累积不透明度超过阈值不透明度。
在一些实施例中,特定UI组件可以由不同于第一软件应用和第二软件应用的第三软件应用生成。
在一些实施例中,对应的不透明度的范围可以从零值到预定值。零值可以表示最小不透明度并且预定值可以表示最大不透明度。确定累积不透明度可以包括针对每个相应UI组件,基于(i)预定值和(ii)相应UI组件的对应的不透明度之间的差值来确定对应的透明度。确定累积不透明度还可以包括确定多个UI组件的对应的透明度的乘积,以及基于该乘积来确定累积不透明度。
在一些实施例中,对应的不透明度可以被表示为范围从零值到预定值的对应的透明度。零值可以表示最小透明度并且预定值可以表示最大透明度。确定累积不透明度可以包括确定多个UI组件的对应的透明度的乘积,以及基于该乘积来确定累积不透明度。
在一些实施例中,基于乘积来确定累积不透明度可以包括确定(i)预定值与(ii)乘积之间的差值,以及基于该差值来确定累积不透明度。
在一些实施例中,累积不透明度可以被表示为累积透明度。阈值不透明度可以被表示为阈值透明度。确定累积不透明度超过阈值不透明度可以包括确定累积透明度小于阈值透明度。
在一些实施例中,确定用户交互将由特定UI组件消耗可以包括确定多个UI组件中的每个相应UI组件与属性相关联,该属性指示相应UI组件被配置为忽略用户交互并且允许用户交互传递到相应UI组件下面的GUI层。
在一些实施例中,用户交互可以包括通过移动计算设备的触摸界面来触摸GUI的特定区域。
在一些实施例中,以下各项中的每一个都可以由独立于在计算设备上执行的软件应用的计算设备的操作***执行:(i)检测用户交互,(ii)确定该用户交互将由特定UI组件消耗,(iii)确定累积不透明度,(iv)确定该累积不透明度超过阈值不透明度,以及(iv)阻止特定UI组件消耗用户交互。
在一些实施例中,GUI可以由移动计算设备的操作***提供。特定UI组件和多个UI组件可以各自由移动计算设备的操作***响应于来自由移动计算设备执行的对应的软件应用的相应请求而生成。
在一些实施例中,对于多个UI组件中的每个相应UI组件,可以确定相应UI组件的类型是预定数量的UI组件类型中的一种。对于每个相应UI组件,还可以基于确定相应UI组件的类型是预定数量的UI组件类型中的一种来确定相应UI组件是不可信的。可以进一步基于确定每个相应UI组件是不可信的来确定多个UI组件的累积不透明度。
在一些实施例中,GUI可以包括水平面积和多个竖直堆叠层。GUI的特定区域可以包括水平面积的子集。多个UI组件中的每个相应UI组件可以被设置在多个垂直堆叠层的对应层中。
在一些实施例中,GUI可以被配置为在GUI的固定区域中显示多个UI组件中的每个相应UI组件,使得相应UI组件不能通过用户交互重新定位。
VI.结论
本公开不限于本申请中描述的特定实施例,这些特定实施例旨在作为各个方面的说明。在不脱离其范围的情况下能够进行许多修改和变化,这对本领域技术人员来说是显而易见的。除了本文中描述的那些之外,本公开范围内的功能等同方法和装置对于本领域技术人员根据前述描述将是显而易见的。这样的修改和变化旨在落入所附权利要求的范围内。
上面的详细描述参考附图描述了所公开的***、设备和方法的各种特征和操作。在图中,相似的符号通常标识相似的组件,除非上下文另有规定。本文和附图中描述的示例实施例并不意味着限制。在不脱离本文所呈现的主题的范围的情况下,能够利用其他实施例,并且能够进行其他改变。将容易理解的是,如本文中一般描述和附图中所示,本公开的各方面能够以多种不同的配置进行布置、替代、组合、分离和设计。
关于图中的任何或所有消息流图、场景和流程图以及如本文中所讨论的,每个步骤、块和/或通信能够表示根据示例实施例的信息处理和/或信息传输。可替选的实施例包括在这些示例实施例的范围内。在这些可替选的实施例中,例如,取决于涉及的功能,描述为步骤、块、传输、通信、请求、响应和/或消息的操作能够不按所示或讨论的顺序执行,包括基本上同时或以相反顺序执行。此外,更多或更少的块和/或操作能够与本文中讨论的任何消息流图、场景和流程图一起使用,并且这些消息流图、场景和流程图能够部分或整体相互组合。
表示信息处理的步骤或块可以对应于能够被配置为执行本文中描述的方法或技术的特定逻辑功能的电路。可替选地或附加地,表示信息处理的块可以对应于模块、段或程序代码的一部分(包括相关数据)。程序代码可以包括可由处理器执行的一个或多个指令,以用于实现方法或技术中的特定逻辑操作或动作。程序代码和/或相关数据可以被存储在任何类型的计算机可读介质上,诸如包括随机存取存储器(RAM)的存储设备、磁盘驱动器、固态驱动器或另一存储介质。
计算机可读介质还可以包括非暂时性计算机可读介质,诸如用于短时间段存储数据的计算机可读介质,如寄存器存储器、处理器缓存和RAM。计算机可读介质还可以包括存储用于长时间段的程序代码和/或数据的非暂时性计算机可读介质。因此,计算机可读介质可以包括二级或永久性长期存储,如只读存储器(ROM)、光盘或磁盘、固态驱动器、光盘只读存储器(CD-ROM)。计算机可读介质还可以是任何其他易失性或非易失性存储***。计算机可读介质可以被认为是例如计算机可读存储介质或有形存储设备。
此外,表示一个或多个信息传输的步骤或块可以对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输可以在不同物理设备中的软件模块和/或硬件模块之间进行。
图中所示的特定布置不应被视为限制性的。应当理解,其他实施例能够包括给定图中所示的每个元素的更多或更少。此外,一些图示的元素能够被组合或省略。此外,示例实施例能够包括图中未示出的元素。
尽管本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员来说将是显而易见的。本文中公开的各个方面和实施例是为了说明的目的而不是为了限制,真正的范围由所附权利要求指示。

Claims (20)

1.一种计算机实现的方法,包括:
检测与图形用户界面GUI的特定区域的用户交互;
确定所述用户交互将由特定用户界面UI组件消耗,所述特定UI组件被多个UI组件覆盖,所述多个UI组件被配置为允许所述用户交互传递到所述特定UI组件;
基于确定所述用户交互将由所述特定UI组件消耗,确定在所述GUI的所述特定区域处的所述多个UI组件的累积不透明度;
确定所述累积不透明度超过阈值不透明度;以及
基于确定所述累积不透明度超过所述阈值不透明度,阻止所述特定UI组件消耗所述用户交互。
2.根据权利要求1所述的计算机实现的方法,其中:
所述多个UI组件中的每个相应UI组件与所述GUI的所述特定区域的对应的不透明度相关联;以及
确定所述累积不透明度包括基于每个相应UI组件的所述对应的不透明度来确定在所述GUI的所述特定区域处的所述多个UI组件的所述累积不透明度。
3.根据权利要求2所述的计算机实现的方法,其中,在所述GUI的所述特定区域处的所述多个UI组件的所述累积不透明度不同于每个相应UI组件的所述对应的不透明度。
4.根据权利要求2至3中任一项所述的计算机实现的方法,其中,所述相应UI组件的所述对应的不透明度指示在所述GUI的所述特定区域中所述相应UI组件的内容的最大不透明度。
5.根据权利要求2至4中任一项所述的计算机实现的方法,其中:
所述多个UI组件包括(i)由第一软件应用生成的第一多个UI组件和(ii)由第二软件应用生成的第二多个UI组件;
确定所述多个UI组件的所述累积不透明度包括(i)确定在所述GUI的所述特定区域处的所述第一多个UI组件的第一应用特定的累积不透明度,以及(ii)确定在所述GUI的所述特定区域处的所述第二多个UI组件的第二应用特定的累积不透明度;以及
确定所述累积不透明度超过所述阈值不透明度包括确定所述第一应用特定的累积不透明度或所述第二应用特定的累积不透明度中的至少一个超过所述阈值不透明度。
6.根据权利要求2至4中任一项所述的计算机实现的方法,其中:
所述多个UI组件包括(i)由第一软件应用生成的第一多个UI组件和(ii)由第二软件应用生成的第二多个UI组件;
确定所述多个UI组件的所述累积不透明度包括确定在所述GUI的所述特定区域处的所述第一多个UI组件和所述第二多个UI组件的应用不可知的累积不透明度;以及
确定所述累积不透明度超过所述阈值不透明度包括确定应用不可知的累积不透明度超过所述阈值不透明度。
7.根据权利要求5至6中任一项所述的计算机实现的方法,其中,所述特定UI组件由不同于所述第一软件应用和所述第二软件应用的第三软件应用生成。
8.根据权利要求2至7中任一项所述的计算机实现的方法,其中,所述对应的不透明度的范围从零值到预定值,其中,所述零值表示最小不透明度并且所述预定值表示最大不透明度,并且其中,确定所述累积不透明度包括:
对于每个相应UI组件,基于(i)所述预定值和(ii)所述相应UI组件的所述对应的不透明度之间的差值来确定对应的透明度;
确定所述多个UI组件的所述对应的透明度的乘积;以及
基于所述乘积来确定所述累积不透明度。
9.根据权利要求2至7中任一项所述的计算机实现的方法,其中,所述对应的不透明度被表示为范围从零值到预定值的对应的透明度,其中,所述零值表示最小透明度并且所述预定值表示最大透明度,并且其中,确定所述累积不透明度包括:
确定所述多个UI组件的所述对应的透明度的乘积;以及
基于所述乘积来确定所述累积不透明度。
10.根据权利要求8至9中任一项所述的计算机实现的方法,其中,基于所述乘积来确定所述累积不透明度包括:
确定(i)所述预定值和(ii)所述乘积之间的差值;以及
基于所述差值来确定所述累积不透明度。
11.根据权利要求1至10中任一项所述的计算机实现的方法,其中,所述累积不透明度被表示为累积透明度,其中,所述阈值不透明度被表示为阈值透明度,并且其中,确定所述累积不透明度超过所述阈值不透明度包括:
确定所述累积透明度小于所述阈值透明度。
12.根据权利要求1至11中任一项所述的计算机实现的方法,其中,确定所述用户交互将由所述特定UI组件消耗包括:
确定所述多个UI组件中的每个相应UI组件与属性相关联,所述属性指示所述相应UI组件被配置为忽略所述用户交互并且允许所述用户交互传递到所述相应UI组件下面的所述GUI的层。
13.根据权利要求1至12中任一项所述的计算机实现的方法,其中,所述用户交互包括通过移动计算设备的触摸界面来触摸所述GUI的所述特定区域。
14.根据权利要求1至13中任一项所述的计算机实现的方法,其中,以下各项中的每一个都由独立于在计算设备上执行的软件应用的所述计算设备的操作***执行:(i)检测所述用户交互,(ii)确定所述用户交互将由所述特定UI组件消耗,(iii)确定所述累积不透明度,(iv)确定所述累积不透明度超过所述阈值不透明度,以及(iv)阻止所述特定UI组件消耗所述用户交互。
15.根据权利要求1至14中任一项所述的计算机实现的方法,其中,所述GUI由移动计算设备的操作***提供,并且其中,所述特定UI组件和所述多个UI组件均由所述移动计算设备的所述操作***响应于来自由所述移动计算设备执行的对应的软件应用的相应请求而生成。
16.根据权利要求1至15中任一项所述的计算机实现的方法,进一步包括:
对于所述多个UI组件中的每个相应UI组件,确定所述相应UI组件的类型是预定数量的UI组件类型中的一种;
对于每个相应UI组件,基于确定所述相应UI组件的所述类型是所述预定数量的UI组件类型中的一种来确定所述相应UI组件是不可信的;以及
进一步基于确定每个相应UI组件是不可信的来确定所述多个UI组件的所述累积不透明度。
17.根据权利要求1至16中任一项所述的计算机实现的方法,其中,所述GUI包括水平面积和多个竖直堆叠层,其中,所述GUI的所述特定区域包括所述水平面积的子集,并且其中,所述多个UI组件中的每个相应UI组件被设置在所述多个竖直堆叠层的对应层中。
18.根据权利要求1至17中任一项所述的计算机实现的方法,其中,所述GUI被配置为在所述GUI的固定区域中显示所述多个UI组件中的每个相应UI组件,使得所述相应UI组件不能通过用户交互重新定位。
19.一种***,包括:
处理器;以及
一种其上存储有指令的非暂时性计算机可读介质,所述指令当由所述处理器执行时使所述处理器执行根据权利要求1至18中任一项的操作。
20.一种包括非暂时性计算机可读介质的制品,所述非暂时性计算机可读介质具有存储在其上的指令,所述指令当由计算设备执行时使所述计算设备执行根据权利要求1至18中任一项的操作。
CN202180082015.5A 2021-02-03 2021-02-03 通过阻止与遮蔽组件的交互来防止用户交互劫持攻击 Pending CN116583838A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/016439 WO2022169445A1 (en) 2021-02-03 2021-02-03 Preventing user interaction hijacking attacks by blocking interactions with obscured components

Publications (1)

Publication Number Publication Date
CN116583838A true CN116583838A (zh) 2023-08-11

Family

ID=74798069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180082015.5A Pending CN116583838A (zh) 2021-02-03 2021-02-03 通过阻止与遮蔽组件的交互来防止用户交互劫持攻击

Country Status (7)

Country Link
US (1) US20240086529A1 (zh)
EP (1) EP4288883A1 (zh)
JP (1) JP2024505980A (zh)
KR (1) KR20230104948A (zh)
CN (1) CN116583838A (zh)
DE (1) DE112021007015T5 (zh)
WO (1) WO2022169445A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240005041A1 (en) * 2022-06-29 2024-01-04 Vmware, Inc. Screen capture data protection for managed devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760256B1 (en) * 2014-06-30 2017-09-12 Google Inc. Securing a window system supporting transparency
CN106971123B (zh) * 2017-03-28 2018-09-04 维沃移动通信有限公司 一种终端界面显示方法及移动终端

Also Published As

Publication number Publication date
EP4288883A1 (en) 2023-12-13
WO2022169445A1 (en) 2022-08-11
KR20230104948A (ko) 2023-07-11
JP2024505980A (ja) 2024-02-08
DE112021007015T5 (de) 2023-12-07
US20240086529A1 (en) 2024-03-14

Similar Documents

Publication Publication Date Title
US20220245288A1 (en) Video-based privacy supporting system
US11093067B2 (en) User authentication
US10656823B2 (en) Method and electronic device for managing operation of applications
CN108024009B (zh) 一种电子设备及其方法
US20150062158A1 (en) Integration of head mounted displays with public display devices
US10509912B2 (en) Privacy assembly for image capture device
KR20180008238A (ko) 홀 영역을 가지는 전자 장치 및 전자 장치의 홀 영역 제어방법
JP5864723B2 (ja) 端末のディスプレイデバイス上に情報を表示する方法
CN110457963B (zh) 显示控制方法、装置、移动终端及计算机可读存储介质
US10740486B2 (en) Device display security with user-specified filtering of display contents
CN111857464A (zh) 信息显示方法、装置、电子设备及可读存储介质
CN108229171B (zh) 驱动程序处理方法、装置及存储介质
CN110618852B (zh) 视图处理方法、视图处理装置及终端设备
US20240086529A1 (en) Preventing User Interaction Hijacking Attacks By Blocking Interactions With Obscured Components
WO2019109722A1 (zh) 隐私遮蔽处理方法、装置、电子设备及存储介质
US20210312080A1 (en) Methodology to obfuscate sensitive information in mobile application background snapshot
US10867074B2 (en) Electronic device and control method thereof
US11748508B2 (en) Display method and apparatus, and terminal
US20180336325A1 (en) Techniques for displaying secure content for an application through user interface context file switching
US20220164581A1 (en) Region management and control method, device, apparatus and storage medium
US20160241766A1 (en) Method of disabling transmission and capture of visual content on a device to protect from inappropriate content
CN112000999A (zh) 信息保护方法和装置
CN112184535A (zh) 图像防伪方法、装置及设备
US20130067570A1 (en) Content Inspection
CN116032877A (zh) 信息发布方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination