CN103827881B - 用于设备操作系统中的动态平台安全的方法和系统 - Google Patents

用于设备操作系统中的动态平台安全的方法和系统 Download PDF

Info

Publication number
CN103827881B
CN103827881B CN201180070771.2A CN201180070771A CN103827881B CN 103827881 B CN103827881 B CN 103827881B CN 201180070771 A CN201180070771 A CN 201180070771A CN 103827881 B CN103827881 B CN 103827881B
Authority
CN
China
Prior art keywords
application
operating system
equipment
software agent
secure
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
Application number
CN201180070771.2A
Other languages
English (en)
Other versions
CN103827881A (zh
Inventor
P.利特瓦
D.琼斯
R.范德吉斯特
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.)
Ai Dide Technology Co Ltd
Original Assignee
Ai Dide Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ai Dide Technology Co Ltd filed Critical Ai Dide Technology Co Ltd
Publication of CN103827881A publication Critical patent/CN103827881A/zh
Application granted granted Critical
Publication of CN103827881B publication Critical patent/CN103827881B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

提供了一种用于在具有开放开发平台的消费电子设备上实现平台安全的系统和方法。该设备是包括可在设备硬件和应用软件之间操作的抽象层的类型。提供用于嵌入在抽象层内的安全软件代理,所述抽象层形成操作系统。提供用于存储对应用软件的一个或多个实例唯一的安全信息的安全存储装置。安全软件代理使用安全信息,以连续运行时间保证操作系统和应用软件的持续操作完整性,以及由此的设备的操作完整性。

Description

