CN105745896A - 用于经由面向方面编程来增强移动安全的系统和方法 - Google Patents

用于经由面向方面编程来增强移动安全的系统和方法 Download PDF

Info

Publication number
CN105745896A
CN105745896A CN201480053557.XA CN201480053557A CN105745896A CN 105745896 A CN105745896 A CN 105745896A CN 201480053557 A CN201480053557 A CN 201480053557A CN 105745896 A CN105745896 A CN 105745896A
Authority
CN
China
Prior art keywords
code
application
data
strategy
information
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
CN201480053557.XA
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.)
Optio Labs Inc
Original Assignee
Optio Labs Inc
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
Priority claimed from US13/951,689 external-priority patent/US20130312058A1/en
Application filed by Optio Labs Inc filed Critical Optio Labs Inc
Publication of CN105745896A publication Critical patent/CN105745896A/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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/088Access security using filters or firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)
  • Computing Systems (AREA)
  • Telephone Function (AREA)

Abstract

此处描述的系统和方法涉及在移动装置上增强安全。用于增强移动装置安全的方法包括由面向方面编程向进程代码施加安全策略。

Description

用于经由面向方面编程来增强移动安全的系统和方法
相关申请的交叉引用
本申请要求于2013年7月26日提交的、美国申请序列号13/951,689的优先权,其内容通过引用方式并入本申请中。
背景技术
领域
本发明涉及移动装置安全,更具体而言,涉及经由面向方面编程技术来增强移动安全。
现有技术的描述
与当前装置、尤其是移动装置的软件和数据相关安全依赖于包括虚拟机、进程间通信、封装管理器、移动装置管理系统、触摸屏软件组件、共用存储器、关系数据库、装置构造签名检查、专用调试界面(比如安卓调试桥(AndroidDebugBridge)等)、受信守护程序等的多种特征。在示例中,Android移动装置在进程间通信上使用校验来确定应用是否应该获得访问特定系统资源、比如用户接触列表。虚拟机安全校验、比如确定具体的本地库是否被加载也被使用。
现有移动安全解决方案的挑战在于:它们需要对应用编程接口、系统库(systemlibrary)或操作系统进行修改以增强安全策略。例如,为了限制访问无线网络或数据的剪切或粘贴,涉及这些特征的API必须被修改以允许安全策略来改变它们的行为。为了快速研发移动系统,修改平台的API来支持安全特征以及保持它们需要实质上的努力。存在针对改善的安全方法和系统的需求,其中该方法和系统提供其中所需要的强力安全,以及允许将宽范围的应用部署在移动装置上,包括由不包含在研发或部署应用或操作系统部件中的多方所研发的应用。
发明内容
此处描述的方法和系统可以设置为通过将安全策略施加到现有应用(包括但不限于操作系统)来更新和增强在移动装置上的现有代码的安全。这种安全可以通过使用面向方面编程的方法和技术、利用一层或多层安全包装现有代码来实现,并且无需修改现有代码的现有内部逻辑。
在实施例中,用于增强移动装置安全的方法包括:提供执行在所述移动装置的处理器上的安全策略代码;由面向方面编程来修改进程代码以允许所述安全策略代码控制对被修改的进程代码的访问;并且由所述安全策略代码将安全策略施加到被修改的进程代码。
在实施例中,一种用于增强移动装置安全的系统,包括:处理器,其能够提供移动装置的上下文、策略引擎、至少一个第一进程,其中,所述第一进程用至少一个API来执行进程代码,和至少一个第二进程,所述第二进程用至少一个API来执行进程代码并且所述第二进程具有经由面向对象编程施加至其的至少一个安全策略,其中所述面向对象编程被施加至所述第二进程的进程代码以修改所述代码从而允许所述至少一个安全策略被施加。至少第一进程间通信机制和第二进程间通信机制能够与所述策略引擎、第一进程和第二进程通信,其中,所述第一进程间通信机制能够与所述策略引擎和第二进程通信;并且所述第二进程间通信机制能够与所述第一进程间通信机制和第一进程通信。
在实施例中,用于对移动装置的特权访问实施访问控制的方法可以包括获得由执行在计算机上以用于特权代码的执行的至少一个应用作出的请求;经由进程间通信机制将该请求指引至执行在计算机处理器上的特权代码服务;由所述特权代码服务确定该应用是否被允许执行代码;并且当确定该应用被允许执行特权代码时允许所述特权代码的执行。
在实施例中,移动装置可以是移动电话、平板电脑、便携式电脑和智能手机等其中的一个。
在实施例中,进程间通信机制可以包括进程间通信总线和至少两个进程间通信控制器。
在实施例中,是否至少一个应用被允许执行特权代码的确定结果可以基于至少一个应用、移动装置用户的身份、一天的时间、移动装置的位置以及移动装置的构造中的一个或多个。
在实施例中,方法可以包括经由进程间通信机制将特权代码服务的确定结果返回至系统控制器。
在实施例中,允许特权代码的执行可以包括由系统控制器来允许特权代码的执行。
在实施例中,方法可以包括记录特权代码服务的确定结果、有关应用请求的信息、用在作出确定结果的条件以及由此引起的动作中的一个或多个。
在实施例中,处理器可以驻留在移动手机上并且可以适于起到手机是否处于越狱状态的作用。
在实施例中,用于对移动装置的特权访问实施访问控制策略的系统可以包括进程间通信总线;用于由应用、进程间通信总线和应用来控制特权代码的执行的至少一个进程间通信控制器;适于提供特权代码服务的至少一个处理器,其中所述特权代码服务能够至少部分地基于该应用来确定出该特权代码是否可以被执行;以及第二进程间通信控制器,其能够与进程间通信总线和特权代码服务进行通信。
在实施例中,应该用可以选自于包括游戏、共用程序、电话应用、网络浏览器、音乐播放器、工具和操作系统的组。
在实施例中,系统可以包括进程间通信防火墙,以用于增强管理了与应用的通信的一个或多个规则。
在实施例中,第一进程间通信控制器可以适于与一个或多个进程间通信防火墙进行通信。
在实施例中,进程间通信防火墙可以是面向对象防火墙。
在实施例中,至少一个处理器可以适于在移动装置上提供多个进程间通信防火墙。
通过以下优选实施例和附图的详细描述,本发明的这些或其他系统、方法、对象、特征以及益处对于本领域技术人员是显而易见的。此处涉及的所有文献通过引入方式并入本文本中。
说明书附图
在无需按比例绘制的附图中,贯穿多个附图,相同标记可以描述实质上相似的组件。具有不同字母下标的相同标记可以表示实质上相似组件的不同实例。借由示例而非限制的方式,附图大体上示出了本发文献中所讨论的特定实施例的详细描述。
图1描绘了用于对装置进行保护的方法和系统。
图2描绘了具有策略引擎的系统。
图3描绘了用于确定应用之间的数据传输是否可以被允许的方法。
图4描绘了用于确定系统调用是否出现的方法。
图5描绘了具有多个对象防火墙的系统。
图6描绘了包括虚拟机和策略引擎的移动计算系统。
图7描绘了与虚拟机通信以控制本地库使用的策略引擎。
图8描绘了用于多种移动装置软件特征的受信区域的使用。
图9描绘了将移动装置IPC总线虚拟延伸到受信区域中。
图10描绘了用于经由面向方面编程的移动安全的系统和方法。
图11描绘了用于与装置相关联的动态同步的系统。
图12描绘了用于提供用户位置和识别的系统。
具体实施方式
此处公开了本发明的详细实施例;然而,应该理解的是,公开的实施例仅是本发明示例性的实施例,其可以以多种方式进行组合。因此,此处公开的具体结构和功能细节并不被解释为是限制性的,而仅是用于教导本领域技术人员在想象的任意合适的详细结构中来多样性地实施本发明的代表性基础。此外,此处使用的术语和短语并不旨在限制,而是提供本发明的可理解的描述。
诸如智能手机、平板电脑以及其他联网装置的移动装置正在发展,其既用作为商业工具也用于私人使用。这种移动装置可以用于收集、存储、处理以及传达数据的平台。在很多情形中,比如数据可以是私人的和/或机密的,比如私人接触、金融信息以及商业材料。
由移动装置的发展而引起,移动安全是在移动计算领域中备受关注的不断发展的领域。移动安全可以以多种方式进行实施。如此处所描述的,提供移动安全的几种方式可以包括保护由移动装置存储和进行通信的数据以及控制装置上的软件访问其他资源的能力。
在实施例中,使装置安全的方法可以包括通过基于策略而控制访问来过滤对装置或系统资源的访问,其中可以基于管理两个对象之间的进程间通信(IPC)的策略,由防火墙来过滤和/或控制消息可以经由其而在控制系统资源的对象之间进行递送的进程间控制路径,以施加该策略。在一些实施例中,装置可以为蜂窝电话,比如iPhone、MotorolaDroidRazrMaxx、HTCOneX、SamsungFocus2、SamsungGusto2、或一些其他蜂窝电话。在其他实施例中,装置可以为平板电脑、比如iPad、AsusEeePadTransformerPrime、SonyTabletS、SamsungGalaxyTab10.1、或一些其他平板电脑。装置资源可以为网络连接、蜂窝连接、键盘、触控界面、操作系统、应用,或其他资源。系统资源可以是软件驱动器、数据库、应用编程接口的方法、端口、无线通信界面、存储器中的安全区域或一些其他资源。可以由任意进程间通信机制、比如AndroidBinder、UnixDomainSockets、或共用存储器来提供进程间通信。现有技术、比如用于应用的Android的权限系统不提供对象防火墙并且要求:提供对系统资源的访问的接收对象将它自己的策略施加在接收到的进程间通信上。
策略可以规定,基于一个或多个准则,访问资源的请求应该被过滤和/或被修改。在一些实施例中,策略可以规定,应该基于访问资源的请求的源来过滤该请求。例如,策略可以规定,应该基于作出请求的应用的名称或类型来过滤访问资源的请求。在实施例中,策略可以规定,应该基于资源来过滤请求。例如,策略可以规定,使用蜂窝连接的任何请求应该被过滤。在其他实施例中,策略可以规定,应该基于访问的请求结果或包含在访问中的数据来过滤请求。例如,策略可以规定,访问网络连接以向www.google.com发送数据的请求应该被过滤。
可以由一个或多个面向对象防火墙来控制对象之间的进程间控制路径。在一些实施例中,每个对象也许存在与应用相关的一个对象防火墙。对象防火墙可以例如、通过控制从一个对象到提供对系统资源的访问的接收对象的进程间通信来实施策略。在实施例中,通过应用来控制对资源的访问可以以策略为基础,并且可以包括过滤对提供了对资源的访问的一个或多个对象的访问,其中,所述访问是通过进程间控制路径的。此外,在实施例中,所述过滤可以以这样一种策略为基础,其中该策略管理提供对资源的访问的所述一个或多个对象的进程间通信。对象防火墙可以从策略引擎获取策略,可以例如、由策略引擎将策略转化为在特定对象防火墙上的一个或多个具体设置。当新的对象被创建时,IPC控制器可以安装所需要的新的对象防火墙。对象防火墙可以以一种或多种方式来响应资源的请求,包括但不限于,对象防火墙可以阻止资源的请求,对象防火墙可以允许资源的请求,对象防火墙可以修改请求的内容,对象防火墙可以修改从资源发送的数据的返回值,对象防火墙可以改变被请求的资源,对象防火墙可以记录请求,对象防火墙可以忽略请求,对象防火墙可以改变一个或多个防火墙规则,和/或对象防火墙可以添加或移除对象防火墙规则。在实施例中,对象防火墙可以记载资源访问尝试。对象防火墙可以被存储在集中式注册表中。类似地,提供对装置和系统资源的访问的对象也可以被存储在集中式注册表中。
针对安全目的,单一进程可以与装置安全系统相关。在一些实施例中,这个进程可以能够控制及构造对象防火墙。
在实施例中,安全计算装置可以包括基于装置的上下文感知策略引擎,以在计算装置上执行的一种应用与在计算装置上进行计算的另一种应用之间实施涉及数据的起源的策略,在一些实施例中,计算装置可以是便携式计算装置、比如膝上型电脑、蜂窝电话或平板电脑。在一些实施例在,其中一种应用可以是游戏、比如愤怒的小鸟(Angrybirds)、飙车战警(SmashCops)、WordswithFriends、或一些其他游戏。在一些实施例中,其中一种应用是可以是公用程序、比如电话应用、Skype、网络浏览器、音乐播放器或一些其他公用程序。在一些实施例中,其中一种应用可以是工具、比如推特、ESPN体育中心,谷歌翻译或一些其他工具。在实施例中,第二应用可以是操作系统。
在实施例中,可以提供由用户对一个或多个策略进行授权的授权工具。授权工具可以具有基于浏览器的界面。授权工具可以具有图形用户界面(GUI)。授权工具可以被安装在装置上并且可以被用于控制和/或在装置上来创建对象防火墙。在实施例中,授权工具可以被安装在远程系统上。可以以一种格式(比如存储在数据库中的对象和方法的集合)来存储被授权的策略,被授权的策略可以被转化为用于传递至装置的第二格式(比如XML),并且可以由接收对象进行解析以确定如何构造一个或多个对象防火墙。
策略引擎可以生成特定系统的上下文,其可以包括当前日期和时刻、计算装置位置、装置用户的身份、哪些应用在计算装置上执行、哪些应用在消耗哪些装置资源,以及涉及系统驻留在其中的上下文的其他数据中的一个或多个。在一些实施例中,策略引擎可以连接至策略服务器,该策略服务器向所述策略引擎推送一个或多个策略。
在实施例中,策略引擎可以控制对资源的访问。例如,在应用之间实施涉及数据起源的策略可以包括由策略引擎来评估从第一应用到第二应用的调用。策略引擎可以基于一个或多个策略以及系统上下文、应用上下文和调用的上下文中的一个或多个来评估调用。策略可以包括例如、系统策略、应用策略、或其他策略。策略引擎可以使用一个或多个策略来评估调用,包括但不限于数据源是否是受信源或被允许源等,和/或数据性质是否是允许被中继或由第二应用使用的类型。在一些实施例中,策略引擎还可以基于调用的评估来确定经由所述调用要被传输的任意数据是否被授权。
例如,从一个应用至网络浏览器以传输受保护接触列表的调用可以由移动手机上的策略引擎进行评估。策略引擎可以包括禁止任意数据从接触列表传输的策略。当评估调用时,策略引擎将拒绝该调用并且可以向第一应用报告失败。
在实施例中,使计算装置安全的方法可以包括提供基于装置的上下文感知策略引擎以在计算装置上执行的第一应用和在计算装置上执行的第二应用之间实施涉及数据起源的策略;由基于装置的上下文感知策略引擎来检查从第一应用至第二应用的数据传输;并且由基于装置的上下文感知策略基于策略引擎来确定数据传输是否被允许。在一些实施例中,计算装置可以为便携式计算装置、比如膝上型电脑、蜂窝电话或平板电脑。在一些实施例中,其中一种应用可以是游戏、比如愤怒的小鸟(Angrybirds)、飙车战警(SmashCops)、WordswithFriends、或一些其他游戏。在一些实施例中,其中一种应用是可以是公用程序、比如电话应用、Skype、网络浏览器、音乐播放器或一些其他公用程序。在一些实施例中,其中一种应用可以是工具、比如推特、ESPN体育中心,谷歌翻译或一些其他工具。在实施例中,第二应用可以是操作系统。
基于装置的上下文感知策略引擎可以能够识别装置的上下文和状态,并且可以生成系统指定上下文。系统指定上下文可以包括当前日期和时刻、计算装置位置、装置用户的身份、在装置上当前执行的应用以及其他与上下文相关的数据中的一个或多个。在一些实施例中,策略引擎可以连接至策略服务器,该策略服务器向所述策略引擎推送一个或多个策略。
在应用之间实施数据起源策略可以包括由策略引擎来评估从第一应用到第二应用的调用。策略引擎可以基于一个或多个策略以及系统上下文、应用上下文以及调用的上下文中的一个或多个来评估调用。策略可以包括例如、系统策略、应用策略、或其他策略。策略引擎可以使用一个或多个策略来评估调用。在一些实施例中,策略引擎还可以基于调用的评估来确定经由所述调用要被传输的任意数据是否被授权。
由基于装置的上下文感知策略引擎来检查数据传输可以包括生成针对接收到的远程程序调用的上下文。在一些实施例中,上下文可以包括第一应用的身份。
确定数据传输是否被允许可以包括评估屈从于一个或多个可用策略的数据传输请求。确定结果可以基于上下文与策略的比较。这种策略可以包括例如、系统策略、应用策略、系统上下文相关的策略、应用上下文相关的策略、有关被请求的数据传输的内容的策略,或一些其他策略。
在实施例中,在移动网络中实施分布式策略的方法可以包括将进程间通信防火墙设置在装置上以实施管理两个系统和/或子系统之间的通信的规则;由与进程间通信防火墙相关联的策略引擎来生成系统上下文;并且由进程间通信防火墙来确定通信是否被允许。在一些实施例中,通信是否由进程间通信防火墙允许的确定结果可以基于策略、系统上下文、和/或通信的内容中的一个或多个。
在一些实施例中,分布式策略可以包括一个或多个策略,比如黑名单/白名单、签名和/或命名策略、校核和和/或库分析策略、一个或多个应用的允许、进程、用户、用户组,以及其他策略。在一些实施例中,策略可以被存储在连接到移动网络的策略服务器上。策略还可以被存储在装置上的策略引擎上。黑名单可以识别一个或多个被禁止的动作。例如,应用黑名单可以包括针对被禁止在装置上运行的应用的应用ID列表。白名单可以识别一个或多个被允许的动作。例如,应用白名单可以包括针对被允许在装置上运行的应用的应用ID列表。
进程间通信防火墙可以是涉及应用中的一个或多个对象的面向对象防火墙。在实施例中,进程间通信防火墙可以与IPC控制器通信以控制在涉及进程间通信防火墙的对象与第二对象之间的通信。第二对象可以涉及第二应用。
在一些实施例中,由策略引擎生成系统上下文可以包括当前日期和时刻、装置位置、装置用户的身份或一些其他上下文。
在一些实施例中,安全计算系统可以包括操作系统,该操作系统适于通过使用进程间通信过滤进程来使系统进程安全。计算系统可以为移动装置、比如蜂窝电话、MP3播放器、平板电脑和膝上型电脑。在一些实施例中,装置可以为蜂窝电话、比如iPhone、MotorolaDroidRazrMaxx、HTCOneX、SamsungFocus2、SamsungGusto2、或一些其他蜂窝电话。在其他实施例中,装置可以为平板电脑、比如iPad、AsusEeePadTransformerPrime、SonyTabletS、SamsungGalaxyTab10.1、或一些其他平板电脑。操作系统的示例包括但不限于安卓、黑莓OS、iOS、塞班OS、视窗手机(WindowsPhone)和ChromeOS。
在其中使用IPC进行的进程的过滤可以被实现的方式可以取决于特定的操作系统。在一些实施例中,操作系统可以使用代替进程间通信的通用资源标识符(URI),例如,在IOS中。
在实施例中,安全计算系统可包括操作系统,其适于通过使用进程间通信(IPC)而命令和控制进程,以保护计算系统的进程。该计算系统可以是移动装置,诸如蜂窝电话、MP3播放器、平板和膝上型电脑。操作系统的例子包括,但不限于,Android、黑莓OS、iOS、Symbian操作系统、Windows手机和ChromeOS。在其中使用IPC进行的进程的过滤可以被实现的方式可以取决于特定的操作系统。在一些实施例中,操作系统可以使用URI代替进程间通信,例如,在IOS中。
使用IPC,命令且控制进程可以用于安全地控制计算系统的功能。例如,IPC可以用于命令且控制网页浏览、电话呼叫、短信和其它计算系统功能。在其它实施例中,使用IPC,命令且控制进程可以用于过滤进程间通信。例如,进程间通信可以根据阻止特定应用类发送私人数据的规则或者策略来过滤。在另一个示例中,进程间通信可以根据阻止特定应用类连接到限定网络之外的任何计算机的规则或者策略来过滤。
在实施例中,用于免受移动通信装置中的恶意软件的方法可以包括:将远程过程调用从第一应用传送到数据总线;请求从数据总线到策略引擎的远程过程调用的策略验证;基于远程过程调用的上下文和存储的策略来确定是否通过策略引擎批准远程过程调用;传送来自策略引擎的确定回到数据总线;并且基于该确定通过数据总线允许或者阻止远程过程调用。数据总线可以为进程间通信总线。实施例可以包括:在文件水平传送签名。本公开的实施例可以为:传送过程调用可以包括在进程之间而不是在文件水平处传送进程签名。
在实施例中,用于使用策略引擎来实施关于本地代码的加载、链接和执行的分布式策略的方法可以包括:提供在移动装置上的虚拟机里面运行的应用;提供在移动装置上运行的策略引擎;并且响应于来自策略引擎的输入且基于策略因素来利用用于加载、链接和执行在虚拟机中的本地库中的代码的规则。
在一些实施例中,应用可以运行在虚拟机的里面。虚拟机的示例可以包括但不限于Java虚拟机、Perl虚拟机、Oracle虚拟机、Parallels虚拟机、SunxVM和VMware虚拟机。
在一些实施例中,用于允许安全策略应用于现有API的方法可以通过面向方面编程并且可以在不修改API的内部逻辑的情况下应用于现有API。现有API可以使用面向方面编程方法和技术来包裹有一个或者多个安全层。
在实施例中,用于使移动装置安全的方法可以包括:使用进程间通信来分布将面向方面安全应用于移动装置上的多个过程所需要的策略或者其它数据。与安全有关的数据可以经由进程间通信机制(例如IPC控制器、AndroidBinder或者UnixDomainSockets)分布到一个或者多个目标进程。一旦分布这种与安全有关的数据,就可以应用面向方面的安全技术来拦截且管理与方法、功能和服务在目标进程中的调用有关的安全。
在一些实施例中,用于使装置安全的方法可以包括:使用上下文信息来改变策略如何应用于装置并且因此面向方面的安全技术如何跨一个或者多个进程应用。这种上下文信息可以包括地理、加速计、相机、麦克风、无线网络、应用使用、用户交互、运行进程、磁盘状态、邻近无线信号/网络、与外部装置的配对状态、访问的网站、装置网络业务、电池水平、在装置上存在的数据的类型或者其它装置硬件或者软件可检测的上下文信息。装置上下文可以是真实世界的例如地理位置或者虚拟的例如在装置上驻留的数据、当前执行的应用或者到网络或者磁盘的数据的输入/输出/来自网络或者磁盘的数据的输入/输出或者二者的任意组合。例如,安全策略可以由到具体无线网络、一个或者多个应用的发起或者具体数据集的下载的连接来触发。
在一些实施例中,用于使装置安全的方法可以包括:追踪哪个进程正在装置上运行由一些形式的面向方面的安全来覆盖并且/或者确定为针对面向方面的安全编程的候选人的进程。该追踪可以是集中式的、分布式的或二者的混合组合。
在实施例中,使装置安全的方法可以包括:存储可在装置上存储的与方面有关的数据。在一些实施例中,当返回到装置时数据可以重新分布到进程。非易失性存储系统可以捕获所需策略和/或面向方面的编程信息。当装置上电时,分布式机制或者集中式机制可以用于策略和/或面向方面的编程数据到进程的输入/输出以实施安全策略。
在实施例中,用于使装置安全的方法可以包括:组合非面向方面的编程逻辑与面向方面的编程耦接以使装置达到期望状态。在一些实施例中,使装置安全可以包括使特定装置功能安全。例如,在面向方面的编程技术用于限制哪些应用可以打开或者关闭无线应用访问之前,非面向方面的编程逻辑可以关闭无线网络访问。在另一个示例中,在面向方面的编程技术用于阻止恶意软件的重新启动之前,非面向方面的编程逻辑可以自动关闭恶意软件应用。
在实施例中,用于使装置安全的方法可以包括:适用IPC机制使得针对另一个应用或者服务的在正常区域中的来自应用的在IPC总线上的请求可以自动重新定向到被请求的应用或者服务的受信版本。
在实施例中,用于通过(在验证装置上验证上下文的)服务器上提供上下文检测引擎并且响应于验证来认证装置上的受信上下文的方法提供了对安全数据的访问。在实施例中,服务器可以为到网络的网关服务器。
在实施例中,用于组成策略的方法可以包括:组合来自一个或者多个来源的多个策略以通过调和任何不一致规则来为策略引擎提供单个的一致策略。策略可以为安全策略。多个策略可以包括例如phone策略、IT管理者策略、蜂窝电话载体策略、企业策略、部门策略或者一些其它策略。策略的来源可以包括例如蜂窝电话载体、政府、装置提供者、装置支持提供者、装置用户、向用户供应装置的企业或者一些其它策略提供者。调和不一致规则可以包括比较两个或者更多规则并且选择最大限制规则。在一些实施例中,调和不一致规则可以包括:比较两个或者更多规则并且选择最小限制规则。在一些实施例中,调和不一致规则可以包括:比较两个或者多个规则并且基于其它规则集合(例如基于不一致规则应用于哪些资源)来选择规则中的一个。
在图1中描绘了用于使装置安全的方法和系统的实施例。图1中描绘的方法和系统可以包括移动装置系统102。系统102可以为蜂窝电话,例如iPhone、MotorolaDroidRazrMaxx、HTCOneX、SamsungFocus2、SamsungGusto2或者一些其它蜂窝电话。在一些其它实施例中,系统102可以为平板电脑,例如iPad、AsusEeePadTransformerPrime、SonyTabletS、SamsungGalaxyTab10.1或者一些其它平板电脑。系统102可以包括在系统102上执行的软件,例如一个或者多个应用110、一个或者多个虚拟机112、一个或者多个本地库114、操作系统116、策略引擎118、一个或者多个对象防火墙144以及一个或者多个IPC控制器138。在第一元件描述为与第二元件通信的实施例中,这种通信可以是直接的或者可以包括如本文中描述的中介元件。例如,仅通过举例,策略引擎118可以与IPC总线132直接通信或者经由特权代码服务140和/或IPC控制器138B与IPC总线132间接通信。
一个或者多个应用110可以在系统102上本地执行。在一些实施例中,应用110可以为游戏,例如AngryBirds、SmashCops、WordswithFriends或者一些其它游戏。在一些实施例中,应用中的一个可以为实用程序,例如phone应用、Skype、网页浏览器、音乐播放器或者一些其它实用程序。在一些实施例中,应用中的一个可以为工具,例如Twitter、ESPNScoreCenter、GoogleTranslate或者一些其它工具。可以将应用110从正当市场例如iTunes下载到系统。然而,在一些情况中,应用110可以从恶意软件系统108获得。在一些其它情况中,应用110可以经由合法市场从恶意软件系统108完成购买。在实施例中,应用可以尝试执行特权代码(例如一旦特权代码服务140授权许可就仅可以访问的代码)、受信代码区域146中的代码或者由对象防火墙144保护的代码中的一个或者多个。
在实施例中,一个或者多个应用110可以在一个或者多个虚拟机112中执行。虚拟机的示例包括但不限于Java虚拟机、Perl虚拟机、Oracle虚拟机、Parallels虚拟机、SunxVM和VMware虚拟机。为了加载、链接和执行本地库114中的代码,应用110可以向相应虚拟机112发送库请求。虚拟机112可以与策略引擎118通信以确定是否允许请求。在一些实施例中,虚拟机112也可以使用本地策略来确定是否允许请求。如果允许请求,则虚拟机112可以促进应用110对本地库114的访问,这促进与操作系统116的交互。虚拟机112可以向应用110发送(例如对本地库114的)库访问允许信号。
本地库114可以促进应用110和操作系统116之间的交互。系统102的操作系统116为管理系统102的软件。操作系统的示例包括但不限于Android、BlackBerryOS、iOS、SymbianOS、WindowsPhone和ChromeOS。
策略引擎118可以实施例如关于由应用110加载、链接和执行代码的策略以及关于远程过程调用的策略。策略引擎118也可以生成系统特定的上下文,其可以包括当前日期和时间、装置位置和装置用户的身份。在一些实施例中,策略引擎118可以实施关于由虚拟机112里面运行的应用110加载、链接和执行本地代码的分布式策略。在实施例中,策略引擎118可以存在于第二进程,并且动态发送且适用用于加载、链接和执行一个或者多个本地库114中的代码的一个或者多个规则。在存在于与第一进程相同的系统102的第二进程中具有策略引擎可以提供更高速度通信以向虚拟机112进程转移策略,从而允许基于大量策略因素而动态改变策略130。其中策略引擎118可以存在的第二进程可以将策略引擎118与攻击隔离,允许其访问可能不由第一进程触及的外部服务,并且允许策略引擎118在执行第一进程之前和之后存在于存储器中。
在远程进程调用的上下文中,策略引擎118可以批准或者不批准交易并且可以将该结果传送回到数据总线。如果该远程过程调用涉及系统服务,则数据总线可以传送请求到操作系统116。操作系统116可以执行远程过程调用并且经由数据总线返回该结果到源应用110。如果相反地该远程过程调用涉及与另一个应用110的交互,则数据总线可以传送调用到目的地应用110。然后,那个远程过程调用的结果可以经由数据总线返回到源应用110。
系统102可以经由通信设施150通过云或者其它网络104连接到策略服务器106。通信设施150可以为网络接口控制器、无线网络接口控制器、Wi-Fi适配器等。策略服务器106可以管理策略储存库。策略服务器106可以在来自策略引擎118的请求之后对策略服务。策略服务器106可以通过执行策略储存库访问来对这些策略服务以确定策略方面例如黑名单/白名单120、签字和/或命名122、校验和/库分析124、应用、过程、用户、组的许可以及其它策略检查128。策略服务器106可以接收策略储存库响应并且向策略引擎118提供策略请求响应。备选地,策略引擎118可以基于策略118已知或者可访问的策略信息来对虚拟机112关于本地库114的应用110访问的查询进行服务。
在各个实施例中,系统102的各个元件可以与通信设施150直接或者间接通信。仅通过举例且非限制上面语句,应用110和/或操作系统116可以与通信设施150直接通信。
应用110可以包括能够进程间通信的一个或者多个对象。在现有技术中,这些对象直接连接到IPC总线132。这里,对象可以使用对象防火墙144和/或IPC控制器138A和/或138B调停。这里,每个对象可以具有能够连接到IPC控制器138A和/或138B的独立对象防火墙144。策略引擎118可以与对象防火墙144和IPC控制器138A和138B通信以实现一个或者多个策略130。在一些实施例中,策略引擎118可以将高级防火墙规则转换成关于一个或者多个对象防火墙144的具体设置。当创建新的进程间通信能力对象时,每个过程中的IPC控制器138A和/或138B可以根据需要安装额外对象防火墙144。
在实施例中,当创建且破坏新的进程间通信能力对象时,IPC控制器138A可以管理对象防火墙144的安装和移除。该控制器可以消除在每个对象创建上的另一个进程中执行了与IPC控制器138B的额外进程间通信的开销,并且可以改善性能(例如通过动态管理与每个对象相关联的对象防火墙和IPC控制器的实例;通过在与单个应用相关联的对象中能够进程间通信,如与用于所有应用和对象的单个全局控制器和/或防火墙通信相反那样等)。IPC控制器138A和/或138B可以将IPC调用从一个进程间通信能够对象发送到第二进程间通信能够对象的对象防火墙144。第二进程间通信能够对象的对象防火墙144可以基于实现为对象防火墙规则的策略130来确定是否授权该调用。
IPC总线132可以为数据总线。在一些实施例中,IPC总线132可以使能进程间通信。在实施例中,IPC总线132可以经由实例化为远程过程调用服务、协议处理者系统调用表或任何其它功能或者对象代理的共享数据总线来进行进程间通信。例如,IPC总线132可以使能进程间通信作为从与一个应用110中的对象相关联的IPC控制器138A到与第二应用中的对象相关联的另一个对象防火墙144的远程过程调用。
在实施例中,受信代码区域146可以存在于系统102上作为处理器的区域,并且系统102的专门调试接口和/远程审计工具(例如AndroidTMADB)中的一个或者多个可以放置在受信代码区域146中。处理器的受信区域可以通过暗码信任链而保证在该区域内执行的代码未被篡改。一旦元件放置在用于执行的受信处理器区域内,来自对其执行的操作的输出就可以被认为无篡改的,正确的且可信的。提供受信区域功能的商业软件的示例为由ARM有限公司的TrustZoneTM
通过放置整个专门调试接口和/或工具到受信代码区域146,远程计算机可以用于审计系统102的完整性或者使用(由系统102上的正确且受信调试软件处理远程提供的命令的)置信度来安全控制系统102的执行或者配置。可选地,这些专门调试元件的部分可以放置到受信代码区域146中(例如文件系统组件和USBI/O组件)。
在实施例中,系统102的进程间通信机制可以放置到受信代码区域146中。这种进程间通信机制旨在管理在系统102上的用户空间应用(例如不在操作系统中)和服务(例如包括在用户空间中运行的系统服务)之间的通信。进程间通信机制可以例如为对象防火墙144、IPC控制器138A和/或138B或者一些其它进程间通信机制。一旦进程间通信机制放置到受信处理器区域中,装置上的用户空间应用和服务之间的通信的控制就可以被认为受保护,这是因为在受信区域中执行软件将无篡改。而且,由受信区域保护的进程间通信机制可以通过拦截、检查、阻止、过滤或者另外地适用在用户空间应用和服务之间的通信而用作装置上的补充安全控制点。因为进程间通信机制处于受信处理器区域内,所以它可以被认为应用/服务间通信上的安全控制点。
系统控制器134可以响应于来自应用110的请求而执行系统调用136。在实施例中,系统控制器134可以被适于响应于来自应用110的请求而向IPC控制器138A和/或138B发送请求。通过经由IPC控制器138A和/或138B建立系统控制器134和IPC子系统之间的安全策略验证路径,系统控制器134可以经由与调用方应用不同的路径(例如基于对策略引擎118的查询)而直接验证安全许可。因此,查询及其结果不能由调用方应用或者任何其它应用类型代码影响或者操控。IPC进程自身的安全性可以进一步保证独立于安全许可查询。在实施例中,子系统可以包括对象防火墙144、IPC控制器138A和/或138B和IPC总线132。在实施例中,IPC子系统可以包括对象防火墙、IPC控制器138A和/或138B、IPC总线132和策略引擎。
在实施例中,寻求执行特权代码服务140的应用110可以通过与系统控制器134交互来尝试完成这种特权代码服务140执行尝试。不是简单允许代码的执行,而是系统控制器134可以向IPC控制器138A发送请求,该IPC控制器138A可以在IPC总线132上向系统服务IPC控制器138B请求管理针对特权代码服务执行140的访问控制的系统服务。该服务可以做出特权代码策略引擎118的访问决定请求以促进确定是否授权原始应用执行被请求的特权代码。该确定可以基于各个因素完成,以包括但不限于调用应用的身份、装置用户的身份、时刻、装置的物理位置、当前装置配置等。然后,系统调用策略确定的结果的指示可以经由如由IPC总线132连接的IPC控制器138A和138B返回到系统控制器134,其然后可以实施确定并且可以允许或者拒绝特权代码服务140的执行。无论策略确定如何,与执行尝试、用于完成确定的条件和产生的动作有关的信息可以被记录以供用户和装置管理者使用。
恶意软件系统108可以尝试在系统102上妥协安全性。该恶意软件系统108可以通过云或者其它网络104连接到系统102。恶意软件系统108可以传送恶意软件到系统102。恶意软件可以为计算机病毒、蠕虫、特洛伊木马、间谍软件、广告软件、隐匿程序或一些其它恶意程序或者脚本。恶意软件可以经由邮件、网页、应用110、短信、SIM卡或者以其它方式传送到系统102。
网络104可以经由基于云的网络通信。在一个实施例中,网络104可以经由网络(例如但不限于互联网、内部网、个人局域网、VPN、局域网、广域网、城域网或者一些其它网络)经由基于云的网络通信。
在广义实施例中,系统和方法可包括对关键的系统资源,诸如移动计算装置内执行的特权代码,实施安全策略。在实施例中,用于对移动装置的特权访问实施访问控制策略的系统和方法可以通过将管理系统访问和特权代码执行集成到整个系统基础设施中并且向装置管理者提供机制(借此他们可以限制哪些应用以及在什么情况下可能会出现特权代码),来解决关于装置越狱的安全关注。通过更好地控制应用如何获得对关键系统资源的访问,从而环抱越狱基础设施,在此描述的系统和方法可以更安全地被集成到移动装置,并由高级应用进行杠杆作用(例如目前利用越狱API的那些)来提供新的和多样化的功能而不受对整个装置完整性进行妥协的威胁。
在这一领域中之前的安全方法通常都集中防止用户越狱装置,或快速检测越狱装置的签名。本文公开的系统和方法基础地不同在于,它们将越狱环抱为高级特征,并且可以给出装置用户和管理者方式来确保越狱安全地用作整个系统操作的一部分。这可以通过在希望执行特权代码执行的应用之间的IPC机制上使用高级防火墙特征以及执行特权代码执行的受保护子系统来实现。
仍然参照图1,在实施例中,用于实施关于在越狱移动装置上执行的特权代码的安全和访问控制策略的方法可以包括:由应用110调用以执行特权代码;由特权代码策略引擎118确定应用110是否可以执行特权代码;并且通过特权代码策略引擎118实施确定。移动装置可以例如为蜂窝电话、MP3播放器、平板电脑和膝上型计算机。操作系统116的示例包括但不限于Android、BlackBerryOS、iOS、SymbianOS、WindowsPhone以及ChromeOS。使用IPC来过滤过程可以实现的方式可以取决于特定操作系统116。在一些实施例中,操作系统116可以使用URI而不是进程间通信,例如在iOS中。
在各种实施例中描述的越狱装置可以是以下装置,其中该装置上的操作系统116被突破或旁路,从而使装置的用户可以能够访问类似chroot限制之外的文件。例如,用户可以越狱iPhone以安装Cydia、苹果的AppStore之外的第三方应用市场,用户将不能够在未越狱的iPhone上进行这些。
该特权代码可以是:只有一旦由特权代码服务140授权许可才可被访问的代码。例如,特权代码可以是内核代码。权限可以例如在主管或管理者模式中访问并运行代码。
在一些实施例中,应用110可以是游戏,例如愤怒的小鸟(AngryBirds)、粉碎警察(SmashCops),与朋友猜词(WordswithFriends)或其他一些游戏。在一些实施例中,应用110可以是实用程序,诸如电话应用、Skype、网络浏览器、音乐播放器或一些其他实用程序。在一些实施例中,应用110可以是工具,例如Twitter、ESPNScoreCenter、谷歌翻译或一些其它工具。
在一些实施例中,策略引擎118确定由应用110进行的用于执行特权代码的调用是否可被执行。该确定可以基于进行调用的应用110的类型、进行调用的应用110的名称、进行调用的应用110的位置、系统上下文、装置位置、当前日期、当前时间、该装置用户的身份、特权代码的类型、调用或一些其它标准的内容等中的一个或多个。
实施策略引擎118的确定可以包括比较确定与策略130。策略引擎118可以基于一个或多个策略130实施确定。策略130可以包括,例如,系统策略、应用策略和其他策略。策略引擎118可使用一个或多个策略130来评估调用。在一些实施例中,策略引擎118也可基于该调用的评估,确定经由调用而要被转移的任何数据是否被授权。
在实施例中,对移动装置上的特权代码执行实施安全性和访问控制策略的方法可包括,由应用110调用系统控制器134,以执行特权代码;由系统控制器134请求进程间通信控制器138A,以用于访问特权代码的许可;由系统控制器134请求特权代码策略引擎118,应用110是否被允许访问特权代码的确定;由特权代码策略引擎118确定应用110是否可以执行特权代码;并且由系统控制器134实施由特权代码策略引擎118进行的确定。移动装置可以是,例如,蜂窝电话、MP3播放器、平板电脑和膝上型电脑。操作系统116的例子包括,但不限于,Android、黑莓OS、iOS、Symbian操作系统、Windows手机和ChromeOS。其中使用IPC过滤进程可以被实现的方式可取决于特定的操作系统116。在一些实施例中,操作系统116可以使用URI而不是进程间通信,例如,在IOS中。
在各种实施例中描述的被越狱移动装置可以是以下装置,其中该装置上的操作系统116被突破或旁路,从而使装置的用户可以能够访问类似chroot限制之外的文件。例如,用户可以越狱iPhone以安装Cydia,苹果的AppStore之外的第三方应用市场。
该特权代码可以是以下代码,只有在一旦特权代码服务140授权许可才可被访问。例如,特权代码可以是内核代码。特权可以是例如在主管或管理者模式中访问并运行代码。
在一些实施例中,应用110可以是游戏,例如愤怒的小鸟、粉碎警察、与朋友猜词或其他一些游戏。在一些实施例中,应用110可以是实用程序,诸如电话应用、Skype、网络浏览器、音乐播放器或一些其他实用程序。在一些实施例中,应用110可以是工具,例如Twitter、ESPNScoreCenter、谷歌翻译或一些其它工具。
响应于从应用110执行特权代码的调用,系统控制器134可以请求对访问特权代码的许可。在现有技术中,系统控制器134将响应于来自应用110的调用执行特权代码。然而,在这里,系统控制器134可以从进程间通信控制器138A请求对访问这些特权代码的许可。响应于来自系统控制器134的请求,进程间通信控制器138A可以将请求传递到策略引擎118。在一些实施例中,响应于来自系统控制器134的请求,进程间通信控制器138A可通过对象防火墙144将请求传递到策略引擎118。
在一些实施例中,策略引擎118确定是否可执行由应用110进行的对执行特权代码的调用。在一些实施例中,策略引擎118可以是特权代码策略引擎。该确定可以基于以下一个或多个:进行调用的应用110的类型、进行调用的应用110的名称、进行调用的应用110的位置、系统的上下文、装置位置、当前日期、当前时间、该装置用户的身份、特权代码的类型,调用的内容或一些其它准则。
实施策略引擎118的确定可以包括相对于策略130比较确定。策略引擎118可以基于一个或者多个策略130来实施确定。策略130可以包括例如系统策略、应用策略和其它策略。策略引擎118可以使用一个或者多个策略130来评估该调用。在一些实施例中,该策略引擎118也可以基于调用的评估来确定是否授权经由调用转移的任何数据。
本发明的优势之一可以包括但不限于以下事实:调用应用110不需要知道负责进行与访问控制有关的这些决定的安全策略基础设施。特别地,其中应用110运行的执行环境可以被物联化(instrument)从而以对应用开发者透明的方式支持这些特征。这可以允许与使用越狱工具操作的现有app的无缝向后兼容并且不需要开发对该基础设施杠杆化的新应用110的未来应用接口。
使用受信处理器区域来改善移动装置安全性的一个机制可以放置装置的专门调试接口和/或远程审计工具例如AndroidTMADB到受信区域中。这些调试接口和工具可以经由USB、无线或者其它有线通信提供机制以审计,配置或者控制过程、文件系统、应用和移动装置的其它组件中的一个或者多个。通过放置整个专门调试接口和/或工具到受信区域,远程计算机可以用于审计装置的完整性或者用(由装置上的正确且信任的调试软件处理远程提供的命令的)置信度来安全地控制其执行或者配置。备选地,这些专门调试元件的部分可以放置到受信区域中(例如文件系统组件和USBI/O组件)。
用于使用受信处理器区域来改善移动装置安全性的另一个机制可以在于将装置的进程间通信机制放置到受信区域中。这种进程间通信机制旨在管理移动装置上的用户空间应用(例如不在操作系统中)和服务(例如包括在用户空间中运行的系统服务)之间的通信。一旦进程间通信机制被放置到受信处理器区域中,装置上的用户空间应用和服务之间的通信的控制就可以被认为受保护,这是因为在受信区域中执行软件将无篡改(例如因为在受信区域中执行的软件可以独立于所有其它区域中的软件而执行)。而且,由受信区域保护的进程间通信机制可以通过拦截、检查、阻止、过滤或者另外地适用用户空间应用和服务之间的通信而用作装置上的补充安全控制点。因为进程间通信机制处于受信处理器区域内,所以它可以被认为应用/服务间通信上的安全控制点。
具有增强型许可的安全进程例如守护(daemon)用户空间进程可以用于繁衍且控制其它进程在装置上的执行。例如,在AndroidTM上,Zygot负责发起且适用应用的进程的许可。在实施例中,这些安全守护进程可以在受信处理器区域内移动,以保证它们不能恶意地篡改以发起,配置或者控制其它进程。进一步,当安全守护进程与安全进程间通信机制一起在受信处理器区域内移动时,其它用户空间进程可以与该守护进程安全地交互。
用户空间应用许可、代码和配置通常由移动装置上的包管理器管理。该包管理器安装,配置,卸载且响应于与应用构件、配置和许可有关的查询。如果妥协了移动装置上的包管理器,则攻击者可以使用包管理器错误地报告应用许可、配置设置、代码位置或者其它临界参数。在实施例中,这可以允许包管理器在受信处理器区域内移动以保证未篡改包管理器和其功能的全部(例如包安装、配置、卸载、应用信息查询等)。通过移动包管理器(例如Android包管理器服务等)到受信处理器区域,可以保护这些关键应用包服务。
虚拟机例如DalvikVirtualMachineTM用于在移动装置上执行代码。由于虚拟机控制关键应用代码的执行,如果篡改它们,则可以打开允许应用运行任意代码的几个安全漏洞。通过移动整个虚拟机到受信处理器区域中,该装置可以保证不妥协虚拟机执行。同样,即使DalvikVirtualMachineTM的核心部分例如指令调度、虚拟调度表、套接字和I/O、文件系统交互代码、类字节码缓存、符号表或者类加载机制被移动到受信区域,也可以保证不妥协这些关键组件。
移动装置上的许多配置功能经由读取XML,查询关系数据库(例如SQLite)或者加载其它配置文件且然后改变系统执行参数来操作。例如,XML或者Java字节码文件(例如AndroidManifest.dex/class/java/xml)可以用于存储应用用户ID到Linux用户ID的映射和允许组。通过移动I/O,读取且解释这些配置数据源到受信处理器区域,移动装置可以保证这些信息源针对起源和完整性而密码地适当检查,适当读取和解释,并且不被改变以错误地执行它们的功能。关系数据库组件、配置加载例程(例如AndroidLayoutInflater、Manifest读取器等)可以根据需要移动到受信区域以保护这些核心功能。
企业使用移动装置管理系统来控制管理移动装置的使用/安全性的策略。如果妥协了移动装置管理系统,则攻击者可以使用这些移动装置管理系统窃取敏感数据或者执行其它不法动作。通过在受信处理器区域里面移动移动装置管理系统的一个或者多个部分,人们可以保证不妥协它们。一旦在受信处理器区域里面,这些移动装置管理功能被认为是安全的并且不由攻击者利用。
装置上的用户输入可以利用触摸屏软件组件从硬件接收触发事件;转化这些事件为移动、键按压或者其它用户输入;通过共享存储器或者进程间通信调度事件到目标进程;并且递送事件到应用软件组件。如果篡改了这些触摸屏软件组件,则他们可以用作攻击向量吮吸引脚数量、银行信息和其它安全证书。本文中描述的受信区域方法和系统可以通过移动软件触摸屏事件调度的一个或者多个部分、共享存储器读取/写入、进程间通信调度和应用内的调度代码到受信处理器区域中来抵制移动装置上的该威胁。而且,移动到受信处理器区域的部分可以包括软件输入方法,例如用于控制虚拟屏幕键盘和/或其配置数据到受信处理器区域的代码。
地理定位、邻近检测、定位估计或者邻近认证组件可以用于确定或者验证装置的位置。然而,可以攻击这些机制,并且/或者被哄骗以在装置上进行应用的结果检测了不同位置装置的实际位置。这可以用于绕开基于位置的策略或者攻击取决于精准定位的系统(例如汽车导航)。为了阻碍该可能利用向量,这些系统中的一个或者多个可以移动到受信处理器区域以阻止篡改。
虽然本文描述了用于增强移动装置软件和数据安全性的受信区域的示例,但是可以存在除了本文中预期且因此包括的这些示例之外的受信区域的其它有益使用。此外,虽然由ARM有限公司的受信区域用作示例的受信区域设施,但是通过密码或者其它防篡改装置给受信区域提供软件和/或数据的强健保护的任何设施可以与本文中描述的方法、系统和应用一起使用。
现在参照图9,虚拟延伸移动装置IPC总线132可以包括:延伸这种IPC总线132到处理器受信代码区域146,其也可以称为“受信区域”。通过该虚拟延伸,应用110A至110B(其基本上与应用110类似)和通过IPC总线132访问的服务可以在受信区域146中执行,由此为受信应用908A至908B。因此,正常处理器区域902中的应用110A至110B可以无缝方式经由强健IPC机制与受信应用908A至908B通信。例如,一个应用110A可以经由正常处理器区域902中的IPC总线132传送数据到受信IPC总线910,经由硬件总线904到在受信区域146中执行应用908A的第二受信实例。此外,可以适用IPC机制使得在IPC总线132上由正常区域应用110A进行的针对app或者服务的请求可以自动重新定向到请求的app(例如908A)或者服务的受信版本。
一些现代移动装置可以使用虚拟机来在受控的执行环境内执行应用。这种系统的重大挑战可以为当前方法可以不是细粒的和/或用于确定什么本地代码库可以由在虚拟机里面运行的应用加载且使用的适应性机制。方法可以不适应以下本地库,该本地库允许基于虚拟机的进程之外的进程中存在的装置上下文或者策略来加载、链接和执行。进一步地,一些方法可以从在其它计算系统上运行的进程下载策略,但是这些方法可能是慢的,因为策略也许从远程位置转移。进一步地,由于与远程数据转移相比的本地数据转移的较大量级执行速度,下载方法可以限制在其处可以适应本地库加载、链接和执行规则的速度和频率。
实施关于加载、链接和执行来自虚拟机内的本地库代码的限制的最主要现有方法可以已经使用在磁盘上存储的且加载到虚拟机的存储器中的静态策略文件,其可以在第一进程中运行。给定这种方法的静态性质(其在启动时可以需要本地库策略存在于虚拟机的进程中),策略可以不从运行策略引擎的第二进程改变。
控制本地代码的加载、链接和执行的更有效且灵活方法可以为具有在第二进程中存在的策略引擎,动态发送且适应用于加载、链接和执行本地库中的代码的规则。因为第二进程可以存在于与第一进程相同的移动装置上,所以高速通信可以用于转移策略到虚拟机进程,其可以基于大量策略因素而允许动态改变策略。策略引擎的第二进程可以将策略引擎与攻击隔离,可以允许他访问外部服务(其不可以从第一进程访问),并且可以允许策略引擎在执行第一进程之前和之后存在于存储器中。
在实施例中,系统和方法可以包括:使用除虚拟机的进程之外的进程中存在的外部策略服务器来使用本地跨进程通信装置来控制管理虚拟机里面运行的移动应用代码的加载、链接和执行的规则。
现在参照图6,在实施例中,多个应用110可以在多个虚拟机112里面交互地执行。为了加载、链接和执行本地库114中的代码,应用110可以向它们相应虚拟机112发送库请求602。虚拟机112可以与策略引擎118通信(604,608)以确定是否应当允许请求602。虚拟机112也可以使用本地策略来确定是否允许请求602。如果允许请求602,则虚拟机112可以促进应用110对促进与操作系统116交互(614,618)的本地库114访问(610,612)。虚拟机112可以向应用110发送库访问允许的信号620。
策略引擎118可以可选地与策略服务器106(其可以管理策略储存库628)交换策略请求(622,624)。策略服务器106可以通过执行策略储存库访问630来对来自策略引擎118的策略请求622服务以确定策略方面例如黑名单/白名单120、签字和/或命名122、校验和/库分析124、应用、进程、用户、组的许可126以及其它策略检查128。策略服务器106可以接收策略储存库响应632并且自身向策略引擎118提供策略请求响应624。备选地,策略引擎118可以基于策略118已知或者可访问的策略信息来服务虚拟机112关于本地库114的应用110访问的查询。
现在参照图7,在实施例中,虚拟机112可以使用本地跨进程通信机制702(例如IPC、Unix域套接字或者共享存储器)来与策略引擎118通信。跨进程通信机制702可以用于将与由虚拟机112接收的本地库请求602有关的信息从应用110传输到策略引擎118以用于批准,或者接收策略或者规则数据以用于做出本地批准决定。在实施例中,跨进程通信机制702可以用于将本地库请求602从应用110发送到策略引擎118。
现在参照图2,多个应用110可以彼此交互且经由公共数据总线202与系统服务交互。为了在子系统之间传送,源应用可以执行远程过程调用204并且然后该请求可以被传送到数据总线202。然后,数据总线可以通过递送那个调用218到策略引擎118来请求远程过程调用的策略验证。使用远程过程调用的上下文和其存储的策略,策略引擎118可以批准或者不赞成交易并且可以将该结果214传送回到数据总线202。如果该远程过程调用涉及系统服务,则数据总线可以传送请求208到操作系统116。操作系统116可以执行远程过程调用并且经由数据总线202返回该结果210到源应用110。如果相反该远程过程调用涉及与另一个应用的交互,则数据总线可以传送调用212到目的地应用110。然后,那个远程过程调用的结果可以经由数据总线202返回到源应用110。
更详细地,仍然参照图2,数据总线202可以负责生成特定于接收到的远程过程调用的上下文以包括源应用110的身份。策略引擎118可以负责生成特定系统上下文以包括当前日期和时间、装置位置和装置用户的身份。然后,策略引擎118可以评估远程过程调用,其服从于可用系统策略、应用策略、系统上下文、应用上下文和远程过程调用自身的上下文。基于策略评估的结果,然后策略引擎118可以经由数据总线202返回到源应用110。
更详细地,仍然参照图2中的本发明,该系统可以经由可选策略服务器106支持。该服务器可以经由装置的网络连接远程定位且访问。策略管理者将系统和应用策略输入到策略服务器106。然后,策略服务器可以推动220这些策略到它们管理的装置的策略引擎118。出于审计和核算的目的,策略引擎118也可以向策略服务器106报告222策略统计和违反。
在实施例中,应用110可以模块化地安装在智能电话上并且能够经由共享数据总线202执行进程间通信,该共享数据总线202可以实例化为远程程序调用服务、协议处理者、系统调用表或任何其它功能或者对象代理。策略引擎118可以实例化为对该代理服务的延伸,由此进程间通信请求可以相对于可用策略来评估。这些请求可以基于策略评估的结果来批准或者拒绝。
现在转到图3,系统操作可以开始302。用户、应用或者服务可以确定应用之间的数据转移应当出现并且数据源可以获得且准备那个数据304。数据转移服务可以获得或者转移与数据转移308相关联的有关内容,例如数据的敏感性或者数据的来源。然后,数据和其上下文可以服从于多个策略310来评估,以确定是否授权转移312。如果未授权,则数据转移服务可以向开始转移的用户、应用或者服务报告失败314。如果授权,则可以更新318数据上下文以包括为转移的结果的任何相关上下文改变。然后,数据可以转移到目的地320并且可以向开始转移的用户、应用或者服务报告322成功。
数据转移授权可以通过保证适当数据上下文且在转移320之后维持来获得308。用于评估是否授权312转移的策略可以使用数据、数据的上下文和整个系统的上下文以做出授权决定。该进程的实施例可以保证敏感数据不被转移到未被授权接收那个数据的应用,并且/或者数据仅在被授权彼此发送且接收信息的应用和/或个人之间转移。
该进程的特定实例化可以在图2中示出。应用110可以请求来自另一个应用或者服务的信息。该数据可以由数据总线202接收,该数据总线202可以转移该数据218到其中该数据可以经历策略评估的策略引擎118。确定可以由策略引擎118作出并且可以返回214到数据总线202。如果未授权转移,则数据总线可以向请求应用110报告212失败。如果授权转移,则数据总线可以更新数据上下文并且转移212数据和上下文到目的地应用。可以报告成功。
实施例的优势包括但不限于对所有远程过程调用、进程间通信和移动装置上出现的系统调用实施严密详细安全策略的能力。通过实现系统范围策略引擎,装置管理者可以部署允许应用的策略能够更容易使它们免于潜在恶意应用。当应用于数据起源时,移动装置内的所有数据的移动可以基于参数(例如数据的来源、目的地和敏感性)来授权。这相对于依赖于应用以在没有公共策略集合的情况下单独批准/不赞成个人交易的现有技术提供显著优势。
现在参照图5,应用110A和/或110B可以包含能够进程间通信的对象502A至502D的收集。这些对象可以直接连接到IPC总线132,然后在实施例中,它们可以使用防火墙504A,504B,504C和/或504D和/或控制器138A和/或138B来中转。具体地,每个对象(例如502A)可以具有独立IPC防火墙504A,该IPC防火墙504A可以连接到IPC控制器138A,该IPC控制器138A将IPC防火墙504A连接到IPC总线132。策略引擎118可以与控制器和防火墙通信以实现装置策略。在实施例中,可以存在除了描述的元件之外的额外的对象和/或防火墙。
策略引擎118可以将高级防火墙规则转换成多个IPC对象防火墙504A至504D的具体设置。在实施例中,当创建新IPC能够对象502A,B,C和/或D时,每个进程中的本地IPC控制器138A和/或138B可以根据需要安装一个或者多个IPC对象防火墙504A至504D到IPC能够对象502A至502D中。
应用110A可以在第二应用110B中开始从对象(例如502A)到第二对象(例如502D)的进程间通信调用。可选地,在第一应用上的IPC对象防火墙504A可以确定基于当前IPC防火墙规则是否允许出站IPC调用。可以经由IPC总线132向第二应用110B和IPC控制器138B发送进程间通信调用。IPC控制器138B可以发送IPC调用到第二对象的IPC防火墙504D上。第二对象的IPC防火墙504D可以基于IPC防火墙规则、调用的目标对象502D、提供给调用的数据、目标对象502D的当前状态和目标应用110B的当前状态来进行访问确定。
通过目标应用110B的目标对象502D的IPC防火墙504D进行的IPC调用的处理可以涉及以下中的任一个。目标对象IPC防火墙504D可以阻止到目标对象502D的IPC调用。目标对象IPC防火墙504D可以修改与调用一起发送到目标对象502D的数据的上下文。目标对象IPC防火墙504D可以响应于进程间通信调用而修改从目标对象502D发送到初始化对象502A的数据的返回值。目标对象IPC防火墙504D可以改变IPC调用的目标对象502D。目标对象IPC防火墙504D可以记录调用。目标对象IPC防火墙504D可以改变一个或者多个IPC防火墙规则或者增加/移除IPC防火墙规则。
当IPC调用返回到初始化对象502A时,初始化对象的IPC防火墙504A可以基于IPC防火墙规则、调用的目标对象、提供给调用的数据、在调用的返回值中提供的数据、初始化对象502A的当前状态和初始化应用110A的当前状态中的一个或者多个来确定如何处理IPC调用。该过程可以包括以下中的任何一个或者多个:初始化对象502A可以抛出异常而不是程序;初始化对象防火墙504A可以修改IPC调用的返回值;初始化对象防火墙504A可以向初始化对象502A或者其它对象(例如502B)发送额外IPC调用;初始化对象防火墙504A可以修改一个或者多个IPC防火墙规则或者增加/移除IPC防火墙规则。
本实施例的优势可以包括但不限于对移动装置上出现的所有IPC实施严密详细安全策略的能力。通过实现系统范围策略引擎,装置管理者可以部署允许应用以更容易使其免于潜在恶意应用的策略。当实现为IPC防火墙时,本发明可以能够以高效可扩展方式实现实施系统策略的宽范围的策略实施。
在实施例中,现在参照图4,用于解决恶意软件威胁的系统操作的实施例开始402。应用可以确定系统调用应当出现并且应用进行系统调用404。调用处理器可以获得或者生成与应用408相关联的相关上下文,例如应用的来源、发行人或者预期目的。然后,系统调用和其上下文可以服从于多个策略410来评估以确定系统调用是否为已知恶意软件签名412的部分。如果已知恶意软件签名的部分或者未被授权,则调用处理器可以向应用报告失败,对装置管理者414存在恶意软件,并且可以禁用应用418。如果授权或者不是已知恶意软件签名的部分,则可以更新420应用上下文以包括为系统调用的结果的任何相关上下文改变。然后,可以执行422系统调用并且可以向应用报告424成功。
系统调用授权可以通过保证适当应用上下文在转移之后获得408且更新420来获得。用于评估是否授权410系统调用的策略可以使用调用、应用的上下文和整个系统的上下文来进行授权决定。各个实施例可以允许装置管理者将策略推向能够基于已知系统调用模式和应用上下文来识别且禁用恶意软件的装置。
该过程的具体实例可以在图2中示出。应用110可以请求系统的调用的执行。该调用可以由数据总线202接收,该数据总线202可以转移该调用218到它能够经历策略评估的策略引擎118。确定可以由策略引擎118完成并且返回214到数据总线202。如果系统调用未授权,则数据总线202可以向请求应用110报告212失败。如果系统调用授权,则数据总线202可以更新应用上下文,执行212系统调用并且更新应用上下文。可以报告成功。
本实施例的优势可以包括但不限于对所有远程过程调用、进程间通信和移动装置上出现的系统调用实施严密详细安全策略的能力。通过实现系统范围策略引擎,装置管理者可以部署允许应用的策略能够更容易使它们免于其它潜在恶意应用。当应用于恶意软件检测和阻止时,已知系统调用模式可以在执行之前识别,拦截且停止。然后,可以禁用攻击性应用并且装置管理者通知恶意软件活动。这相对于依赖于应用以在没有公共策略集合的情况下单独批准/不赞成个别交易的现有技术提供显著优势。此外,它允许装置管理者实现装置策略以在不需要等待厂家支持的补丁变得可用的情况下免受新兴威胁。
本文讨论的进一步方面为进程间通信的使用以分布将面向方面的安全应用于移动装置上的多个进程所需的策略或者其它数据。
现有移动安全解决方案的挑战在于它们需要对应用编程接口、系统库或者操作系统进行修改以实施安全策略。例如,为了限制对无线网络的访问或者数据的剪切/粘贴,与这些特征有关的API必须修改以允许安全策略改变它们的行为。为了迅速发展移动系统,修改平台的AIP来支持安全特征并且维持它们需要大量努力。
实施例可以通过允许安全策略通过面向方面的编程应用于现有API并且在不修改API的内部逻辑的情况下应用于现有API来解决移动装置安全问题。相反,现有API可以使用本文描述的面向方面的编程方法和技术来包裹有一个或者多个安全层。虽然面向方面的编程已经用于在非移动操作环境中将安全策略应用于单个进程,但是,移动装置使用多进程架构和进程间通信来操作。因此,安全策略的单个进程应用可能没有满足移动装置操作安全需求。进程间通信可以用于分布将面向方面的安全应用于移动装置上的多个进程所需要的一个或者多个策略或者其它数据。一旦与安全有关的数据经由进程间通信机制(例如AndroidBinder或者Unix域套接字)分布到目标进程,就可以应用面向方面的安全技术来拦截且管理与这些目标进程中的方法、功能和服务的调用有关的安全。
面向方面的编程可以在移动平台上以大量形式出现。面向方面的编程方法可以为对对象类进行的修改,以在关于面向对象的方法执行的那些之前、之后、其间或者任意组合调用具体代码段。面向方面的编程方法可以包括:Java动态代理(DynamicProxy);应用于方法、服务、系统或者其它功能调用的拦截器;将类加载到虚拟机来改变它们的默认行为的修改;二进制代码补丁,例如JavaJAR或者AndroidDEX文件;对方法调度表(methoddispatchtable)进行的以改变具体功能或者方法的代码执行的修改;以及其它合适方法。
在各个实施例中,使用上下文信息来改变策略如何应用于装置且因此面向方面的安全技术如何在一个或者多个进程上应用的能力可以被提供。这种上下文信息可以包括地理、加速计、相机、麦克风、无线网络、应用使用、用户交互、运行进程、磁盘状态、邻近无线信号/网络、与外部装置的配对状态、被访问的网站、装置网络流量、电池水平、在装置上驻留的数据的类型或者其它装置硬件或者软件可检测的上下文信息。装置上下文可以是真实世界的例如地理位置或者虚拟的例如在装置上驻留的数据、当前执行的应用或者到网络或者磁盘的数据的输入/来自网络或者磁盘的数据的输出或者二者的任意组合。例如,安全策略可以由到具体无线网络的连接、一个或者多个应用的发起或者具体数据集的下载来触发。
用于移动装置的面向方面的安全可以包括:追踪正在装置上运行的哪个进程由一些形式的面向方面的安全所覆盖并且/或者确定为针对面向方面的安全编程的候选者的进程以例如实施安全策略。该追踪可以是集中式的、分布式的或二者的混合组合。
用于这种追踪的机制可以确定如何分布策略和/或面向方面的编程数据到进程以应用安全策略到期望功能或者装置能力的集合。这种机制可以存在于操作系统或者在用户空间的操作系统之外。
由于可以关闭且重新开始装置,所以策略和/或与方面有关的数据可以存储在装置上,使得当返回到装置时它可以被重新分布到进程。非易失性存储系统可以捕获所需策略和/或面向方面的编程信息。当装置上电时,分布式机制或者集中式机制可以用于策略和/或面向方面的编程数据到进程的输入/输出以实施安全策略。
安全策略可以包含对应用、操作系统、恶意软件或者其它代码的执行的限制。安全策略可以包括关于用户可以与系统如何交互、它们可以执行什么操作、它们可以访问什么数据、它们可以如何使用数据等的限制。安全策略也可以管理与物理硬件有关的输入/输出或者其它操作。
此外,非面向方面的编程逻辑可以与面向方面的编程结合以在使具体装置功能或者能力安全之前使装置达到期望状态。例如,在面向方面的编程技术用于限制哪些app可以打开/关闭无线网络访问之前,非面向方面的编程逻辑可以关闭无线网络访问。在另一个示例中,在面向方面的编程技术用于阻止恶意软件的重新启动之前,非面向方面的编程逻辑可以自动关闭恶意软件应用。
现在参照图10,现有API1002可以通过影响API周围的执行环境因素而由面向方面编程来保护。在该示例中,策略引擎118可以接收与如本文所述的装置、环境、用户、过程、网络等有关的上下文信息1008。在实施例中,策略引擎118可以确定一个或多个安全策略,以基于所述上下文1008施加于现有API1002。策略引擎118可以经由IPC将一个或多个安全策略通信到现有的API1002。策略引擎118也可以从策略管理设施1012经由IPC1010经由面向方面编程而接收策略数据和用于应用一个或者多个安全策略的有关数据。策略管理设施1012还可以追踪哪个进程和/或AIP1002由面向方面的安全覆盖和哪个是用于覆盖1014的候选者。策略设施可以存储且访问数据存储库1018(例如装置上的数据存储库)中的策略和/或与方面有关的数据以促进装置的关闭和重新启动。
在实施例中,候选进程/API1014也可以由面向方面的编程保护。例如,策略管理设施1012可以识别该候选进程/API1014,并指示安全进程来利用面向方面的编程安全层包裹进程/API1014。一旦面向方面的编程已施加到进理/API1014,策略引擎可以经由一个或多个IPC1010通信要被施加到进程/API1014的一个或多个安全策略,如它们去往其它安全API1002那样。在本实例中,第一IPC1010可以被启用与策略引擎118以及其他的IPC1010通信。
在经由面向方面编程(AOP)来实施移动装置安全策略的AspectJ(Java)示例中,移动操作系统中的安全设置字段可以由多个系统函数来访问,其中所述多个系统函数可以能够设置将导致使得非市场应用被安装的字段。对于装置上的操作系统而言,非市场应用是一种由除官方市场以外的手段而获得的应用(比如通过第三方而不是通过官方安卓市场所获得的安卓应用)。从某种程度上来讲,非市场应用通常并未被签名,因而可能会呈现出安全风险(比如可以是恶意软件的形式),安全策略可以被建立在限制这样一种条件下,即在该条件下,非市场应用可以允许被安装。这种系统函数可能贯穿系统应用而显现,但可以全部包括以措辞“update”为起点(比如updateSecureSettingsInfo)的名称以及可以采用SecureFieldObjectandValue自变量。因此,“updateSecureSettingsInfo”的各种发生可以为经由面向方面编程而适于使用安全策略的横切关注。安全策略可以具体地以SettingsFieldInstallNonMarketApps为目标来防止允许非市场app的安装的变化。可以针对安全设置更新方法以及SettingsField对象来限定结合点,其中该SettingsField对象包括诸如“更新(update)”、“信息(info)”以及“SettingsField”的名称元素。基于这些结合点,AspectJ切入点可以被制备用于实施以下安全策略,该安全策略将确保:以“更新”为起点以及以“Info”为结束的方法的任意使用或“SettingsField”对象的任意使用可以被控制以满足安全策略。切入点可以被包括在连同代码在一起的方面方法类型以解决安全策略。在这个示例中,伴随的代码可以检测“InstallNonMarketApps”访问并且在这种访问之后执行功能以恢复设置到合适值,其中该合适值不允许非市场app的安装。这可以通过使用“之后”类型装置在AspectJ中完成,从而调用实施代码的安全策略。
在实施例中,用于在移动计算中实施安全的方法和系统可以包括基于装置使用上下文来将数据同步至移动装置。
现代移动装置通常存储与远程系统(比如服务器)同步的数据。与远程系统相比,由于其有限的资源,通常存储在远程系统上的仅一部分数据图像被复制在移动装置上。这通常通过在两个系统之间传递递增的更新来完成。例如,用户电子邮件收件箱,被发送文件夹或其他存储的文件夹可以全部地存储在远程电子邮件服务器上,并且仅收件箱中的最近的25封电子邮件可以被存储在用户移动装置上。当用户将来自于装置的额外电子邮件作为草稿时或者在邮件服务器处接收到的新的电子邮件被推送至移动终端时,可以将驻留在移动装置上的电子邮件进行更新。当用户例如经由邮件服务器发送电子邮件时,在移动装置处作出的变化可以被记录在邮件服务器处。
以下描述的实施例可以通过智能地组织以及优先级考虑更高优先级数据的同步来解决与用于对移动装置上的数据进行同步的当前技术相关联的安全、带宽以及效率关注。在数据在两个计算系统之间被同步的系统中,比如服务器以及移动装置,当数据对计算系统中的一个有用时,仅对所述数据进行同步也许是更安全和更有效的(两者都是相对带宽和能量使用而言)。例如,当通过中央服务器将数据同步至移动装置时,当用户有效地使用数据或当数据是立即可用时且并不是当移动装置空闲时,该移动装置仅需要所述数据。
可以通过以不同的同步优先级限定数据的多个等级、限定和监测装置的上下文(比如装置是否空闲、用户是否尝试解锁装置、用户是否启动电子邮件服务等)以及基于现有等级以及系统上下文同步一个或多个等级的数据来解决这些安全和效率关注。
本公开的方法和系统可以有益于现有应用或能够生成新的应用,包括但不限于通信应用、比如聊天、共享、社交连网、接触管理、报文发送、电子邮件、网页浏览等;游戏和娱乐内容应用(视频游戏、音乐、视频内容、在线内容等);命令和控制应用和特征(操作系统控制、电话控制、禁止/安全数据访问控制等);企业IT管理应用,比如装置成像和装置擦拭;自动应用,比如导航、驱动支持和安全系统;以及高级安全工具、防病毒、固件集成、操作系统集成、引导程序加载器集成、防火墙、入侵检测系统以及入侵防御系统等。
参考图11,系统102、诸如移动装置、可以包括同步设施164,同步设施164可以经由网络104通过通信装置150与服务器1102通信,以使系统102上的同步数据158、160、130与服务器1102上的数据158、160、130同步。在一些实施例中,数据可以被分割为多个等级,比如高优先级数据158和低优先级数据160。同步设施164可以基于输入(比如来自系统102上的一个或多个来源的状态的变化)来发起一个或多个等级的数据的数据同步。例如,同步设施164可以基于来自于电力管理设施162的、指示出系统102正在被供电的输入来发起高优先级数据158的数据同步。在另一示例中,同步装置164可以基于来自于装置用户界面(UI)154的、指示出系统102的用户已经启动使用了低优先级数据160的应用110来发起低优先级数据160的数据同步。在仍然另一示例中,同步设施164可以发起策略数据(比如供策略引擎124使用的一个或多个策略130)的数据同步。
在实施例中,适应性同步可以包括适于使系统102上的同步设施164来确定何时来将多个等级的数据158、160和130B与服务器104上的数据进行同步。
在数据在两个计算系统(比如服务器1102和系统102)之间被同步的系统中,当数据对计算系统中的一个是有用时,仅对所述数据进行同步也许是有益的。例如,当通过中央服务器将数据同步至移动装置时,当装置用户有效地使用数据时或数据是立刻可用时,且不是当移动装置处于空闲时,装置可以仅需要数据。
在一个实施例中,用户与系统102的交互可以发起同步事件。与系统102的用户交互可以例如、为装置UI154的输入。装置UI154的输入可以为锁定系统102、解锁系统102、启动应用110、停止应用110、使用应用110、引导系统102、关闭系统102、向远程计算机发送信息、从远程计算机请求信息或一些其他输入等中的一个或多个。
在其他实施例中,可以由系统102或在系统102上执行的软件来发起同步事件。例如,当系统102的电池达到特定电荷时,电力管理装置162可以发起同步事件。
在一个实施例中,用户可以向装置UI154提供输入以锁定屏幕,并且基于该输入,同步设施164可以确定系统的状态(即用户不打算使用系统102一段时间)以及基于该状态,开始对系统102上的数据进行同步。
基于当前使用状态来调节数据同步进程也许是有益的,这是因为,比如当系统102显示被关闭时,这可以在低电力状态下允许系统102实现全部电力消耗益处,并且比如当系统102已经在使用时,来执行多个耗电量大的任务(比如网络操作)。
在一些实例中,限定多个等级的数据要在计算系统之间进行同步也许是必要的。一个等级可以为低优先级数据160。在一些实施例中,当装置是激活时,仅低优先级数据160可以被同步。可以在低优先级数据的等级中的数据类型可以包括例如个人电子邮件、推文、接触信息、音乐文件以及图像文件。
另一等级的数据可以是高优先级数据158。在一些实施例中,可以不管装置的当前使用状态而对高优先级数据158进行同步。在一些实施例中,可以存在附加等级的数据,比如中间优先级数据、中-低优先级数据、最高优先级数据、以及其他等级的数据。可以在高优先级数据的等级中的数据类型可以包括例如、机密商业电子邮件、文本消息、语音电子邮件通知、擦拭装置上的数据的指令以及分类数据。
在实施例中,被同步的数据可以为策略数据、比如用于策略引擎118的策略130,其中,该策略引擎118可以使用策略数据来控制系统102的方面或特征。
策略引擎118可以生成装置特定的上下文,其可以包括当前日期和当前时间、装置位置、装置用户的身份以及其他上下文相关的数据中的一个或多个。在一些实施例中,策略引擎118可以连接至服务器1102(比如策略服务器106),其中服务器1102可以将作为策略数据的一个或多个策略130推送至策略引擎118。
策略引擎118可以被用于在系统102上实施一个或多个安全策略。在一些实施例中,策略数据可以包括用于策略引擎118来使系统102失去功能的策略130。例如,策略130可以包括当策略引擎124确定出系统102位于禁止照相机152使用的建筑物(比如研究实验室)中时使照相机152失去功能的规则。在其他实施例中,策略数据可以包括用于策略引擎118来使系统102执行操作(比如擦除在系统102上存储的内容)的策略130。例如,策略130可以包括当系统用户为未被授权用户或响应来自于丢失系统102的授权用户的指令时用于擦拭系统102上的所有存储器的规则。在实施例中,当系统102在高电力状态时,使照相机152失去功能的策略130、例如可以仅需要被同步,因为照相机152无论如何不能被用在低电力状态中。然而,在被盗窃的或妥协的系统102的情形中,有必要立即(而不是当系统102去进行交互时)擦除存储在系统102上的任意敏感数据。
在另外实施例中,数据同步策略可以取决于接收计算系统的上下文。例如,当事件发生在系统102上时,比如当应用110被启动或停止时,同步设施164可以发起数据同步。在策略同步示例中,当非受信应用110被发起在系统102上时,计算系统之间的策略130的同步可以被触发。在实施例中,基于系统的电力使用状态和/或基于其他考量,可以在系统102和服务器1102之间进行数据同步。在实施例中,同步可以基于在此处被独立描述的或被一起描述的各种考量。
可以通过调节同步条件来或多或或少复杂地完成同步。例如,同步设施164可以仅使用网络104,同时系统102是激活的并且网络104的网络连接是空闲的。在另一示例中,同步设施164可以仅使用网络104,同时系统102是激活的并且在一个特定地理定位中。在仍然另一示例中,同步设施164可以仅使用网络104,同时系统102是激活的并且用户已经允许同步。
在实施例中,用于在移动计算中实施安全的方法和系统可以包括保护移动装置与另一装置之间的短程通信从而安全地提供位置和商业识别信息。保护这种通信可以提供除客户识别信息之外的客户位置信息。一些实施例还可以使用通过进程间通信机制(IPC)发送的特定事件来安全地在装置上触发应用的执行。
参考图12,系统102可以包括位置感知设施1210,该位置感知装置1210可以适于经由网络104通过通信装置150来发送和接收传输。这种传输可以包括来自于一个或多个短程邻近无线电1218A-C的短程信息。这种传输还可以包括至及来自于商业服务器1216的信息。位置感知设施1210可以经由IPC设施1212给信息提供一个或多个应用。在一些实施例中,IPC设施1212可以为IPC母线132。在一些实施例中,应用进程1214A可以响应于由位置感知设施1210提供的信息来将表示商业位置变化的事件经由IPC设施1212发射至第二应用进程1214B。第二应用进程1214B可以被动态地发起以执行来自于应用的逻辑。
商业服务器1216可以为商业系统1204的一部分,其可以将数据发送至系统102从而确定系统102的位置和/或基于装置102的位置来向系统102提供信息。
提供安全的短程邻近信号可以包括系统102,其中,装置102包括位置感知设施1210和通信设施150;以及提供基于系统102的位置来向系统102提供信息的商业系统1204,其中商业系统1204可以包括用于识别系统102的位置的一个或多个短程邻近无线电1218A-C,以及用于提供信息的商业服务器1216。在实施例中,短程邻近无线电1218A可以被使能发射唯一信号,该唯一信号可以由位置感知设施1210来使用以识别装置的位置。
系统102可以为移动电话、平板电脑、个人数字助理、手表、便携式电脑、或一些其他装置。系统102可以具有一个或多个应用执行。在一些实施例中,应用可以执行在一个或多个进程1214A-B中。进程1214A-B可以连接到进程间通信设施1212以促进一个或多个进程1214A-B之间、以及一个或多个进程1214A-B和位置感知设施1210之间的通信。在一些实施例中,进程间通信设施1212可以为实施了管理两个子系统之间的通信的规则的进程间通信防火墙144。
本公开的方面是可以表示进入或从商业位置离开的Wi-Fi、蜂窝、蓝牙、或蓝牙低能耗(蓝牙LE)网络事件的使用,可以能够通过进程间通信设施1212发送事件以自动触发包含在进程1214A和/或1214B中运行的应用中的逻辑的执行。表示商业位置变化的这种网络事件可以被产生在第一进程1214A中,通过进程间通信设施1212来发射,并且随后被递送至第二进程1214B,其中该第二进程1214B被动态地发起以执行来自于商业辅助应用的逻辑。公开的方面允许商业商业辅助应用的代码被动态地加载到存储器中并且对网络事件来执行,比如具有进入到范围中的特定Wi-FiSSID,其可以表示商业位置已经被进入或离开。一旦这个应用代码被加载到存储器中,则应用可以通过完成以下一个或多个来与系统102的用户进行交互:1.)基于用户在商业中的位置和其购买历史来使用商业逻辑以设计和呈现个性化折扣,2.)提供用于从代表商店的客户请求帮助的机制,3.)提供一个或多个个性化的广告,以及4.)提供帮助和/或方向至具体产品。
位置感知设施1210可以适于经由网络104通过通信设施150来发送和接收传输。位置感知设施1210可以使用GPS位置。位置感知设施1210可以访问存储的位置数据的数据库,比如在连接到网络的装置或IP地址的位置上的数据。位置感知设施1210可以使用混合定位系统,比如使用(比如来自于多个短程邻近无线电1218A-C的)信号的三边测量、多边测量或三角测量;无线互联网信号、蓝牙传感器;和/或用于识别系统102位置的一些其他定位系统。
通信设施150和网络104之间的传输可以利用一个或多个短程邻近信号,比如但不限于蜂窝、蓝牙、蓝牙LE、近场通信、RFID,Wi-Fi,以及超声波。传输可以包括来自于一个或多个短程邻近无线电1218A-1218C的短程邻近信息。这种传输还可以包括与系统102的位置相关联和/或来自于商业服务器1216的信息。例如,信息可以包括客户忠诚信息、商店信息、商店导航信息、购买信息、优惠券、条形码扫描信息、产品信息、购物信息、浏览信息(比如为了产品)、购物车信息,和/或其他商业辅助信息。
商业服务器1216可以为商业系统1204的一部分。在一些实施例中,商业服务器1216可以包括位置计算器1220、商业操作系统1222、广告操作系统1224以及一个或多个其他操作系统1226。位置计算器1220可以响应于与客户系统102相关联的数据以及经由一个或多个短程邻近无线电1218A-1218C接收到的信息来识别客户系统102的位置。广告操作系统1224可以基于由位置计算器1220识别的位置来识别待被递送到客户系统102的广告。商业操作系统1222可以响应于由位置计算器1220识别的客户系统102的位置来处理商业交易。例如,位置计算器1220可以识别出客户装置位于用于出售的一些饼干的端盖的前方。在相同示例中,响应于由位置计算器1220的识别,广告操作系统1224可以向客户系统102递送用于饼干的优惠券。继续这个相同示例,响应于由为位置计算器1220的相同识别,商业操作系统1222可以投射出:基于售卖给已经位于相同位置中的人的饼干的比率,商店应该提交更多个饼干的订单。在另一示例中,响应于由位置计算器1220的识别,商业操作1222可以基于客户人口统计学来产生日期/时间具体的建议/暗示。其他操作系统1226可以为其他系统,比如但不限于账单打印、安全、CRM或其他系统。
当前公开的方面是短程邻近信号可以发射依赖时间的密码、身份、和/或会话数据,其中系统102可以收集并且使用所述密码、身份、和/或会话数据以将其位置经由一个或多个消息指示给商业服务器1216。系统102可以直接发射通过短程邻近信号接收的数据至商业服务器1216以指示位置,或者使用该数据来创建系统102可以将其发送至商业服务器1216的衍生数据。这种衍生数据可以为密码式哈希,签名或其它数据。
用于保护装置的方法和系统可以包括通过使用基于装置的上下文感知策略引擎来过滤对装置源的访问从而实施涉及数据的起源的策略。这种方法和系统可以与用于解决恶意软件威胁的方法和系统相关联。这种方法和系统可以通过提供装置上的进程间通信防火墙来实施管理两个系统之间的通信的规则来进一步与用于在移动网络中实施分布式策略的方法和系统相关联。例如,可以提供一种装置,在其中,数据的起源和/或应用在对装置进行安装/执行/存储之前必须被证明。如果一些数据和/或应用的起源可能不被证明的话,则IPC防火墙可以阻止数据和/或应用的安装/执行/存储。附加地,IPC防火墙可以记载数据和/或应用用于传播通过系统的路径。这种路径信息可以由装置或另外系统来使用以提供这种起源或确定出数据可能被破坏或是系统妥协的结果,比如恶意软件感染。
用于通过在装置上提供进程间通信防火墙来实施管理两个系统之间的通信的规则从而在移动网络中实施分布式策略的方法和系统可以与其他方法和系统相关联。例如,这种方法和系统可以与用于经由面向方面编程来保护装置的方法和系统相关联。例如,IPC防火墙可以通过追踪所谓的方法和通过IPC防火墙的有效载荷来被用于确定当前系统的方面。附加地,基于检测到的新系统方面,新的IPC防火墙的规则的修改或配置可以发生以改变系统的行为。
附加地,方法和系统的更复杂的结合也许是有用的。例如并且如上所述,用于保护装置的方法和系统可以包括通过使用基于装置的上下文感知策略引擎来过滤对装置源的访问以实施涉及数据的起源的策略,并且可以与通过在装置上提供进程间通信防火墙来实施管理两个系统之间的通信的规则以在移动网络中实施分布式策略的系统和方法相关联以及与解决恶意软件威胁的方法和系统相关联。前述方法和系统可以进一步与用于对本地代码的加载、链接、以及执行来实施分布式策略的方法和系统相关联,以及与用于经由面向方面编程来保护装置的方法和系统相关联。通过示例,监视内容和/或IPC机制的使用的解决方案可以基于当前方面来确定出装置是否已经受到损害(比如感染恶意软件)。这种解决方案可以通过检查数据起源来确定数据传输的来源和路径(这可以表示恶意软件感染)以监视装置。这种示例性解决方案还可以使用表示行为的恶意软件的检测来使当前方面变化、从装置擦拭数据,或者采用用于数据渗漏或附加恶意软件感染的其他预防性措施。这种新方面可以包括自动步骤以修复检测到的威胁,比如实施安全策略以移除已经被确定出潜在地包括恶意软件的应用。附加地,新方面可以包括防止附加感染的步骤,比如防止本地代码的执行或其他IPC防火墙规则的安装。
类似的结合可以将保护装置的方法和系统(可以包括通过使用基于装置的上下文感知策略引擎来过滤对装置源的访问以实施涉及数据的起源的策略)与用于通过在装置上提供进程间通信防火墙来实施管理两个系统之间的通信的规则以在移动网络中实施分布式策略的方法和系统相关联。这种结合可以进一步与用于对本地代码的加载、链接、和执行来实施分布式策略的方法和系统、用于使用信任处理器区域来改善移动装置安全的方法和系统、以及与经由面向方面编程保护装置的方法和系统相关联。例如,可以利用存储在装置的受信平台模块(TPM)中的证书来对装置上的所有受信软件和应用进行签名。在不能利用源于TPM的证书对软件进行校验的情形时,则方面可以被改变以使得预防性措施可以起到效果。这种预防性措施可以包括防止本地代码链接、加载、和/或执行。在这个示例中,IPC防火墙可以记录通信量,其可以利用存储在TPM中的证书来对通信量进行签名。访问TPM可以由IPC防火墙来仲裁,因为任意数据可以被传递以存储在TPM中或从TPM检索。当确定待被授权的访问的级别时,这种仲裁可以考虑系统的当前方面。
用于保护装置的方法和系统可以包括通过使用基于装置的上下文感知策略引擎来过滤对装置源的访问以实施涉及数据的起源的策略。这种方法和系统可以与用于在越狱的移动装置上实施关于特权代码执行的安全和访问控制策略的方法和系统、用于经由面向方面编程来保护装置的方法和系统、以及用于保护多个装置之间的短程通信的方法和系统一起相关联。通过示例,解决方案可以包括基于从附近基于接近的信标的传输接收到的密码标识令牌来设置用户的特权级别。当这种在物理上接近短程邻近信号时,这种令牌或其他数据可以仅被接收到。通过使用经由短程传输接收到的密码标识令牌通过授权使得近程地或远程地存储在后台服务器上的数据可以仅仅是可访问的。密码标识令牌可以被用于创建签名,该签名确定地将数据起源链接至合适的用户。可以基于由短程邻近信号创建者产生和发射的密码标识令牌的校验和检测到的存在来使系统的方面变化,或者一旦完成成功的验证则基于从远程后台服务器接收到的数据来使系统的方面发生改变。
用于在越狱的移动装置上来实施关于特权代码执行的安全和访问控制策略的方法和系统、用于经由面向方面编程来保护装置的方法和系统、以及用于保护多个装置之间的短程通信的方法和系统可以与其他方法和系统相关联并且相结合。例如,这种方法和系统可以与用于在移动计算中实施安全的方法和系统相关联,可以包括基于装置使用的上下文将数据同步至移动装置。例如,当装置接近短程信号发射器时,数据同步可以发生。在这个示例中,发射到移动装置的证书可以被用于验证远程后台服务器。一旦这个验证完成,则移动装置的方面可以发生变化,以使得安全和特权数据可以在移动装置与服务器之间进行同步。这个进程还可以利用存储在TPM中的证书以解码从远程后台服务器接收到的数据。需要完成这个解码的证书可以不同于从短程信号发射器接收到的证书从而对远程后台进行验证并且如果针对当前方面来对特权的访问进行授权,则证书可以仅是可访问的。
虽然仅本发明的一些实施例已经被显示和描述,但对本领域技术人员显而易见的是可以作出一些变化和修改并不脱离如以下权利要求中描述本发明的精神和保护范围。所有专利申请和专利、国外的和国内的,以及此处参考的其他所有出版物通过方式将它们的法律允许的内容全部并入本文本中。
此处描述的方法和系统可以通过机器被部分地或全部使用,其中,该机器执行计算机软件、程序代码,和/或处理器上的指令。本发明可以在机器上被实施为方法、被实施为机器的一部分的系统或装置或与机器相关的系统或装置、或被实施为体现在计算机可读介质中(执行在一个或多个机器上)的计算机程序产品。在实施例中,处理器可以为服务器、云服务器、客户端、网络架构、移动计算平台、固定计算平台或其他计算平台的一部分。处理器可以为能够执行程序指令、代码或二元指令等的任意类型的计算或处理装置。处理器可以为或包括信号处理器、数字处理器、嵌入式处理器、微处理器或诸如协同处理器(数学协同处理器、图形协同处理器或通信协同处理器)的、可以直接或间接促进存储在其上的程序代码或程序指令的执行的任意变体。此外,处理器可以能够执行多个程序、线程、和代码。线程可以被同时执行以增强处理器的性能以及促进应用的同时操作。通过实施方式,此处描述的方法、程序代码或程序指令可以被实施在一个或多个线程中。线程可以产生可以分配与它们相关的优先级的其他线程;处理器可以基于优先级或以提供在程序代码中的指令为基础的任意其他命令来执行这些线程,处理器、或使用该处理器的任意机器可以包括存储此处以及其他地方描述的方法、代码、指令和程序的存储器。处理器可以通过界面来访问可以存储此处以及其他地方描述的方法、代码以及指令的存储介质。与处理器相关联以存储方法、程序、代码、程序指令或能够由计算或处理装置来执行的其他类型指令的存储介质可以包括但也可以不限于CD-ROM、DVD、存储器、硬盘、闪存、RAM、ROM和缓存存储器等。
处理器可以包括可以增强多传感器的速度和性能的一个或多个核。在实施例中,进程可以为双核处理器、四核处理器、其他芯片级多处理器以及将两个或多个独立的核结合在一起(称为冲模)的处理器等。
此处描述的方法和系统可以通过机器被部分地或全部使用,该机器在服务器、客户端、防火墙、网关、集线器、路由器或其他这种计算机和/或网络硬件上来执行计算机软件。软件程序可以与以下服务器相关联,该服务器可以包括文件服务器、打印服务器、域名服务器、因特网服务器、内联网服务器、云服务器以及其他变体(比如二次服务器、主机服务器和分布式服务器等)。服务器可以包括存储器、处理器、计算机可读介质、存储介质、端口(物理的虚拟的)、通信装置以及能够通过有线或无线介质访问其他服务器、客户端、机器和装置的界面中的一个或多个。此处和其他地方描述的方法、程序或代码可以由服务器来执行。此外,为执行如在申请中描述的方法的其他装置所需的其他装置可以被视为与服务器相关联的架构的一部分。
服务器可以向其他装置提供界面,其他装置包括但不限于客户端、其他服务器、打印机、数据库服务器、打印服务器、文件服务器、通信服务器、分布式服务器或社交网络。此外,这个耦合和/或连接可以促进跨网络的程序的远程执行。一些或所有这些装置的网络可以促进在一个或多个位置处的程序或方法的平行处理,而没有背离本公开的保护范围。此外,通过界面附接至服务器的任意一个装置可以包括能够存储方法、程序、代码和/或指令的至少一个存储介质。中央存储库可以提供待被执行在不同装置上的程序指令。在这个实施方式中,远程存储库可以用作为用于程序代码、指令和程序的存储介质。
软件程序可以与客户端相关联,该客户端可以包括文件客户端、打印客户端、域名客户端、因特网客户端、内联网客户端和其他变体(比如二次客户端、主机客户端或分布式客户端)。客户端可以包括存储器、处理器、计算机可读介质、存储介质、端口(物理的或虚拟的)、通信装置或能够通过有线或无线介质访问其他客户端、服务器、机器和装置的界面中的一个或多个。此处和别的地方描述的方法、程序、或代码可以由客户端开执行。此外,为执行如在本申请中描述的方法而所需的其他装置可以被视为与客户端相关联的架构的一部分。
客户端可以向其他装置提供界面,其他装置包括但不限于服务器、其他客户端、数据库服务器、打印服务器、文件服务器、通信服务器或分布式服务器。此外,这个耦合和/或连接可以促进跨网络的程序的远程执行。一些或所有这些装置的网络可以促进在一个或多个位置处的程序或方法的平行处理,而没有背离本公开的保护范围。此外,通过界面附接至客户端的任意一个装置可以包括能够存储方法、程序、代码和/或指令的至少一个存储介质。中央存储库可以提供待被执行在不同装置上的程序指令。在这个实施方式中,远程存储库可以用作为用于程序代码、指令和程序的存储介质。
此处描述的方法和系统可以通过网络架构被部分地或全部地应用。网络架构可以包括元件,比如计算装置、服务器、路由器、集线器、防火墙、客户端、个人电脑、通信装置、路由装置以及其他有源器件和无源器件、模块和/或本领域知晓的组件。与网络架构相关联的计算和/或非计算装置可以包括除其他组件之外的存储介质、比如闪存、缓冲器、堆栈、RAM或ROM。在此处以及其他地方描述的进程、方法、程序代码、指令可以由一个或多个网络架构元件来执行。此处描述的方法和系统可以适于与任意类型的私人的、公共的、社会的、或混合云计算网络或云计算环境一起使用,包括包含作为服务的软件的特征(SaaS)、作为服务的平台(PaaS)、和/或作为服务的架构(Iaas)的那些网络。
此处和别的地方描述的方法、程序代码和指令可以被实施在具有多个电芯的蜂窝网络上。蜂窝网络可以为频分多址(FDMA)网络或码分多址(CDMA)网络。蜂窝网络可以包括移动装置、电芯地址、基站、转发器、天线或塔。电芯网络可以为GSM、GPRS、3G、EVDO、网状网络或其他网络类型。
此处和别的地方描述的方法、程序代码和指令可以被执行在或通过移动装置来执行。移动装置可以包括导航装置、行动电话、移动个人数字助理、便携式电脑、掌上电脑、笔记本、寻呼机、电子书阅读器或音乐播放器。这些装置可以包括除了其他组件之外的存储介质,比如闪存存储器、缓冲器、RAM、ROM、以及一个或多个计算装置。与移动装置相关联的计算装置可以能够执行程序代码、方法,和存储在其上的指令。可选地,移动装置可以构造为与其他装置一起合作来执行指令。移动装置可以与基站通信,所述基站与服务器对接并且构造为执行程序代码。移动装置可以在对等网络上、网状网络或其他通信网络上进行通信。程序代码可以被存储在与服务器相关联的存储介质上并且由嵌入在服务器内的计算装置来执行。基站可以包括计算装置和存储介质。存储装置可以存储程序代码和由与基站相关联的计算装置执行的指令。
计算机软件、程序代码、和/或指令可以被存储在机器可读介质上和/或在机器可读介质上被访问,机器可读介质可以包括:计算机组件、装置、以及保留用于针对一些时间间隔进行计算的纪录介质;被称为随机存储区存储器(RAM)的半导体存储器;用于更永久存储的海量存储器,比如光盘、像硬盘一样的磁存储器、带子、鼓、卡片和其他类型;处理器寄存器、高速缓冲存储器、易失性存储器、非易失性存储器;光存储器、比如CD、DVD;可移除介质,比如闪存存储器(比如USB棍或钥匙)、软盘、磁带、纸带、穿孔卡片、独立的RAM、ZIP驱动器、可移除海量存储器或脱机;其他计算存储器、比如动态存储器、静态存储器、读/写存储器、可变存储、只读、随机访问、序列访问、可设定地址的位置、可设定地址的文件、可设定地址的内容、网路附接存储器、存储区域网络、条形码和磁性墨水等。
此处描述的方法和系统可以将物理的和/或无形的条目从一个状态转换为另一个状态。此处描述的方法和系统还可以将代表物理的和/或无形的条目的数据从一个状态转换为另一个状态。
此处描述和描绘的、贯穿附图将流程图和方块图包括在内的元件暗示了两个元件之间的逻辑边界。然而,根据软件或硬件工程实践、描绘的元件和其函数可以通过计算机可执行介质被实施在机器上,其中,计算机可执行介质具有处理器,该处理器能够将存储在其上的程序指令作为单片软件结构、作为独立软件模块、或作为使用外部路由、代码、服务等的模块,或它们的任意结合,所有这一类的实施方式可以在本公开的范围内。这种机器的示例可以包括但可以不限于个人数字助理、便携式电脑、个人计算机、移动电话、其他手持计算装置、医疗装备、有线或无线通信装置、换能器、芯片、计算器、卫星、平板电脑、电子书、小器件、电子装置、具有人工智能的装置、计算装置、网络装备、服务器或路由器。此外,在流程图和方块图中描绘的元件或者任意其他逻辑组件可以被实施在能够执行程序指令的机器上。因此,虽然前述附图和说明书提出公开的系统的方面,但没有用于实施例这些功能方面的软件的特定设置应该从这些说明推断出,除非明确的陈述或其他明显来自于上下文。类似地,应该注意的是,上述被识别和描述的多个步骤可以变化,并且步骤的顺序可以适于此处描述的技术的特定应用。所有变化和修改旨在落入本公开的保护范围。如此,多种步骤的顺序的描绘和/或描述不应该被理解为需要用于这些步骤的执行的特定顺序,除非由特定应用来需要,或者明确地陈述或清晰从上下文得到。
彼此相关联的上述的方法和/或进程以及步骤可以在硬件、软件或适用于特定应用的硬件与软件的结合中来实现。硬件可以包括通用计算机和/或专用计算装置或具体计算装置或具体计算装置的特定计算方面或组件。进程可以被实现在一个或多个带有内部或外部存储器的微处理器、微控制器、嵌入式微控制器、可编程数字信号处理器或其他可编程装置。进程还可以代替地嵌入在应用具体的集成电路、可编程网关阵列、可编程阵列逻辑或可以构造为处理电子信号的任意其他装置或装置的结合中。还应该注意的是,一个或多个进程可以被实现为能够被执行在机器可读介质上的计算机可执行代码。
可以通过使用结构化可编程语言(比如C)、面向对象可编程语言(比如C++)或任意其他高级或低级可编程语言(包括汇编语言、硬件描述语言、以及数据库编程语言和技术)来创建计算机可执行代码,这些语言可以被存储、编译或解释以运行在上述装置的一个或多个上,以及可以为处理器、处理器体系结构的不同类结合、或不同硬件和软件的结合、或能够执行程序指令的任意其他机器。
因此,在一个方面,当计算机可执行代码执行在一个或多个计算装置上时,上述的方法及其结合可以被应用在执行其步骤的计算机可执行代码中。在另一方面,方法可以被应用在执行其步骤的系统中,以及可以以多种方式跨装置进行分布,或者所有功能性可以被集成在贡献的、独立的装置中或其他硬件中。在另一方面,用于执行与上述进程相关联的步骤的手段可以包括上述任意的硬件和/或软件。所有这些改变和结合旨在落入本发明保护范围。
虽然公开的内容连同被详细显示和描述的优选实施例一起被公开了,但多种改变和及其改进对本领域技术人员而言变得显而易见。相应地,本公开内容的精神和保护范围并非由前述示例来限制,而是理解为由法律所容许的最宽泛的含义。
在描述公开内容(尤其是伴随权利要求的上下文中)的上下文中的术语“一个”、“一种”和“所述”以及类似的指示物被构造为覆盖单数和复数,除非在此处另外地指示出或由上下文清晰地产生矛盾。术语“包括”、“具有”以及“包含”被构造为开放式术语(即表示包括但不限于),除非另有指定除外。此处值的范围的引用仅仅旨在用作为将个体引用落入本发明保护范围的每个离散值的速记方法,除非另外在此处指定。,并且每个离散值被纳入到说明书中,好像其被个体地此处引用一样。可以以任意适合的顺序来执行此处描述的所有方法,除非另外在此处指出或由上下文清晰地产生矛盾。此处提供的任意和所有示例或示例性语言(诸如“比如”)的使用仅仅旨在更好地阐述公开的内容并且不对公开的内容施加限制,除非另外要求。在说明说中没有语言被用作为将任意不要求保护的元素指示为对于公开的内容的实践是必要的。
虽然前述书写的说明书能够使得本领域技术人员利用和使用被认为是其展示的最佳模式,但本领域技术人员应该理解和注意变体的存在、结合、以及此处的具体实施例、方法和示例的等同体。公开的内容应该因此并非由上述描述的实施例、方法和示例来限定、而是由落入本公开内容的保护范围和精神的所有实施例和方法来限定。
此处引用的所有文件通过参考方式并入本文本中。

