CN103548320B - 不安全应用在装置上的安全执行 - Google Patents
不安全应用在装置上的安全执行 Download PDFInfo
- Publication number
- CN103548320B CN103548320B CN201280024770.9A CN201280024770A CN103548320B CN 103548320 B CN103548320 B CN 103548320B CN 201280024770 A CN201280024770 A CN 201280024770A CN 103548320 B CN103548320 B CN 103548320B
- Authority
- CN
- China
- Prior art keywords
- application
- safety
- strategy
- dangerous
- perform
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/54—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/37—Managing security policies for mobile devices or for controlling mobile applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Telephone Function (AREA)
- Information Transfer Between Computers (AREA)
Abstract
预先为装置部署应用安全机制,以确保下载到装置上的应用不会给装置造成数据丢失、数据泄露或其他损害。用户能够开始以常规或典型方式使用装置并下载应用,并确信正在采取安全措施使不安全和安全应用的潜在损害最小化。应用安全施行层或引擎与,例如装置上的类型2系统管理程序合作,确保应用对装置操作系统的任何调用一般是安全的。可以采取诸如增强或修改调用,使调用模糊或终止应用的措施来保护操作系统。这些动作是基于策略采取的,可以由施行引擎相对于应用执行对策略进行解释或编译。安全措施对于装置用户而言一般是透明的。
Description
技术领域
本发明涉及软件以及移动装置。更具体地说,它涉及保护、控制以及管理诸如手机、电视、汽车以及其他新兴智能装置类别的装置上的应用的安全。
背景技术
正如现在计算、手机及智能手机行业所知的那样,出现了一种新的计算范式,它是由现在作为手持或移动装置应用为人所知的软件应用的增殖所驱动的。这种增殖与智能手机以及平板电脑的消费者使用程度有直接关系。目前一些企业正在创造他们自己独一无二的应用,并把它们分配给员工、顾客及合作伙伴。目前一些公司在编写他们自己的应用,以提供给他们的员工以及合作伙伴使用。然而,随着这种发展,出现了另一个问题,即这些应用在手机装置上的安全与管理。应用可能对手持装置造成巨大损害,可能造成数据丢失或数据意外传输。它们会使装置变得脆弱,并对使用者造成安全威胁。
传统的反病毒方法,例如MyLookOut提供的方法,不能消除手机装置上的应用所造成的损害。虽然应用的黑名单在部分程度上足以保护装置(不仅仅是要被下载的列表上的应用),但如果有办法遏制受恶意软件感染的应用对装置造成的损害,情况将会更好。如果不需要改变装置操作系统软件的核心,那这将会是优选的。如果应用的作者不需要在安全编程领域接受培训,或不需要在编写应用时为安全起见写一些特别的或定制的东西,那也是优选的——应用的作者应该能够像他们当前所做的那样继续编写应用。如果装置被销售出去或部署了集成到装置功能中的应用安全机制,并且在装置上采取的任何应用安全措施对使用者来说都是透明的,那也是优选的。
发明内容
在本发明的一个方面中,向具有应用安全施行层的消费者预先部署或销售装置。利用这一层,消费者或用户能够下载不安全应用——仍然包括大部分应用——并使应用以安全方式在装置上执行,其中使潜在数据损失以及对装置的其他损害最小化,装置例如是智能电话或平板计算机。由应用安全服务提供商向装置的制造商供应施行层或引擎,制造商将引擎与装置的功能(软件、固件等)集成。通过这种方式,在装置上使应用安全的操作对于消费者而言是透明的。装置制造商能够在销售装置时宣称比其他装置在应用下载和执行方面更安全。
在本发明的另一方面中,描述了一种使应用在装置上安全执行的方法。获得应用或将应用下载到装置上加以执行。装置用户执行该应用。应用安全施行层或引擎判断是否有针对应用的安全策略。如果没有,可以使用装置上的默认策略。在执行期间向应用应用策略。在向执行中的应用应用安全策略时,对应用对装置操作系统做出的任何调用进行安全检查。基于安全检查,可以执行如下动作之一:(a)可以允许调用转移到操作系统;(b)可以增强对操作系统的调用并然后转移到操作系统;(c)可以阻止调用;或(d)可以终止应用,也可以从装置删除应用。
附图说明
参考附图,附图形成说明书的一部分,且其中通过例示示出了本发明的具体实施例:
图1A是示出本发明的应用控制过程概要的方框图;
图1B是示出本发明的应用控制过程的备选实施例的方框图;
图2是示出根据本发明一个实施例的应用安全程序的部件的方框图;
图3是流程图,示出了根据本发明的一个实施例在将应用下载到装置上之前,使其安全的过程;
图4是根据一个实施例在策略管理器中执行的方法的流程图;
图5是流程图,示出了根据一个实施例,执行于手机或移动装置上的经安全包装的应用过程;
图6是根据一个实施例的应用安全控制系统的系统架构图;
图7是根据一个实施例,在执行期间保证装置上应用安全的部件的方框图;
图8是流程图,示出了根据一个实施例,利用装置的集成功能,在执行期间保证装置上应用安全性的过程;以及
图9A和9B是适于实施本发明各个实施例的计算系统的方框图。
具体实施方式
描述应用安全过程和系统的范例实施例。提供这些范例和实施例仅仅是为了增加上下文并辅助理解本发明。于是,对于本领域的技术人员而言显然可以实践本发明而无需这里描述的一些或全部具体细节。在其他情况下,未详细描述公知的概念,以避免使本发明不必要地模糊不清。其他应用和范例是可能的,从而不应将以下范例、例示和上下文作为在范围或设置方面的限定或限制。尽管足够详细地描述了这些实施例,以使本领域的技术人员能够实践本发明,但这些范例、例示和上下文不是限制性的,可以使用其他实施例并可以做出变化而不脱离本发明的精神和范围。
在各个附图中描述了用于防止装置软件应用影响或以其他方式损坏装置,尤其是移动装置的方法和系统。这些类型的应用,常常使用于各种移动装置,例如智能电话、平板计算机、游戏装置和便携式计算装置上,通称为“应用”。也可以将这些应用下载到非移动装置,例如TV、计算机、汽车和其他新兴智能装置种类上。所述方法和系统并非要限于移动装置上的操作。这些装置程序或应用已经高速增加,现在非常流行。当前,通常用Java或C编写应用。可以将这里描述的方法和系统应用于针对不同平台以编写的应用或以其他语言编写的应用。如果不是全部,也是大部分应用都需要与移动装置的操作系统通信,以获得应用需要的特定服务,以便执行其预期功能,这种服务通常仅可从操作系统获得。使用的这种服务的常见范例是GPS,以获得应用可能需要的装置位置。不过,因为这需要披露,应用是装置的弱点,给使用者带来安全和隐私风险。各公司都希望能够加强集中式策略以控制并保护对其数据和软件的访问。对于最终用户(即个人、家庭用户等)而言也是这样。它使得企业的IT部门能够保持对公司数据的管理。下文描述的方法提供了一种集中方式来控制下载到移动装置上的应用安全,其中装置为员工的个人电话或员工的电话,使得那些应用不会带来安全威胁。也可以由父母和个人(即在家中或在非工作环境中)使用本发明的各实施例,以确保其个人移动装置相对于恶意软件而言是安全的,并也可以用于对诸如使用情况进行控制。本发明的应用控制软件的实施例也可以用于移动装置数据保护和备份,以及应用层次的遥测术。
图1A是示出了本发明的应用控制过程的概要的方框图。它是一个过程的普通描述,与具体配置或环境无关。应用提供商100提供应用102,应用提供商100可以是任何类型的实体(个人、软件开发者、使用者等)。它一般是无保护的,其周围唯一的安全性由操作系统提供。对其一旦加载如何在装置上执行所做的唯一屏蔽和检查是由操作系统提供的。
本发明能够实现装置操作系统未提供的应用的额外安全。将安全应用程序104应用于应用102。或者向程序104中输入应用102,程序104可以由第三方应用安全提供商提供。在一个实施例中,安全应用程序104具有策略管理器和策略包装器,它们可以在不同位置。在图2中更详细地描述了它们。一旦安全程序104已经应用于应用102,就利用安全层包装应用,从而保护装置。它被示为安全应用106。在一个实施例中,然后将安全应用106下载到移动装置108,例如智能电话或平板计算机,在那里安全地执行它而不会对装置108造成损坏。另一个好处是,也可以由公司或向用户提供应用的其他实体,例如向员工提供应用的雇主,管理安全应用106。例如,如果用户离开了公司,公司可以自动从装置删除应用和任何相关数据。在另一个范例中,父母可能能够限制另一人(例如儿童)使用的应用或限制时间量,例如每天10分钟或限制应用可以访问的网址。或者,父母会担心应用将儿童的位置泄露给未知的第三方。可能有众多其他范例。如上所述,图1A意在示出使应用安全并将其下载到装置上的一般过程。注意,在本实施例中,并非在将应用102下载到装置之后,而是之前使其安全的,以免给装置带来损害。在另一实施例中,在将应用下载到装置上之后,但在其可能与操作系统交互之前使其安全。
图1B是示出替换实施例的方框图。向移动装置112上下载不安全的应用110(也是由应用供应商供应的)。在这一实施例中,不过,在装置112上可能有专门设计的应用,阻止实际安装不安全应用110。特殊应用(未示出)将不安全应用110重定向到应用安全程序114。在安全策略中包装不安全应用110,将所得的应用示为安全应用116。然后下载它并允许由特殊应用安装于装置112上。通过这种方式,个人或家庭用户,例如,希望保护其电话不受应用带来的安全威胁影响的个人或家庭用户,可以在将应用下载到其手机之前,让第三方服务或其移动电话运营商(仅举两个范例)使其应用安全(包装)。应当指出,可以对应用进行这种安全包装,不论用户在哪里下载的应用。还可以指出,在图1A和1B中,一般地示出了网络以及部件和软件之间的连接。传输主要在因特网(未示出)上,但也可以在专用网之内或在两者之内。
图2是方框图,示出了根据本发明一个实施例的应用安全程序的部件。在一个实施例中,安全程序具有两个主要部件,即策略管理器和策略包装器。策略管理器202从管理员或负责为移动装置设置安全性的其他个人接受输入。可以将该人称为支配者,因为他支配着一个或多个移动装置的安全。可以利用各种用户界面设置安全策略。有很多策略的范例,包括地理围栏(例如,该应用仅能够用于楼宇中)等。服务提供商或提供应用安全程序的实体还可以提供对家庭用户可能有用的默认策略和安全设置。下文描述了策略设置的范例。将策略输入204输入到策略管理器202中。策略管理器202从支配者获取输入/设置并创建策略或元数据206。元数据206的格式或形式可以变化。它们实质上反映了来自支配者的策略设置。
可以将元数据(策略)206用作策略包装器208的输入。在一个实施例中,程序的这个部件获取策略并使用它们通过包装应用210而使其安全。包装器208从手持装置212接收应用210。在一个实施例中,包装器208接收应用210的副本,而不是下载到电话212(参见上面的图1B)上的原始应用214。在此,手持装置212的用户试图从应用供应商218下载不安全应用216。在图1中所述的情形中,它可以对应用本身而非副本进行操作。这可以是这样的情况:市场或应用商店为顾客提供应用的安全版本,连同不安全版本(或仅提供安全版本)。从策略包装器208向装置212返回安全版本220(经安全包装的版本)。
也可以使用元数据206更新本地策略文件(已经在装置上的现有策略)。使用本地策略文件更新装置212上存在的策略参数。例如,在“地理围栏”的情况下(即,将应用的使用限制到特定物理区域),支配者控制的GPS位置可能随时间变化。在发生这样的变化时,可以通过两种不同的方式应用新策略。一种方式是产生新策略并将其应用于原始应用(即利用新策略包装应用)。另一种方式是允许基于本地策略数据文件的动态配置,在其内部对策略的“可变”部分加密/标记。例如,IT人士可能希望能够直接通过装置上存在的IT应用超驰装置上的配置,以达到诊断的目的。
在一个实施例中,策略具有两个部件:固定部分和可变部分。固定部分是策略文件中描述的内容(例如,“在一天的特定时间保护GPS”)。可变部分通常由支配者通过控制台提供(例如,“应当保护GPS的时间是何时?”)。可变部分能够变化,无需应用新策略。
策略设计者能够选择预先决定策略的可变部件,并在策略文件中静态地基本“嵌入”所有数据或内容。在这种情况下,控制台不需要通过任何方式定制策略。
如果策略设计者选择在策略中包括一些可变部件,在(控制台上)对可变数据进行改变时,可以向装置发送新数据文件以反映最新的变化。这样的文件会被加密/标记(以防止恶意应用规避策略),被下载到装置,并由装置上的应用安全代码用于向适当策略应用新数据。
可以由本地策略更新部件222在运行时间进行这样的变化和更新。这个部件创建装置212上的更新策略参数。之后,包装的应用220将使用更新的策略参数。
在一个实施例中,策略管理器202和策略包装器208是同一应用安全程序中的部件,可以在同一计算机上工作。在其他实施例中,管理器和包装器部件可以在独立的计算机上。例如,策略管理器202可以在一个地方的服务器上,策略包装器208可以在另一地点的计算机上,可以由不同的实体或相同实体管理。管理器和包装器共同形成应用安全程序,在一个实施例中,由安全服务提供商操作应用安全程序。它也可以由企业,例如公司、雇主、商业合作伙伴等,或移动电话运营商提供。
图3是流程图,示出了根据本发明一个实施例,在将应用下载到装置上之前使其安全的过程。在步骤302,在装置上产生变为安全的应用的副本或克隆。在一个实施例中,可以在移动装置自身上或可以在装置之外这样做,例如,在因特网上的部件上,在云中,在企业服务器上或在运营商服务器上。用户可以是个人、公司的员工或其他实体。如本领域中所知的,可以通过若干种方式获得应用,最典型地是从应用商店或应用市场获得,或直接从应用开发者或提供者或通过任何适当方式获得。通过做出副本,保留原始应用,为用户提供使用安全或不安全版本的选项,还保护用户在应用控制过程某处出错时使用应用的能力。注意,在一个实施例中,仍未将应用下载到电话上。在一个实施例中,在独立的计算装置上执行下述方法。在另一实施例中,可以在移动装置上执行该过程,但在完成过程并使应用安全之后仅在装置上执行应用。
在步骤304,对应用去封装。如果不是全部,大部分应用具有由作者/开发者签署的数字签名。在步骤304,作为去封装的一部分,从应用去除数字签名。可以利用现有技术中已知的技术这样做。也可以在这个步骤执行应用的解密。这些和其他步骤提供应用的核心目标代码,现在可以由应用控制程序对其进行操作。这个操作的性质和具体细节可以取决于移动装置的操作系统。
智能电话的操作系统有几个范例,例如iOS(用于iPhone)、Android(用于各制造商的手机)、Windows Mobile7、Web O/S、Palm等。在步骤306中,可以对核心目标代码应用反汇编或解汇编,以获得可执行目标代码。例如,它可以是“本机代码”(CPU指令)或字节码(虚拟计算机指令,例如Java或.Net)。在一个实施例中,如果装置运行iOS,这可以更多是修改过程,其中反汇编更接近定位和替换特定链路和术语的过程。不过,通常,可以利用现有技术中已知的技术,例如使用反汇编程序,在对应用去封装之后,进行反汇编过程以获得应用的目标代码。
在步骤308,利用来自应用安全程序的目标代码增强应用目标代码。例如,这种目标代码可以包括利用来自安全程序的类文件替换的类文件。目标代码一般提供移动装置操作系统的接口。应用控制安全程序目标代码部分是从上述策略/元数据导出的。对于iOS而言,操作的不同之处在于,发生“定位和替换”过程而非目标代码替换。这考虑了iOS使用的中断方式。通常,应用安全程序通过汇编语言代码。定位的具体项目是目标代码之内的软件中断(SWI),用通往应用控制安全程序层的分支替换它,然后可以确定采取什么其他动作,例如做出请求,增强结果等,如下所述。
在步骤310中,在进行完目标代码的替换(或SWI的替换)之后,应用安全程序准备经安全包装的应用以在移动装置上执行。由安全程序代入应用中的目标代码一般提供了应用和移动装置操作系统之间的桥梁或连接。可以将安全程序类文件描述为包装在操作系统类文件周围。基于更早产生的策略产生应用安全程序类文件(通过来自支配者的输入)。对应用进行实质性重新连线以在手机上执行。对其重新连线以使用除移动装置操作系统层提供的安全性之外的应用安全程序层。亦即,安全应用可以仍然服从操作系统的安全规定。在一个实施例中,也可以对应用做出一定的美化改变,例如改变用于应用的图标,以反映出它是安全的。通过这样做,用户可以肯定在应用图标出现于手机屏幕上时,将执行应用的安全版本。现在实质上由安全程序对应用进行了重新分析或重新编程。
在步骤312,利用新密钥签署应用,例如,利用服务提供商的密钥或提供安全应用的企业的密钥签署应用。将重新分析的应用安全版本返回到手机装置。在另一实施例中,利用手机上的安全层包装应用。在步骤314,在一个实施例中,从手机装置删除应用的原始不安全副本。一旦将应用下载到手机上,就可以由其安全版本这样做。在其他实施例中,不这样做,两个版本都保留在移动装置上。在这个阶段,该过程完成。
图4是根据一个实施例在策略管理器202中执行的方法的流程图。在步骤402,使支配者或其他安全策略个体能够定义、产生和创建安全策略。这可以是网络管理员,为企业决定移动装置安全策略的巨型阵列,用于使用几十个企业应用(尤其用于工作)的几百名员工,可以在几百或几千个移动装置上下载应用。在频谱的另一端上,为儿童在新移动装置上下载的三个或四个应用设置安全策略的可能是父母。其他范例包括防止或抑制使用GPS的游戏应用,防止应用使用装置上的微音器记录或窃听谈话等。在任一种情况下,支配者可以考虑应用的类别、应用的类型和属性、作者、年龄适当性和众多其他因素。例如,同一作者是否编写过可能被分类为恶意软件或给装置带来安全威胁的任何其他应用。可以判断是否有同一作者的其他应用。支配者就是在这个阶段决定为每个应用应用哪些规则。在一个实施例中,这是由支配者离线完成的。亦即,可以利用管理员使用的家用计算机或企业网计算机上的用户界面这样做,其中可以使用由安全程序服务提供商(实质默认的模板)提供的安全模板,或可以利用模板设置非常具体的规则。
在步骤404,应用控制安全程序使用步骤402的安全数据输入创建实际策略。在步骤406,基于来自支配者关于在步骤404创建的安全策略的输入,产生应用控制安全程序目标代码。如果需要,支配者或服务提供商还可以更新现有的安全策略。如上所述,可以使用目标代码以增强从反汇编的应用获得的特定原始目标代码。插入增强代码调节用于应用的安全和隐私设置,以便保护企业和最终用户。改变原始应用的行为,允许支配者控制应用如何行为。例如,如果应用以明文(即未加密)存储了敏感的帐号信息,可以改变行为,使得应用创建的所有信息都存储成加密形式,并仅可以由应用访问,条件是要存储的持久数据的密钥对于应用而言是唯一的。在很多情况下,增强代码能够改善应用性能,因为针对特定使用情形优化了代码。
图5为流程图,示出了根据一个实施例执行于手机或移动装置上的安全包装的应用的过程。在步骤502,改变或修改应用在装置上执行时或刚要执行之前的应用的行为。例如,行为修改可以包括应用初始化期间的认证;例如智能/CAC卡或口令盘问。如一开始设计的那样,一些应用可能不需要口令实现安全性,不过,已经修改的应用的安全版本可能要求用户输入口令。在步骤504,通过用户激活(例如,如果装置具有触摸屏,轻敲图标)在移动装置上执行安全应用。在执行应用时,在一个实施例中,控制能够采取四个选项之一。如现有技术中已知的,在应用执行时,它会调用或请求装置操作系统,以便执行其功能。在很多情况下,这些调用可能是无害的,或不给电话或装置带来大的安全威胁。如果是这种情况,如步骤506中所示,可以允许调用传递到操作系统。在此,对装置的操作系统进行调用,应用以正常方式执行。
如果应用周围的安全层或包装器检测到应用正在做出可能给装置带来安全威胁的请求,应用安全层可以在将其传递到操作系统或电话中的其他软件或硬件部件之前增强或修改请求。在步骤508示出了这种情况。在一个实施例中,支配者通过检查一个或多个策略判断可以许可哪些调用。例如,支配者可以判定应当以加密形式保存所有数据。在另一个范例中,支配者可以决定,应当仅有受信任应用的选定组具有关于军人GPS坐标的数据。在一个实施例中,没有运行时间逻辑判断什么是安全的、是潜在威胁或实际威胁;实质上由支配者在以上步骤404创建的策略中预先断言它。在另一实施例中,可以有一些运行时间逻辑。例如,应用可以尝试发出昂贵的SMS文本消息。应用控制程序可以决定它并阻止应用发送文本消息超过若干次,例如,它可以限制发送一个消息。增强可以增加某些新东西,例如口令要求。在另一个范例中,如果调用是在移动装置存储器上保存数据,安全应用可以实际将数据备份到云中或因特网上的存储区(即装置之外)。在另一个范例中,可以对与调用相关的数据加密。
在步骤510,安全应用可以判定调用是实际的威胁,应当比步骤508处以更严重的方式处理。例如,可能以及基于应用的策略决定,如果在安全的楼宇(例如美国国防部五角大楼)中时访问装置上的摄像机,应当立即终止应用。在这种情况下,仅仅增强请求可能不够。在步骤510,可以不允许请求前进到操作系统或装置的任何其他部件。不过,在一个示范性实施例中,将响应返回到应用,但该响应是人为不准确的或正确的。它实质上是模糊化的响应。例如,它可能是GPS坐标,不是装置的实际物理坐标(例如,该装置在加利福尼亚,但返回应用的GPS坐标是内布拉斯加的坐标)。在儿童使用应用时,这可能是合乎需要的。其他范例可以是,如果判定应当仅运行于限制性环境(例如安全办公区)中的应用要运行于该环境之外(例如在家中),返回坏的或错乱的数据结果。在本范例中,应用可能被部分损坏,因此应用仅能够访问非分类数据,且其中分类信息是无效的。在另一个范例中,在用户试图从分类应用向非分类应用粘贴或拷贝敏感数据时,应用控制程序可以改变被粘贴到无用数据的数据副本或基本使其无意义。在完成步骤506、508或510之后,经安全包装的应用继续在步骤514在移动装置上执行。
在步骤512,应用周围的安全层判定应用做出的调用或通常的应用执行行为给移动装置带来过高的安全威胁水平。在这种极端情况下,安全层决定终止执行应用和/或删除应用。例如,该应用可能使用电话上过多的资源,例如带宽,或正在向操作系统做出过多高风险调用,由此使移动装置过度暴露。在这种情况下,能够从电话简单地删除应用或可以终止应用。用户可能不能重新执行它或重新安装它。例如,员工可能未在公司电话上再次安装该应用,因为它暴露了敏感的公司数据。或者,可以判定应用是秘密收集的电话上的数据或安装的恶意软件。
图6是根据一个实施例的应用安全控制系统的系统架构图。触发管理器部件602处理两个事件,一个用于产生新策略604,另一个用于更新策略参数606。这样的事件可以由各种系统触发。例如,控制台管理员或支配者可能向所有装置应用新策略(人工操作)。或者网络监测应用在检测到源自装置(或应用)的可疑流量之后,可以推送新策略,新策略会阻止用户/装置/应用访问网络资源(自动化操作的范例)。有权改变/更新策略的各种系统或实体通过触发管理器602来这样做。
将新策略输出604输入到可以在运行时间产生的策略定义文件608,新策略输出可以包括各种类型的代码和扩展,例如,对于应用控制服务提供商或策略应用于的应用/用户/装置是特有的。将策略定义文件608输入到具有两个输出的策略编译器610。一个输出是包装器定义文件612。将这个文件输入到应用包装器部件614。应用包装器部件614负责通过向例如从应用商店直接下载的应用中注入定制二进制码(固有的或字节码)来产生安全应用。或者应用可以是用户向其装置下载并然后上载到“AppControl”服务器的应用。
应用包装器部件614可以具有三个输入:来自一个或多个应用商店616的应用、来自身份管理部件618的证书密钥管理数据以及硬化部件620。密钥管理数据用于关联用户、装置和应用的身份,并确保可以将受到策略控制的任何操作关联到特定用户/装置/应用。这样还确保了包装的应用仅能够运行于特定装置,以防止恶意应用规避策略和硬化部件620(例如“装置安全框架”)。来自应用包装器614的输出是包装的应用622,经由装置的控制器626将其下载或安装到移动装置624。装置控制器626的职责包括:从应用包装器下载应用;确保运行于装置上的应用是适当包装的应用(例如,为用户1包装的应用不应安装/运行于用户2的装置上);报告所安装应用的列表/版本以允许管理控制台控制每个装置/用户/应用的策略;以及在适当时候下载策略参数。包装的应用622驻留在与策略参数628耦合的装置624上。
现在返回到策略编译器610,另一个输出是运行时间策略定义文件630。这个文件被输入到运行时间策略编译器632,它也将其接受为输入策略参数606(由管理控制台或其他子系统指定)。来自编译器632的输出是装置运行时间策略文件634。如策略参数628所示将这个文件634下载到装置624上,并用于定制应用于包装应用622的策略。
下文所述的是各种使用情况和本发明应用控制安全程序的能力。一种使用情况涉及到分离移动电话上的工作寿命和个人寿命。存在着供用户个人使用的应用,以及用户的员工(或雇主的商业合作伙伴)可能提供的应用以及在同一电话上工作的应用,电话常常是用户的个人电话。决定需要在用户电话上安全化的应用的安全性的支配者可以阻止应用(例如电子邮件应用)之间的复制/粘贴。支配者可以为执行应用和关联文件的选择性擦除的工作相关应用设置策略。基于用户位置的策略还可以控制可以在哪里执行特定应用。因恶意软件导致的保护水平的范例是拒绝访问联系人、未经同意拒绝传输SMS等等。
使用情况的另一个范例是应用控制。利用本发明,可以实施应用的白名单和黑名单,以及根据支配者设置的策略完整删除应用。可以对应用进行“沙箱化”,以保护装置的其他应用、软件和硬件。其他能力可以包括基于身份的应用或服务控制以及对应用行为的高粒度控制。特洛伊木马识别是可以利用应用安全程序实施的另一种使用情况。例如,可以对每个应用和内容加密以防止流氓应用能够访问并窃取电话上的分类数据。安全程序也可以能够识别应用的异常系统调用行为,以识别在其公开意图之外活动的恶意特洛伊木马应用。
另一种使用情况是备份和恢复应用数据,其中IT安全管理员和支配者拥有数据修正控制,能够通过备份和恢复操作实施应用和装置的内容迁移。另一种使用情况是网络流量监测。可以使移动装置上的应用处于现有企业IDS/IPS/网络过滤基础设施的视野下,以允许检查和控制应用通信。应用安全程序还能够与第三方DNS服务,例如Symantec的DNS服务,集成,以识别恶意软件。可以对所有的应用通信加密,包括移动电话服务提供商那里的通信。其他使用情况包括会话连续性、消费者隐私(例如GPS模糊化、实施安全DNS)以及截取来自移动装置的支付/交易消息(即,在移动贸易流中间工作)。
在一个实施例中,由第三方服务提供商提供应用安全服务,例如,以便使应用为最终用户或个人(即,不和雇主或企业相关联的用户)使用。例如,父母可能希望使儿童电话的GPS模糊,因为父母不希望社交网站,例如Facebook知道孩子在哪里,实质上是要禁止GPS。在另一实施例中,由无线电话运营商(例如Verizon,AT&T)操作的应用商店可以提供安全应用,进行额外的收费或奖励。通过支付额外费用,运营商的客户能够从市场或在线商店下载安全应用,代替不安全版本。在另一实施例中,企业可以具有其自己用于其员工、合作伙伴等的应用商店,在此用户仅能够下载应用的安全版本(可以称为“硬”应用)。这些应用可以具有由支配者(安全管理员)在企业定义的上述安全特征的很多,例如阻止拷贝粘贴电子邮件或企业数据,如果用户离开公司则挂断来自用户电话的应用等。移动电话运营商的DNS通常能够访问任何网站,但应用安全程序能够阻塞移动装置的浏览器,因此它仅能够访问安全的DNS(例如,Symantec的DNS),从那里仅可以访问安全网站。在另一实施例中,应用安全程序提供商能够与移动装置制造商合作以向装置的硬件和软件操作中纳入应用安全程序或功能。在下述这一实施例中,用户能够下载不安全应用,并在执行之前在电话或装置自身上使其安全,无需访问第三方服务来使应用安全,或确保在下载到装置上之前使应用安全。
从上述各实施例可以看出,移动装置的安全性扩展超出了装置自身,被直接应用于下载到装置上的应用。公司和其他实体能够更自由地利用应用而不必担心安全风险,例如公司的企业IT系统数据泄露或被恶意软件传染。公司能够维持对其企业数据的支配。
在装置安全和应用执行的另一方面中,用户下载不安全应用,并利用由装置上预先部署的引擎执行的策略来使其执行。通过这种方式,实质上(使用装置上的策略)使应用在装置上安全化,之后能够执行强迫安全的应用。在装置安全和应用执行的这个方面,第三方应用安全提供商可以利用装置制造商提供的现有业务(例如固件)集成或预先部署其服务。这样一来,可以将本实施例称为预先部署实施例。亦即,提供商和装置制造商合作,使得装置(由制造商制造)包含软件和/或固件,它们与装置操作系统交互或通信并被集成到装置中。在这一实施例中,装置制造商能够通知(例如发广告)潜在的客户,其装置,例如智能电话,相对于竞争者的装置,在应用执行方面更安全。客户仍然以熟悉的或常规方式下载应用,其中应用可能是不安全的(即,未包装的),在应用在装置上执行时,它实质是安全的,对装置造成损害的可能性显著更低。
参考上述实施例(即,后期部署实施例)的部件和模块,本发明的这一方面利用了被描述为策略管理器202等价物的内容。亦即,在预先部署实施例中利用其他模块和技术实施策略管理器202的功能。在一个实施例中,可能在装置上不需要上述策略包装器208,因为通过施行层解释或编译策略实施了安全性。在一些装置中,例如移动装置中,常常有工作于操作系统软件上方的类型2的系统管理程序或应用“沙箱”。这种常规系统管理程序或沙箱允许或不允许执行应用;它提供了相对于应用安全而言有些有限的二元功能。在本发明的特定方面中,如下所述,另一种系统管理程序工作于常规类型2的系统管理程序上方,其中执行逻辑,能够执行超过仅仅“允许或不允许”类型的功能。
通常,应用通过在装置操作系统上的沙箱层之内交互来工作。这是为了确保在执行期间应用不相互干扰。在iOS中,应用利用共享目标文件,执行通过SWI指令。沙箱是iOS操作系统的一部分。
如现有技术中已知的,一个或多个应用可以在任何给定时间在装置上的沙箱(或类似虚拟环境)中执行。在本发明的一个实施例中,在应用和沙箱之间实现应用策略实行层或引擎。图7为方框图,示出了根据本发明一个实施例用于装置上应用安全的结构。这种结构具有驻留在装置,例如智能电话、平板计算机或TV上的模块和部件。示出了几个应用,其中每个框702a、704a、706a……代表驻留于装置内部存储器(未示出)上的每个应用的软件。附着于每个应用的是策略702b、704b、706b……。如上所述,一些应用可能没有策略。不过,在大多数情况下,策略管理器202执行过其功能,亦即,创建并管理用户应用的策略。由于策略在装置上(或者它们是被下载到具有应用的装置上的),所以策略管理器的功能已经进行。针对每个应用的这略,或针对用户的一般策略,已经在装置上。不过,如下所述,有一个过程确保在允许应用执行系统调用之前具有关联的策略。应用策略施行层706包含逻辑,以判断在应用每次做出系统调用时应当做什么。在用户将应用下载到装置上时,应用无须事先被包装或是安全的;它可以是未包装的,因为当前大多是这样的。还可以下载安全或经包装的应用,下述相同概念和方法同样能够适用。
如上所述,应用策略施行层706是驻留于装置上的软件引擎,但可以由应用控制服务提供商供应和创建,并由装置制造商集成到装置上。图8中描述了层706执行的逻辑。操作底层706是常规类型2的沙箱708和操作系统软件710。
施行层706确定了在其执行时应用应当怎样行为。它检查策略以确定在其执行时应当采取什么动作。施行层706可能对应用相对于装置安全而言应如何行动毫无所知。亦即,层706不知道允许应用在装置上做什么。在一个实施例中,它能够知道的仅有方式就是检查与应用相关联的策略。在一个实施例中,在应用做出系统调用或请求时,层706解释由计算机代码构成的策略。在进行这种解释时,层706决定着应用可以如何在装置上执行或行动。在一个实施例中,在层或引擎706以及解释策略之后,可以采取四种动作中的一种。这四种动作与上述那些相同。在图8中在对装置上的应用进行安全包装的上下文中(预先部署实施例)再次示出了它们。
图8是根据一个实施例在装置上执行之前向应用应用安全策略的过程的流程图。在步骤802,已经执行的应用对装置操作系统做出系统调用。在一个实施例中,仅在应用对装置操作系统做出实际调用之后才进行应用策略以及确定采取什么安全动作的步骤。在步骤804,施行层706检查是否有针对正在执行的应用的策略。可以在策略管理器的辅助下这样做。下面提供了策略的范例。如果没有针对应用的策略,从装置存储器获得针对应用或用户的默认策略。由用户或装置制造商设置默认策略。
如果有策略,控制前进到步骤808,在此将策略应用于装置上的应用。在所述实施例中,由引擎706解释策略。一旦应用,施行引擎706就知道应用可能如何行动,亦即,它知道能够允许应用做什么。在另一实施例中,施行层706可以编译策略而非解释它。例如,它可以执行“恰好及时的”编译操作,为应用当场产生代码,其中代码对于应用而言是唯一的。如现有技术中所知,JIT汇编一般比解释更有效率,通常仅在操作系统允许时才能够进行。典型地,仅对特权操作系统部件允许代码的动态加载。在另一实施例中,也可以通过将沙箱708压缩到操作系统710中来保护沙箱710(类型2的系统管理程序)。
在步骤808之后,施行层在步骤810应用其逻辑并确定相对于应用行为采取什么动作或应用能够采取什么动作。调用可能对装置没有威胁,可以允许调用简单地传递到操作系统,如步骤814中所示。控制从那里前进到步骤820,其中应用利用应用策略施行层706继续执行。如果施行层706检测到应用正在做出可能给装置带来安全威胁的请求,施行层可以在将其传递到操作系统或电话中的其他软件或硬件部件之前增强或修改实际请求,如步骤816中所示。在修改请求之后,允许其转移到操作系统,控制前进到步骤814(然后到步骤820)。施行层706可以判定应用做出的调用是实际的威胁,应当比步骤816处以更严重的方式处理。例如,可以不允许将请求发送到操作系统或装置的任何其他部件。不过,在一个示范性实施例中,即使可以阻止请求,仍然将响应返回到应用,但人为使响应不准确或正确,如步骤818中所示。它是一种模糊化的或人为误导的响应。如果施行层706判定应用做出的调用或通常的应用执行行为给装置带来过高的安全风险,就在步骤822由施行层706终止或删除应用。该过程在步骤822结束(即,控制不前进到步骤820)。控制然后前进到步骤820。从步骤820,控制返回到步骤810,其中施行层706决定采取什么动作。
可以将本实施例称为容器方法,因为容易包装于应用周围。这里,容器是沙箱708的一部分。在当前使用的其他系统中,实质上有大的容器,所有应用都必须被编写并必须在单个容器中执行(例如,Good Tech)。为了在容器外部执行,应用必须离开容器。在本发明的所述实施例中,两个不同应用,一个是安全的,另一个是不安全的,能够同时在施行层706中运行。
如上所述,在下载应用时,可以利用应用下载一个或多个策略。对策略管理器做出调用或请求,以查找该特定应用所需的策略数据。在所述实施例中,不修改应用。
在各实施例中显然可见,即预先部署情形和其他实施例,应用策略是确保装置安全的关键要素。策略的范例可以是,如果两个应用来自相同的作者,因此具有相同的私钥,并且两个应用都试图同时执行,可以采取特定的动作,例如防止两个应用彼此通信或共享信息。一个应用是联系人管理器,另一个可以是SMS文本应用。因为它们具有相同的签名,所以两个应用实质上能够彼此“看到”并共谋。来自相同作者,同时执行的两个或更多应用能够分享数据并给装置带来损害,即使在独立执行时,每个应用可能是有益的。策略可以阻止利用相同私钥签名的应用在沙箱708中交换数据,沙箱708在施行层706下方工作。就此而言,本发明的所述实施例改善了沙箱708的工作。例如,本发明可以消除或减少对二进制运算的需求,例如应用的黑名单和白名单等。
图9A和9B示出了适于实施本发明的实施例的计算系统900。图9A示出了计算系统的一种可能物理形式。当然,计算系统可以具有很多物理形式,包括集成电路、印刷电路板、小型手持装置(例如移动电话、手机或PDA)、个人计算机或超级计算机。计算系统900包括监视器902、显示器904、外壳906、磁盘驱动器908、键盘910和鼠标912。磁盘914是用于与计算机系统900往返传输数据的计算机可读介质。
图9B是用于计算系统900的方框图范例。附着于系统总线920的是各种子系统。处理器922(也称为中央处理单元,或CPU)耦合到包括存储器924的存储装置。存储器924包括随机存取存储器(RAM)和只读存储器(ROM)。如现有技术中公知的,ROM用于向CPU单向传输数据和指令,RAM通常用于以双向方式传输数据和指令。这些类型的存储器都可以包括如下所述的任何适当的计算机可读介质。固定磁盘926还双向耦合到CPU922;它提供额外的数据存储容量,还可以包括任何如下所述的计算机可读介质。固定磁盘926可用于存储程序、数据等,通常是比主存储器慢的辅助存储介质(例如硬盘)。要认识到,在适当情况下,固定磁盘926之内保持的信息可以通过标准样式作为虚拟内存并入存储器924中。活动磁盘914可以采取如下所述的任何计算机可读介质的形式。
CPU922也耦合到各种输入/输出装置,例如显示器904、键盘910、鼠标912和扬声器930。通常,输入/输出装置可以是如下任何一种:视频显示器、跟踪球、鼠标、键盘、微音器、触敏显示器、换能器读卡机、磁带或纸带读出器、标牌、触针、语音或手写识别器、生物测定读取器或其他计算机。CPU922任选地可以利用网络接口940耦合到另一个计算机或远程通信网。利用这样的网络接口,设想到CPU可以在执行上述方法步骤期间从网络接收信息,或可以向网络输出信息。此外,本发明实施例的方法可以唯一地执行于CPU922上,或者可以协同远程CPU(共享一部分处理)执行于诸如因特网的网络上。
尽管这里示出并描述了本发明的例示性实施例和应用,但很多变化和修改是可能的,它们保持在本发明的概念、范围和精神之内,本领域的普通技术人员在细读本申请之后,这些变化将变得显而易见。因此,所述实施例要被视为例示性而非限制性的,本发明不限于这里给出的细节,而是可以在所附权利要求的范围和等价物之内修改。
Claims (15)
1.一种使不安全应用在具有操作系统的装置上安全执行的方法,所述方法包括:
在所述装置上执行所述不安全应用;
判断所述装置上是否有针对所述不安全应用的应用安全策略;
对所述不安全应用的应用目标代码进行反汇编,从而获得可执行目标代码;
基于所述安全策略生成应用安全程序的类文件;
使用所述应用安全程序的类文件替换所述不安全应用的类文件,其中,使用应用安全程序类文件包装操作系统类文件,使得所述不安全应用变为安全应用,并且从而在所述安全应用和所述装置操作系统之间提供桥梁;
对所述安全应用对所述操作系统做出的调用进行安全检查,所述安全检查是在所述装置中的系统管理程序上方运行的应用施行层中进行的;以及
基于所述安全检查和所述应用安全策略,执行如下操作之一:
(a)允许所述调用转移到所述操作系统;
(b)增强所述调用;
(c)阻止所述调用;以及
(d)终止所述安全应用。
2.根据权利要求1所述的方法,其中终止所述安全应用还包括:
从所述装置自动删除所述安全应用。
3.根据权利要求1所述的方法,其中所述应用安全策略包括如下一项或多项:
限制所述装置上的应用执行时间,限制所述装置上的应用总数;
限制所述安全应用可以执行的地理物理区域;以及
防止同一作者或创建者做出的两个应用同时执行。
4.根据权利要求1所述的方法,其中所述安全应用具有一个或多个关联的策略。
5.根据权利要求1所述的方法,还包括:
从所述安全应用获得默认策略。
6.根据权利要求1所述的方法,还包括:
确保在所述不安全应用执行之前所述不安全应用具有关联的策略。
7.根据权利要求1所述的方法,其中
所述装置上的所述应用施行层是由应用安全服务提供商创建的,以在所述装置上实施。
8.根据权利要求7所述的方法,其中所述应用施行层不了解与所述安全应用相关的特权。
9.根据权利要求1所述的方法,还包括:
解释所述装置上的所述安全策略。
10.根据权利要求1所述的方法,还包括:
编译所述装置上的所述安全策略。
11.根据权利要求1所述的方法,其中
所述安全应用和一个或多个其它不安全应用能够同时执行。
12.根据权利要求1所述的方法,其中
在增强所述调用之后以及阻止所述调用之后,继续执行所述安全应用。
13.根据权利要求1所述的方法,其中阻止所述调用还包括:
执行向所述调用提供模糊响应以及响应于所述调用而提供部分数据二者中的一个动作,从而将任何分类数据保持机密。
14.一种用于执行不安全应用的移动装置,所述装置具有操作系统,包括:
用于在所述装置上执行所述不安全应用的模块;
用于判断所述装置上是否有针对所述不安全应用的应用安全策略的模块;
用于对所述不安全应用的应用目标代码进行反汇编,从而获得可执行目标代码的模块;
用于基于所述安全策略生成应用安全程序的类文件的模块;
用于使用所述应用安全程序的类文件替换所述不安全应用的类文件的模块,其中,使用应用安全程序类文件包装操作系统类文件,使得所述不安全应用变为安全应用,并且从而在所述安全应用和所述装置操作系统之间提供桥梁;
用于对所述安全应用对所述操作系统做出的调用进行安全检查的模块,所述安全检查包括:
(a)允许所述调用转移到所述操作系统;
(b)增强所述调用;
(c)阻止所述调用;以及
(d)终止所述安全应用。
15.根据权利要求14所述的移动装置,还包括:
用于向所述调用提供模糊响应的模块,以及用于响应于所述调用而提供部分数据的模块,从而将任何分类数据保持机密。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/052,973 | 2011-03-21 | ||
US13/052,973 US8955142B2 (en) | 2011-03-21 | 2011-03-21 | Secure execution of unsecured apps on a device |
PCT/US2012/024655 WO2012128860A1 (en) | 2011-03-21 | 2012-02-10 | Secure execution of unsecured apps on a device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103548320A CN103548320A (zh) | 2014-01-29 |
CN103548320B true CN103548320B (zh) | 2016-12-07 |
Family
ID=46878468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280024770.9A Expired - Fee Related CN103548320B (zh) | 2011-03-21 | 2012-02-10 | 不安全应用在装置上的安全执行 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8955142B2 (zh) |
KR (1) | KR20140074252A (zh) |
CN (1) | CN103548320B (zh) |
CA (1) | CA2830493A1 (zh) |
DE (1) | DE112012001389T5 (zh) |
WO (1) | WO2012128860A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519043A (zh) * | 2013-09-30 | 2015-04-15 | 瞻博网络公司 | 对恶意客户端设备的模糊服务器响应 |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120136796A1 (en) * | 2010-09-21 | 2012-05-31 | Ayman Hammad | Device Enrollment System and Method |
US8650620B2 (en) | 2010-12-20 | 2014-02-11 | At&T Intellectual Property I, L.P. | Methods and apparatus to control privileges of mobile device applications |
US20120272167A1 (en) * | 2011-04-20 | 2012-10-25 | Nokia Corporation | Methods, apparatuses and computer program products for providing a mechanism for same origin widget interworking |
US8918841B2 (en) * | 2011-08-31 | 2014-12-23 | At&T Intellectual Property I, L.P. | Hardware interface access control for mobile applications |
US8898459B2 (en) | 2011-08-31 | 2014-11-25 | At&T Intellectual Property I, L.P. | Policy configuration for mobile device applications |
US20130067232A1 (en) * | 2011-09-09 | 2013-03-14 | Kai Chung CHEUNG | METHOD AND SYSTEM FOR CREDENTIAL MANAGEMENT AND DATA ENCRYPTION FOR iOS BASED DEVICES |
US8695060B2 (en) | 2011-10-10 | 2014-04-08 | Openpeak Inc. | System and method for creating secure applications |
US9280377B2 (en) | 2013-03-29 | 2016-03-08 | Citrix Systems, Inc. | Application with multiple operation modes |
US20140032733A1 (en) | 2011-10-11 | 2014-01-30 | Citrix Systems, Inc. | Policy-Based Application Management |
US9286471B2 (en) | 2011-10-11 | 2016-03-15 | Citrix Systems, Inc. | Rules based detection and correction of problems on mobile devices of enterprise users |
US9430641B1 (en) * | 2011-11-03 | 2016-08-30 | Mobile Iron, Inc. | Adapting a mobile application to a partitioned environment |
US20130205385A1 (en) * | 2012-02-08 | 2013-08-08 | Microsoft Corporation | Providing intent-based access to user-owned resources |
US8844032B2 (en) * | 2012-03-02 | 2014-09-23 | Sri International | Method and system for application-based policy monitoring and enforcement on a mobile device |
US9256717B2 (en) * | 2012-03-02 | 2016-02-09 | Verizon Patent And Licensing Inc. | Managed mobile media platform systems and methods |
US9405723B2 (en) * | 2012-05-02 | 2016-08-02 | Kony, Inc. | Mobile application management systems and methods thereof |
US9774658B2 (en) | 2012-10-12 | 2017-09-26 | Citrix Systems, Inc. | Orchestration framework for connected devices |
US8613070B1 (en) | 2012-10-12 | 2013-12-17 | Citrix Systems, Inc. | Single sign-on access in an orchestration framework for connected devices |
US20140109176A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
US8910239B2 (en) | 2012-10-15 | 2014-12-09 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
US9606774B2 (en) | 2012-10-16 | 2017-03-28 | Citrix Systems, Inc. | Wrapping an application with field-programmable business logic |
US9971585B2 (en) | 2012-10-16 | 2018-05-15 | Citrix Systems, Inc. | Wrapping unmanaged applications on a mobile device |
US20140108793A1 (en) | 2012-10-16 | 2014-04-17 | Citrix Systems, Inc. | Controlling mobile device access to secure data |
US9170800B2 (en) | 2012-10-16 | 2015-10-27 | Citrix Systems, Inc. | Application wrapping for application management framework |
EP2909777B1 (en) * | 2012-10-19 | 2018-03-07 | McAfee, LLC | Data loss prevention for mobile computing devices |
WO2014074317A1 (en) * | 2012-11-08 | 2014-05-15 | Evernote Corporation | Extraction and clarification of ambiguities for addresses in documents |
US8448238B1 (en) | 2013-01-23 | 2013-05-21 | Sideband Networks, Inc. | Network security as a service using virtual secure channels |
US8990883B2 (en) * | 2013-01-02 | 2015-03-24 | International Business Machines Corporation | Policy-based development and runtime control of mobile applications |
US9426182B1 (en) * | 2013-01-07 | 2016-08-23 | Workspot, Inc. | Context-based authentication of mobile devices |
US8595810B1 (en) | 2013-01-13 | 2013-11-26 | Mourad Ben Ayed | Method for automatically updating application access security |
US9280660B2 (en) * | 2013-03-15 | 2016-03-08 | Cognizant Business Services Limited | Mobile information management methods and systems |
US9369449B2 (en) | 2013-03-29 | 2016-06-14 | Citrix Systems, Inc. | Providing an enterprise application store |
US10284627B2 (en) | 2013-03-29 | 2019-05-07 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
US9355223B2 (en) | 2013-03-29 | 2016-05-31 | Citrix Systems, Inc. | Providing a managed browser |
US9455886B2 (en) * | 2013-03-29 | 2016-09-27 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US9985850B2 (en) * | 2013-03-29 | 2018-05-29 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US9479398B2 (en) * | 2013-07-03 | 2016-10-25 | International Business Machines Corporation | Enforcing runtime policies in a networked computing environment |
TWI516978B (zh) | 2013-10-31 | 2016-01-11 | 萬國商業機器公司 | 在電腦裝置中管理應用程式的執行所適用的安全模式 |
US10073957B2 (en) * | 2013-10-31 | 2018-09-11 | Xiaomi Inc. | Method and terminal device for protecting application program |
US9250937B1 (en) * | 2013-11-06 | 2016-02-02 | The Regents Of The University Of California | Code randomization for just-in-time compilers |
DE102014000963A1 (de) * | 2014-01-23 | 2015-07-23 | Unify Gmbh & Co. Kg | Verfahren zur Handhabung von Sicherheitseinstellungen in einem mobilen Endgerät bzw. zur Zugangskontrolle, Mobiles Endgerät, Computerprogramm, Softwareprodukt und digitales Speichermedium |
US9697374B2 (en) * | 2014-02-19 | 2017-07-04 | Microsoft Technology Licensing, Llc | Data proxy service |
US9246948B2 (en) * | 2014-03-19 | 2016-01-26 | Symantec Corporation | Systems and methods for providing targeted data loss prevention on unmanaged computing devices |
US9848330B2 (en) | 2014-04-09 | 2017-12-19 | Microsoft Technology Licensing, Llc | Device policy manager |
US20160055344A1 (en) * | 2014-04-10 | 2016-02-25 | Mocana Corporation | Data loss prevention during app execution using e-mail enforcement on a mobile device |
US9378378B2 (en) * | 2014-07-28 | 2016-06-28 | International Business Machines Corporation | Stateful data geofencing |
US8938547B1 (en) | 2014-09-05 | 2015-01-20 | Openpeak Inc. | Method and system for data usage accounting in a computing device |
US9350818B2 (en) | 2014-09-05 | 2016-05-24 | Openpeak Inc. | Method and system for enabling data usage accounting for unreliable transport communication |
US9100390B1 (en) | 2014-09-05 | 2015-08-04 | Openpeak Inc. | Method and system for enrolling and authenticating computing devices for data usage accounting |
US9232013B1 (en) | 2014-09-05 | 2016-01-05 | Openpeak Inc. | Method and system for enabling data usage accounting |
US20160071040A1 (en) | 2014-09-05 | 2016-03-10 | Openpeak Inc. | Method and system for enabling data usage accounting through a relay |
CN106663018B (zh) * | 2014-09-24 | 2020-09-15 | 甲骨文国际公司 | 修改移动设备应用生命周期的系统、方法、介质和设备 |
US10313373B2 (en) | 2014-10-08 | 2019-06-04 | Melih Abdulhayoglu | System and method of protecting a network |
US9098715B1 (en) | 2014-10-28 | 2015-08-04 | Openpeak Inc. | Method and system for exchanging content between applications |
US11212255B2 (en) | 2015-10-30 | 2021-12-28 | Melih Abdulhayoglu | System and method of protecting a network |
US10200866B1 (en) * | 2014-12-12 | 2019-02-05 | Aeris Communications, Inc. | Method and system for detecting and minimizing harmful network device and application behavior on cellular networks |
US10102368B2 (en) | 2016-01-20 | 2018-10-16 | Qualcomm Incorporated | Information flow tracking using incremental profiling |
US10180834B2 (en) * | 2016-02-29 | 2019-01-15 | Airwatch Llc | Provisioning of applications deployed on client devices |
CN107332806B (zh) | 2016-04-29 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 移动设备标识的设置方法及装置 |
KR101930056B1 (ko) * | 2016-11-10 | 2019-03-15 | 한국전자통신연구원 | 보안 정책을 지원하는 단말 관리 방법 및 장치 |
CA3072266A1 (en) * | 2017-08-08 | 2019-02-14 | Crypto4A Technologies Inc. | Secure machine executable code deployment and execution method and system |
US11222135B2 (en) * | 2018-05-28 | 2022-01-11 | International Business Machines Corporation | User device privacy protection |
US11270005B2 (en) * | 2019-06-04 | 2022-03-08 | Schneider Electric USA, Inc. | Device data protection based on network topology |
CN115080151B (zh) * | 2022-07-22 | 2023-07-14 | 平安银行股份有限公司 | App启动流程控制方法、计算机可读存储介质及终端 |
US11681816B1 (en) * | 2022-09-23 | 2023-06-20 | Osom Products, Inc. | Private session for mobile application |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924814A (zh) * | 2005-08-30 | 2007-03-07 | 国际商业机器公司 | 应用程序的控制方法及装置 |
CN101410803A (zh) * | 2006-01-24 | 2009-04-15 | 思杰系统有限公司 | 用于提供对计算环境的访问的方法和系统 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US7430670B1 (en) | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US7406603B1 (en) | 1999-08-31 | 2008-07-29 | Intertrust Technologies Corp. | Data protection systems and methods |
US20020069263A1 (en) | 2000-10-13 | 2002-06-06 | Mark Sears | Wireless java technology |
EP1308838A3 (en) | 2001-10-31 | 2007-12-19 | Aplix Corporation | Intermediate code preprocessing apparatus, intermediate code execution apparatus, intermediate code execution system, and computer program product for preprocessing or executing intermediate code |
US7243230B2 (en) | 2001-11-16 | 2007-07-10 | Microsoft Corporation | Transferring application secrets in a trusted operating system environment |
US7130951B1 (en) | 2002-04-18 | 2006-10-31 | Advanced Micro Devices, Inc. | Method for selectively disabling interrupts on a secure execution mode-capable processor |
US7603551B2 (en) | 2003-04-18 | 2009-10-13 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
EP1546892B1 (en) | 2002-09-04 | 2017-03-29 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Protecting mobile code against malicious hosts cross references to related applications |
US7526800B2 (en) * | 2003-02-28 | 2009-04-28 | Novell, Inc. | Administration of protection of data accessible by a mobile device |
US9197668B2 (en) | 2003-02-28 | 2015-11-24 | Novell, Inc. | Access control to files based on source information |
US7895580B1 (en) | 2003-12-30 | 2011-02-22 | Sap Ag | Application tracing service employing different levels of precision for modifying bytecode |
US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
US7669186B2 (en) | 2005-11-16 | 2010-02-23 | Sun Microsystems, Inc. | Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents |
US8045958B2 (en) * | 2005-11-21 | 2011-10-25 | Research In Motion Limited | System and method for application program operation on a wireless device |
US7870399B2 (en) | 2006-02-10 | 2011-01-11 | Arxan Defense Systems | Software trusted platform module and application security wrapper |
US20090007081A1 (en) | 2006-05-26 | 2009-01-01 | Lau Allen N L | System and Method of Generating Applications for Mobile Devices |
WO2007147495A2 (en) | 2006-06-21 | 2007-12-27 | Wibu-Systems Ag | Method and system for intrusion detection |
US8689010B2 (en) * | 2007-06-28 | 2014-04-01 | Microsoft Corporation | Secure storage for digital rights management |
US8762687B2 (en) | 2008-05-24 | 2014-06-24 | Via Technologies, Inc. | Microprocessor providing isolated timers and counters for execution of secure code |
US7941700B2 (en) | 2009-03-02 | 2011-05-10 | Microsoft Corporation | Operating system-based application recovery |
US8898627B2 (en) | 2010-05-11 | 2014-11-25 | Smartshift Gmbh | Systems and methods for applying rules to transform objects of an application |
US8671222B2 (en) | 2010-05-11 | 2014-03-11 | Smartshift Gmbh | Systems and methods for dynamically deploying an application transformation tool over a network |
CA2774728C (en) * | 2009-11-13 | 2019-02-12 | Irdeto Canada Corporation | System and method to protect java bytecode code against static and dynamic attacks within hostile execution environments |
US8479286B2 (en) * | 2009-12-15 | 2013-07-02 | Mcafee, Inc. | Systems and methods for behavioral sandboxing |
US8739150B2 (en) | 2010-05-28 | 2014-05-27 | Smartshift Gmbh | Systems and methods for dynamically replacing code objects via conditional pattern templates |
US10496824B2 (en) | 2011-06-24 | 2019-12-03 | Microsoft Licensing Technology, LLC | Trusted language runtime on a mobile platform |
US8695060B2 (en) | 2011-10-10 | 2014-04-08 | Openpeak Inc. | System and method for creating secure applications |
-
2011
- 2011-03-21 US US13/052,973 patent/US8955142B2/en active Active
-
2012
- 2012-02-10 KR KR1020137027567A patent/KR20140074252A/ko not_active Application Discontinuation
- 2012-02-10 CN CN201280024770.9A patent/CN103548320B/zh not_active Expired - Fee Related
- 2012-02-10 DE DE112012001389T patent/DE112012001389T5/de not_active Withdrawn
- 2012-02-10 CA CA2830493A patent/CA2830493A1/en not_active Abandoned
- 2012-02-10 WO PCT/US2012/024655 patent/WO2012128860A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924814A (zh) * | 2005-08-30 | 2007-03-07 | 国际商业机器公司 | 应用程序的控制方法及装置 |
CN101410803A (zh) * | 2006-01-24 | 2009-04-15 | 思杰系统有限公司 | 用于提供对计算环境的访问的方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519043A (zh) * | 2013-09-30 | 2015-04-15 | 瞻博网络公司 | 对恶意客户端设备的模糊服务器响应 |
CN104519043B (zh) * | 2013-09-30 | 2018-11-02 | 瞻博网络公司 | 用于向客户端设备提供响应的安全设备、系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US8955142B2 (en) | 2015-02-10 |
KR20140074252A (ko) | 2014-06-17 |
WO2012128860A1 (en) | 2012-09-27 |
DE112012001389T5 (de) | 2013-12-19 |
US20120246731A1 (en) | 2012-09-27 |
CN103548320A (zh) | 2014-01-29 |
CA2830493A1 (en) | 2012-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103548320B (zh) | 不安全应用在装置上的安全执行 | |
CN103403669B (zh) | 使app变得安全的方法和防止app损坏设备的方法 | |
Peng et al. | Security challenges and opportunities for smart contracts in Internet of Things: A survey | |
Alpernas et al. | Secure serverless computing using dynamic information flow control | |
US8812868B2 (en) | Secure execution of unsecured apps on a device | |
US8769305B2 (en) | Secure execution of unsecured apps on a device | |
US8893298B2 (en) | Network linker for secure execution of unsecured apps on a device | |
CN1664742B (zh) | 一种对代码的执行进行计量的方法及设备 | |
US9542552B2 (en) | Extensible platform for securing apps on a mobile device using policies and customizable action points | |
CN106030528B (zh) | 数据代理服务 | |
CN105531692A (zh) | 针对由在虚拟机里面运行的移动应用加载、链接和执行本地代码的安全策略 | |
Armando et al. | Securing the" bring your own device" paradigm | |
Council | MSCT | |
CN105339923A (zh) | 混合行动应用程序的情境感知权限控制 | |
CN108038371A (zh) | 用于移动计算设备的数据丢失防护 | |
CN103891242A (zh) | 用于移动环境中输出信息的基于简档的过滤的系统和方法 | |
CN104239814A (zh) | 一种移动办公安全方法及系统 | |
NL2031835B1 (en) | License management for software defined silicon | |
CN109416824A (zh) | 用于通过电子邮件客户端在第三方服务中执行动作的架构 | |
US9672353B2 (en) | Securing and managing apps on a device using policy gates | |
CN105745896A (zh) | 用于经由面向方面编程来增强移动安全的系统和方法 | |
CN109543409A (zh) | 用于检测恶意应用及训练检测模型的方法、装置及设备 | |
Pecka et al. | Privilege escalation attack scenarios on the devops pipeline within a kubernetes environment | |
Sharma et al. | A survey of Mythril, a smart contract security analysis tool for EVM bytecode | |
Zhang et al. | A small leak will sink many ships: Vulnerabilities related to mini-programs permissions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161111 Address after: American California Applicant after: Blue cedar network Address before: American California Applicant before: Mocana Corporation |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161207 Termination date: 20180210 |
|
CF01 | Termination of patent right due to non-payment of annual fee |