用于设备操作系统中的动态平台安全的方法和系统
技术领域
本发明一般涉及减轻安全威胁并且从电子设备上的安全漏洞中恢复。更特别的是,本发明涉及:(a)通过使用嵌入设备中的安全软件代理来防止电子设备和数字资产的未授权的使用和访问,所述数字资产诸如:游戏、应用、电子书、视频文件、文本文件和被认为是在该电子设备上的价值的其它数字数据;(b)通过安装彼此之间不同的安全软件代理来提供用来减轻可能由可能发生的自动攻击引起的损坏的装置;以及(c)通过更新安全软件代理来提供用来从可能发生的攻击中恢复的装置,使一个代理在功能(例如,引入附加的安全检查)和结构(例如,通过对代理中的二进制码的位置进行重新排序)中不同于初始代理。
背景技术
诸如移动电话、平板电脑、游戏机、机顶盒、电视机、个人导航设备和其它消费电子设备(或简称为“设备”)的设备通常由消费者从零售分销渠道(例如,消费电子商店)购买,或者可以由服务供应商(或简称“运营商”)出售给或租给消费者,所述服务供应商例如:移动网络运营商、广播电视网络供应商或者互联网视频供应商。传统上,这种设备是封闭的设备或嵌入式设备,其基于专属的硬件和操作系统,并且不支持第三方软件应用。然而,这种设备越来越多地变成开放设备。应当理解的是,在该背景讨论的上下文中的“开放”可以包括不同程度,所述不同程度包括但不限于:标准硬件(诸如在基于Intel或ARM处理器的芯片上的系统)、开源操作系统和软件、用来启用第三方应用开发和/或可自由修改编程的开放或发布的API。
这种设备可以包括开源操作系统,所述开源操作系统包括诸如Linux(最初由Linus Torvalds在世界各地的开发者的帮助下创建的开源Unix类型操作系统)或Android(基于Linux内核的移动版本并由加利福尼亚山景城(Mountain View)的谷歌公司推向市场的开源移动操作系统.)的那些开源操作系统。
采用未授权使用和访问形式的在封闭或嵌入式设备上的攻击已经发生了许多年。然而,嵌入式设备的这种黑客行为已经是要求硬件和软件技能的专业组合的专业且高技术的处理。相反,开放设备具有许多开发者和黑客非常了解的硬件和操作系统。因此,开放设备的该趋势大大增加了具有知识和专长的黑客的潜在数量,其致使开放设备更加易受攻击。这种开放设备也支持第三方应用开发者为那些设备开发应用的能力(例如,开放API),并且因此这种设备越来越多地支持消费者在这种设备上下载、安装和运行第三方软件应用(或简称为“应用”)的能力。这种应用不是由设备的运营商或初始装备制造商(或简称“OEM”,其可以包括诸如加利福尼亚库比蒂诺(Cupertino)的苹果公司之类的公司)开发的。在软件设计方面,这种应用可以通过使用脚本语言(例如,Java脚本)或本机代码(例如,C或C++程序)来开发。
消费者购买或租赁以及在设备上下载和安装第三方软件应用的能力可以由OEM(例如苹果公司)、运营商或者独立于OEM或运营商的公司通常经由基于互联网的零售接口来提供,所述零售接口例如iTunes Store或Android Market(分别由苹果公司和谷歌公司运营的基于软件的在线数字媒体商店)。基于互联网的零售接口提供了系统,通过该系统第三方应用开发者(或简称“开发者”)与基于互联网的零售接口供应商共享来自应用销售的部分收入。使消费者能够在设备上下载并安装这种第三方应用(或简称“app”)的趋势也增加了对对于消费者、运营商、开发者和在通常与嵌入式设备相关联的OEM之外的OEM的安全关注。
一个这种安全关注是恶意软件,出售给消费者的第三方软件借此可以包含被认为是恶意软件(例如,蠕虫病毒、木马程序、流氓软件和后门程序)的恶意性软件。这种恶意软件可以引起消费者隐私的漏洞,例如,在移动电话上的恶意软件可能经由移动电话的GPS能力监测用户的位置,并且将这种位置数据发射到远程服务器。恶意软件也可能引起设备或相关服务的身份盗用或欺骗性使用,例如在移动电话上的恶意软件能够自动对服务进行拨号,所述服务将费用添加到用户的移动电话订阅中。恶意软件也可能引起运营商的网络稳定问题,例如,在移动电话上的恶意软件可能不适当地使用诸如SMS或移动语音呼叫的网络能力,从而造成针对移动网络运营商的网络的拒绝服务攻击,进而冲击网络服务质量或可用性。
另一个显著的安全关注是应用盗版。此处,应用遭受盗版,消费者借此可以免费获得应用的副本,并且将它安装在未由基于互联网的零售接口的供应商授权或支持的其设备或类似的设备上。应用盗版引起基于互联网的零售接口的供应商和开发者在比他们在不存在应用盗版的情况下产生更少的收入。
附加的安全关注包括未授权的应用。基于互联网的零售接口的供应商可以“认证”应用以确保在通过他们的基于互联网的零售接口所出售的应用中不存在恶意软件。这用来提供针对上文注意的恶意软件关注的一定程度的保护,并且用来防止应用以其它方式危害设备和/或设备网络(即,移动网络)的安全。如果该认证过程可以被规避或是不彻底的,则消费者可能不知不觉地从未授权的基于互联网的零售接口或者其它互联网网站下载恶意软件到他们的设备上。如果该认证过程可以被规避或是不足以检测潜在的恶意软件,则消费者可能不知不觉地从基于互联网的零售接口下载恶意软件到他们的设备上。
另一个重要的安全关注涉及内容盗版。已知的是,媒体应用(例如,视频播放器、音乐播放器或电子书阅读器)可以由消费者用在设备上,以访问高价值的数字内容,诸如数字视频、音乐或电子出版物,所述数字内容由基于互联网的零售接口的供应商为了销售给消费者而从媒体内容供应商(例如,电影工作室、音乐制作人或书籍出版商)得到许可。强占用户(例如,内容盗版者)可以在强占用户拥有的设备上安装软件,以便使强占用户能够访问由媒体应用使用的密钥,从而解密内容、抽取数字内容(即,在媒体渲染路径的一些点处捕获所解密的压缩的数字内容),或者“屏幕抓取”数字内容(即,在媒体渲染路径的一些点处捕获所解密的解压缩的数字内容)。这种捕获的媒体内容因此可以不在媒体内容供应商的进一步控制和批准的情况下进行使用和再生。
针对平台安全(即,意在解决上文注意的一个或多个安全问题的安全)的现有方法通常涉及下面本文中进一步分组和描述的一个或多个以下的方法。
“操作系统安全”是这样一种安全方法,操作系统借此可以提供包括进程隔离、访问控制、私有应用编程接口(API)以及应用认证/签名以及应用许可服务的一个或多个功能或能力。如下文将进一步描述这种功能和能力。
“进程隔离”可以由操作系统(或者在操作系统之下安装的管理程序)支持,以确保每个应用和系统的各部分在其自身的进程和专用的存储器空间中运行,使得在默认情况下,没有应用具有用来执行能够不利地影响另一个应用、操作系统(OS)或消费者的任何操作的能力。每个应用进程可以被认为是运行在其自身的操作环境中,所述操作环境经常被称作其自身的“沙盒”。然而,为了开发对用户有用的应用,大部分应用必须能够访问操作系统服务(例如,在移动电话OS上,发送短消息服务(SMS)文本消息、得到用户位置、记录电话呼叫、拍照等等),所述操作系统服务在基本的沙盒内得不到支持。因为应用必须访问沙盒外部的操作系统,其增加了应用可能执行负面地影响其它应用、OS或消费者的操作的可能性,所以这限制了进程隔离或“沙盒”的有效性。
“访问控制”涉及用来解决对于应用使用沙盒外部的OS服务或资源的要求或者对于本机应用、OS服务或资源的要求的能力,所述本机应用、OS服务或资源可能使本机应用能够不利地影响其它应用、消费者或网络。此处,OS包括做出关于是否授权对请求应用的这种访问的决定的访问控制功能。该访问控制功能可以与权限(permission)的概念组合在一起。例如在来自谷歌公司的Android OS中,应用开发者必须在相关联的清单文件中申明他们的应用所要求的权限,以使应用能够执行可能不利地影响其它应用、OS或消费者的任何操作。访问控制决定也可以基于内在授权给应用的特权(例如,Linux OS中的用户应用或根访问)。与权限相关联的问题中的一个与如下的疑问相关:谁或什么向应用授权了权限,以及授予者是否理解这种批准的含义(例如,在Android OS情况下,是消费者授权了这种权限)。另一个问题是这种权限可能由恶意软件或攻击者修改,消费者或认证机构遵循这样的权限授权。一些操作系统具有能够实施不同访问控制模型的访问控制构架(例如,Linux安全模块(LSM))。LSM能够实施作为可加载内核模块的不同访问控制模型和功能。
“私有API”是用来限制应用访问操作系统服务或资源的能力的另一个机制,所述操作系统服务或资源可能不利地影响平台安全。此处,虽然许多系统API可以是开放或公共的,但是OEM可以通过维持从应用开发者访问特定的操作系统服务所要求的API的保密性来限制对这样的服务的访问。这通常与应用认证过程耦合,以确保为认证提交的应用不尝试调用这种私有API。
“应用认证/签名”涉及在当前使用中的各种现有应用认证过程,其确保应用不执行恶意操作和/或访问私有API。这些过程一般包括应用的静态检验(例如,在执行之前扫描目标代码)(例如,以检验私有API没有被应用调用)以及动态检验(例如,以检验在执行期间的应用的“稳定性”)。如果应用通过认证过程,则它由认证机构(其也可以是基于互联网的零售接口供应商)以后来可以被检验的形式进行数字签名。当前应用认证方案的问题之一是全面的认证是不容易自动化的,并且因此是不彻底的。因为这个,可以以如下方式将恶意操作嵌入应用中:它将仅仅在应用认证/签名过程之后的预先指定的时间处执行。由此,这种恶意操作在检验过程期间可以避免检测。应用认证的另一个问题是可能必须由基于互联网的零售接口供应商认证的应用的绝对数量。例如,估计App Store(由苹果公司提供的用于提供它们的iPhone™牌智能电话的移动软件应用的基于互联网的零售接口)具有超过300000个应用,并且每周有10000个新的应用提交给苹果公司。这使得在认证之前执行应用的彻底检验成本太高。另一个问题是黑客可能针对由基于互联网的零售接口供应商生成的签名来修改或代替用来检验应用的完整性的在OS中的信任根(即,数字证书和软件),使得可以在应用认证/签名之后修改应用,使得可以修改与应用相关联的权限,使得强占第三方可以将未授权的应用加载到设备上,或者使得消费者可以将盗版应用加载到设备上。
“应用许可服务”涉及针对应用盗版的保护,系统借此提供许可服务。例如,Android OS提供许可服务,其使应用开发者强制执行对于已支付应用的许可政策。然而,这些类型的应用许可服务可以由黑客通过修改应用以提取这种许可检验检查来容易地规避。
除了在平台安全内找到的以上功能和能力的每一个中注意的问题以外,存在对于进程隔离、访问控制和应用许可服务共同的问题,借此可以通过修改执行这种功能的操作系统的部分来推翻或绕过支持这种安全功能的OS的部分。为了防止OS安全功能或其它OS功能的这种改变,经常在设备中实施利用“安全引导加载器”的进一步的方法。
“安全引导加载器”(或者简称为“安全引导”)用来确保仅仅将意向的引导软件和OS内核加载到设备上。此处,认证针对由设备OEM生成的签名来比较应用软件。引导软件和OS内核的认证或完整性检验仅仅在设备启动期间发生,使得该机制可能被在引导过程期间发生的动态攻击规避。一旦安全引导加载器已经被绕过,可以修改OS以绕过可能在OS中存在的其它安全功能。这些动态攻击是高度自动化的,使得它们是易受消费者影响,而所述消费者不具有独立实施这种攻击的专门技术(即,越狱技术)。此外,一旦安全根进程已经被危害,不存在为已经部署在现场中的设备恢复设备安全的方式。
除了关于平台安全的上文注意的问题以外,存在对于进程隔离、访问控制、应用许可服务、虚拟机以及安全引导加载器共同的问题,其涉及从攻击中恢复的能力。一般地,一旦攻击已经发生,不存在为已经出售给或许可给或以其它方式分发给消费者的设备恢复平台安全的适当机制。我们称之为“静态安全”,因为这种平台安全的设计中的内在假定是:适当放置的平台安全机制在设备的有用寿命期间将抵抗任何以及全部攻击。静态安全经常受攻击,并且这样的攻击被“打包”为可以由普通消费者实施的自动攻击(例如,已知的对由AppleTM开发的iPhoneTM的越狱攻击)。
“病毒检测和入侵防护软件”是用来检测恶意软件并减轻这种恶意软件可能引起的任何损坏的另一个安全方法。至今,检测诸如移动电话的设备上的恶意软件的几乎每个解决方案已经依赖基于相同的“签名”的机制,个人计算机(PC)杀毒解决方案已经使用该机制好多年。术语“签名”此处不涉及数字签名,而是属性集合,通过该属性集合可以识别特定一段恶意软件,例如,诸如是具有特定长度的和在其中一定位置处的特定字节序列的属性。然而,一旦已经部署恶意软件,才仅仅理解这些签名,意味着恶意软件已经引起损坏。此外,这些基于签名类型的解决方案必须持续不断地被更新,并且必须能够检测成千上万的恶意软件签名。不能仅仅单独依赖这些作为在设备上检测并防止来自恶意软件的损坏的手段。此外,杀毒软件自身可能被恶意软件修改或禁用,以防止这种检测。
“虚拟机”是用来施加平台安全的又另一个安全方法。诸如JavaTM虚拟机(JVM)的虚拟机被设计为允许从潜在的不信任源中获得的应用的安全执行。JVM接受通常被称作JavaTM字节码的计算机中间语言的形式,所述JavaTM字节码是来自加利福尼亚红木湾地区(Redwood Shores)的甲骨文公司的编程语言,其概念地表示面向栈的能力体系结构的指令集。JavaTM应用运行在受限制的沙盒中,所述沙盒被设计为保护用户免受行为不端代码或恶意软件之害。这伴随性能限制和在功能方面的限制而发生,例如,防止应用访问被视为“危险”的操作系统功能和资源。
前述安全方法中的每一个形成如现有技术的图1中示出的静态平台安全功能100的部分。此外,如图1所示的安全引导程序加载110是已知的,例如,在2001年2月6日颁发给Arbaugh等人的美国专利No.6,185,678内,并且在本文中不进一步描述。
“媒体应用混淆”是可以结合平台安全使用,或者在平台安全不存在的情况下使用的安全方法,借此可以将软件混淆技术施加至媒体应用,以防止用来解密内容的密钥被强占用户发现,并且以防止在媒体播放路径上的媒体抽取或屏幕抓取攻击。具有在保护媒体播放路径中出现的四个问题。第一,媒体播放路径可以由给予供应商媒体应用的受限的能力的OEM或另一个第三方实施,以便在媒体播放路径内实施混淆技术。第二,混淆媒体播放路径可能引入附加的中央处理单元(CPU)开销,其可能增加设备的功率消耗,并且引入在设备上的该应用或其它应用的运行中延迟。第三,与解压缩的高清视频相关联的特定媒体类型(例如,高清视频)的高数据速率可能限制混淆媒体播放路径的能力。最后,用来渲染媒体的硬件(即,图形处理单元(GPU)) 可能是不安全的,或者可以具有媒体应用供应商在商业上不可容易取得的安全API,以便防止屏幕抓取类型攻击。
所以,所期望的是提供克服与前面防止设备和在该设备上的数字资产的未授权使用的方法以及静态平台安全的限制相关联的问题的安全机制。
发明内容
本发明的一个目标是排除或减轻前面平台安全方法和机制的至少一个缺点。更具体地,本发明在针对至少应用盗版、恶意软件、未授权的应用和内容盗版改善安全方面解决前面平台安全方法和机制的缺陷。
在第一实施例中,本发明提供了一种用于改善设备安全的系统,所述系统包括:抽象层,可在设备硬件和应用软件之间操作;安全软件代理,嵌入在抽象层内;以及安全存储装置,用于存储对应用软件唯一的安全信息,以供由安全软件代理连续运行时间使用以保证系统的持续完整性。
在进一步的实施例中,提供了一种改善设备安全的方法,其中,设备包括可在设备硬件与应用软件之间操作的抽象层,所述方法包括:将安全软件代理嵌入在抽象层内;以及提供用于存储对应用软件唯一的安全信息的安全存储装置,以供由安全软件代理连续运行时间使用以保证设备的持续操作完整性。
对本领域技术人员而言,在查看下面结合附图的本发明的特定实施例的描述时,本发明的其它方面和特征将变得明显。
附图说明
现在将参考附图通过举例来描述本发明的实施例。
图1是表示现有技术的静态平台安全功能的示意图。
图2A是示出了如应用于Android OS的本发明的一个实施例的层示意图。
图2B是示出了如应用于Android OS的本发明的另一个实施例的层示意图。
图2C是示出了如应用于Android OS的本发明的又另一个实施例的层示意图。
图3是示出了根据图2A的实施例的动态平台安全功能的特定方面的示意图。
图4是图示了根据图3的实施例的通常的引导加载序列的示意图。
图5是图示了根据图3的实施例的供应序列的示意图。
图6是图示了根据图3的实施例的应用权限的安装的示意图。
图7是图示了根据图3的实施例的在运行时间期间的连续系统完整性的示意图。
图8是图示了根据图3的实施例的在运行时间期间用户应用请求的验证的示意图。
图9是图示了根据图3的实施例的在运行时间期间的应用权限增强的示意图。
具体实施方式
一般地,本发明提供了用于可再生或“动态”平台安全的方法和系统。虽然可应用于任何移动电话、游戏机、平板电脑、机顶盒、电视机、或其它消费电子设备,但是本发明将根据使用开放OS的这种设备进行描述,所述开放OS包括但不限于:Linux和AndriodTM OS。特别是,将相对于AndriodTM OS示出并描述优选的实施例,这仅仅为了说明的目的,并且不应当被解释为限制本发明的意向范围。甚至,本发明在打击恶意软件、应用盗版或修改,改善平台访问控制,以及设备上的防护媒体播放方面的优点普遍可应用于任何设备OS,其中,由于与任何开放设备相关联的内在更大的安全风险而对这种开放设备特别有用。而且,本发明意在作为新的应用控制的方法和系统,并且其可与现有的平台安全一起使用,并且除了现有的平台安全之外而可使用。
参考图2,示出了整体层示意图200,以指示如在AndriodTM OS实施例中实施的本发明。此处,本发明的基本体系结构被看出包括分层执行栈。基本层219涉及包括中央处理单元(CPU)、图形处理单元(GPU)和存储器(只读存储器(ROM))的通常的片上系统(SOC)部件,基本输入/输出系统(BIOS)存在于所述部件中。图2中的最高层是此处示出为一个或多个AndriodTM应用210a、210b的设备应用。中间层包括各种已知的软件和硬件元件,包括硬盘(HDD)存储设备或闪存存储器220、OS内核215和OS内核应用接口层214,所述OS内核应用接口层214管理在OS本机应用223与AndriodTM OS 213之间的系统调用。根据本发明,分层执行栈进一步包括在AndriodTM OS 213与虚拟机(VM)层211(即,Dalvik,其是形成AndriodTM OS的主要部分的AndriodTM VM)之间的JavaTM 访问控制(JAC)层212。VM层用来将给定的应用转换为适合于以已知方式在给定设备上执行的紧凑可执行形式(即,根据AndriodTM应用的“.dex”格式)。JAC层212用来通过在VM层211的机器可执行代码与安全代理(或简称“代理”)217之间进行认证通信来提供安全访问控制。这种访问控制功能可以包括任何合适的已知机制,所述机制提供在脚本app与本机代理之间的桥梁,以便允许代理检验脚本应用的完整性,由此将“应用”的范围延伸到脚本应用。应当进一步理解的是,如果所有应用都假定是本机应用224,则将不需要JAC层212。
应当理解的是,本发明可以结合如图1所示的已知的静态平台安全功能100进行实施。更具体地,本发明通过确保执行现有OS系统安全功能(诸如进程隔离)的操作系统的部分在引导过程期间或在运行时间期间不被修改,来并入这种功能。本发明也通过检验遵循正确的安全引导加载器路径并通过动态地检验OS和引导加载器的完整性来补充现有的安全引导加载器功能(如图2所示的阶段1加载器221和阶段2加载器22)。应当理解的是,这种安全引导加载器仅仅在启动期间这样运行。
根据本发明,将代理217嵌入OS内核215中。代理217符合Linux安全模块接口(LSMI/F)。本文中不进一步讨论LSM,因为它是已知的构架(其可应用于AndriodTM以及Linux分布),其允许Linux内核支持各种计算机安全模型,而不青睐任何单个安全实施。为了使代理217抵抗篡改、修改和反向工程攻击,代理217通过使用已知的软件保护技术来进行自我保护,所述软件保护技术诸如但不限于在均颁发给Chow等人的美国专利号6,594,761、6,779,114、6,842,862和7,506,177中更详细描述的那些,其图示了可以结合本发明使用的这种防篡改的示例。
应当理解的是,代理217形成OS内核215的主要和不可分开的部分,在没有所述代理217的情况下,设备OS 213和/或应用210a、210b、224将停止正确地运行。代理217的功能的一个示例是监测加载到设备上的OS 213和应用210a、210b、224两者的完整性,并且检测OS 213或安全引导221、222的任何漏洞。代理217维持并具有对安全数据存储装置218的独有的访问,代理217将与内核资源访问控制、完整性检验、应用许可和应用资源访问控制的代理的性能相关的信息保持在所述安全数据存储装置218内。虽然安全存储装置218在图2A中示出为本发明系统的单独的部件,但是应当理解的是,如在图2B的替换实施例201中看出的,安全存储装置218可以存在于硬盘或闪存220内。仍进一步地,如在图2C的进一步替换的实施例中看出的,安全存储装置218可以存在为片上系统基本层219内的安全存储器。
在内核资源访问控制方面,代理被配置为控制对OS内核资源和数据的应用访问。由代理做出的访问控制决定基于但不限于如下因素:OS内核完整性、应用完整性、应用上下文以及由任何给定的信任根机构授权的特权。基于OS内核完整性的访问控制决定确定内核是否已经以未授权的方式被修改、被代替、被添加、或者被部分移除。访问控制决定也将确定是否甚至发生了安全引导过程。如果OS内核已经被修改、代替、添加或部分移除,或者不能肯定地检验安全引导过程,则该确定将用来使代理或应用或安全应用(诸如媒体播放器)将在正常操作下的许多假定失效。基于应用完整性的访问控制决定确定应用是否正尝试以任何方式(例如,将恶意软件插入应用或通过其它恶意软件)访问已经被修改的OS内核资源,或者与该应用相关联的特权是否已经被修改(例如,以给予它未由认证机构授权的访问系统资源的特权)。
基于应用上下文的访问控制决定确定给定应用是否以在该应用的上下文之外的一些方式运行。由此,代理可以做出上下文敏感的访问控制决定。例如,如果播放高清视频的媒体应用正在运行,则其它应用不应当能够访问帧缓冲器,因为这将使能屏幕抓取攻击。基于任何给定的信任根机构的访问控制决定确定相对于该机构的应用权限。换句话说,本发明可以支持多应用签名机构,使得在访问系统资源方面,相比于对由较少信任机构签名的应用或完全没有认证的应用进行授权,代理可以向由较高信任机构签名的应用授权更大程度的宽容度(latitude)。
在代理的性能的完整性检验方面,代理被配置为动态地监测(例如,在软件正在运行的同时在存储器中)内核、安全引导部件、代理自身和所有受保护应用和未保护应用的完整性,以确定任何这些项在给定的一个或多个应用的执行期间是否已经在任何时间以任何方式被修改(例如,可以通过使用调试器来实施的动态篡改)。
在代理的应用资源控制的性能方面,代理被配置为控制对应用资源的访问,所述应用资源可以包括例如已经由代理加密的应用的一部分,或者应用执行所要求的数据文件(例如,游戏资源文件),或者控制应用执行的数据。这种访问控制决定基于如下因素,所述因素诸如但不限于有效许可数据的存在或者设备或消费者的身份的确认,两者中的任意一个被设计为保护应用免受盗版危害。
代理自身可以被软件中体现并由具有固定接口的不同代码部分组合所生成。在代码部分中的这种变型的创建可以根据已知的方法或者这种方法的组合来实现,所述方法包括在均颁发给Chow等人的美国专利号6,594,761、6,779,114、6,842,862和7,506,177中描述的那些或者任何其它合适的已知方法。这种变化被叫做“相异代理”或“更新代理”。相异代理是具有相同的功能F,但结构上和原理上是不同的那些。生成并部署相异代理的目标是防止自动攻击,即,由富有经验的攻击者开发的攻击,其可以是足够自动化的,使得它由普通消费者简单地使用,并且其将可被施加至在设备的某个安装基点中部署的每个代理。这种相异代理可以跨越设备的不同例示、不同类型的设备、不同地理区域或由不同运营商出售的设备等等而被部署。
更新代理是这样的代理,借此如果带有功能设置F1的代理A1被部署在现场中并以某种方式被危害或受攻击,则期望固定这种脆弱性。这可以通过生成代理A2来实现,所述代理A2并入功能F1,但其也并入设计为防止对A1的攻击的新功能。该增量功能F2使得A2的功能现在是F1+F2。通过将相异性能力应用于A2,攻击者隔离在实施新功能F2的A2中的软件功能(例如,通过差异分析)是更困难的。更新代理提供用来解决对已经部署在现场中的设备或代理的攻击的机制。这种更新代理可以由消费者下载,经由软件更新机制推送给设备,或者由现有代理拉向设备。在这种更新发生的情况下,应当理解的是,它们是通过配置代理软件以供在识别和分析安全威胁的任何尝试的或实际成功的攻击时进行更新来实现的。因此,本发明可以向代理公告对于“在开发中”的攻击的更新,因为黑客将经常公布在开发中但还没有成功达到攻击者的目标的攻击的信息。
关于图3,根据如图2中的本发明的通用化栈体系结构示出了动态平台安全功能的更详细的示意图300。此处,当与现有技术的图1比较时,可以清楚地看出,本发明如何值得称赞并且可以结合已知的静态平台安全功能而实施。如在前面的图2A-2C中,基本层包括通常的SOC 329部件,所述SOC 329部件包括CPU 330和ROM 333,BIOS 331存在于所述ROM 333内。
在图3所示的操作的方面,存在如所示提供的通常的安全引导加载器序列310。应当理解的是,本发明的实施例可以利用现有安全引导技术。应当同等理解的是,引导序列可以同等地施加至1阶段或其后的许多阶段。如图3所示,系统中通常存在2个引导加载阶段334、335。一般来说,当在将执行控制转移到下一个部件之前,第一部件验证第二部件时,安全引导部件的自下而上的验证发生。借助于虚线示出该引导时间完整性检验。此处,第一阶段在设备复位时发生,其中,将ROM代码被硬布线到到设备复位地址。ROM(或引导ROM)333在检验下一个引导阶段是意向的引导阶段之后加载下一个引导阶段334。该检验或认证通过计算来自HDD或闪存存储器328的数字签名来执行。如果数字签名匹配预计算的值(如在所示的数字证书332中封装的),则OS引导加载器335将被加载到主存储器并被执行。如果签名不匹配在任何阶段处的预计算的值,则执行控制将不转移到下一阶段且设备将没能引导。当OS引导加载器335具有执行控制时,OS引导加载器执行335类似验证来自HDD或闪存存储器328的OS映像的操作。再次,如果计算的签名匹配预期的预计算的签名,它将OS映像加载入存储器并将控制转移到OS映像(即,在如所示的AndroidTM OS 339中进行操作的Linux内核325)。然后,该OS映像将初始化,并且在该过程期间,代理336也将被初始化。虽然代理336被包括在数字签名的OS映像中,但应当理解的是,代理336可以被更新。这是因为签名被分解为单独的逻辑模块,并且每个模块具有在安全引导过程期间进行检查的其自身的签名。所以,任何模块可以被代替,尽管签名必须是用数字签名私钥在密码上有效且可信的。
在继续参考图3的情况下,将OS内核325示出为针对AndroidTM OS 339修改的Linux内核。此处,本发明的该特定实施方式使用Linux安全模块(“LSM”)。如上文提及的,LSM是允许Linux内核支持各种计算机安全模型同时避免青睐任何单个安全实施的构架。LSM提供在Linux内核325中的每个点处的钩子函数(hook),其中用户级系统调用将导致对重要内部内核对象的访问。LSM可以用来实施宽范围的安全功能(例如,对访问病毒检查的强制访问控制(MAC))。
根据本发明的代理326也被配置为包括完整性检验(或简称“IV”)。嵌入代理326中的IV函数使代理326能够执行静态完整性检验(例如,对HDD或对闪存存储器)以及动态完整性检验(例如,在随机访问存储器(RAM)中)。IV通过计算用于应用或系统部件的散列值,并接着将它与用于散列函数的已知的好值进行比较来实施。如果计算的值与所存储的已知的好值相同,则代理假定该部件没有被攻击者修改。然而,如果计算的值不同于所存储的已知的好值,则代理假定部件已经被修改,并且不再能够被信任以执行意向执行的功能,或者它应该不再具有初始分配给它的相同的特权。
如图3所示,代理326在持续基础上对多个设备软件部件执行IV检查。完成该“完整性监测”以检测任何未授权的修改(例如,篡改),诸如对支持系统的安全目标是关键的部件或子部件的修改、代替、移除或添加。
根据本发明的由代理336经由IV监测的这种部件包括:ROM BIOS 331;HDD或设备闪存存储器328;阶段1引导加载器334;阶段2引导加载器335;Linux内核325或Linux内核的各部分;系统调用接口(I/F)338;包括安全存储装置327的代理336(在如由图3的虚线和实线分别指示的引导时间和运行时间两者期间);本机应用320;AndroidTM OS 339;本机AndroidTM应用321;JAC 324;AndroidTM(Dalvik)虚拟机323;AndroidTM应用322;以及应用和系统供应序列(如关于下面图4和5进一步描述的)。
图3图示了这种本机应用1 320的完整性监测(由实线箭头示出)。此处,代理336连续地监测本机应用1 320,使得当本机应用1 320尝试通过系统调用I/F 338访问系统资源时检验完整性。这通过签名检验337来发生,借此代理336通过将签名1 340与对应于应用1资源的已知的好值进行比较来实施IV。特别是,应用1资源包括存储在安全存储装置327中的IV信息和应用签名证书。如果签名1的值与所存储的应用签名证书(即,已知的好值)相同,则代理336假定本机应用1 320还没有被攻击者修改,并且它的权限或特权341还没有被修改。然而,如果签名1的值不同于已知的好值,则代理336假定本机应用1 320已经被修改,并且不再能够被信任以执行意向执行的功能。该过程对于所有本机应用发生,所述所有本机应用相当于本机应用n 321而呈现。
将对于图4进一步解释图3所示的进程隔离块326,其中,存在根据本发明的图示的运行时间引导加载序列400。特别是,可以看出在设备复位时安全引导部件的自上而下的验证(在步骤1、2和3处)。该验证用来确保加载到设备上的OS是OEM或运营商意向的OS,并且该OS具有意向的功能。一旦代理在初始化期间获得执行控制(在步骤4处),代理将对其自身连同前面执行的安全引导加载器的部件(包括引导ROM映像、OS引导加载器和OS映像)执行IV。如果所有这些部件的完整性(从步骤1到4)由代理通过使用与存在于代理安全存储装置中的数据的比较(在步骤5到8处)来得到确认,则代理假定安装在设备上的OS是意向的OS,并且可以由OS执行的特定安全功能还没有被修改。然而,如果代理确定所述部件中的一个或多个不能被认证,则代理可以采取纠正行动。
由代理采取的一个可能的纠正行动是用意向的引导部件的备份映像来代替引导部件,然后,复位设备并再次开始该启动过程。如果代理检测到系统在多次尝试纠正无效的部件之后仍是无效的,则代理可以拒绝所有对关键系统资源或应用资源的进一步访问。应当容易看出的是,尝试的次数是设计选项的问题,并因此是本发明的意向范围内的预先确定的变量。同样,确定哪些系统资源可以被考虑为是关键可以基于给定的设备用途而预先确定。在不偏离本发明的意向范围的情况下,其它纠正行动也是可能的。
应当理解的是,前面详细的描述假设应用已经存在并因此对于OEM、运营商、基于互联网的零售接口供应商而言是已知的,并转而对于根据本发明的代理而言是已知的。然而,容易看出的是,新应用可以由开发者形成。如此,图5图示了在应用认证过程500期间施加于由开发者提交的应用(未保护的)处理。根据本发明的代理包括资产保护工具514,其是配置为创建并更新加密的应用安全存储装置512的软件工具。此处,资产保护工具514存储信息以保护未保护的应用。应当理解的是,可以将各种防篡改技术应用于所存储的信息,以便处于静止(例如,在磁盘上)和在使用中(例如,在存储器中)保护加密秘密,所述防篡改技术诸如但不限于安全加载器和IV,以及白盒子密码技术的使用。
进一步对于图5,在步骤1处提供了未保护的资产515(即,来自开发者的新应用)。在步骤2处,由应用开发者或开放系统创建的是未签名的增强型权限容器清单510。这列出了由认证机构授权给应用的权限(A、B、…等等)。此外,将权限映射到内核系统调用的特定集。在步骤3处,在创建未签名的清单510之后,资产保护工具514被配置为生成或使用所提供的信任密钥511的私有根。信任根可以由资产保护工具自动地且随机地生成。然后,在步骤4处,资产保护工具514经由资产保护工具514对未签名的应用515进行签名,并且将结果放置在签名的增强型权限容器清单中,所述清单存在于应用安全存储装置512内。此外,在步骤5处,将增强型权限容器清单的签名版本存储在应用安全存储装置512中,其中放置特定于给定资产的信息(例如,代码签名、增强型权限容器清单、信任密钥的根)。在步骤6处,所得的结果是以完整供应应用的形式的受保护资产513。可选地,未保护的新应用可以具有包裹在它周围的安全加载器,以便提供带有静态防篡改的所得受保护资产并且被VI启用。
应当进一步理解的是,不可以为用于上文讨论的资产保护工具的任何特定实施例供应所有应用类型。例如,在与AndroidTM OS具体相关的本实施例中,可以在实施本发明的本实施例的系统上供应、安装并随后运行的应用类型的通常列表可以被限制为本机OS应用、本机AndroidTM应用和AndroidTM应用。在不偏离本发明的意向范围的情况下,在本文中图示的特定AndroidTM OS实施方式以外,其它开放OS实施方式当然可以是可能的。
在被放置到设备上的给定应用的安装和运行时间期间,图5的供应序列中创建的权限信息进一步由代理使用。此外,当供应选自可得应用类型的给定应用代码时,在应用安全存储装置中的所得的签名的增强型权限容器清单由此包含应用代码在运行时间期间需要的所有权限。增强型权限容器清单指定应用代码签名和容器自身的签名,以便防止在应用代码已经被签名之后对容器或应用的篡改。
关于图6,图示了应用权限的初始安装600。此处,在应用安全存储装置610内找到示出的签名的增强型权限容器清单611,其在图5的供应时间期间被创建。如前面提及的,增强型权限容器清单611由资产保护工具加密。由此,这方便了增强型权限容器清单611从应用安全存储装置610到代理安全存储装置612的转移。应用安全存储装置610和代理安全存储装置612都包括如图3中一般示出的安全存储装置。
在增强型权限容器清单611内,存在权限列表(即,权限A、权限B、…等等)。权限列表确定什么OS内核资源可以由给定应用代码访问,所述给定应用代码形成被安装且运行的应用。应用代码签名由代理613使用以IV应用,从而确保它在它发出用于特定内核权限的OS请求(诸如“安装”请求)的时候没有被修改。容器签名是用于容器自身的参考值,并且由代理613使用以确保容器的内容还没有改变。一旦OS和应用的完整性已经被检验,所安装应用的增强型权限容器清单将被存储在代理安全存储装置612中,以用于该应用的其它权限请求的未来参考。
进一步关于图6,安装序列包括在步骤1处首先发送请求到OS内核614,以便依照来自应用代码615的安装程序指令安装应用。随后,在步骤2处,OS内核614将请求传递给代理613。在步骤3处,代理613验证(经由如上文已经描述的IV)OS内核614。如之前上文注意的,应当理解的是,代理613也以持续方式(即作为后台进程)验证OS内核614。在步骤4处,代理613访问应用安全存储装置610以从中检索签名的增强型权限容器清单611。代理613在步骤5处通过使用签名的增强型权限容器清单的IV来验证应用的签名的增强型权限容器清单。代理613在步骤6处将验证后的应用的增强型权限容器清单存储入代理安全存储装置612,以用于未来的参考。基于步骤5的验证操作,在步骤7处,代理613允许或拒绝到OS内核614的安装。OS内核614又在步骤8处将权限(允许或拒绝)传递到安装程序指令以最终允许或拒绝应用代码615的安装,所述应用程序指令正在安装待安装的应用。
如上文提及的,当要求内核操作时,代理以持续的方式验证OS内核。按照连续运行时间系统完整性在图7中示出内核访问控制700。此处,示出了每当任何应用发出用于内核服务的OS请求时怎样维持整个系统完整性的序列。在图7中,示出了发出用于OS服务或资源711的请求的安装并运行的应用(即,用户应用)710。该请求被传递到OS内核712,并且所述请求转而经由LSM功能被传递给代理713,所述代理713最终允许或拒绝该请求。根据本发明,由代理713使用的用来允许或拒绝应用请求的标准可以包括:系统/应用完整性、应用权限、应用行为、对于可能正在运行的其它应用的安全上下文、以及远程命令(元件216,之前关于图2A示出的)。
与系统/应用完整性相关的代理决定标准包括对于系统或应用部件两者中的任意一个而言,是否已经检测到篡改。
与应用权限相关的代理决定标准包括应用是否具有必要的权限以发出这种请求。在AndroidTM OS中,在与应用相关联的清单文件中申明这种权限。应用开发者必须申明这些权限,并由消费者决定授权或不授权这些权限,这可能是有问题的,因为消费者通常没有意识到他们的行动的安全含义。
与应用的行为相关的代理决定标准忽视应用是否可能具有访问特定内核服务的权限,反而依赖应用的行为。例如,每15秒请求消费者GPS坐标并接着尝试经由诸如SMS的一些消息协议将这种坐标发送到第三方的应用可能潜在地是“间谍软件”。这种行为因此可能导致请求拒绝,即使该应用可能具有与涉及GPS坐标的内核服务相关联的权限(即,如果应用具有同意给予位置数据的权利,而不具有同意给予SMS数据的权利,则代理将阻塞访问)。
与可能正在运行的任何其它应用的安全上下文相关的代理决定标准也忽视应用是否可能具有访问特定内核服务的权限,反而注意当另一个受信任的应用正在运行时允许请求是否可能负面地影响这些受信任的应用中的一个或多个。换句话说,代理适当地强制执行在运行时间处的权限。例如,请求应用可能在受信任的实施数字权利管理的高清视频播放器应用已经解密视频之后试图访问特定存储器或驱动器以捕获高清视频,从而通过请求应用怀疑高清视频数据用途的适当性(即,代理可能阻塞对屏幕缓冲器存储器的访问,虽然允许视频自身的播放)。
与远程命令相关的代理决定标准涉及向代理提供支持来自远程实体(例如,服务供应商)的命令的能力,所述命令可以覆写应用权限或特权。例如,移动运营商可能希望禁用已经被盗的移动设备。在这种情况下,代理也将为在远程命令上提供系统访问的决定提供基础,所述远程命令将防止设备被设备的未授权用户使用。例如,在一个或多个应用正在引起网络可靠性或稳定性的问题(例如,通过生成不能由网络支撑的高容量的通信量或连接)的情况下,网络运营商可能希望禁用或限制这种应用对网络服务或其它内核资源的访问。在这种情况下,代理可以覆写该应用具有的特权,或者完全防止该应用执行。
此外,来自远程命令控制器的这种命令可以用来限制权限(例如,降低特权,改变特权,或撤销特权)。此外,来自远程命令控制器的这种命令可以用来从设备移除应用,包括:如果当前正在执行,则终止应用、从存储器移除应用、或完全卸载应用。总之,重要的是,注意到本发明不仅可以用来“杀死”应用,也可以用来在与给定的应用相关联的特权中隐含的访问以外而限制对系统资源的访问,例如,即使应用具有发送SMS消息的特权,这在特权中没有进行量化,使得当该应用一小时发送例如10000SMS消息时,代理可以基于存储在代理安全存储装置中的一些“正常行为”模板或基于远程命令“使其减速”。仍进一步地,代理可以用来将异常行为报告回远程实体,使得例如移动运营商或指定的第三方可以做出关于做什么的决定(例如,应用在一定时间周期上已经发出X个对于系统资源的请求)。
通过使用前述用于持续运行时间系统完整性的标准,图7所示的内核访问控制700包括在步骤1处的用户应用710的初始OS请求。转而,应用在步骤2处创建软件中断或以其它方式创建用于OS的事件。在OS内核712中,LSM在步骤3处接收请求711(即,中断/事件)并将请求711传递到代理713。在步骤4处,代理713完整性通过使用上述标准来检验应用710和权限。在步骤5处,代理713验证用户请求存储器栈。此后在步骤6处,代理713完整性检验在存储器中的OS内核映像。如前面提及的,IV检查由代理713在持续基础上运行。该检查检验IV过程仍在运行,并且还没有检测到任何篡改的证据。基于系统验证过程(步骤4、5和6),代理713因此允许或拒绝请求,并且在步骤7处,将该请求的允许或拒绝传递给OS内核712。转而在步骤8处,OS内核712传递该请求的允许或拒绝。这时在步骤9处,应用事件将带有允许或拒绝请求的决定的控制返回到应用710。
如在图7的连续运行时间系统完整性中,应当理解的是,应用也必须以持续方式进行验证。因此,在图8中示出了应用请求的运行时间验证。一般地,应用必须不以任何方式被篡改,或者此处的验证将失败。图8中的栈图解图示了本发明怎样在维持系统完整性的同时有效地提供了应用完整性监测。此处,示出了用于代理812、OS内核811和应用810的地址空间。因为代理被嵌入OS内核中,所以应当理解的是,因此将代理地址空间812与OS内核地址空间811共享。在调用栈中的返回地址是进入包含在代理中的完整性检验信息的数据点。应用的运行时间验证(在步骤1处)的开始涉及代理走过用于OS服务的请求栈,同时验证所有返回地址(在步骤2到4处),并且通过利用如下文描述的调用栈签名来执行对地址范围的完整性检验。当应用发出用于任何OS内核服务的请求时,OS内核将该内核服务的请求传递给代理。该OS内核是启用LSM的,使得需要代理来允许或拒绝请求。
根据本发明,运行时间栈签名计算通过使用在栈上的每个返回地址到栈的顶部之间的距离(以字节为单位)来实现。表A表示用于代理812、OS内核811和应用810的示例性调用栈。
调用栈签名 拥有者 栈构架元件过滤 “返回地址” 注释
代理 返回地址 当前栈位置(必须是代理地址空间)
12字节 代理 变量长度栈帧
代理 返回地址 计算在其间的字节
23字节 OS内核 变量长度栈帧
OS内核 返回地址 计算在其间的字节
44字节 OS内核 变量长度栈帧
OS内核 返回地址 计算在其间的字节
10字节 用户App 变量长度栈帧
用户App 返回地址 计算在其间的字节
用户App 栈顶部
表A。
来自上文示例的签名包括如在表B看到的在安装期间随机分配的应用唯一用户ID和调用栈签名字节的集合。
应用标识符(2-8字节) 调用栈签名(2-128字节)
表B。
根据表B的示例,“应用ID 12032”的调用栈的签名将是“12032:12:23:44:10”,并且由代理用在完整性检验检查中。
栈的深度是可变长度,但不超过128个样本。在OS内核与代理之间的栈的深度在应用调用OS内核服务之前是已知的并被计算。当供应应用和系统部件时,代理可以根据该计算确定在调用栈上的所有返回地址都被包括在完整性检验签名范围中。应当理解的是,为了使代理允许OS服务该应用,必须在存储在代理安全存储装置中的签名的应用和系统部件的签名列表中找到所有返回地址。
如图8所示,存在详细的运行时间调用栈签名验证序列。此处,验证序列在步骤1处开始。此后,在步骤2处,代理检查栈并确定返回地址,所述返回地址识别在OS内核地址空间811中的调用代码的位置。基于调用代码,代理在步骤3处检验该调用程序是合法的并已经最近成功地使其完整性被检验。如在图8中指示的,在OS内核地址空间811中可以存在该检查的数个层。此后,在步骤4处,当在栈中的调用代码从应用地址空间810中出现时,执行类似的返回地址确定和验证过程。再次,如图8所示,在应用地址空间810中可以存在该检查的数个层。
在运行时间期间,应当理解的是,当应用遭受动态攻击时(例如,在执行期间可以使用调试器来修改应用的各部分或其相关联的权限),应当在持续的基础上强制执行应用权限。 在图9中示出了这种应用权限强制执行900。此处,应用914在应用914的安装之后向OS内核913发出的任何请求将通过使用签名的增强型权限容器清单910来而被验证,所述增强型权限容器清单910被存储在代理安全存储装置911中。代理912将基于在增强型权限容器910中提供的系统的完整性和权限来允许或拒绝该请求。强制执行序列包括在步骤1处应用914发出OS请求,并且在步骤2处,OS内核913用代理912验证请求。在步骤3处,代理912如上文已经描述的来验证OS完整性。
步骤4提供了:代理912验证来自签名的增强型权限容器清单910的OS内核请求的类型。此处重要的是注意到,仅仅授权请求应用对OS内核服务的访问,所述OS内核服务被包含在签名的增强型权限容器清单910内,所述签名的增强型权限容器清单910包含如由应用开发者在提交应用认证之前识别的请求权限。此外,该机制维持系统的安全性和完整性,即使应用开发者没有正确地识别它们的应用在运行时间处尝试访问的所有内核服务。
一旦代理912验证来自签名的增强型权限容器清单910的OS内核请求的类型,代理912接着在步骤5处基于在步骤3和4中的验证将允许或拒绝决定传递到OS内核913。随后,OS内核913在步骤6处基于传递给它的代理决定将这种允许或拒绝决定传递到应用914。
本发明的上述实施例仅仅意在成为示例。在不脱离本发明的范围的情况下,本领域技术人员可以对特定实施例实现变更、修改或变化,所述本发明的范围仅仅由其中所附的权利要求限定。

