针对由在虚拟机里面运行的移动应用加载、链接和执行本地代码的安全策略的制作方法
【专利说明】针对由在虚拟机里面运行的移动应用加载、链接和执行本地代码的安全策略
[0001]相关申请的交叉引用
[0002]本申请要求于2013年4月8日提交的美国申请序列N0.13/858,929的优先权,通过引用方式将其全部内容并入本文中。
技术领域
[0003]本发明涉及移动装置安全性。更具体地,本发明处于移动通信装置中的分布式策略实施的技术领域。
[0004]【背景技术】的描述
[0005]目前装置尤其是移动装置的与软件和数据有关的安全性依赖各种特征,包括:虚拟机、进程间通信、软件包管理器、移动装置管理系统、触摸屏软件组件、共享存储器、关系数据库、装置配置签名检查、专门的调试接口(例如Android调试桥等)、可信守护进程等。在一个示例中,Android移动装置使用关于进程间通信的检查来确定应用是否应当获得对特定系统资源例如用户的通讯录的访问。虚拟机安全性检查(例如确定是否应当加载具体本地库)也被使用。
[0006]使用移动装置的关键挑战在于:难以保证被依赖以提供安全性的非常软件的完整性(例如虚拟机、装置1/0、进程间通信、专门调试接口和其它组件)。需要存在经由进程间通信机制通过实施数据起源,免受恶意软件并且实施安全性策略来提供安全性的系统。
【发明内容】
[0007]在实施例中,过滤对具有由装置中的一个或者多个对象防火墙控制的两个或者更多对象之间的一个或者多个进程间控制路径的资源的访问的方法和系统可以使用处理器来基于策略控制对来自应用的资源的访问。基于策略来控制对来自应用的资源的访问可以包括:提供策略并且过滤通过进程间控制路径对(提供了对资源的访问的)对象的访问。
[0008]在实施例中,方法和系统还可以包括:使用计算机处理器基于当前日期和时间、装置的当前位置、装置的当前用户的身份、在装置上当前执行的每个应用的身份以及当前使用的每个资源的身份中的一个或者多个来生成基于装置的上下文。
[0009]在实施例中,基于策略来控制对来自与应用相关联的对象的装置资源的访问可以包括:提供上下文感知策略应用以控制对资源的访问。在实施例中,上下文感知策略可以被使能与策略服务器通信以传送一个或者多个策略。
[0010]在实施例中,管理到对象的进程间通信的策略可以为与上下文有关的策略。
[0011]在实施例中,资源可以为网络连接、蜂窝连接、键盘、触摸界面、操作系统、应用、应用编程接口的部分、软件驱动器、数据库、端口、无线通信接口和存储器中的安全区域中的一个。
[0012]在实施例中,对象防火墙可以记录资源访问尝试。
[0013]在实施例中,对象防火墙可以存储在集中式对象注册表中。
[0014]在实施例中,提供对资源的访问的对象存储在集中式注册表中。
[0015]在实施例中,策略可以使用图形用户接口来授权,该策略可以第一格式存储,转换成用于传输到装置的第二格式并且可以通过接收装置解析以确定如何配置一个或者多个对象防火墙。
[0016]在实施例中,计算机处理器可以用于在与装置安全系统相关联的单个进程中控制且配置对象防火墙。
[0017]在实施例中,在移动网络中实施分布式策略的方法和系统可以包括:至少一个处理器,其适合于提供装置上的进程间通信防火墙以实施管理能够经由装置通信的至少两个系统之间的通信的一个或者多个规则,其中,至少一个处理器适合于经由与进程间通信防火墙相关联的策略引擎生成经由装置通信的系统中的至少一个的上下文的指示,并且所述至少一个处理器适合于基于系统中的至少一个的策略和上下文来确定至少两个系统之间的通信是否由进程间通信防火墙准许。
[0018]在实施例中,至少一个处理器可以适合于提供装置上的多个进程间通信防火墙。在实施例中,可以提供所述防火墙以实施管理可以经由装置通信的至少两个系统之间的通信的一个或者多个规则。
[0019]在实施例中,至少一个处理器可以适合于生成其中策略引擎,其中该策略引擎被使能与策略服务器通信以传送一个或者多个策略的策略引擎。
[0020]在实施例中,策略可以包括黑名单、白名单、签名策略、命名策略、校验和分析策略、库分析策略、一个或者多个应用的许可、过程、用户和用户组中的一个或者多个。
[0021]在实施例中,进程间通信防火墙可以为面向对象的防火墙。在实施例中,面向对象的防火墙可以与在装置上执行的应用相关联。
[0022]在实施例中,适合于确定至少两个系统之间的通信是否由进程间通信防火墙准许的至少一个处理器可以适合于基于通信的内容来确定至少两个系统之间的通信是否由进程间通信防火墙准许。
[0023]在实施例中,使移动装置免于恶意软件的方法和系统可以包括:使用计算机处理器传递来自第一应用的远程过程调用到进程间控制数据总线,由进程间控制数据总线从策略引擎请求远程过程调用的策略验证,由策略引擎基于远程过程调用的上下文和存储的策略来确定是否批准远程过程调用,传送来自策略引擎的确定回到进程间控制数据总线,并且响应于确定来由进程间控制数据总线准许与阻止远程过程调用中的至少一个。
[0024]在实施例中,传递远程过程调用可以包括:将与第二应用相关联的第二对象的远程过程调用从与第一应用相关联的第一对象传递到进程间控制数据总线。
[0025]在实施例中,策略引擎可以被使能与策略服务器通信以传送一个或者多个策略。
[0026]在实施例中,使移动装置免于恶意软件的方法和系统可以包括:提供用于当创建新对象时安装新对象防火墙的进程间控制器。
[0027]在实施例中,使移动装置免于恶意软件的方法和系统可以包括:响应于确定来由进程间控制数据总线准许与阻止远程过程调用中的至少一个,其中,响应于确定来由进程间控制数据总线准许与阻止远程过程调用中的至少一个可以包括:准许远程过程调用无修改,准许远程过程调用具有修改的远程过程调用的内容,准许远程过程调用具有响应于远程过程调用而从资源发送的数据的修改的返回值,阻止远程过程调用,记录远程过程调用,忽视远程过程调用,修改一个或者多个防火墙规则,增加一个或者多个防火墙策略且移除一个或者多个防火墙策略中的至少一个。
[0028]在实施例中,使移动装置免于恶意软件的方法和系统可以包括内容感知策略引擎。在实施例中,上下文感知策略引擎还可以被使能生成特定系统上下文,所述特定系统上下文包括:当前日期、当前时间、移动装置的位置、装置用户的身份和在移动装置上当前执行的应用中的一个或者多个。
[0029]在实施例中,方法和系统可以包括实施与由应用加载、链接和/或执行本地代码相关联的策略。在实施例中,方法可以包括:通过计算机处理器的使用取得在装置的第一进程中执行的应用;通过计算机处理器的使用提供在装置的第二进程中执行的策略引擎;通过应用取得本地代码库的请求;通过策略引擎确定来自应用的请求是否基于策略而被准许;并且在确定允许应用访问本地库之后准许对本地代码库的访问。
[0030]在实施例中,方法和系统可以包括:经由本地代码库促进应用和操作系统之间的交互。
[0031]在实施例中,方法和系统可以包括:提供能够与远程策略服务器通信以获得策略的策略引擎。在实施例中,远程策略服务器可以包括至少一个策略的策略服务器。
[0032]在实施例中,应用可以为在虚拟机内运行的应用。
[0033]在实施例中,方法和系统可以包括:获得来自多个应用的请求。
[0034]在实施例中,装置可以为移动电话、平板电脑、膝上型计算机和智能电话中的一个。
[0035]在实施例中,策略可以包括黑名单、白名单、签名、名称检查、校验和、库分析检查、应用许可的检查、进程检查、用户检查和组检查中的一个或者多个。
[0036]在实施例中,通过应用请求本地代码库可以包括:经由本地跨进程通信机制来进行通信。在实施例中,本地跨进程通信机制包括:进程间通信机制、Unix域套接字和共享存储器中的一个。
[0037]在实施例中,应用可以选自包括游戏、实用程序、电话应用、网页浏览器、音乐播放器、工具和操作系统的组。
[0038]本发明的这些和其它系统、方法、目标、特征和优势将从优选实施例的下面详细描述和附图中对于本领域的技术人员而言显而易见。本文中提及的所有文献由此通过引用方式并入本文中。
【附图说明】
[0039]在未必按比例绘制的附图中,相同数字可以在几个附图中描述基本上相同组件。具有不同字母后缀的相同数字可以表示基本上相同组件的不同实例。附图通常通过举例但非限制示出本文献中讨论的特定实施例的详细描述。
[0040]图1描绘用于使装置安全的方法和系统。
[0041]图2描绘具有策略引擎的系统。
[0042]图3描绘用于确定是否能够允许应用之间的数据转移的方法。
[0043]图4描绘用于确定系统调用是否应当出现的方法。
[0044]图5描绘具有多个对象防火墙的系统。
[0045]图6描绘包括虚拟机和策略引擎的移动计算系统。
[0046]图7描绘策略引擎与虚拟机通信以控制本地库使用。
[0047]图8描绘用于各个移动装置软件特征的受信区域的使用。
[0048]图9描绘将移动装置IPC总线虚拟延伸到受信区域中。
[0049]图10描绘经由面向方面编程的移动安全性的方法和系统。
[0050]图11描绘与装置动态同步相关联的系统。
[0051]图12描绘用于提供客户位置和识别的系统。
【具体实施方式】
[0052]本文公开了本发明的详细实施例;然而,要理解所公开的实施例仅仅是本发明的示例,其可以各种形式实施。因此,本文中公开的具体结构和功能细节不被解释为限制而仅仅解释为用于教导本领域的技术人员将本发明不同地用在几乎任何适当详细结构中的典型基础。进一步地,本文中使用的术语和短语不旨在限制而在于提供本发明的可理解描述。
[0053]移动装置例如智能手机、平板电脑和其它网页连接的装置正在扩散以用作商业工具和个人使用。这种移动装置可以提供用于收集、存储、处理且传送数据的平台。在许多情况下,这种数据可以为个人的和/或机密的,例如个人联系方式、财务信息和商业资料。
[0054]作为移动装置的扩散的结果,移动安全性为移动计算领域的不断增加的关注区域。移动安全性可以各种方式实现。如本文中所公开的,提供移动安全性的几种方式可以包括:保护由移动装置存储且传送的数据并且控制装置上的软件访问其它资源的能力。
[0055]在实施例中,使装置安全的方法可以包括:基于策略通过控制访问来过滤对装置资源或者系统资源的访问,其中,该策略可以由防火墙应用以过滤且/或控制进程间控制路径,通过该进程间控制路径可以基于管理对象之间的进程间通信的策略来在控制系统资源的对象之间递送消息。在一些实施例中,该装置可以为蜂窝电话例如iPhone、MotoroIaDroid Razr Maxx、HTC One X、Samsung Focus 2、Samsung Gusto 2或者一些其它蜂窝电话。在其它实施例中,该装置可以为平板电脑例如iPad、Asus Eee Pad TransformerPrime、Sony Tablet S、Samsung Galaxy Tab 10.1或者一些其它平板电脑。该装置资源可以为网络连接、蜂窝连接、键盘、触摸界面、操作系统、应用或者一些其它资源。系统资源可以为软件驱动器、数据库、应用编程接口的方法、端口、无线通信接口、存储器中的安全区域或者一些其它资源。进程间通信可以由任何进程间通信机制例如Android Binder、UnixDomain Sockets或者共享存储器提供。现有技术例如Android的应用允许系统不提供对象防火墙并且需要:接收提供对系统资源的访问的对象在接收到的进程间通信上实施其自己策略。
[0056]该策略可以规定访问资源的请求应当基于一个或者多个标准来过滤且/或修改。在一些实施例中,该策略可以规定请求应当基于访问资源的请求的来源来过滤。例如,该策略可以规定访问资源的请求应当基于做出请求的应用的名称或者类型来过滤。在实施例中,该策略可以规定请求应当基于资源来过滤。例如,该策略可以规定应当过滤使用蜂窝连接的任何请求。在其它实施例中,该策略可以规定请求应当基于访问的请求结果或者访问中包括的数据来过滤。例如,该策略可以规定应当过滤访问网络连接以向WWW.google.com发送数据的请求。
[0057]对象之间的进程间控制(IPC)路径可以由一个或者多个面向对象防火墙控制。在一些实施例中,可以与应用相关联的每个对象存在一个对象防火墙。对象防火墙可以例如通过控制从一个对象到提供对系统资源的访问的接收对象的进程间通信来实现该策略。在实施例中,控制对来自应用的资源的访问可以基于策略并且可以包括:过滤对一个或者多个对象(其提供对资源的访问)的访问,其中,所述访问通过进程间控制路径。进一步地,在实施例中,所述过滤可以基于管理对所述一个或者多个对象(其提供对资源的访问)的进程间通信的策略。该对象防火墙可以从策略引擎获得策略。该策略可以例如由策略引擎转变成特定对象防火墙上的一个或多个具体设置。当创建新对象时,IPC控制器可以按需安装新对象防火墙。该对象防火墙可以一种或者多种方式响应于资源的请求,包括但不限于:对象防火墙可以阻止资源的请求,对象防火墙可以允许资源的请求,对象防火墙可以修改请求的内容,对象防火墙可以修改从资源发出的数据的返回值,对象防火墙可以改变请求的资源,对象防火墙可以记录请求,对象防火墙可以忽视请求,对象防火墙可以改变一个或者多个防火墙规则,且/或对象防火墙可以增加或者移除对象防火墙规则。在实施例中,对象防火墙可以记录资源访问尝试。对象防火墙可以存储在集中式注册表中。同理,提供对装置资源和系统资源的访问的对象也可以存储在集中式注册表中。
[0058]出于安全性目的,单个进程可以与装置安全性系统相关联。在一些实施例中,可以使能该进程以控制且配置对象防火墙。
[0059]在实施例中,安全计算装置可以包括基于装置的上下文感知策略引擎,其在计算装置上执行的应用和在计算装置上计算另一个应用之间实施与数据的起源有关的策略。在一些实施例中,计算装置可以为便携式计算装置,例如膝上型计算机、蜂窝电话或者平板电脑。在一些实施例中,应用中的一个可以为游戏,例如Angry Birds、Smash Cops、Wordswith Friends或者一些其它游戏。在一些实施例中,应用中的一个可以为实用程序,例如phone应用、Skype、网页浏览器、音乐播放器或者一些其它实用程序。在一些实施例中,应用中的一个可以为工具,例如Twitter、ESPN ScoreCenter、Google Translate或者一些其它工具。在一个实施例中,第二应用可以为操作系统。
[0060]在实施例中,可以提供由用户进行的用于制作一个或者多个策略的制作工具(authoring tool)。该制作工具可以具有基于浏览器的接口。该制作工具可以具有GUI。该制作工具可以安装在装置上并且可以用于在该装置上控制且/或创建对象防火墙。在实施例中,该制作工具可以安装在远程系统上。所制作的策略可以以一种格式(例如数据块中存储的方法和对象集合)存储,转换成用于传输到装置的第二格式(例如XML)并且由接收装置解析以确定如何配置一个或者多个对象防火墙。
[0061]策略引擎可以生成系统特定的上下文,其可以包括:当前日期和时间、计算装置位置、装置用户的身份、哪个应用正在计算装置上执行、哪个应用正在消耗哪个装置资源以及与其中系统驻留的上下文有关的其它数据中的一个或者多个。在一些实施例中,策略引擎可以连接到策略服务器,其可以推动一个或者多个策略到策略引擎。
[0062]在实施例中,策略引擎可以控制对资源的访问。例如,在应用之间实施与数据起源有关的策略可以包括:通过策略引擎评估从第一应用到第二应用的调用。策略引擎可以基于一个或者多个策略以及系统上下文、应用上下文和该调用的上下文中的一个或者多个来评估该调用。该策略可以包括例如系统策略、应用策略和其它策略。策略引擎可以使用一个或者多个策略来评估该调用,包括但不限于:数据的来源是受信源、被允许来源等,并且/或者数据的种类是允许中继的类型还是由第二应用使用的类型。在一些实施例中,策略引擎也可以基于该调用的评估来确定是否授权经由调用转移的任何数据。
[0063]例如,可以在移动电话上由策略引擎评估从一个应用到网页浏览器转移安全通讯录的调用。该策略引擎可以包括禁止来自通讯录的任何数据的传输的策略。在评估该调用之后,策略引擎将拒绝该调用并且可以向第一应用报告失败。
[0064]在实施例中,使计算装置安全的方法可以包括:提供基于装置的上下文感知策略引擎以在计算装置上执行的第一应用和在计算装置上执行第二应用之间实施与数据的起源有关的策略;由基于装置的上下文感知策略引擎审查从第一应用到第二应用的数据转移;并且基于策略由基于装置的上下文感知策略引擎确定是否允许数据转移。在一些实施例中,计算装置可以为便携式计算装置,例如例如膝上型计算机、蜂窝电话或者平板电脑。在一些实施例中,应用中的一个可以为游戏,例如Angry Birds、Smash Cops、Words withFriends或者一些其它游戏。在一些实施例中,应用中的一个可以为实用程序,例如phone应用、Skype、网页浏览器、音乐播放器或者一些其它实用程序。在一些实施例中,应用中的一个可以为工具,例如Twitter、ESPN ScoreCenter、Google Translate或者一些其它工具。在一个实施例中,第二应用可以为操作系统。
[0065]使能基于装置的上下文感知策略引擎以识别装置的上下文和状态,并且可以生成系统特定的上下文。该系统特定的上下文可以包括:当前日期和时间、计算装置位置、装置用户的身份、在装置上当前执行的应用和