中断向量表被篡改的检测方法、装置及网络设备的制作方法

文档序号:6431006阅读:142来源:国知局
专利名称:中断向量表被篡改的检测方法、装置及网络设备的制作方法
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种中断向量表被篡改的检测方法、 装置及网络设备。
背景技术
中断是指中央处理器(Central Processing Unit,简称为CPU)在正常执行程序的过程中,由于内部/外部事件的触发,或者由于程序的预先安排,引起的CPU暂停当前正在运行的程序,而转去执行为该内部/外部事件或者程序预先安排的事件的服务子程序, 待服务子程序执行完毕后,CPU再返回被暂停的程序处(即断点处)继续执行原来的程序, 这一过程可以称之为中断。中断向量是指中断服务程序的入口地址,中断向量表是将操作系统中所有的中断类型及其对应的中断向量按照一定的规律存放在一个区域内,这个区域叫做中断向量表。在实现本发明过程中,发明人发现现有技术中至少存在如下问题如果由于某些软件问题或者硬件初始化错误,篡改了中断向量表的内容,会导致当系统产生中断并切换到相应的中断向量时,由于中断向量表的数据被篡改而不能够正确执行本次中断,最终导致整个系统的异常。

发明内容
本发明实施例提供一种中断向量表被篡改的检测方法、装置及网络设备,用以解决现有技术中存在的问题。本发明实施例提供一种中断向量表被篡改的检测方法,包括当操作系统产生非屏蔽中断时,判断所述非屏蔽中断是否由操作系统的看门狗 (watch dog)产生,所述看门狗的中断向量被预先重映射至只读存储器中,用于防止所述看门狗超时的定时器的中断向量位于所述操作系统的中断向量表中;如果是所述操作系统的看门狗产生的非屏蔽中断,检测所述操作系统当前的中断向量表与预先保存的中断向量表是否不同;如果不同,判定所述中断向量表被篡改。本发明实施例提供一种中断向量表被篡改的检测装置,包括判断模块,用于当操作系统产生非屏蔽中断时,判断所述非屏蔽中断是否由操作系统的看门狗(watch dog)产生,所述看门狗的中断向量被预先重映射至只读存储器中,用于防止所述看门狗超时的定时器的中断向量位于所述操作系统的中断向量表中;检测模块,用于如果所述判断模块的判断结果为所述非屏蔽中断为操作系统的看门狗产生,检测所述操作系统当前的中断向量表与预先保存的中断向量表是否不同;如果不同,判定所述中断向量表被篡改。本发明实施例还提供了一种网络设备,包括上述中断向量表被篡改的检测装置。本发明实施例的中断向量表被篡改的检测方法、装置及网络设备,通过将用于防止看门狗超时的定时器的中断向量存储在中断向量表中,将看门狗的中断向量预先重映射至只读存储器中,使得位于只读存储器的看门狗的中断向量无法被篡改,当中断向量表被篡改后,看门狗的定时器无法正常产生中断以清除看门狗的计数,从而导致看门狗超时,产生代表硬件错误的非屏蔽中断。因此,当检测到是由看门狗产生的非屏蔽中断时,判断操作系统当前的中断向量表与操作系统初始化阶段保存的中断向量表是否相同,若不同便可以确定中断向量表被篡改。该中断向量表被篡改的检测方法、装置及网络设备能够有效检测中断向量表被篡改而引起的各种异常,保证操作系统的健壮性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明一个实施例提供的中断向量表被篡改的检测方法的流程图;图2为本发明又一个实施例提供的中断向量表被篡改的检测方法的流程图;图3为本发明再一个实施例提供的中断向量表被篡改的检测方法的流程图;图4为本发明一个实施例提供的看门狗初始化过程的流程图;图5为本发明一个实施例提供的中断向量表被篡改的检测装置的结构示意图;图6为本发明又一个实施例提供的中断向量表被篡改的检测装置的结构示意图;图7为本发明再一个实施例提供的中断向量表被篡改的检测装置的结构示意图;图8为本发明还一个实施例提供的中断向量表被篡改的检测装置的结构示意图;图9为本发明又一个实施例提供的中断向量表被篡改的检测装置的结构示意图;图10为本发明一个实施例提供的网络设备的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明一个实施例提供的中断向量表被篡改的检测方法的流程图,如图1 所示,包括步骤101、当操作系统产生非屏蔽中断时,中断向量表被篡改的检测装置判断该非屏蔽中断是否由操作系统的看门狗(watch dog)产生,其中,该看门狗的中断向量被预先重映射至只读存储器中,用于防止该看门狗超时的定时器的中断向量位于操作系统的中断向
量表中。其中,非屏蔽中断指的是计算机内部硬件出错时引起的异常情况。由于看门狗在正常运行时不会出现超时这种情况,因此一旦出现超时,即会被认为是看门狗出错,从而引发非屏蔽中断。将用于防止看门狗超时的定时器的中断向量存储在中断向量表中,将看门狗的中断向量预先重映射至只读存储器中,使得中断向量表被篡改后,看门狗的定时器无法正常产生中断,从而导致看门狗超时,看门狗的超时会产生代表硬件错误的非屏蔽中断,而恰好看门狗的中断向量位于只读存储器,无法被篡改,使得看门狗产生非屏蔽中断。本发明提到的看门狗可以为内部看门狗,也可以为外部看门狗,不做具体限定。判断非屏蔽中断是否由操作系统的看门狗产生可以包括读取操作系统CPU内部寄存器中关于该异常情况的记录,由于每一个异常的产生,CPU内部寄存器都会有详细的记录,所以只要读取CPU的内部寄存器,便可知道当前的异常是什么,其中,非屏蔽异常的优先级是最高的,所以读取当前优先级最高的异常便可获得该非屏蔽中断是否由操作系统的看门狗产生。将看门狗的中断向量预先重映射至只读存储器可以包括将看门狗的中断向量从操作系统的中断向量表中移出,并移至只读存储器,并进行该中断向量的重定位。步骤102、如果是操作系统的看门狗产生的非屏蔽中断,检测操作系统当前的中断向量表与预先保存的中断向量表是否不同,如果不同,则判定该中断向量表已被篡改。图2为本发明又一个实施例提供的中断向量表被篡改的检测方法的流程图,在上述图1所示的实施方式的基础上,当中断向量表被篡改的检测装置判定了中断向量表被篡改之后,也即步骤102之后,可以对被篡改的中断向量表进行修复。具体的修复过程可以如步骤103所示步骤103、将操作系统当前的中断向量表替换为预先保存的中断向量表。需要说明的是,预先保存的中断向量表可以为1份,也可以为多份。保存多份中断向量表是为了更加有效的保障预先保存的中断向量表的正确性。如果预先保存的多份中断向量表中存在不完全相同的情况,以多数相同的中断向量表为准确版本。图3为本发明再一个实施例提供的中断向量表被篡改的检测方法的流程图,在上述图2所示的实施方式的基础上,进一步的,在判定该非屏蔽中断是操作系统的看门狗产生的非屏蔽中断之后,步骤102中还可以包括保存该非屏蔽中断前操作系统正在运行的程序上下文。相应于图3所示的步骤102,在步骤103之后,该方法还包括步骤104、退出非屏蔽中断,根据保存的程序上下文恢复操作系统的运行。在上述一个或多个实施例的基础上,在步骤101之前,该方法还可以包括看门狗的初始化过程。如图4所示的本发明一个实施例提供的看门狗初始化过程的流程图,如图 4所示,该看门狗的初始化过程包括步骤100a、设置看门狗的超时时间为X,并设置看门狗的定时器的时间间隔为Y, 该定时器到期时产生用于清除看门狗计数的中断,其中Y小于X,X、Y均为大于等于0的整数;看门狗的超时时间X大于清除看门狗计数的定时器的中断时间间隔Y,这样可以有效保证在操作系统正常运行过程中,看门狗定时器能够在看门狗超时之前将其计数清除。步骤100b、将看门狗的中断向量从操作系统的中断向量表中移至只读存储器中, 并进行该中断向量的重定位。在中断向量表被篡改的情况下,定时器将无法正常工作,而看门狗的中断向量位于只读存储器,无法被篡改,这样就会触发看门狗超时,产生非屏蔽中断。其中,步骤IOOa与步骤IOOb之间可以同时进行,也可以先后进行。图4以步骤IOOa发生在步骤IOOb之前为例,但并不用于限制本发明的保护范围。进一步的,步骤IOOb之后,该方法还包括中断向量表的备份过程。该中断向量表的备份过程可以包括将移除了看门狗中断向量的中断向量表作为备份数据保存到预设的内存空间。作为备份数据保存到预设的内存空间的中断向量表即被认为是系统初始化过程中保存的中断向量表,是未被篡改的中断向量表。本发明实施例提供的中断向量表被篡改的检测方法,通过将用于防止看门狗超时的定时器的中断向量存储在中断向量表中,将看门狗的中断向量预先重映射至只读存储器中,使得位于只读存储器的看门狗的中断向量无法被篡改,当中断向量表被篡改后,看门狗的定时器无法正常产生中断以清除看门狗的计数,从而导致看门狗超时,产生代表硬件错误的非屏蔽中断。因此,当检测到是由看门狗产生的非屏蔽中断时,判断操作系统当前的中断向量表与操作系统初始化阶段保存的中断向量表是否相同,若不同便可以确定中断向量表被篡改。该中断向量表被篡改的检测方法及装置能够有效检测中断向量表被篡改而引起的各种异常,保证操作系统的健壮性。图5为本发明一个实施例提供的中断向量表被篡改的检测装置的结构示意图,如图5所示,该检测装置为执行上述方法实施例的特定主体,该装置包括判断模块501和检测模块502。其中,判断模块501用于当操作系统产生非屏蔽中断时,判断非屏蔽中断是否由操作系统的看门狗产生,看门狗的中断向量被预先重映射至只读存储器中,用于防止看门狗超时的定时器的中断向量位于操作系统的中断向量表中;检测模块502用于如果判断模块501的判断结果为非屏蔽中断为操作系统的看门狗产生,检测操作系统当前的中断向量表与预先保存的中断向量表是否不同;如果不同,判定中断向量表被篡改。图6为本发明又一个实施例提供的中断向量表被篡改的检测装置的结构示意图, 如图6所示,在上述实施方式的基础上,该检测装置还可以包括修正模块503,其中,修正模块503用于将操作系统当前的中断向量表替换为预先保存的中断向量表。需要说明的是,预先保存的中断向量表可以为1份,也可以为多份。保存多份中断向量表是为了更加有效的保障预先保存的中断向量表的正确性。如果预先保存的多份中断向量表中存在不完全相同的情况,以多数相同的中断向量表为准确版本。图7为本发明再一个实施例提供的中断向量表被篡改的检测装置的结构示意图, 如图7所示,在图6所示的实施方式的基础上,检测模块502还用于在判定非屏蔽中断是操作系统的看门狗产生的非屏蔽中断之后,保存非屏蔽中断前操作系统正在运行的程序上下文;相应的,该检测装置还可以包括恢复模块504。该恢复模块504用于在修正模块 503将操作系统当前的中断向量表替换为预先保存的中断向量表之后,退出非屏蔽中断,并根据保存的程序上下文恢复操作系统的运行。图8为本发明还一个实施例提供的中断向量表被篡改的检测装置的结构示意图, 如图8所示,在上述任一种实施例的基础上,该装置还可以包括看门狗初始化模块505。 其中,该看门狗初始化模块505用于设置看门狗的超时时间为X,并设置看门狗的定时器的时间间隔为Y,该定时器到期时产生用于清除看门狗计数的中断,其中Y小于X,X、Y均为大于等于0的整数;将看门狗的中断向量从操作系统的中断向量表移至只读存储器,并进行该看门狗的中断向量的重定位。其中,看门狗的超时时间X大于清除看门狗计数的定时器的中断时间间隔Y,这样可以有效保证在操作系统正常运行过程中,看门狗定时器能够在看门狗超时之前将其计数清除。在中断向量表被篡改的情况下,定时器将无法正常工作,而看门狗的中断向量位于只读存储器,无法被篡改,这样就会触发看门狗超时,产生非屏蔽中断。图9为本发明又一个实施例提供的中断向量表被篡改的检测装置的结构示意图, 如图9所示,在图8所示的实施例的基础上,该装置还可以包括备份模块506。该备份模块506用于将移除了看门狗的中断向量的中断向量表作为备份数据保存到预设的内存空间,作为预先保存的中断向量表。作为备份数据保存到预设的内存空间的中断向量表即被认为是系统初始化过程中保存的中断向量表,是未被篡改的中断向量表。本发明实施例提供的中断向量表被篡改的检测装置,既可以是独立存在的硬件设备,该硬件设备中包含上述各模块,也可以是运行在操作系统中的软件功能模块,存在于计算机、手机、网络交换机、路由器等网络设备之中。通过将用于防止看门狗超时的定时器的中断向量存储在中断向量表中,将看门狗的中断向量预先重映射至只读存储器中,使得位于只读存储器的看门狗的中断向量无法被篡改,当中断向量表被篡改后,看门狗的定时器无法正常产生中断以清除看门狗的计数,从而导致看门狗超时,产生代表硬件错误的非屏蔽中断。因此,当检测到是由看门狗产生的非屏蔽中断时,判断操作系统当前的中断向量表与操作系统初始化阶段保存的中断向量表是否相同,若不同便可以确定中断向量表被篡改。该中断向量表被篡改的检测方法及装置能够有效检测中断向量表被篡改而引起的各种异常,保证操作系统的健壮性。图10为本发明一个实施例提供的网络设备的结构示意图,如图10所示,该网络设备中包括中断向量表被篡改的检测装置1001,该中断向量表被篡改的检测装置1001可以参考上述中断向量表被篡改的检测装置的具体实施方式
,此处不做赘述。该中断向量表被篡改的检测装置可以作为网络设备的硬件组成存在于网络设备中,也可以作为运行在网络设备的操作系统中的软件功能模块存在于网络设备中,本实施例中所提到的网络设备指代一种通过操作系统控制设备运行的实体设备,如计算机、手机、 网络交换机、路由器等。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种中断向量表被篡改的检测方法,其特征在于,包括当操作系统产生非屏蔽中断时,判断所述非屏蔽中断是否由操作系统的看门狗(watch dog)产生,所述看门狗的中断向量被预先重映射至只读存储器中,用于防止所述看门狗超时的定时器的中断向量位于所述操作系统的中断向量表中;如果是所述操作系统的看门狗产生的非屏蔽中断,检测所述操作系统当前的中断向量表与预先保存的中断向量表是否不同;如果不同,判定所述中断向量表被篡改。
2.根据权利要求1所述的方法,其特征在于,所述判定所述中断向量表被篡改之后,所述方法还包括将所述操作系统当前的中断向量表替换为所述预先保存的中断向量表。
3.根据权利要求2所述的方法,其特征在于,判定所述非屏蔽中断是所述操作系统的看门狗产生的非屏蔽中断之后,所述方法还包括保存所述非屏蔽中断前所述操作系统正在运行的程序上下文;相应的,所述将所述操作系统当前的中断向量表替换为所述预先保存的中断向量表之后,所述方法还包括退出非屏蔽中断,并根据保存的程序上下文恢复所述操作系统的运行。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述操作系统产生非屏蔽中断之前,所述方法还包括设置看门狗的超时时间为X ;设置所述看门狗的定时器的时间间隔为Y,所述定时器到期时产生用于清除所述看门狗计数的中断,其中Y小于X ;将所述看门狗的中断向量从所述操作系统的中断向量表移至只读存储器,并进行所述中断向量的重定位;X、Y均为大于等于0的整数。
5.根据权利要求4所述的方法,其特征在于,所述将所述看门狗的中断向量从所述操作系统的中断向量表移至只读存储器,并进行所述中断向量的重定位之后,所述方法还包括将移除了所述看门狗的中断向量的中断向量表作为备份数据保存到预设的内存空间, 作为所述预先保存的中断向量表。
6.根据权利要求1或2所述的方法,其特征在于,所述看门狗包括内部看门狗,和/ 或,外部看门狗。
7.—种中断向量表被篡改的检测装置,其特征在于,包括判断模块,用于当操作系统产生非屏蔽中断时,判断所述非屏蔽中断是否由操作系统的看门狗(watch dog)产生,所述看门狗的中断向量被预先重映射至只读存储器中,用于防止所述看门狗超时的定时器的中断向量位于所述操作系统的中断向量表中;检测模块,用于如果所述判断模块的判断结果为所述非屏蔽中断为操作系统的看门狗产生,检测所述操作系统当前的中断向量表与预先保存的中断向量表是否不同;如果不同, 判定所述中断向量表被篡改。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括修正模块,用于将所述操作系统当前的中断向量表替换为所述预先保存的中断向量表。
9.根据权利要求8所述的装置,其特征在于,所述检测模块还用于在判定所述非屏蔽中断是操作系统的看门狗产生的非屏蔽中断之后,保存所述非屏蔽中断前所述操作系统正在运行的程序上下文;相应的,装置还包括恢复模块,用于在所述修正模块将所述操作系统当前的中断向量表替换为所述预先保存的中断向量表之后,退出非屏蔽中断,并根据保存的程序上下文恢复所述操作系统的运行。
10.根据权利要求7至9中任一项所述的装置,其特征在于,所述装置还包括看门狗初始化模块,用于设置看门狗的超时时间为X ;设置所述看门狗的定时器的时间间隔为Y,所述定时器到期时产生用于清除所述看门狗计数的中断,其中Y小于X ;将所述看门狗的中断向量从所述操作系统的中断向量表移至只读存储器,并进行所述中断向量的重定位。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括备份模块,用于将移除了所述看门狗的中断向量的中断向量表作为备份数据保存到预设的内存空间,作为所述检测模块使用的预先保存的中断向量表。
12.—种网络设备,其特征在于,包括如权利要求7至11中任一项所述的中断向量表被篡改的检测装置。
全文摘要
本发明提供一种中断向量表被篡改的检测方法、装置及网络设备。方法当操作系统产生非屏蔽中断时,判断所述非屏蔽中断是否由操作系统的看门狗产生,所述看门狗的中断向量被预先重映射至只读存储器中,用于防止所述看门狗超时的定时器的中断向量位于所述操作系统的中断向量表中;如果是所述操作系统的看门狗产生的非屏蔽中断,检测所述操作系统当前的中断向量表与预先保存的中断向量表是否不同;如果不同,判定所述中断向量表被篡改。装置判断模块和检测模块。网络设备包括上述装置。本发明提供的方案有效解决了现有技术中无法检测中断向量表被篡改的问题。
文档编号G06F11/00GK102436403SQ201110236759
公开日2012年5月2日 申请日期2011年8月17日 优先权日2011年8月17日
发明者梁恩波 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1