Claims (30)

1.一种用于改善设备安全的系统,所述系统包括:
用于将安全软件代理嵌入在所述设备上执行的操作系统的操作系统内核内的装置,所述安全软件代理监测至少所述操作系统和配置为在所述操作系统内执行的一个或多个应用的完整性;以及
用于将用于检验至少所述操作系统和配置为在所述操作系统内执行的所述一个或多个应用的完整性的安全信息存储在安全数据存储装置内的装置,其中所述安全数据存储装置是仅仅所述安全软件代理可访问的。
2.如权利要求1所述的系统,其中所述安全软件代理是所述操作系统内核的主要部分,使得所述操作系统和配置为在所述操作系统内执行的所述一个或多个应用在没有所述安全软件代理的情况下将不会正确地运行。
3.如权利要求1所述的系统,其中所述安全软件代理配置为响应于配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的操作系统请求,而检验所述操作系统和配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的完整性。
4.如权利要求1所述的系统,其中所述安全数据存储装置包括以下之一:在所述设备的存储驱动外部的安全存储设备、所述设备的存储驱动的安全部分,或者所述设备的芯片组上的安全存储器。
5.如权利要求1所述的系统,其中所述安全软件代理配置为利用对配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用唯一的安全信息来执行以下中的一个或多个:
确定配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用内恶意软件的存在或者所述至少一个应用的修改;
识别配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的未授权使用;
提供对配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用平台访问控制;或者
提供针对配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的安全媒体播放,其中所述至少一个应用包括媒体应用。
6.如权利要求1所述的系统,其中所述安全软件代理配置为响应于以下中的任何一个而更新:
以前未知的安全威胁的指示;
受安全威胁的成功攻击的指示;
受安全威胁的成功攻击或开发中的攻击的识别和分析。
7.如权利要求1所述的系统,其中配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用是媒体应用,并且其中所述安全软件代理配置在对所述操作系统的资源的访问允许所述媒体应用或所述媒体应用播放的媒体的未授权使用的情况下,控制或限制这样的访问。
8.如权利要求7所述的系统,其中所述安全软件代理配置为覆写配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的已知特权。
9.如权利要求7所述的系统,其中配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用是媒体播放器,并且其中所述安全软件代理配置为阻止所述一个或多个应用访问由所述媒体播放器使用的媒体渲染路径,所述媒体渲染路径包括帧缓冲器。
10.如权利要求7所述的系统,其中所述安全软件代理配置为在以下中任一个时阻止配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的访问:
所述操作系统内核正被危害的指示;或者
配置为在所述操作系统内执行的所述至少一个应用自动地向未授权远程服务器提供所述设备的盗版相关数据,其中所述盗版相关数据包括用户特定数据,所述用户特定数据包括以下中的一个或多个:指示设备用户位置的位置数据、设备用户通话历史、设备用户电邮数据、设备用户相片数据、设备用户通讯录数据或设备用户个人数据。
11.如权利要求1所述的系统,其中所述安全软件代理配置为检验安全引导过程被实施。
12.如权利要求1所述的系统,其中所述安全软件代理配置为执行运行时间调用栈签名验证序列,包括:
检查调用栈以确定识别来自地址空间的调用代码位置的返回地址,
基于所述调用代码位置,检验对应于所述返回地址的调用程序的合法性,以及
重复来自应用地址空间的所述检查和检验。
13.如权利要求1所述的系统,其中所述安全软件代理配置为支持来自远程实体的命令,以便覆写授权给配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的预先确定的权限,其中所述命令包括以下中的一个或多个:
禁用所述设备;
限制配置为在所述操作系统内执行的所述至少一个应用的操作;
限制授权给配置为在所述操作系统内执行的所述至少一个应用的所述预先确定的权限;
从所述设备移除配置为在所述操作系统内执行的所述至少一个应用;或者
终止配置为在所述操作系统内执行的所述至少一个应用的操作。
14.如权利要求13所述的系统,其中所述命令包括从所述设备的存储器移除配置为在所述操作系统内执行的所述至少一个应用。
15.如权利要求13所述的系统,其中所述安全软件代理被配置为将异常行为报告回所述远程实体。
16.一种改善设备安全的方法,所述方法包括:
将安全软件代理嵌入在所述设备上执行的操作系统的操作系统内核内,其中所述安全软件代理配置为监测至少所述操作系统和配置为在所述操作系统内执行的一个或多个应用的完整性;以及
将对于检验至少所述操作系统和配置为在所述操作系统内执行的所述一个或多个应用的完整性必要的安全信息存储在安全数据存储装置内,其中所述安全数据存储装置是仅仅所述安全软件代理可访问的。
17.如权利要求16所述的方法,其中所述安全软件代理是所述操作系统内核的主要部分,使得所述操作系统和配置为在所述操作系统内执行的所述一个或多个应用在没有所述安全软件代理的情况下将不会正确地运行。
18.如权利要求16所述的方法,其中所述安全软件代理配置为响应于配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的操作系统请求,而检验所述操作系统和配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的完整性。
19.如权利要求16所述的方法,其中所述安全数据存储装置包括以下之一:在所述设备的存储驱动外部的安全存储设备、所述设备的存储驱动的安全部分,或者所述设备的芯片组上的安全存储器。
20.如权利要求16所述的方法,其中所述安全软件代理配置为利用对配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用唯一的安全信息来执行以下中的一个或多个:
确定配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用内恶意软件的存在或者所述至少一个应用的修改;
识别配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的未授权使用;
提供对配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用平台访问控制;或者
提供针对配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的安全媒体播放,其中所述至少一个应用包括媒体应用。
21.如权利要求16所述的方法,其中所述安全软件代理配置为响应于以下中的任何一个而更新:
以前未知的安全威胁的指示;
受安全威胁的成功攻击的指示;
受安全威胁的成功攻击或开发中的攻击的识别和分析。
22.如权利要求16所述的方法,其中配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用是媒体应用,并且其中所述安全软件代理配置在对所述操作系统的资源的访问允许所述媒体应用或所述媒体应用播放的媒体的未授权使用的情况下,控制或限制这样的访问。
23.如权利要求22所述的方法,其中所述安全软件代理配置为覆写配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的已知特权。
24.如权利要求22所述的方法,其中配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用是媒体播放器,并且其中所述安全软件代理配置为阻止所述一个或多个应用访问由所述媒体播放器使用的媒体渲染路径,所述媒体渲染路径包括帧缓冲器。
25.如权利要求22所述的方法,其中所述安全软件代理配置为在以下中任一个时阻止配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的访问:
所述操作系统内核正被危害的指示;或者
配置为在所述操作系统内执行的所述至少一个应用自动地向未授权远程服务器提供所述设备的盗版相关数据,其中所述盗版相关数据包括用户特定数据,所述用户特定数据包括以下中的一个或多个:指示设备用户位置的位置数据、设备用户通话历史、设备用户电邮数据、设备用户相片数据、设备用户通讯录数据或设备用户个人数据。
26.如权利要求16所述的方法,其中所述安全软件代理配置为检验安全引导过程被实施。
27.如权利要求16所述的方法,其中所述安全软件代理配置为执行运行时间调用栈签名验证序列,包括:
检查调用栈以确定识别来自地址空间的调用代码位置的返回地址,
基于所述调用代码位置,检验对应于所述返回地址的调用程序的合法性,以及
重复来自应用地址空间的所述检查和检验。
28.如权利要求27所述的方法,其中所述安全软件代理配置为支持来自远程实体的命令,以便覆写授权给配置为在所述操作系统内执行的所述一个或多个应用中的至少一个应用的预先确定的权限,其中所述命令包括以下中的一个或多个:
禁用所述设备;
限制配置为在所述操作系统内执行的所述至少一个应用的操作;
限制授权给配置为在所述操作系统内执行的所述至少一个应用的所述预先确定的权限;
从所述设备移除配置为在所述操作系统内执行的所述至少一个应用;或者
终止配置为在所述操作系统内执行的所述至少一个应用的操作。
29.如权利要求28所述的方法,其中所述命令包括从所述设备的存储器移除配置为在所述操作系统内执行的所述至少一个应用。
30.如权利要求28所述的方法,其中所述安全软件代理被配置为将异常行为报告回所述远程实体。
CN201180070771.2A 2011-03-09 2011-03-09 用于设备操作系统中的动态平台安全的方法和系统 Expired - Fee Related CN103827881B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2011/050135 WO2012119218A1 (en) 2011-03-09 2011-03-09 Method and system for dynamic platform security in a device operating system

