在微处理器实现的设备上执行进程的系统和方法

文档序号:6554727阅读:281来源:国知局
专利名称:在微处理器实现的设备上执行进程的系统和方法
技术领域
本发明涉及在微处理器实现的(microprocessor-enabled)设备上执行进程的系统和方法。
背景技术
在微处理器实现的设备中,例如计算机、通信交换机、汽车或烤箱中的ABS控制模块,通常几个分离的进程可以同时是激活的,其竞争微处理器的运行周期和与微处理器相关联的资源。操作系统对于控制进程的操作和其对资源的请求而言是很重要的。一个示例性操作系统是Microsoft XP(Microsoft公司的商标),其经常作为操作系统而被安装在具有Intel微处理器的计算机上,例如Pentium(Intel公司的商标)微处理器,作为它们的中央处理单元。
控制在设备上执行的进程的操作,以确保给定进程的操作或故障不影响在设备上操作的其它进程或对其影响有限,这是有用的。例如,如果一个进程具有致命性错误,其结束优选地不应当影响其它进程;其应该从其它进程适度地逐渐结束(wind down)。同样,进程的执行不应当访问其没有访问授权的文件、数据、存储器或资源。
控制这种进程的操作也是有用的,这是因为它们的起源可能是有疑问的。随着通过因特网下载程序的普遍,下载的程序有可能会包括对计算机、其数据或操作在计算机上的其它程序产生不良影响的恶意代码或例程。
几种现有技术和系统可用于尝试从这种设备中的其它元件来隔离进程的操作。
例如,软件“沙箱(sandbox)”是一种代码,其提供了一种隔离技术用来在“沙箱”中为目标进程定义有限的资源集合。进程所进行的所有资源请求是由安全监控器来调节(moderate)的,该监控器在允许执行代码之前检验并检查该代码。检验可能涉及使用代码上的数字签名来检查其起源以及针对安全一致性的逐字节代码检查等。典型地,必须针对相关设计、实现和配置错误来检查进程沙箱中的代码。
代码检查是另一种技术。代码检查针对设计和实现缺陷来评估进程。特别地,与识别配置错误的模板相对地检查进程的代码的每一行。应当认识到,在考虑用户配置错误之前,代码检查可能需要评估成百上千行代码。
硬件环提供了另一种保护技术。在操作系统结构中常见的环为微处理器提供两种操作模式。第一种模式为进程提供了对于由微处理器控制的所有资源的非受限访问。第二种受限模式仅为进程提供了对某种资源的某种访问。硬件环典型地使用用户进程的属性,例如用户名和进程名,以确定提供给进程的访问级别。操作系统结合所述模式来运行以控制对资源的访问。在许多操作系统中,安全策略被编码到操作系统中,并且依赖于用户进程的运行时间属性和被访问的系统资源以确定访问权限。
硬件环不像软件沙箱一样灵活,但是典型地提供了更安全的实现。硬件环确保操作系统代码和数据不被用户进程访问。
需要用于处理数据库操作的系统和方法,其解决了现有技术的缺陷。

发明内容
在第一方面中,提供了一种方法,用于控制来自操作在微处理器实现的机器上的进程的资源请求。该方法包括当进程向与机器相关联的操作系统发起请求时,通过父进程来调节所述进程对与该机器相关联的资源的访问,该父进程在所述操作系统的外部操作。
在所述方法中,所述父进程可以产生所述进程。
在所述方法中,最初可以由操作系统中的访问进程来接收所述请求。接着,该访问进程可以向父进程发起第二请求来检查该进程是否具有访问资源的许可(clearance)。接着,该父进程可以提供信号给访问进程以指示该进程是否具有许可。
在所述方法中,如果所述父进程指示所述进程不具有许可,则所述访问进程可以拒绝所述进程访问资源。
在所述方法中,如果父进程指示所述进程具有许可,则所述访问进程可以实施操作系统中的另一个访问检查来确定该进程是否能够访问资源。
在第二方面中,提供了一种操作系统应用程序,用于控制来自操作在微处理器实现的机器上的进程的资源请求。该应用程序包括这样一种进程当该进程向与所述机器相关联的操作系统发起请求时,通过父进程来调节所述进程对与该机器相关联的资源的访问,该父进程在操作系统的外部操作。
在所述操作系统应用程序中,所述父进程可以产生进程。
在所述操作系统应用程序中,最初可以由操作系统中的访问进程来接收所述请求。随后,所述访问进程可以向所述父进程发起第二请求来检查该进程是否具有访问资源的许可。随后,所述父进程可以提供信号给所述访问进程以指示该进程是否具有许可。
在所述操作系统应用程序中,如果所述父进程指示所述进程不具有许可,则所述访问进程可以拒绝该进程对资源的访问。
在所述操作系统应用程序中,如果所述父进程指示该进程具有许可,则所述访问进程可以实施操作系统中的另一个访问检查来确定该进程是否能够访问资源。
在其它方面,可以在更多集合和子集中提供上述方面的各种组合。


