首页> 中国专利> 检测二进制软件代码中的安全风险

检测二进制软件代码中的安全风险

摘要

系统、方法以及软件可以用于检测二进制软件代码中的安全风险。在一些方面中,一种计算机实现的方法包括:在电子设备处接收要被加载到电子设备上的二进制软件代码集;由电子设备将该二进制软件代码集反汇编成汇编代码集;由电子设备确定该汇编代码集中的汇编指令的出现次数;以及由电子设备基于汇编指令的出现次数来确定该二进制软件代码集是否具有安全风险。

著录项

  • 公开/公告号CN112805701A

    专利类型发明专利

  • 公开/公告日2021-05-14

    原文格式PDF

  • 申请/专利权人 黑莓有限公司;

    申请/专利号CN201980064838.8

  • 发明设计人 A·J·博尔顿;

    申请日2019-09-27

  • 分类号G06F21/56(20060101);G06F21/51(20060101);G06F21/57(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人董莘

  • 地址 加拿大安大略省

  • 入库时间 2023-06-19 10:58:46

说明书

本申请要求于2018年10月1日提交的美国专利申请No.16/148,692的优先权,其全部内容通过引用并入本文。

技术领域

本公开涉及检测二进制软件代码中的安全风险。

背景技术

在一些情况下,软件服务可以由可执行的二进制软件代码来提供。二进制软件代码是以二进制格式的计算机软件。计算机软件可以是应用软件、系统软件(例如,操作系统或设备驱动)或其组件。二进制软件代码还可以被称为二进制程序代码、可执行代码或目标代码。

发明内容

因此,提供了如下面的权利要求书中详述的一种方法、一种设备、一种计算机可读介质以及一种计算机程序。

附图说明

图1是示出根据实现的检测二进制软件代码中的安全风险的示例通信系统的示意图。

图2是示出根据实现的检测二进制软件代码中的安全风险的示例电子设备102的示意图。

图3是根据实现的计算系统的高级别架构框图。

图4是示出根据实现的检测二进制软件代码中的安全风险的示例方法的流程图。

在各附图中相同的附图标记和标号指示相同的元素。

具体实施方式

电子设备可以接收要被安装到电子设备上并且在电子设备上执行的二进制软件代码集。二进制软件代码集可以是软件程序的二进制软件代码、软件程序的一部分或多个软件程序。在一些情况下,二进制软件代码集可以包含安全风险。安全风险可以包括将损害用户的设备、暴露用户的信息、或其组合的恶意软件代码。安全风险还可以包括易受恶意攻击的软件代码。

在一些情况下,二进制软件代码集可以在侧面加载操作中被接收。侧面加载操作指代从不是由电子设备的供应者或电子设备的操作系统管理的源接收软件。例如,二进制软件代码集可以通过文件传输从通用串行总线(USB)连接的驱动、存储器存储设备(诸如存储器卡或盘)、蓝牙连接的设备或WiFi连接的设备被侧面加载到电子设备上。二进制软件代码集还可以通过从除了电子设备的操作系统的应用商店之外的网站下载而被侧面加载到电子设备上。在一些情况下,经侧面加载的软件代码可以以安卓包(PacKage)(APK)格式或iPhone应用(IPA)格式被封装。

因为经侧面加载的软件代码不是从诸如应用商店的受信任源接收的,所以它们可能比通过应用商店下载的软件代码包含更高的安全风险。例如,经侧面加载的软件的二进制软件代码可以由恶意攻击者修改以更改软件的功能。例如,二进制软件代码可以通过插入垃圾(junk)例程或无操作(NOP)指令而被打补丁以规避许可功能。如果这些经修改的二进制软件代码被安装到电子设备上并且在电子设备上运行,则它们可以对电子设备造成安全风险。

在一些实现中,电子设备可以基于一个或多个汇编指令的频率和模式分析来确定二进制软件代码集是否具有安全风险。这些汇编指令的出现次数和这些汇编指令的位置可以指示二进制软件代码集已经以其二进制格式被修改,并且因此具有安全风险。电子设备可以输出指示安全风险的通知,并且防止经修改的二进制软件代码被安装在电子设备上。图1-图4和相关联的描述提供了这些实现的附加细节。

图1是示出根据实现的检测二进制软件代码中的安全风险的示例通信系统100的示意图。在高级别,示例通信系统100包括与网络110通信地耦合的电子设备102和安全服务器120。

安全服务器120表示可以被配置为管理对二进制软件代码安全风险的检测的应用、应用集、软件、软件模块、硬件或其任何组合。在一些情况下,安全服务器120可以是管理针对与电子设备102相关联的企业的应用和设备的企业移动管理(EMM)服务器的部分。EMM服务器可以安装、更新并且管理企业应用的许可。在一些情况下,EMM服务器可以位于企业的经营场所、防火墙后面、或者其组合。在一些情况下,EMM服务器可以被配置为在云中供应企业服务。在一些实现中,安全服务器可以对电子设备102接收、发送并且更新与一个或多个编译器相关联的汇编指令,并且从电子设备102接收指示二进制软件代码集具有安全风险的通知。图2-图4和相关联的描述提供这些实现的附加细节。

电子设备102表示接收二进制软件代码集并且基于一个或多个汇编指令的搜索结果来确定二进制软件代码集是否具有安全风险的电子设备。图2-图4和相关联的描述提供这些实现的附加细节。

示例通信系统100包括网络110。网络110表示可以被配置为在系统100中的实体之间发送数据消息的应用、应用集、软件、软件模块、硬件或其组合。网络110可以包括无线网络、有线网络、互联网或其组合。例如,网络110可以包括一个或多个无线电接入网络(RAN)、核心网络(CN)以及互联网。RAN可以包括一个或多个无线电接入技术。在一些实现中,无线电接入技术可以是全球移动通信系统(GSM)、临时标准(IS-95)、通用移动电信系统(UMTS)、CDMA2000(码分多址)、演变的通用移动电信系统(E-UMTS)、长期演变(LTE)、高级LTE、第五代(5G)或任何其他无线电接入技术。在一些实例中,核心网络可以是演变的分组核心(EPC)。

RAN是无线电信系统的部分,其实现无线电接入技术,诸如UMTS、CDMA2000、3GPPLTE、3GPP LTE-A以及5G。在许多应用中,RAN包括至少一个基站。基站可以是可以控制系统的固定部分中的所有或至少一些无线电相关的功能的无线电基站。基站可以在它们的覆盖区域或小区内针对移动设备提供无线电接口以进行通信。基站可以贯穿蜂窝网络分布以提供宽覆盖区域。基站直接向一个或多个移动设备、其他基站以及一个或多个核心网络节点通信。

尽管图1的元素被示出为包括实现各种特征和功能的各种组件部分、部分、或模块,但是这些元素可以在合适的情况下代替地包括许多子模块、第三方服务、组件、库等。另外,各种组件的特征和功能可以在合适的情况下被组合成更少的组件。

图2是示出根据实现的检测二进制软件代码中的安全风险的示例电子设备102的示意图200。电子设备102包括处理单元262、通信子系统266、用户接口268以及存储器264。电子设备102在合适的情况下可以包括附加的、不同的或更少的特征。

示例处理单元262可以包括一个或多个处理组件(备选地称为“处理器”或“中央处理单元”(CPU)),该一个或多个处理组件被配置为结合本文中所公开的实现中的一个或多个实现执行与以上描述的过程、步骤或动作中的一个或多个相关的指令。在一些实现中,处理单元262可以被配置为生成控制信息(诸如测量报告),或者对接收到的信息(诸如来自网络节点的控制信息)做出响应。处理单元262还可以包括其他辅助组件,诸如随机访问存储器(RAM)和只读存储器(ROM)。

示例通信子系统266可以被配置为提供针对由处理单元262提供的数据或控制信息的无线或有线通信。通信子系统266可以包括例如一个或多个天线、接收器、发送器、本地振荡器、混频器以及数字信号处理(DSP)单元。在一些实现中,通信子系统266可以支持多输入多输出(MIMO)传输。在一些实现中,通信子系统266中的接收器可以是高级接收器或基线接收器。两个接收器可以利用相同的、相似的或不同的接收器处理算法来实现。

示例用户接口268可以包括例如以下任何项:显示器或触摸屏显示器(例如,液晶显示器(LCD)、发光二极管(LED)、有机发光二极管(OLED)或微机电系统(MEMS)显示器)、键盘或小键盘、轨迹球、扬声器或麦克风中的一个或多个。在一些情况下,用户接口268可以用于输出指示二进制软件代码集具有安全风险的通知,以及接收关于是否安装具有安全风险的二进制软件代码集的用户输入。图4和相关联的描述提供这些实现的附加细节。用户接口268还可以包括I/O接口,例如,通用串行总线(USB)接口。

示例存储器264可以是电子设备102上的计算机可读存储介质。存储器264的示例包括易失性和非易失性存储器、磁性介质、光学介质、随机访问存储器(RAM)、只读存储器(ROM)、可移除介质以及其他。存储器264可以存储电子设备102的操作系统(OS)以及各种其他计算机可执行软件程序以执行以上所描述的过程、步骤或动作中的一个或多个。

存储器264可以存储针对电子设备102的应用、数据、操作系统以及扩展。如所图示的,存储器264存储软件安全分析器220。软件安全分析器220表示被配置为执行以下操作的软件:将二进制软件代码集反汇编成汇编代码集、在汇编代码集中搜索一个或多个汇编指令、以及确定二进制软件代码集是否具有安全风险。图4和相关联的描述提供这些实现的附加细节。软件安全分析器220可以是电子设备102的操作系统的组件或扩展。软件安全分析器220还可以是被安装在电子设备102上的应用软件。

存储器264包括针对可执行软件的一个或多个存储器空间210。可执行软件可以包括可以在电子设备102上执行的操作系统软件或应用软件。如果软件安全分析器220确定二进制软件代码集具有安全风险,那么软件安全分析器220可以防止二进制软件代码集被转移到存储器空间210中。在一些情况下,软件安全分析器220可以被存储在针对可执行软件的存储器空间210中的一个存储器空间中。

转向一般描述,电子设备102可以包括但不限于以下任何项:端点、计算设备、移动设备、移动电子设备、用户设备、移动站、用户站、便携式电子设备、移动通信设备、无线调制解调器、无线终端或其他电子设备。端点的示例可以包括移动设备、IoT(物联网)设备、EoT(物联企业)设备、蜂窝电话、个人数字助理(PDA)、智能电话、膝上型计算机、平板计算机、个人计算机(PC)、寻呼机、便携式计算机、便携式游戏设备、可穿戴电子设备、健康/医学/健身设备、相机、交通工具、或者具有用于经由无线通信网络通信语音或数据的组件的其他移动通信设备。交通工具可以包括机动车辆(例如,汽车、小汽车、卡车、公交车、摩托车等)、飞行器(例如,飞机、无人驾驶飞行器、无人飞行器系统、无人机、直升机等)、航天器(例如,航天飞机、太空飞船、太空舱、空间站、卫星等)、船只(例如,船、小船、气垫船、潜艇等)、轨道车辆(例如,火车、电车等)、以及其他类型的交通工具,包括前述中的任何交通工具的任何组合,无论是当前存在的还是之后出现的。无线通信网络可以包括通过经许可频谱和未许可频谱中的至少一种频谱的无线链接。术语“移动设备”还可以指代可以针对用户终止通信会话的任何硬件或软件组件。另外,术语“用户装备”、“UE”、“用户装备设备”、“用户代理”、“UA”、“用户设备”以及“移动设备”可以在本文中可互换地使用。

尽管图2的元素被示出为包括实现各种特征和功能的各种组件部分、部分或模块,但是这些元素在合适的情况下可以代替地包括许多子模块、第三方服务、组件、库等。另外,各种组件的特征和功能在合适的情况下可以被组合成更少的组件。

图3是根据实现的示出与网络350耦合的计算机302的高级别架构框图。所描述的图示仅仅是所描述的主题的一种可能的实现并且不旨在将本公开限制于单个描述的实现。本领域普通技术人员将理解到以下事实:所描述的组件可以被连接、组合或者以与本公开一致的备选方式来使用。

网络350支持计算机302与其他设备之间的通信。在一些情况下,用户(例如管理员)可以从远程网络访问计算机302。在这些或其他情况下,网络350可以是无线或有线网络。在一些情况下,用户可以本地访问计算机302。在这些或其他情况下,网络350还可以是组件之间的存储器管道、硬件连接、或者任何内部或外部通信路径。

计算机302包括被配置为执行本公开中所描述的算法的计算系统。例如,计算机302可以用于实现图1中示出的安全服务器120。在一些情况下,算法可以以可执行计算代码(例如,C/C++可执行代码)来实现。备选地或组合地,算法可以以应用程序(例如,EXCEL)来实现。在一些情况下,计算机302可以包括运行批应用的独立LINUX系统。在一些情况下,计算机302可以包括运行应用程序的移动或个人计算机。

计算机302可以包括输入设备(诸如小键盘、键盘、触摸屏、麦克风、语音识别设备或者可以接受用户信息的另一设备)、和/或传达与计算机302的操作相关联的信息(包括数字数据、视觉和/或音频信息)的输出设备、或者GUI。

计算机302可以用作客户端、网络组件、服务器、数据库或其他持久性等。在一些实现中,计算机302的一个或多个组件可以被配置为在基于云计算的环境内进行操作。

在高级别处,计算机302是可操作用于接收、发送、处理、存储或管理数据和信息的电子计算设备。根据一些实现,计算机302还可以包括以下项或与以下项通信地耦合:应用服务器、电子邮件服务器、Web服务器、高速缓存服务器、流传输数据服务器、商业智能(BI)服务器和/或其他服务器。

计算机302可以通过网络350从(例如,在用户设备上执行的)客户端应用接收请求并且通过在合适的软件应用中处理该请求对所接收的请求做出响应。另外,请求还可以从内部用户(例如,从命令控制台或由另一合适的访问方法)、外部或第三方、其他自动化应用以及任何其他合适的实体、个体、系统或计算机被发送给计算机302。

计算机302的组件中的每个组件可以使用系统总线303进行通信。在一些实现中,计算机302的任何和/或所有组件(硬件和/或软件两者)可以与彼此进行接口,和/或使用应用编程接口(API)312和/或服务层313通过系统总线303与接口304进行接口。API 312可以包括针对例程、数据结构和对象类的规范。API 312可以是计算机语言无关的或相关的并且指代完整接口、单个功能、或者甚至API集。服务层313将软件服务提供给计算机302。计算机302的功能可以对使用该服务层的所有服务消费者可访问。软件服务(诸如由服务层313提供的那些)通过经限定的接口提供可重复使用的经限定的商业功能。例如,接口可以是以JAVA、C++或其他适当的语言编写的软件,提供以可扩展标记语言(XML)格式或其他适当的格式的数据。尽管被图示为计算机302的集成组件,但是备选实现可以将API 312和/或服务层313图示为与计算机302的其他组件有关的独立组件。此外,API 312和/或服务层313的任何或所有部分可以被实现为另一软件模块或硬件模块的子或子模块,而不偏离本公开的范围。

计算机302包括接口304。尽管在图3中被图示为单个接口304,但是根据计算机302的具体需要、配置或具体实现可以使用两个或更多个接口304。接口304由计算机302用于与连接到网络350的分布式环境中的其他系统(不管图示与否)进行通信。一般地,接口304包括以适当组合并且可操作用于与网络350进行通信的软件和/或硬件编码的逻辑。更具体地,接口304可以包括支持与通信相关联的一个或多个通信协议的软件,以使得网络350或接口的硬件可操作用于通信物理信号。

计算机302包括处理器305。尽管在图3中被图示为单个处理器305,但是根据计算机302的具体需要、配置或具体实现可以使用两个或更多个处理器。一般地,处理器305执行指令并且操纵数据来执行计算机302的操作。在一些情况下,处理器305可以包括数据处理装置。

计算机302还包括为计算机302保存数据的存储器306。尽管在图3中被图示为单个存储器306,但是根据计算机302的具体需要、配置或具体实现可以使用两个或更多个存储器。尽管存储器306被图示为计算机302的集成组件,但是在备选实现中,存储器306可以在计算机302外部。

应用307包括根据计算机302的具体需要、配置或具体实现来提供功能的算法软件引擎。尽管被图示为单个应用307,但是应用307可以在计算机302上被实现为多个应用307。另外,尽管被图示为集成到计算机302,但是在备选实现中,应用307可以在计算机302外部。

存在与系统300相关联或者在系统300外部并且通过网络350进行通信的任何数目的计算机302。另外,术语“客户端”、“用户”以及其他合适的术语可以在合适的情况下可互换地使用而不偏离本公开的范围。此外,本公开预见到许多用户可以使用一个计算机302、或者一个用户可以使用多个计算机302。

图4是示出根据实现的检测二进制软件代码中的安全风险的示例方法400的流程图。方法400可以由电子设备(例如,图1中示出的电子设备102)实现。所示出的方法400还可以使用附加的、更少的或不同的实体来实现。另外,方法400可以使用附加的、更少的或不同的操作来实现,其可以以所示出的顺序或以不同的顺序来执行。

示例方法400在410处开始,其中二进制软件代码集在电子设备处被接收。二进制软件代码集可以是应用软件、系统软件(例如,操作系统或设备驱动)或其组件的二进制软件代码。在一些情况下,二进制软件代码集可以通过网络被下载到电子设备。备选地或组合地,二进制软件代码集可以例如从通用串行总线(USB)驱动器被本地地转移到电子设备。

在420处,二进制软件代码集被反汇编。在一些情况下,二进制软件代码集是否针对安全风险的分析被反汇编可以被配置。例如,电子设备可以被配置为基于二进制软件代码集的一个或多个特性来反汇编和分析二进制软件代码集。特性的示例可以包括类型(应用软件或系统软件)和源(供应者或开发者)。因此,电子设备可以确定二进制软件代码集的特性,以及然后基于配置来确定是否反汇编和分析二进制软件代码集。配置可以由以下项来设置:电子设备的制造者或电子设备的操作系统、在电子设备上执行的安全扩展或安全应用、电子设备的企业管理者、电子设备的用户或者其组合。

在一个示例中,特性可以包括二进制软件代码集被接收的方式。例如,电子设备可以确定二进制软件代码集是否通过侧面加载操作被接收。经侧面加载的软件绕过与电子设备的操作系统相关联的应用商店的安全检查流程,并且因此可以造成附加的安全风险。因此,如果电子设备确定二进制软件代码集通过侧面加载操作被接收,那么电子设备可以确定发起二进制软件代码集的反汇编和随后的分析流程。

在一些情况下,如果电子设备确定二进制软件代码集通过侧面加载操作被接收,那么电子设备可以生成通知并且将该通知发送给管理电子设备的EMM服务器。作为响应,EMM服务器可以将命令发送给电子设备以通知电子设备是否继续反汇编步骤。备选地或组合地,安全简档可以被安装在电子设备上。安全简档可以由EMM服务器发送和更新。安全简档可以包括指示是否分析被侧面加载的二进制软件代码的安全风险的策略。电子设备可以继续根据安全简档中的策略来反汇编二进制软件代码集。

二进制软件代码集被反汇编成汇编代码集。不像软件的源代码,汇编代码是特定于电子设备的计算架构的低级别代码。在一些情况下,电子设备根据二进制软件代码集的元数据来反汇编二进制软件代码集。元数据的示例可以包括计算架构、用于编译二进制软件代码集的源代码版本的编译器、或其组合。在一些实现中,这些元数据中的一些或全部元数据可以被接收在与二进制软件代码集相同的文件中,例如,在头中,或在单独的文件中,例如,在清单中。备选地或组合地,电子设备可以分析二进制软件代码集以确定这些元数据。

在430处,电子设备确定汇编代码集中的汇编指令的出现次数。在一些情况下,电子设备可以扫描汇编代码集以搜索一个或多个特定汇编指令。这些特定汇编指令可以与安全风险相关联。例如,无操作(NOP)指令可以用于存储器对齐目的。然而,恶意攻击者还可以使用NOP指令来对汇编代码打补丁以添加、移除或改变软件的功能。例如,在NOP滑动(slide)(或NOP滑板(sled)、NOP斜坡(ramp))操作中,恶意攻击者可以使用NOP指令的序列来将程序分支到不同的存储器位置。因此,电子设备可以在汇编代码集中搜索NOP指令以确定安全风险。NOP指令可以具有针对不同计算架构的不同操作码(opcode)。例如,在INTELx86计算架构中,NOP指令的操作码可以是0x90。在ARM A32计算架构中,NOP指令的操作码可以是0x00000000。因此,在一些实现中,电子设备可以搜索对应于电子设备的计算架构的操作码,以找到汇编代码中的NOP指令。在一些情况下,与安全风险相关联的汇编指令的列表可以被存储在电子设备上。除了NOP之外,与安全风险相关联的汇编指令的示例可以包括不同于通常由编译器生成的例程的例程。通常不是由编译器生成的例程的示例可以包括不引起任何状态改变的汇编指令的有效载荷。这些例程可以通过使用将状态改变回到原始状态的指令来执行取消状态改变的操作。在一个示例中,指令的序列可以执行一系列任务,诸如“向寄存器添加一”跟着“从寄存器减一”。因此,在本公开的一个实施例中,如果存在检测到的相同的出现次数的加和减指令(诸如100个加指令和100个减指令),那么安全风险可以被标识。在一些情况下,列表还可以包括与安全风险相关联的一个或多个汇编指令序列。与安全风险相关联的汇编指令序列的示例可以包括用于寄存器将相同值复制到其本身的序列。在一些情况下,包括进行系统调用的指令的汇编指令序列还可以与安全风险相关联。在一些情况下,每个编译器可以生成汇编指令集或汇编指令序列。组汇编指令集或汇编指令序列可以被存储在电子设备上。因此,如先前所讨论的,电子设备可以确定用于编译二进制软件代码集的源代码版本的编译器,以及搜索未包括于对应于编译器的所存储的汇编指令集或汇编指令序列中的汇编指令或汇编指令序列。

在一些实现中,除了确定与安全风险相关联的汇编指令的出现次数之外,电子设备还可以确定与安全风险相关联的汇编指令的每次出现的位置。

在440处,电子设备基于汇编指令的出现次数来确定二进制软件代码集是否具有安全风险。在一些情况下,汇编指令的出现的高数目可以指示安全风险的存在。例如,NOP指令一般在存储器对齐中被使用,并且因此可以在一件软件中被使用有限次数。在一个示例中,软件应用可以在其汇编代码中具有两个或三个NOP指令。另一方面,使用NOP指令来修改软件的恶意攻击者可以使用其几十或几百次。因此,电子设备可以确定汇编代码集中的NOP指令的出现次数是否超过阈值。如果NOP指令的出现次数被确定为超过阈值,那么电子设备可以确定二进制软件代码集具有安全风险。

备选地或组合地,二进制软件代码集是否具有安全风险可以基于与安全风险相关联的汇编指令的位置来确定。例如,在未更改的软件中,NOP指令通常出现在软件的开始部分。因此,如果电子设备确定NOP指令出现在汇编代码集的中间或稍后部分,那么电子设备可以确定二进制软件代码集具有安全风险。

在一些情况下,这些汇编指令的出现次数的预期范围、这些汇编指令的预期位置或其组合可以取决于用于编译二进制软件代码集的源代码版本的编译器。因此,如先前所讨论的,电子设备可以确定用于编译二进制软件代码集的源代码版本的编译器。电子设备可以将在步骤430处确定的这些汇编指令的出现次数和位置和与编译器相关联的出现次数的预期范围和预期位置进行比较,以确定二进制软件代码集是否具有安全风险。

在一些情况下,针对不同编译器的这些汇编指令的出现次数的预期范围、这些汇编指令的预期位置或其组合可以由以下项配置:电子设备的制造者或电子设备的操作系统、在电子设备上执行的安全扩展或安全应用、电子设备的企业管理者或用户、或者其任何组合。备选地或附加地,安全服务器可以相电子设备发送和更新针对不同编译器的这些汇编指令的出现次数的预期范围、这些汇编指令的预期位置、或者其组合。

在450处,响应于确定二进制软件代码集具有安全风险,电子设备生成指示二进制软件代码集具有安全风险的通知。在一些情况下,通知可以指示具有安全风险的所发现的汇编指令的名称、出现次数或位置的任何组合。在一些情况下,通知还可以指示二进制软件代码集已经违反了一个或多个安全标准。例如,通过包括不同于由编译器产生的汇编指令集或汇编指令序列的汇编指令或汇编指令序列,该编译器用于编译二进制软件代码集的源代码版本,二进制软件代码集可以违反相关微处理器而没有联锁管道阶段(MIPS)、制造商标准化协会(MSS)或国际标准化组织(ISO)标准。在一些情况下,电子设备可以输出通知、将通知发送给安全服务器、或其组合。

在460处,响应于确定二进制软件代码集具有安全风险,电子设备防止二进制软件代码集被安装在电子设备上。在一些情况下,电子设备可以制止将二进制软件代码集转移到电子设备上的经分配的存储器空间,该电子设备用于存储可执行软件,因此防止二进制软件代码集被安装。备选地或附加地,电子设备可以删除具有安全风险的二进制软件代码集。在一些情况下,响应于确定二进制软件代码集具有安全风险,电子设备可以在电子设备上输出用户提示,用户提示可以指示二进制软件代码集具有安全风险,以及请求用户输入以指示二进制软件代码集是否可以被安装。作为响应,电子设备可以继续基于接收到的用户输入来安装或删除二进制软件代码集。

在本说明书中描述的主题和功能操作的实现可以以数字电子电路、以有形地体现的计算机软件或固件、以包括在本说明书中公开的结构以及其结构等价物的计算机硬件、或它们中的一个或多个的组合来实现。在此说明书中描述的主题的实现可以被实现为一个或多个计算机程序,即,被编码在有形的非瞬态计算机存储介质上的用于由数据处理装置运行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。备选地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电信号、光学信号或电磁信号,该信号被生成以编码用于传输到合适的接收器装置以用于由数据处理装置执行的信息。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行访问存储器设备或它们中的一个或多个的组合。

术语“数据处理装置”、“计算机”或“电子计算机设备”(或者如由本领域普通技术人员理解的等价物)指代数据处理硬件并且包含用于处理数据的所有种类的装置、设备以及机器,以示例的方式包括可编程处理器、计算机、或者多个处理器或计算机。装置还可以是或者还包括专用逻辑电路,例如中央处理单元(CPU)、FPGA(现场可编程门阵列)、ASIC(专用集成电路)。在一些实现中,数据处理装置和/或专用逻辑电路可以是基于硬件的和/或基于软件的。装置可以可选地包括创建针对计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据管理系统、操作系统或它们中的一个或多个的组合的代码。本公开预见到在具有或没有常规操作系统(例如,LINUX、UNIX、WINDOWS、MAC OS、ANDROID、IOS或任何其他合适的常规操作系统)的情况下对数据处理装置的使用。

计算机程序(其还可以被称为或被描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可以以任何形式来部署,包括被部署为独立程序或被部署为模块、组件、子例程或适合于在计算环境中使用的其他单元。计算机程序可以但是不需要对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件(例如,被存储在标记语言文档中的一个或多个脚本)的部分中、专用于讨论中的程序的单个文件中、或多个协同文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以被部署为在一个计算机上执行或者在位于一个站点处或跨多个站点分布并且由通信网络相互连接的多个计算机上执行。尽管各个附图中所图示的程序的部分被示出为通过各种对象、方法或其他过程实现各种特征和功能的单独的模块,但是程序可以在合适的情况下代替地包括许多子例程、第三方服务、组件、库等。相反,各种组件的特征和功能可以在合适的情况下被组合成单个组件。

本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序以通过对输入数据进行操作并且生成输出来执行功能的一个或多个可编程计算机执行。过程和逻辑流还可以由专用逻辑电路(例如,CPU、FPGA或ASIC)来执行,并且装置还可以被实现为专用逻辑电路(例如,CPU、FPGA或ASIC)。

适合于执行计算机程序的计算机可以基于通用微处理器或专用微处理器、两者或任何其他种类的CPU。一般地,CPU将从只读存储器(ROM)或随机访问存储器(RAM)或者两者接收指令和数据。计算机的基本元素是用于执行或运行指令的CPU和用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)、或者操作地耦合到、一个或多个大容量存储设备、从其接收数据、或向其传输数据、或者两者。然而,计算机不需要具有这样的设备。此外,计算机可以被嵌入在另一设备(仅举数例,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪速驱动))中。