Publications (2)

Publication Number Publication Date
CN103827881A CN103827881A (zh) 2014-05-28
CN103827881B true CN103827881B (zh) 2017-12-12

Family

ID=46797349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180070771.2A Expired - Fee Related CN103827881B (zh) 2011-03-09 2011-03-09 用于设备操作系统中的动态平台安全的方法和系统

Country Status (7)

Country Link
US (2) US9635048B2 (zh)
EP (1) EP2684152B1 (zh)
CN (1) CN103827881B (zh)
AU (1) AU2011361577B2 (zh)
CA (1) CA2829104C (zh)
WO (1) WO2012119218A1 (zh)
ZA (1) ZA201307336B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104335220B (zh) * 2012-03-30 2018-04-20 爱迪德技术有限公司 用于防止和检测安全威胁的方法和系统
EP2859681A4 (en) 2012-05-08 2016-03-30 Serentic Ltd METHOD AND SYSTEM FOR AUTHENTICATING COMMUNICATION AND OPERATION
US20150019852A1 (en) * 2013-07-12 2015-01-15 International Games System Co., Ltd. Verification method for system execution environment
US9323929B2 (en) * 2013-11-26 2016-04-26 Qualcomm Incorporated Pre-identifying probable malicious rootkit behavior using behavioral contracts
DE102014206006A1 (de) * 2014-03-31 2015-10-01 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Manipulationsschutz einer Recheneinrichtung
CN105278969A (zh) * 2014-06-16 2016-01-27 腾讯科技(深圳)有限公司 一种应用程序的代码验证方法及系统
KR102337990B1 (ko) * 2014-09-18 2021-12-13 삼성전자주식회사 권한 설정 토큰을 이용하는 전자 장치
US9646154B2 (en) * 2014-12-12 2017-05-09 Microsoft Technology Licensing, Llc Return oriented programming (ROP) attack protection
US10223534B2 (en) 2015-10-15 2019-03-05 Twistlock, Ltd. Static detection of vulnerabilities in base images of software containers
US10664590B2 (en) 2015-10-01 2020-05-26 Twistlock, Ltd. Filesystem action profiling of containers and security enforcement
US10706145B2 (en) 2015-10-01 2020-07-07 Twistlock, Ltd. Runtime detection of vulnerabilities in software containers
US10922418B2 (en) 2015-10-01 2021-02-16 Twistlock, Ltd. Runtime detection and mitigation of vulnerabilities in application software containers
US10943014B2 (en) 2015-10-01 2021-03-09 Twistlock, Ltd Profiling of spawned processes in container images and enforcing security policies respective thereof
US10778446B2 (en) * 2015-10-15 2020-09-15 Twistlock, Ltd. Detection of vulnerable root certificates in software containers
KR101703826B1 (ko) * 2015-10-23 2017-02-08 한국전자통신연구원 스마트 기기 대상 비인가 행위 기반 플래시 메모리 내부의 데이터 보호 장치 및 방법
CN106878233B (zh) * 2015-12-10 2020-11-10 联芯科技有限公司 安全数据的读取方法、安全服务器、终端及系统
US10146681B2 (en) * 2015-12-24 2018-12-04 Intel Corporation Non-uniform memory access latency adaptations to achieve bandwidth quality of service
US10409600B1 (en) * 2016-01-25 2019-09-10 Apple Inc. Return-oriented programming (ROP)/jump oriented programming (JOP) attack protection
US10275365B1 (en) 2016-03-21 2019-04-30 Apple Inc. Cryptographic signatures for capability-based addressing
JP6697416B2 (ja) * 2016-07-07 2020-05-20 信越化学工業株式会社 レジスト下層膜材料、パターン形成方法、レジスト下層膜形成方法、及びレジスト下層膜材料用化合物
US10216934B2 (en) * 2016-07-18 2019-02-26 Crowdstrike, Inc. Inferential exploit attempt detection
US10778654B2 (en) * 2016-09-16 2020-09-15 Arris Enterprises Llc Method and apparatus for protecting confidential data in an open software stack
KR20180087770A (ko) * 2017-01-25 2018-08-02 삼성전자주식회사 전자 장치 및 전자 장치의 데이터 관리 방법
US9785519B1 (en) * 2017-02-16 2017-10-10 Red Hat Israel, Ltd. Driver switch for device error recovery for assigned devices
US10346612B1 (en) * 2017-06-19 2019-07-09 Architecture Technology Corporation Computer network defense training on operational networks using software agents
WO2019005073A1 (en) 2017-06-29 2019-01-03 Hewlett-Packard Development Company, L.P. COMPUTER DEVICE MONITORING VIA AGENT APPLICATIONS
CN107368343B (zh) * 2017-08-21 2021-03-26 创维集团智能科技有限公司 一种基于安卓系统的终端开机方法、终端及存储介质
US10990679B2 (en) * 2018-05-07 2021-04-27 Mcafee, Llc Methods, systems, articles of manufacture and apparatus to verify application permission safety
US20190362066A1 (en) * 2018-05-25 2019-11-28 Microsoft Technology Licensing, Llc Accessing secure system resources by low privilege processes
NL2022559B1 (en) * 2019-02-12 2020-08-28 Univ Delft Tech Secure integrated circuit architecture
EP3696698A1 (en) * 2019-02-18 2020-08-19 Verimatrix Method of protecting a software program against tampering
US11409846B2 (en) 2021-01-14 2022-08-09 Safelishare, Inc. User controlled trusted and isolated computing environments
CA3221836A1 (en) * 2021-07-28 2023-02-02 Louis A. Steinberg Methods for managing software supply chain risk through declared intent

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096368B2 (en) * 2001-08-01 2006-08-22 Mcafee, Inc. Platform abstraction layer for a wireless malware scanning engine
CN101127634A (zh) * 2006-08-15 2008-02-20 华为技术有限公司 一种移动台安全更新升级的方法及其系统
CN101578609A (zh) * 2007-01-07 2009-11-11 苹果公司 安全启动计算设备

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7086086B2 (en) * 1999-02-27 2006-08-01 Alonzo Ellis System and method for maintaining N number of simultaneous cryptographic sessions using a distributed computing environment
WO2000072149A1 (en) 1999-05-25 2000-11-30 Motorola Inc. Pre-verification of applications in mobile computing
US7774838B2 (en) 2001-02-14 2010-08-10 Tricerat, Inc. Thorough operation restriction
JP2003114806A (ja) * 2001-10-04 2003-04-18 Hitachi Ltd Os更新方法及びセキュリティ制御方法並びにその実施装置
US7103914B2 (en) * 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
CA2496664C (en) 2002-08-23 2015-02-17 Exit-Cube, Inc. Encrypting operating system
US7434259B2 (en) * 2002-10-21 2008-10-07 Microsoft Corporation Method for prompting a user to install and execute an unauthenticated computer application
DE10252347A1 (de) 2002-11-11 2004-05-19 Giesecke & Devrient Gmbh Überwachte Unterprogrammausführung
US7149900B2 (en) * 2002-12-12 2006-12-12 Intel Corporation Method of defending software from debugger attacks
US7546587B2 (en) * 2004-03-01 2009-06-09 Microsoft Corporation Run-time call stack verification
JP2006053788A (ja) 2004-08-12 2006-02-23 Ntt Docomo Inc ソフトウェア動作監視装置及びソフトウェア動作監視方法
US7631356B2 (en) 2005-04-08 2009-12-08 Microsoft Corporation System and method for foreign code detection
US8839450B2 (en) * 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US20070050848A1 (en) * 2005-08-31 2007-03-01 Microsoft Corporation Preventing malware from accessing operating system services
US7516112B1 (en) * 2006-03-24 2009-04-07 Sandia Corporation Flexible, secure agent development framework
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US8127412B2 (en) * 2007-03-30 2012-03-06 Cisco Technology, Inc. Network context triggers for activating virtualized computer applications
CN101335746A (zh) * 2007-06-29 2008-12-31 国际商业机器公司 保护软件系统的完整性的安全设备和方法及其系统
US20100083381A1 (en) * 2008-09-30 2010-04-01 Khosravi Hormuzd M Hardware-based anti-virus scan service
US7979844B2 (en) * 2008-10-14 2011-07-12 Edss, Inc. TICC-paradigm to build formally verified parallel software for multi-core chips
US8171547B2 (en) * 2008-12-03 2012-05-01 Trend Micro Incorporated Method and system for real time classification of events in computer integrity system
US8606911B2 (en) * 2009-03-02 2013-12-10 Headwater Partners I Llc Flow tagging for service policy implementation
US8635705B2 (en) * 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
US8539584B2 (en) * 2010-08-30 2013-09-17 International Business Machines Corporation Rootkit monitoring agent built into an operating system kernel
US9087199B2 (en) * 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US9043903B2 (en) * 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096368B2 (en) * 2001-08-01 2006-08-22 Mcafee, Inc. Platform abstraction layer for a wireless malware scanning engine
CN101127634A (zh) * 2006-08-15 2008-02-20 华为技术有限公司 一种移动台安全更新升级的方法及其系统
CN101578609A (zh) * 2007-01-07 2009-11-11 苹果公司 安全启动计算设备

