用于确保程序原态运行的系统和方法

文档序号:6637179阅读:256来源:国知局
专利名称:用于确保程序原态运行的系统和方法
技术领域
本发明通常涉及计算机体系结构和安全计算领域。更具体地,本发明涉及一种用于确保程序原态运行的系统和方法,其中防护系统与运行系统独立存在并实时地监控运行系统的运行,以确保程序原态运行,而不会干涉运行系统的正常操作。
背景技术
计算安全与安全计算一直是计算机领域的重大课题。随着因特网的日益普及,越来越多的计算机接入网络,形成日趋庞大的计算系统。从理论上讲,任何两台计算机的连接都是自然的,或者说,从一台计算机进入另一台计算机是可行的。在实际上,即使不接入因特网的计算机也不可能孤立的存在,例如,其会执行一些数据交换。
目前对计算机系统造成危害最大的是黑客入侵和病毒感染。黑客入侵是以达到某种目的,从一台计算机进入另一台计算机,所从事的一系列操作的总和。黑客入侵的两个特征是“踏雪无痕”和“有的放矢”。“踏雪无痕”表现在进入目标计算机时,目标客户没有察觉。“有的放矢”表现在进入目标计算机后,黑客会按照先前的规划行事。病毒感染是编制了一种具有特殊目的程序,通过数据或者程序的交换途径(例如网络)进入其它计算机(没有预先设定目标),当满足程序触发条件后,程序执行特定的操作。病毒感染的两个特征是首先感染的目标计算机不是预先设定的,其次感染病毒的计算机必须在满足一定条件后,才能触发。
虽然,目前在对付黑客入侵和病毒感染方面,已经采用了多种的技术措施,但是,缺陷是十分明显的。主要表现在这些技术措施属于被动防守。例如,在对付黑客方面,基本上是针对先前黑客采用的机巧;又例如,在查杀电脑病毒方面,基本上是针对已有的电脑病毒。
目前技术措施的共同局限是要么防护体系与运行体系分别存在于独立的硬件(例如防火墙),要么防护体系与运行体系共存于一硬件之内(例如防毒软件)。前者由于防护体系与运行体系相互分离,防护体系好像是包围在运行体系上的外壳,所以一旦入侵者突破了防护体系,进入运行体系,那么防护体系就失去了作用。后者由于防护体系与运行体系共存于一个硬件设备中,所以首先是防护体系极易遭到破坏,其次是占用系统资源,影响运行体系效率。
当前,普遍使用的两种计算体系结构如图1(a)和图1(b)所示。1946年,冯·诺依曼和他的同事在普林斯顿高级研究院开始设计一种新的程序存储计算机,被称为IAS计算机。虽然直到1952年仍未完成,但它却是后来通用计算机的原型。图1所示的是IAS的计算体系结构框图。在IAS计算体系结构中,包含四个基本单元算数逻辑单元、程序控制单元、主存储器单元、输入输出单元。各基本部件的功能是a)存储器不仅能存放数据,而且也能存放指令,形式上两者没有区别,但计算机应能区分数据还是指令;b)控制器应能自动执行指令;c)运算器应能进行加/减/乘/除四种基本算术运算,并且也能进行一些逻辑运算和附加运算;d)操作人员可以通过输入设备、输出设备和主机进行通信。
另外,一种计算体系结构也被广泛使用,就是总线式计算体系结构。在总线式计算体系结构中,同样存在上述四个基本单元,这四个基本单元的连接方式通过一条总线来实现。目前广泛使用的INTEL和AMD的CPU均是通过总线与其它单元连接的。其示意结构如图1(b)所示。
在以上由图1(a)和图1(b)所示的两个计算体系结构中,各个单元的连接方式有所变化,但是仅考虑命令和数据的流通路径,并没有涉及对系统的安全保障。因此,当前对于计算机系统的安全考虑只能停留在软件(系统软件和应用软件)方面。计算机系统的运行体系层次示意图如图2所示,包括系统硬件、系统软件和应用软件等层次。
图3是黑客/计算机病毒的活动范围层次示意图。可以从图3看到黑客/计算机病毒的危害范围已经透过应用软件和系统软件,深入至系统硬件。然而,目前的防护体系仅仅存在于应用软件层面(例如杀毒软件),更不要说在系统软件和系统硬件层面建立防护体系了。《计算机世界》(2003年第9期)整版报道了SLAMMER蠕虫病毒导致世界范围内的网络灾难。系统软件(操作系统),尤其在PC领域,主要是由微软提供的WINDOWS遭受了严重的损失。虽然微软倡导“高信度计算”,但是仅仅从系统软件层面入手,也只是解决问题的一个方面。可以预期到,系统硬件必须参与到计算系统安全的构架之中,只有这样才能真正提高计算系统的安全防护能力。图4示出了计算机系统的运行体系的全面安全防护体系。然而,图4建立的全面安全防护体系也不是无懈可击,首先防护体系的可达范围只是与黑客/病毒的入侵范围等同,其次防护体系与黑客/病毒共同运行于一个平台。
因此,一种理想的计算体系结构是既可以实时监控计算装置运行的全部过程,又可以不影响计算的运行体系效率,因为只有独立地实时监控系统才能不受运行系统的干扰、准确地发现和消除黑客/病毒的潜在危害。