Claims (19)

1.一种用于增强移动装置安全的方法,所述方法包括:提供在所述移动装置的处理器上执行的安全策略代码;由面向方面编程来修改进程代码以许可所述安全策略代码控制对被修改的进程代码的访问;并且由所述安全策略代码将安全策略施加到被修改的进程代码。
2.根据权利要求1所述的方法,其中,在处理器上执行的所述安全策略代码为多线程安全策略代码。
3.根据权利要求1所述的方法,其中,所述被修改的进程代码是:应用编程接口、系统库和操作系统中的至少一个。
4.根据权利要求1所述的方法,其中,所述被修改的进程代码包括在所述移动装置的至少一个进程上执行的多个被修改的进程代码。
5.根据权利要求1所述的方法,其中,将安全策略施加到被修改的进程代码包括:使用进程间通信将所述安全策略分布至所述被修改的进程代码。
6.根据权利要求1所述的方法,其中,将安全策略施加到被修改的进程代码包括:将面向方面的安全技术施加到与所述被修改的进程代码相关的方法、功能和服务中的至少一个的安全调用。
7.根据权利要求1所述的方法,其中,修改进程代码包括:修改对象类来在面向对象的方法执行之前、之后以及其间的一个或多个中调用代码的特定段。
8.根据权利要求1所述的方法,其中,修改进程代码包括以下一个或多个:Java动态代理;施加到方法、服务、系统或其他函数调用中的一个或多个的拦截器;将类别加载到虚拟机中以改变它们默认行为的修改;二进制代码补丁;以及对方法调度表进行的以改变用于特定函数或方法的代码执行的修改。
9.根据权利要求1所述的方法,其中,将安全策略施加到被修改的进程代码包括:使用上下文信息来改变如何施加所述安全策略。
10.根据权利要求9所述的方法,其中,所述上下文信息包括以下一个或多个:地理信息、加速计信息、相机信息、麦克风信息、无线网络信息、应用使用信息、用户交互信息、运行进程信息、磁盘状态信息、邻近无线信号/网络信息、与外部装置的配对状态有关的信息、有关被访问的网站的信息、装置网络流量信息、电池电平信息、以及有关驻留在装置上的数据类型的信息。
11.根据权利要求1所述的方法,其中,所述安全策略是多个安全策略。
12.根据权利要求1所述的方法,其中,所述方法还包括追踪哪些进程被施加了面向方面的安全。
13.根据权利要求12所述的方法,其中,所述追踪是集中式追踪、分布式追踪或集中式追踪和分布式追踪的混合组合中的一个。
14.根据权利要求1所述的方法,其中,所述方法还包括确定面向方面安全编程可以被施加到哪些进程。
15.根据权利要求1所述的方法,其中,所述安全策略包括非面向方面编程逻辑和面向对象编程逻辑。
16.一种用于增强移动装置安全的系统,包括:处理器,其能够提供移动装置的上下文、策略引擎、至少一个第一进程,其中所述第一进程用至少一个API来执行进程代码,和至少一个第二进程,其中所述第二进程用至少一个API来执行进程代码并且所述第二进程具有经由面向对象编程而施加至其的至少一个安全策略,其中所述面向对象编程被施加至所述第二进程的进程代码以修改所述代码从而允许所述至少一个安全策略被施加;以及能够与所述策略引擎、第一进程和第二进程通信的至少第一进程间通信机制和第二进程间通信机制,其中,所述第一进程间通信机制能够与所述策略引擎和第二进程通信;并且所述第二进程间通信机制能够与所述第一进程间通信机制和第一进程通信。
17.根据权利要求16所述的系统,其中,所述通信引擎能够经由所述第一进程间通信机制从策略管理设施接收至少一个安全策略。
18.根据权利要求17所述的系统,其中,所述策略管理设施能够存储至少一个安全策略设施商店。
19.根据权利要求16所述的系统,其中,所述移动装置的上下文包括:与所述移动装置的环境、移动装置的用户、移动装置的进程以及移动装置连接至其的网络相关联的信息。
CN201480053557.XA 2013-07-26 2014-07-23 用于经由面向方面编程来增强移动安全的系统和方法 Pending CN105745896A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/951,689 2013-07-26
US13/951,689 US20130312058A1 (en) 2012-01-06 2013-07-26 Systems and methods for enhancing mobile security via aspect oriented programming
PCT/US2014/047826 WO2015013410A2 (en) 2013-07-26 2014-07-23 Systems and methods for enhancing mobile security via aspect oriented programming