用于存储计算机程序指令和数据的计算机可读介质(瞬态的或非瞬态的)包括所有形式的非易失性存储器、介质和存储器设备,通过示例的方式包括半导体存储器设备(例如,可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM))和闪速存储器设备、磁盘(例如,内部硬盘或可移除盘)、磁光盘、以及CD ROM、DVD+/-R、DVD-RAM和DVD-ROM盘。存储器可以存储各种对象或数据,包括高速缓存、类、框架、应用、备份数据、工件、网页、网页模板、数据库表、存储商业和/或动态信息的仓库、以及包括任何参数、变量、算法、指令、规则、约束或对其的引用的任何其他合适的信息。附加地,存储器可以包括任何其他合适的数据,诸如日志、策略、安全或访问数据、报告文件以及其他。处理器和存储器能够由专用逻辑电路来补充或被并入到专用逻辑电路中。

为了提供与用户的交互,本说明书中所描述的主题的实现可以被实现在计算机上,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)、LCD(液晶显示器)、LED(发光二极管)或等离子监视器)以及通过其用户可以将输入提供给计算机的键盘和指点设备(例如,鼠标、轨迹球或轨迹板)。输入还可以使用触摸屏被提供给计算机,触摸屏诸如具有压力敏感性的平板计算机表面、使用电容性或电性感测的多触摸屏或其他类型的触摸屏。其他种类的设备也能够用于提供与用户的交互;例如被提供给用户的反馈能够是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且来自用户的输入能够以包括听觉输入、语音输入或触觉输入的任何形式来接收。另外,计算机可以通过将文档发送到由用户使用的设备和从由用户使用的设备接收文档来与用户交互;例如,通过响应于从Web浏览器接收到的请求而将网页发送到用户的客户端设备上的Web浏览器。