发明内容
为了解决上述问题提出了本发明,本发明的目的是提出一种用于确保程序原态运行的系统和方法,其中防护系统与运行系统独立存在并实时地监控运行系统的运行,以确保程序原态运行,而不会干涉运行系统的正常操作。
本发明的另一目的是提出一种用于确保程序原态运行的系统和方法,能够建立比系统硬件层次更深的防护体系。
本发明的另一目的是提供一种用于确保程序原态运行的系统和方法,其中,在物理(硬件)结构上,只在命令部分存在共用,而且防护体系把运行体系的执行命令作为输入数据并执行相应的控制。
为了实现上述目的,根据本发明,提出了一种用于确保程序原态运行的方法,包括将程序的程序实体和与程序实体相对应的参考程序框架预先分别存储在运行体系和防护体系的存储器中,其中所述运行体系和防护体系彼此独立运行;将程序实体从运行体系的存储器读取到比较器中,而将与所述程序实体相对应的参考程序框架从防护体系的存储器读取到比较器中;在比较器中将所述程序实体自身的程序框架与所述参考程序框架进行比较,如果两者不一致,则表明所述程序已被纂改;以及如果两者一致,则表明所述程序正常。
优选地,所述运行体系和防护体系彼此独立运行在于运行体系没有通往防护体系的数据通道和控制通道。
优选地,所述程序实体包括指令信息、指令顺序信息和程序数据,而所述程序框架包括指令信息和指令顺序信息。
优选地,在程序处于运行状态时,将程序实体和参考程序框架读取到比较器的步骤包括将运行体系的存储器中所存储的程序实体的一条或多条程序指令读取到预读命令寄存器中,并且将与所述指令相关的指令顺序信息写入状态寄存器中;由防护体系中的比较器根据状态寄存器所存储的指令顺序信息,从防护体系的存储器中所存储的与所述程序实体相对应的参考程序框架中读取相应的一条或多条参考指令。
优选地,所述在比较器中将所述程序实体自身的程序框架与所述参考程序框架进行比较的步骤包括在比较器中将所述一条或多条程序指令与所述一条或多条参考指令进行比较;如果两者不一致,则表明所述程序已被纂改;而如果两者一致,则重复所述比较步骤,直到程序中的所有程序指令比较完毕。
优选地,当表明程序已纂改时,中止所述程序的执行。
优选地,在程序处于静止状态时,当表明程序已纂改时,则删除所述程序。
根据本发明,提出了一种用于确保程序原态运行的系统,包括运行体系和防护体系,所述运行体系和防护体系彼此独立运行,所述运行体系包括第一存储器,用于存储程序实体,所述防护体系包括第二存储器,用于存储与程序实体相对应的参考程序框架;比较器,用于从第一存储器读取程序实体,并从第二存储器读取与所述程序实体相对应的参考程序框架,以及将所述程序实体自身的程序框架与所述参考程序框架进行比较,以便控制运行体系的操作。
优选地,所述系统还包括运行体系与防护体系共用单元,所述运行体系与防护体系共用单元包括状态寄存器,用于存储与指令相关的指令顺序信息;以及预读命令寄存器,用于在程序运行时,存储来自第一存储器的程序实体的一条或多条程序指令,以便由所述比较器读取所述一条或多条程序指令。
优选地,所述防护体系还包括执行部件,用于在比较器的比较结果表明所述程序实体自身的程序框架与所述参考程序框架不同时,控制程序控制器,中止所述程序的执行。