Publications (1)

Publication Number Publication Date
CN105745896A true CN105745896A (zh) 2016-07-06

Family

ID=52393969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480053557.XA Pending CN105745896A (zh) 2013-07-26 2014-07-23 用于经由面向方面编程来增强移动安全的系统和方法

Country Status (4)

Country Link
KR (1) KR20160039234A (zh)
CN (1) CN105745896A (zh)
CA (1) CA2954984A1 (zh)
WO (1) WO2015013410A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2539199B (en) * 2015-06-08 2018-05-23 Arm Ip Ltd Apparatus and methods for transitioning between a secure area and a less-secure area
KR101778960B1 (ko) 2016-01-19 2017-09-19 명지대학교 산학협력단 모바일 단말의 보안 감시 시스템 및 이를 이용한 모바일 단말의 보안 감시 방법
US10262020B2 (en) 2016-02-11 2019-04-16 Adp, Llc Method for effective dating object models
KR101930056B1 (ko) * 2016-11-10 2019-03-15 한국전자통신연구원 보안 정책을 지원하는 단말 관리 방법 및 장치
CN107438078B (zh) * 2017-08-17 2020-11-03 四川长虹电器股份有限公司 一种应用安全防护系统及方法
CN108334775B (zh) * 2018-01-23 2022-09-23 创新先进技术有限公司 一种越狱插件检测方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769305B2 (en) * 2011-03-21 2014-07-01 Moncana Corporation Secure execution of unsecured apps on a device
US8695060B2 (en) * 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
WO2013103989A1 (en) * 2012-01-06 2013-07-11 Optio Labs, LLC Systems and meathods for enforcing secutity in mobile computing
US20130312058A1 (en) * 2012-01-06 2013-11-21 Optio Labs, Inc. Systems and methods for enhancing mobile security via aspect oriented programming