术语“图形用户接口”或“GUI”可以以单数或复数来使用以描述一个或多个图形用户接口以及具体图形用户接口的显示器中的每个显示器。因此,GUI可以表示任何图形用户接口,包括但不限于,Web浏览器、触摸屏、或处理信息并且有效地将信息结果呈现给用户的命令行接口(CLI)。一般地,GUI可以包括多个用户接口(UI)元素,一些或全部与Web浏览器相关联,诸如交互式字段、下拉列表以及由商业套件用户可操作的按钮。这些和其他UI元素可以与Web浏览器的功能相关或表示Web浏览器的功能。

尽管本公开包含许多特定实现细节,但是这些不应当被理解为对任何发明的范围或可能要求保护的范围的限制,而是相反作为可以特定于具体发明的具体实现的特征的描述。在分离的多个实现的上下文中,在本公开中所描述的某些特征还可以组合地被实现在单个实现中。相反,在单个实现的上下文中所描述的各种特征还可以分离地或以任何适当的子组合被实现在多个实现中。此外,尽管特征可以在以上被描述为以某些组合起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征可以在一些情况下从该组合删去,并且所要求保护的组合可以涉及子组合或子组合的变型。

主题的具体实现已经被描述。所描述的实现的其他实现、更改和排列在如本领域技术人员将显而易见的以下权利要求的范围内。尽管操作在附图或权利要求书中以具体顺序被描绘,但是这不应当被理解为要求这样的操作以所示出的具体顺序或以连续的顺序来执行,或者要求所有所图示的操作被执行以实现期望的结果(一些操作可以被认为是可选的)。在某些情况下,多任务或并行处理(或多任务和并行处理的组合)可以是有利的并且在认为合适的情况下被执行。

此外,以上所描述的实现中的各种系统模块和组件的分离或集成不应当被理解为要求所有实现中的这样的分离或集成,并且应当理解,所描述的程序组件和系统可以一般被一起集成在单个软件产品中或封装成多个软件产品。

因此,示例实现的以上描述不限定或约束本公开。在不偏离本公开的精神和范围的情况下,其他改变、替代以及更改也是可能的。

另外,以下的任何所要求保护的实现被认为可适用于至少一种计算机实现的方法;一种瞬态的或非瞬态的计算机可读介质,其存储执行该计算机实现的方法的计算机可读指令;以及一种计算机系统,其包括与硬件处理器可互操作地耦合的计算机存储器,该硬件处理器被配置为执行该计算机实现的方法或存储在该计算机可读介质上的指令。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号