通过参考以下结合附图对所采用的优选实施例的详细描述,本发明的上述目的、优点和特征将变得显而易见,在附图中,相同参考符号表示相同或相似组件,其中图1(a)和图1(b)是分别示出了根据现有技术的两种体系结构的图;图2是示出了计算机系统的运行体系层次的示意图;图3是示出了黑客/计算机病毒的活动范围层次的示意图;图4是示出了计算机系统的运行体系的全面安全防护体系的图;图5是示出了根据本发明实施例的用于确保程序原态运行的系统和方法所能够提供的防护体系的深度概念的图;图6是示出了根据本发明实施例的用于确保程序原态运行的系统的示意图;图7是具体示出了根据本发明实施例的用于确保程序原态运行的系统中、运行体系和防护体系之间的信息交换的结构图;图8是具体示出了根据本发明实施例的用于确保程序原态运行的系统中、防护体系对运行体系的控制的示意图;图9是示出了在程序运行状态下,根据本发明实施例的用于确保程序原态运行的方法的流程图;以及图10是示出了在程序静止状态下,根据本发明实施例的用于确保程序原态运行的方法的流程图。
具体实施例方式
图5示出了根据本发明实施例的用于确保程序原态运行的系统和方法所能够提供的防护体系的深度概念。如图5所示,根据本发明,能够建立一种比系统硬件层次更深的防护体系,更具体地,本发明提供的安全防护体系是黑客/病毒无法深入的层次,这是因为黑客/病毒只能存在于运行体系,而无法深入到比系统硬件层次更低的防护体系中,从而确保了防护体系永久不被破坏。
如所公知的,任何一个可运行的程序由三部分组成程序命令,表示一行命令;程序顺序,表示一组程序命令;以及数据,包括输入、输出和程序附带数据。
当程序命令或者程序顺序被改变,那么程序将改变原有功能,甚至成为无用,或者有害的程序。这里,把程序命令、程序顺序和数据的集合叫做程序实体(PE)。把程序命令和程序顺序叫做程序框架(PF)。即,相对于程序实体,程序框架中并未包括上述数据。为了确保程序原态运行则需要判断相对于程序框架(PF),在程序运行和静止时,与所述程序框架相对应的程序实体是否发生了变化。如果相对于程序框架,程序实体发生了变化,则表明程序实体被非法篡改。因此,确保程序实体相对于与其相对应的程序框架不发生变化是程序保持原有功能的基本动机,这里,程序框架用作比较判断是否发生变化的一种参考。
下面将参考附图来详细描述本发明的优选实施例。
图6是示出了根据本发明实施例的用于确保程序原态运行的系统的示意图。如图6的上半部分所示,所述运行体系10和所述防护体系20经由运行体系与防护体系共用单元30来执行信息交换及相应控制。这里,所交换的信息为程序运行时的指令及指令顺序信息。如图6的下半部分所示,防护体系20对运行体系10中的算数逻辑器610和程序控制器620执行控制,以执行相应控制,例如,中止运行体系10的操作。另外,如图6所示,运行体系10还包括输入输出设备640,用于执行输入输出操作;以及存储器720,用于存储程序实体等,其功能将在以下进一步介绍。
图7是具体示出了根据本发明实施例的用于确保程序原态运行的系统中、运行体系10和防护体系20之间的信息交换的结构图;而图8是具体示出了根据本发明实施例的用于确保程序原态运行的系统中、防护体系20对运行体系10的控制的示意图。
根据本发明实施例的用于确保程序原态运行的系统包括运行体系10和防护体系20。运行体系10(PRP)运行常规程序;而防护体系20(PSP)运行常规程序的监控程序。在运行体系10中加载所述程序实体,而在防护体系20中加载与所述程序实体相对应的程序框架(仅包括指令、指令顺序信息,而不包含数据)。具体地,将所述程序实体预先存储在运行体系10的存储器720(存储器A)中,而将与所述程序实体相对应的所述程序框架预先存储在防护体系20的存储器780(存储器B)中(作为进行下面将描述的比较操作的参考)。
如图7所示,除了如上所述的存储器A之外,运行体系10还包括逻辑/算数运算单元710(逻辑/算数运算单元A)、数据寄存器730和命令寄存器750;其中所述数据寄存器730和命令寄存器750分别用于对数据和命令进行寄存。同样,除了如上所述的存储器B之外,运行体系20还包括逻辑/算数运算单元780(逻辑/算数运算单元B)。另外,所述系统还包括状态寄存器740和预读命令寄存器760,作为所述运行体系与防护体系共用单元30。状态寄存器740存储与程序状态有关的信息,例如指令顺序信息。而预读命令寄存器760存储了与程序指令内容有关的信息,即,指令信息。
在程序运行时,作为运行体系与防护体系共用单元30的一部分,预读命令寄存器(PRE-IR)760中的命令在进行解释前,同时被运行体系10和防护体系20读取。运行体系10从预读命令寄存器760读取命令是为了加载到命令寄存器(IR)750解析命令,以便控制下一步的操作。防护体系20从预读命令寄存器760读取命令是执行根据本发明的用于确保程序原态运行的方法的具体处理,以便决定是中止还是批准运行体系10的工作。
防护体系20能够读取运行体系10的程序控制器620里预读命令寄存器760的命令,这表明程序控制器620里预读命令寄存器760的命令是作为数据被防护体系20读取,因此一个显著的特点是运行体系10和防护体系20可以共同获取预读命令寄存器760的命令,即,执行指令信息交换。
另外,状态寄存器740中存储了指令顺序信息。如果该指令是顺序执行,则通过状态寄存器740向防护体系20表明顺序读取;而如果该命令是分支执行,则通过状态寄存器740向防护体系20表明分支走向的入口,以便进行稍后所述的比较处理,下面还将对此进行进一步描述。
下面将结合图8表明防护体系20对运行体系10的控制。
从防护体系20而言,存在一个读取运行体系10的程序控制器620里预读命令寄存器760的命令的通道,这个通道是单向的数据通道,如图7所示(如前所述)。另外,还存在一个控制运行体系10的程序控制器620的控制通道,这个通道是单向控制通道,如图8所示,即,从PSP执行部件810到程序控制器620的单向控制通道,用于控制程序控制器620以允许或禁止程序的执行。
需要注意的是,从运行体系10而言,没有任何通道来设置和进出防护体系20,如图7和图8所示。
如上所述,运行体系10和防护体系20之间的协调是通过预读命令寄存器760、状态寄存器740和指令计数器(未示出)来实现的一旦指令计数器的内容改变,表明有新的指令被加载到运行体系10的预读命令寄存器760中,则运行体系10和防护体系20将同时读取该预读命令寄存器760中的命令。
下面将参考图9来描述在程序运行状态下,根据本发明实施例的用于确保程序原态运行的方法的流程图。
开始之后,在程序运行时,将运行体系10的存储器720所存储的程序实体中的一条或多条指令读取到预读命令寄存器760中(步骤902),此时,将与该条指令相关的指令顺序信息存储在状态寄存器740中。然后,由防护体系20中的逻辑/算数运算单元770(比较器)从预读命令寄存器760中获取所述指令且从状态寄存器740中获取所述指令顺序信息,此时,逻辑/算数运算单元770根据所获取的所有指令顺序信息从防护体系20的存储器780所存储的对应于所述程序实体的参考程序框架中读取相应的指令,作为参考指令(步骤904)。然后,在逻辑/算数运算单元770中将从预读命令寄存器760中所获取的指令与来自防护体系的所述参考指令进行比较(步骤906)。如果比较结果为两者不同,则中止程序的运行(也可以杀掉该进程(程序))(步骤908)。而如果比较结果相同,则判断所运行的程序是否完成(步骤910)。如果未完成,则转到步骤902重复进行。如果已完成,则结束。
下面将参考图10来描述在程序静止状态下,根据本发明实施例的用于确保程序原态运行的方法的流程图。
在程序静止状态下,开始之后,将来自运行体系10的存储器720所存储的程序实体读取到比较器(未示出)中,将来自防护体系20的存储器780所存储的与程序实体相对应的参考程序框架读取到比较器中(步骤1002)。然后,在比较器中将所述程序实体自身的程序框架与所读取的参考程序框架进行比较(步骤1004)。如果一致,则结束。如果两者不相同,则向系统表明运行系统的存储器中的程序实体受到纂改,以便系统执行相应的控制,例如,删除该程序等。所述比较器可以是任意的,其并不局限于逻辑/算数运算单元,只要其能够对程序实体自身的程序框架与所读取的相应参考程序框架进行比较。
如上所述,根据本发明,监控体系与运行体系10独立工作。监控体系可以读取运行体系10的命令,并且可以控制运行体系10的运行;但是运行体系10的操作不能进入监控体系。监控体系与运行体系10共用运行体系10的预读命令寄存器760,但是监控体系仅仅是读出预读命令寄存器760的命令,并不影响命令的解析和执行。运行体系10无法干涉监控体系的运行,因为运行体系10对监控体系没有设置通道,从而确保监控体系的独立运行。另外,监控体系可以编程,用来分析运行体系10的命令序列的行为。此外,当监控体系认为需要中止运行体系10的一个进程,监控体系发出相关指令。还可以人为设置监控体系状态接通或者断开。
另外,在硬件实现上,监控体系远比运行体系10简单,其中许多部分或者直接使用运行体系10的物理部分(例如频率发生部分),或者根本不需要存在(例如命令解析与执行部分)。
尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。
权利要求
1.一种用于确保程序原态运行的方法,包括将程序的程序实体和与程序实体相对应的参考程序框架预先分别存储在运行体系和防护体系的存储器中,其中所述运行体系和防护体系彼此独立运行;将程序实体从运行体系的存储器读取到比较器中,而将与所述程序实体相对应的参考程序框架从防护体系的存储器读取到比较器中;在比较器中将所述程序实体自身的程序框架与所述参考程序框架进行比较,如果两者不一致,则表明所述程序已被纂改;以及如果两者一致,则表明所述程序正常。
2.根据权利要求1所述的方法,其特征在于所述运行体系和防护体系彼此独立运行在于运行体系没有通往防护体系的数据通道和控制通道。
3.根据权利要求1或2所述的方法,其特征在于所述程序实体包括指令信息、指令顺序信息和程序数据,而所述程序框架包括指令信息和指令顺序信息。
4.根据权利要求1所述的方法,其特征在于在程序处于运行状态时,将程序实体和参考程序框架读取到比较器的步骤包括将运行体系的存储器中所存储的程序实体的一条或多条程序指令读取到预读命令寄存器中,并且将与所述指令相关的指令顺序信息写入状态寄存器中;由防护体系中的比较器根据状态寄存器所存储的指令顺序信息,从防护体系的存储器中所存储的与所述程序实体相对应的参考程序框架中读取相应的一条或多条参考指令。
5.根据权利要求4所述的方法,其特征在于所述在比较器中将所述程序实体自身的程序框架与所述参考程序框架进行比较的步骤包括在比较器中将所述一条或多条程序指令与所述一条或多条参考指令进行比较;如果两者不一致,则表明所述程序已被纂改;而如果两者一致,则重复所述比较步骤,直到程序中的所有程序指令比较完毕。
6.根据权利要求1或5所述的方法,其特征在于当表明程序已纂改时,中止所述程序的执行,并提示用户。
7.根据权利要求1所述的方法,其特征在于在程序处于静止状态时,当表明程序已纂改时,则删除所述程序。
8.一种用于确保程序原态运行的系统,包括运行体系和防护体系,所述运行体系和防护体系彼此独立运行,所述运行体系包括第一存储器,用于存储程序实体,所述防护体系包括第二存储器,用于存储与程序实体相对应的参考程序框架,比较器,用于从第一存储器读取程序实体,并从第二存储器读取与所述程序实体相对应的参考程序框架,以及将所述程序实体自身的程序框架与所述参考程序框架进行比较,以便控制运行体系的操作。
9.根据权利要求8所述的系统,其特征在于所述运行体系和防护体系彼此独立运行在于运行体系没有通往防护体系的数据通道和控制通道。
10.根据权利要求8或9所述的方法,其特征在于所述程序实体包括指令信息、指令顺序信息和程序数据,而所述程序框架包括指令信息和指令顺序信息。
11.根据权利要求10所述的系统,其特征在于所述系统还包括运行体系与防护体系共用单元,所述运行体系与防护体系共用单元包括状态寄存器,用于存储与指令相关的指令顺序信息;以及预读命令寄存器,用于在程序运行时,存储来自第一存储器的程序实体的一条或多条程序指令,以便由所述比较器读取所述一条或多条程序指令。
12.根据权利要求8所述的系统,其特征在于所述防护体系还包括执行部件,用于在比较器的比较结果表明所述程序实体自身的程序框架与所述参考程序框架不同时,控制程序控制器,中止所述程序的执行。
全文摘要
根据本发明,提出了一种用于确保程序原态运行的方法,包括将程序的程序实体和与程序实体相对应的参考程序框架预先分别存储在运行体系和防护体系的存储器中,其中所述运行体系和防护体系彼此独立运行;将程序实体从运行体系的存储器读取到比较器中,而将与所述程序实体相对应的参考程序框架从防护体系的存储器读取到比较器中;在比较器中将所述程序实体自身的程序框架与所述参考程序框架进行比较,如果两者不一致,则表明所述程序已被纂改;以及如果两者一致,则表明所述程序正常。
文档编号G06F1/00GK1916813SQ200510092018
公开日2007年2月21日 申请日期2005年8月16日 优先权日2005年8月16日
发明者姜珊 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1