Also Published As

Publication number Publication date
CA2829104C (en) 2019-01-15
EP2684152A4 (en) 2014-08-20
AU2011361577B2 (en) 2017-04-20
WO2012119218A1 (en) 2012-09-13
CA2829104A1 (en) 2012-09-13
CN103827881A (zh) 2014-05-28
US10333967B2 (en) 2019-06-25
EP2684152A1 (en) 2014-01-15
EP2684152B1 (en) 2020-07-22
US9635048B2 (en) 2017-04-25
WO2012119218A8 (en) 2013-01-10
ZA201307336B (en) 2014-11-26
US20170302697A1 (en) 2017-10-19
AU2011361577A1 (en) 2013-10-03
US20150040224A1 (en) 2015-02-05

Similar Documents

Publication Publication Date Title
CN103827881B (zh) 用于设备操作系统中的动态平台安全的方法和系统
US11514159B2 (en) Method and system for preventing and detecting security threats
US11599650B2 (en) Secure computing system
US10162975B2 (en) Secure computing system
KR101888712B1 (ko) 운영 체제 구성 값 보호 기법
KR101158184B1 (ko) 클라이언트 플랫폼들 상의 콘텐츠 보호
Yang et al. The Value of Hardware-Based Security Solutions and its Architecture for Security Demanding Wireless Services.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Holland Hoofddorp

Applicant after: Ai Dide Technology Co., Ltd.

Address before: Holland Hoofddorp

Applicant before: Irdeto B.V.

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM:

Free format text: CORRECT: APPLICANT; FROM: IRDETO B.V. TO: IRDETO B. V.

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171212

Termination date: 20210309

CF01 Termination of patent right due to non-payment of annual fee