根据下面仅作为例子来说明本发明原理的指定实施例的描述以及附图,本发明的前述和其它方面将变得显而易见。在附图中,相同的元件采用相同的参考标记(并且其中特有的元件具有唯一的标记),其中图1是可以接入网络的计算机系统的框图;图2是为图1的计算机系统提供安全系统的现有技术系统的框图;图3是与图1的计算机系统相关联的操作系统内核的框图;以及图4是与图3的操作系统一起操作的本发明实施例的框图。
具体实施例方式
下面的描述和其中描述的实施例是作为本发明原理的特定实施例的说明性例子而被提供的。这些例子是为了非限制性地解释本发明和所述原理而被提供的。在下面的描述中,整个说明书和附图中的相同部分被标注以相同的各个参考标记。
参考图1,计算机100是微处理器实现的系统,该系统提供了在其上执行软件和进程的环境。计算机100包括微处理器102、RAM 104、硬盘驱动器106、输入/输出(I/O)端口108。像其它计算机系统一样,计算机系统100具有装载在RAM 104中的进程110。进程110提供了一组可执行软件代码,该代码以其本机码语言为微处理器102提供指令。当进程110中任一个要求低级别访问计算机100的资源时(例如存储在硬盘驱动器106中的文件或访问存储在RAM 104中的其它文件),操作系统(OS)112为进程110提供了微处理器102的系统调用的接口。典型地,OS 112也与微处理器102上的微代码114进行交互。
进程110可以被包括在存储于网络116中的其它计算机或数据服务器中的文件118中。通常,计算机100可以采用两种方式之一来通过I/O端口108从网络116接收文件118。首先,操作在计算机100上的软件可以主动识别并请求来自网络116的文件118。可选地,文件118可以通过外部进程操作而从网络116中的元件被“推至”计算机100,这使文件118被下载到计算机100中而无需任何来自计算机100的初始请求。应当认识到,一旦文件118被计算机100接收,它就会作为进程110而被安装在RAM 104中。
参考图2,示出了结合进程110操作的沙箱200。优选地,沙箱200中的模块在允许执行代码之前提供与进程110相关联的代码的检验和检查。通常,通过检查代码上的数字签名和针对安全策略一致性的逐字节代码检查,来实施代码检验。
其中,沙箱200提供了安全监控模块202和沙箱库(library)模块204。在操作中,沙箱200在进程110外部运行。沙箱200所执行的步骤如下在步骤(1)中,进程110中的一行代码发起访问计算机100的系统资源(例如文件)的请求,并且将该请求发送到安全监控器202。在步骤(2)和(3)中,安全监控器202在进程110相对于一组访问特权的情况下检查进程110的特权,并且接收是/否响应。访问特权可以基于几个事实来被建立,包括文件的所有权、文件位置、进程的用户身份、进程的特权及其它。应当认识到,可以定义其它特权。例如在本实施例中,如果文件是系统密码文件,则调用进程可能需要系统管理特权来打开文件。在步骤(4)中,如果允许访问,则通过沙箱库204来传送请求。随后,在步骤(5)中,沙箱库将所述请求转换为操作系统112的适当的低级别操作系统调用。操作系统调用因而被提供给操作系统内核112A,并且在步骤(6)中所述调用的结果被返回给库204,由此完成了访问。在多数操作系统上的系统调用的结果将是整数错误状态代码(例如,“0”是成功,“-1”是失败)。系统调用的副作用包括被传送到存储缓冲区中时的存储内容的改变,以及进程或文件的内容或状态的更新。其后,在步骤(7)中,沙箱库修改结果代码和任何被传送回存储缓冲区的改变等,以便将被捕获的(captive)进程隔离于原始系统调用返回。替代地,被捕获进程会发现被修改的调用返回。在其它实施例中,步骤7在前面。
参考图3,涉及这样的实施例示出了存在于OS内核112A中的系统300。其中,提供几个进程来控制对资源的访问,包括硬件环转换进程302、参考监控器和安全执行(RMSE,reference monitor and security enforcement)进程304、安全策略数据库306、文件系统308和网络接口进程310。
硬件环转换302控制访问OS 112和任何被保护的资源。进程110在受限环中,OS 112在非受限环中。对于访问OS的进程,必须对OS中的指定受控入口点进行环转换调用(系统调用或选通(gate))。OS然后在作用于请求之前证实该请求。
RMSE模块304为内核112提供安全执行。其控制对与计算机302相关联的文件系统308的访问。典型地,来自进程110的文件访问请求(未示出)由RMSE模块304来控制。针对安全执行的、涉及RMSE模块304的被执行步骤包括下面的步骤。在步骤(1)中,进程110请求访问资源,该资源由内核112重定向到RMSE模块304。通过调用随处理器种类(family)而改变的处理器的“选通”调用机制来进行所有系统调用,该机制然后在内核控制的入口点将所述环和步骤改变为内核代码。在调用选通调用时,通常通过寄存器中的值来识别正在进行哪个系统调用。在步骤(2)中,RMSE模块304发起对安全策略数据库306的调用,以使MRSE模块304能够确定该调用是否是可允许的。在步骤(3)中,检查安全策略数据库306来确定所述进程是否能够执行具有指定参数的被请求系统调用,例如“/tmp/foo.txt上的文件打开”。典型地,这里不执行系统调用。然而安全策略数据库306可以使用文件或其它外部资源作为安全检查(lookup)的数据输入源。如果可以执行进程,则允许执行该进程。对所述调用的答复被产生并且被提供给RMSE模块304。这提供了环转换,其通过相互通信或相反直接相互交互或与像由OS保护的文件的某物进行通信或直接交互,优选地确保进程不能绕过所述步骤。在步骤(4)中,如果答复允许由调用访问,则该调用被传送给文件系统308。在步骤(5)中,文件系统308实现了该调用,并且将该调用提供给RMSE模块304。在步骤(6)中,文件被提供给进程110。应当指出,进程112所进行的所有文件访问经历了硬件环转换302。对于示实例性系统调用将如下执行以上提到的步骤步骤(1)进程110进行“文件打开”系统调用(环转换)。
步骤(2)RMSE模块调用代码(SPDB 306)以检查系统的安全策略;由于已经在内核中,因而没有系统调用。
步骤(3)SPDB检验进程是否能够执行具有指定参数的被请求系统调用(例如,“/tmp/foo.txt”上的文件打开)。这里通常没有系统调用,尽管SPDB可以使用“文件”或其它外部资源作为安全检查的数据输入源。
步骤(4)到(6)不改变;由于通常在内核内部,因此没有系统调用。在步骤(6),环转换从“内核”环回到“用户”环。
参考图4,在内核112的系统400中提供了一个实施例,其具有与系统300(图3)相似的特征。例如,系统400具有几个进程来控制访问资源,包括硬件环转换进程402、RMSE进程404、安全策略数据库406、文件系统408和网络接口进程410。系统400也具有用户父进程412,其产生被捕获用户进程110。当与系统300一起时,在系统400中,在步骤(1)中,进程110请求访问资源,该资源被内核112重定向到RMSE模块304,这类似于前面描述的步骤(1)。接着,执行步骤(2A),其中进行从RMSE模块304到用户父进程412中的访问检查进程414的检查。在该检查中,RMSE请求来自父进程的许可。在步骤2B)中,访问检查进程414考虑并产生响应。访问检查进程404可以检验一系列的初始访问。如果任何一个访问失败,则用户父进程412发送消息给被捕获用户进程110,通知它请求被拒绝。如果所有访问请求是可允许的,则访问检查进程414发送访问检查进程414的请求给内核112的RMSE模块。所述父进程可以检查操作系统不知道的安全策略违背,例如当子进程分析电子邮件消息时不应当试图修改例如操作系统文件的文件。目前发现的多数病毒、蠕虫和钓鱼式攻击不是操作系统策略(用户/文件许可)的违背。替代地,它们常常违背常识(电子邮件程序修改操作系统、读取密码文件等)。图4中的这种检查与图3所进行的检查不同,这是由于它很可能被与子进程的目的相关联的常识或设计标准所约束。
随后可以在步骤2到6中处理资源的请求,如针对系统300所指出的。例如,系统调用上的典型限制能够照常在步骤(2)到(6)中被处理。作为例子,当文件被标注为“只读”时,如果资源请求文件被写入,则步骤(2)到(6)将识别这个不适当的调用并且阻止访问。这与图3中的进程类似,区别在于可能存在证实步骤(5A)和步骤(5B),其在步骤5之后而在步骤(6)之前。特别地,在步骤(5A)中,系统调用的结果可能被父进程证实且可选地被修改,并且这个被修改结果在(5B)中被传送回OS,接着在(6)中被传送给子进程。
在被捕获用户进程110随后请求后面的资源时,步骤1、1A、1B和2-6被重复。优选地,系统400减少或消除了在被执行前实现安全检查代码性能的需要。应当认识到,用户父进程412可以产生其它被捕获进程110。该重复就是对于每个要分析的电子邮件或要显示的网页,父进程能够产生被捕获进程。这种重复规定每个进程不干扰其它进程,例如通过从您的银行登录页面中窃取密码。应当认识到,在系统400中,父进程412和子进程110之间的关系是树形的,由此父进程可以具有多个子进程,并且子进程本身可以是其一个或多个子进程的父进程。在这点上,用户进程110实际上不需要知道它具有与它相关联的父进程412。这简化了每个进程的操作的定位。
应当认识到,可以利用本领域已知的技术,以各种系统调用例程、操作系统应用程序、软件程序以及甚至作为硬连线电路,来实现所述实施例。
尽管参考某些指定实施例而描述了本发明,然而在不脱离如所附权利要求所定义的本发明范围的情况下,本发明的各种修改对于本领域的技术人员而言是显而易见的。
权利要求
1.一种用于控制来自操作在微处理器实现的机器上的进程的资源请求的方法,该方法包括当所述进程向与所述机器相关联的操作系统发起请求时,通过父进程来调节所述进程对与所述机器相关联的资源的访问,所述父进程在所述操作系统的外部操作。
2.根据权利要求1的用于控制来自操作在微处理器实现的机器上的进程的资源请求的方法,其中所述父进程产生所述进程。
3.根据权利要求2的用于控制来自操作在微处理器实现的机器上的进程的资源请求的方法,其中最初,由所述操作系统中的访问进程来接收所述请求;接着,所述访问进程向所述父进程发起第二请求以检查所述进程是否具有访问所述资源的许可;以及接着,所述父进程提供信号给所述访问进程以指示所述进程是否具有所述许可。
4.根据权利要求3的用于控制来自操作在微处理器实现的机器上的进程的资源请求的方法,其中,如果所述父进程指示所述进程不具有所述许可,则所述访问进程拒绝所述进程访问所述资源。
5.根据权利要求3的用于控制来自操作在微处理器实现的机器上的进程的资源请求的方法,其中,如果所述父进程指示所述进程具有所述许可,则所述访问进程实施所述操作系统中的另一个访问检查,以确定所述进程是否能够访问所述资源。
6.一种用于控制来自操作在微处理器实现的机器上的进程的资源请求的操作系统应用程序,该应用程序包括一种进程,用于当所述进程向与所述机器相关联的操作系统发起请求时,通过父进程来调节所述进程对与所述机器相关联的资源的访问,所述父进程在所述操作系统的外部操作。
7.根据权利要求6的用于控制来自操作在微处理器实现的机器上的进程的资源请求的操作系统应用程序,其中,所述父进程产生所述进程。
8.根据权利要求7的用于控制来自操作在微处理器实现的机器上的进程的资源请求的操作系统应用程序,其中最初,由所述操作系统中的访问进程来接收所述请求;接着,所述访问进程向所述父进程发起第二请求以检查所述进程是否具有访问所述资源的许可;以及接着,所述父进程提供信号给所述访问进程以指示所述进程是否具有所述许可。
9.根据权利要求8的用于控制来自操作在微处理器实现的机器上的进程的资源请求的操作系统应用程序,其中,如果所述父进程指示所述进程不具有所述许可,则所述访问进程拒绝所述进程访问所述资源。
10.根据权利要求9的用于控制来自操作在微处理器实现的机器上的进程的资源请求的操作系统应用程序,其中,如果所述父进程指示所述进程具有所述许可,则所述访问进程实施所述操作系统中的另一个访问检查,以确定所述进程是否能够访问所述资源。
全文摘要
本发明提供了一种系统和方法,用于控制来自操作在微处理器实现的机器上的进程的资源请求。该方法包括当进程向与机器相关联的操作系统发起请求时,通过父进程来调节进程对与机器相关联的资源的访问,该父进程在操作系统的外部操作。在该方法中,父进程可以产生进程。在该方法中,最初由操作系统中的访问进程来接收请求。接着,访问进程可以向父进程发起第二请求来检查该进程是否具有访问资源的许可。接着,父进程可以提供信号给访问进程以指示该进程是否具有这种许可。
文档编号G06F21/00GK1818876SQ200610008959
公开日2006年8月16日 申请日期2006年1月19日 优先权日2005年1月19日
发明者A·罗比森 申请人:阿尔卡特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1