Also Published As

Publication number Publication date
CA2954984A1 (en) 2015-01-29
KR20160039234A (ko) 2016-04-08
WO2015013410A3 (en) 2015-05-28
WO2015013410A2 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
CN105531692A (zh) 针对由在虚拟机里面运行的移动应用加载、链接和执行本地代码的安全策略
US9787681B2 (en) Systems and methods for enforcing access control policies on privileged accesses for mobile devices
US9773107B2 (en) Systems and methods for enforcing security in mobile computing
US10986122B2 (en) Identifying and remediating phishing security weaknesses
US9712530B2 (en) Systems and methods for enforcing security in mobile computing
US20130312058A1 (en) Systems and methods for enhancing mobile security via aspect oriented programming
US20140157355A1 (en) Systems and methods for enhancing mobile device security with a processor trusted zone
Mylonas et al. Smartphone security evaluation the malware attack case
CN105745896A (zh) 用于经由面向方面编程来增强移动安全的系统和方法
CN103548320A (zh) 不安全应用在装置上的安全执行
US8782782B1 (en) Computer system with risk-based assessment and protection against harmful user activity
Bhardwaj Ransomware: A rising threat of new age digital extortion
Liebergeld et al. Android security, pitfalls and lessons learned
Choi et al. Personal information leakage detection method using the inference-based access control model on the Android platform
Leguías Ayala et al. Emerging threats, risk and attacks in distributed systems: Cloud computing
CN109997138A (zh) 用于检测计算设备上的恶意进程的系统和方法
Peddoju et al. File integrity monitoring tools: Issues, challenges, and solutions
CN105659247A (zh) 上下文感知前摄威胁管理系统
WO2015138931A1 (en) Systems and methods for enforcing security in mobile computing
Zhang et al. A small leak will sink many ships: Vulnerabilities related to mini-programs permissions
Jeong et al. SafeGuard: a behavior based real-time malware detection scheme for mobile multimedia applications in android platform
Egners et al. Hackers in your pocket: A survey of smartphone security across platforms
Muttik Securing mobile devices: Present and future
Liu et al. TZEAMM: An Efficient and Secure Active Measurement Method Based on TrustZone
Küçük et al. CRC: Fully General Model of Confidential Remote Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160706

WD01 Invention patent application deemed withdrawn after publication