发明内容
为了解决现有技术的问题,本发明实施例提供了一种入侵检测方法及装置。该技术方案如下:
一方面,提供了一种入侵检测方法,该方法包括:
获取***调用链表;
从该***调用链表中导出***调用指针;
对该***调用指针用指纹算法进行处理,得到***调用指针指纹数据;
将当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;
当确定当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件;
该获取***调用链表包括:
获取***调用处理程序入口;
根据该***调用处理程序入口,获取该***调用链表指针,该***调用链表指针指向该***调用链表的首地址;
根据该***调用链表指针,获取***调用链表;
该获取***调用处理程序入口包括:
执行SIDT汇编指令,将IDTR寄存器中的中断描述符表的基地址和长度值复制到内存中;
根据该中断描述符表的基地址和长度值获取中断描述符表;
将该中断描述符表存储到内存中;
根据中断描述符表,获取***调用对应的门描述符;
根据该门描述符,转到***调用处理程序入口。
可选地,该根据该***调用处理程序入口,获取该***调用链表指针包括:
在内存中查找第一个Call汇编指令;
执行该Call汇编指令;
该Call汇编指令根据该***调用处理程序入口,获取该***调用链表指针。
可选地,获取***调用链表之前,该方法还包括:
在初始化阶段,获取初始化阶段的***调用指针指纹数据;
将该初始化阶段的***调用指针指纹数据存储在本端。
可选地,在初始化阶段,获取初始化阶段的***调用指针指纹数据之后,该方法还包括:
将该初始化阶段的***调用指针指纹数据存储到服务器。
可选地,将该初始化阶段的***调用指针指纹数据存储到服务器之后,该方法还包括:
将当前获取的该***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;
当确定当前获取的该***调用指针指纹数据与该服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,将该初始化阶段的***调用指针指纹数据存储到服务器之后,该方法还包括:
将该本端预存的***调用指针指纹数据与该服务器预存的***调用指针指纹数据进行比对;
当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,获取***调用链表之后,该方法还包括:
获取***调用地址文件,该***调用地址文件用于存储该***调用指针;
将该***调用地址文件与该***调用链表进行比对;
当确定该***调用地址文件与该***调用链表不一致时,确定本端发生入侵事件。
可选地,确定本端发生入侵事件之后,该方法还包括:
根据该入侵事件,输出警报信息。
另一方面,提供了一种入侵检测装置,该装置包括:
第一获取模块,用于获取***调用链表;
导出模块,用于从该***调用链表中导出***调用指针;
指纹算法处理模块,用于对该***调用指针用指纹算法进行处理,得到***调用指针指纹数据;
第一比对模块,用于将当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;
第一确定模块,用于当确定当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件;
该第一获取模块包括:
第一获取单元,用于获取***调用处理程序入口;
第二获取单元,用于根据该***调用处理程序入口,获取该***调用链表指针,该***调用链表指针指向该***调用链表的首地址;
第三获取单元,用于根据该***调用链表指针,获取***调用链表;
该第一获取单元还用于执行SIDT汇编指令,将IDTR寄存器中的中断描述符表的基地址和长度值复制到内存中;根据该中断描述符表的基地址和长度值获取中断描述符表;将该中断描述符表存储到内存中;根据中断描述符表,获取***调用对应的门描述符;根据该门描述符,转到***调用处理程序入口。
可选地,该第二获取单元还用于在内存中查找第一个Call汇编指令;执行该Call汇编指令;该Call汇编指令根据该***调用处理程序入口,获取该***调用链表指针。
可选地,该装置还包括:
第二获取模块,用于在初始化阶段,获取初始化阶段的***调用指针指纹数据;
第一存储模块,用于将该初始化阶段的***调用指针指纹数据存储在本端。
可选地,该装置还包括:
第二存储模块,用于将该初始化阶段的***调用指针指纹数据存储到服务器。
可选地,该装置还包括:
第二比对模块,用于将当前获取的该***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;
第二确定模块,用于当确定当前获取的该***调用指针指纹数据与该服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,该装置还包括:
第三比对模块,用于将该本端预存的***调用指针指纹数据与该服务器预存的***调用指针指纹数据进行比对;
第三确定模块,用于当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,该装置还包括:
第三获取模块,用于获取***调用地址文件,该***调用地址文件用于存储该***调用指针;
第四比对模块,用于将该***调用地址文件与该***调用链表进行比对;
第四确定模块,用于当确定该***调用地址文件与该***调用链表不一致时,确定本端发生入侵事件。
可选地,该装置还包括:
输出警报模块,用于根据该入侵事件,输出警报信息。
本发明实施例提供的技术方案带来的有益效果是:
通过获取当前***调用指针的指纹数据,并将当前指纹数据和预先存储的***调用指针指纹数据进行比对,以确定是否有入侵事件发生,可以检测到对***内核态的入侵事件,实现了对***全面的保护,提高了***可靠性。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种入侵检测方法的流程图。该实施例的执行主体为终端设备,参见图1,该方法包括:
101、获取***调用链表;
102、从该***调用链表中导出***调用指针;
103、对该***调用指针用指纹算法进行处理,得到***调用指针指纹数据;
104、将当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;
105、当确定当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
本发明实施例提供的方法,通过获取当前***调用指针的指纹数据,并将当前指纹数据和预先存储的***调用指针指纹数据进行比对,以确定是否有入侵事件发生,可以检测到对***内核态的入侵事件,实现了对***全面的保护,提高了***可靠性。
可选地,该获取***调用链表包括:
获取***调用处理程序入口;
根据该***调用处理程序入口,获取该***调用链表指针,该***调用链表指针指向该***调用链表的首地址;
根据该***调用链表指针,获取***调用链表。
可选地,该获取***调用处理程序入口包括:
执行SIDT汇编指令,将IDTR寄存器中的中断描述符表的基地址和长度值复制到内存中;
根据该中断描述符表的基地址和长度值获取中断描述符表;
将该中断描述符表存储到内存中;
根据中断描述符表,获取***调用对应的门描述符;
根据该门描述符,转到***调用处理程序入口。
可选地,该根据该***调用处理程序入口,获取该***调用链表指针包括:
在内存中查找第一个Call汇编指令;
执行该Call汇编指令;
该Call汇编指令根据该***调用处理程序入口,获取该***调用链表指针。
可选地,获取***调用链表之前,该方法还包括:
在初始化阶段,获取初始化阶段的***调用指针指纹数据;
将该初始化阶段的***调用指针指纹数据存储在本端。
可选地,在初始化阶段,获取初始化阶段的***调用指针指纹数据之后,该方法还包括:
将该初始化阶段的***调用指针指纹数据存储到服务器。
可选地,将该初始化阶段的***调用指针指纹数据存储到服务器之后,该方法还包括:
将当前获取的该***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;
当确定当前获取的该***调用指针指纹数据与该服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,将该初始化阶段的***调用指针指纹数据存储到服务器之后,该方法还包括:
将该本端预存的***调用指针指纹数据与该服务器预存的***调用指针指纹数据进行比对;
当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,获取***调用链表之后,该方法还包括:
获取***调用地址文件,该***调用地址文件用于存储该***调用指针;
将该***调用地址文件与该***调用链表进行比对;
当确定该***调用地址文件与该***调用链表不一致时,确定本端发生入侵事件。
可选地,确定本端发生入侵事件之后,该方法还包括:
根据该入侵事件,输出警报信息。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是本发明实施例提供的一种入侵检测方法的流程图。该实施例的执行主体为终端设备,参见图2,该方法包括:
201、在初始化阶段,获取***调用处理程序入口;
具体地,该步骤201包括:执行SIDT(Store Interrupt Descriptor Table,保存中断描述符表)汇编指令,将IDTR(Integrated Device Technology Register,IDT寄存器)中的中断描述符表的基地址和长度(限长)值复制到内存中;根据该中断描述符表的基地址和长度(限长)值获取中断描述符表,并将该中断描述符表存储到内存中;根据中断描述符表中获取***调用对应的门描述符。根据该门描述符执行int$0x80汇编指令,从而CPU切换到内核态,转到***调用处理程序入口:system_call()。
其中,IDTR寄存器中保存有当前的中断描述符表的32位的基地址和16位的长度(限长)值,该基地址是中断描述符表的内存地址。
例如,上述从IDTR寄存器中获取的中断描述符表的基地址和长度值可以应用以下代码实现:
asm("sidt%0":"=m"(idtr));
idt=(struct struct_idt*)(*(unsigned long*)&idtr[2]+8*0x80);
System_call=(idt->offset_high<<16)|idt->offset_low;//通过内联汇编指令将sidt数据导出到idtr变量中,即将中断描述符表导出到内存中
需要说明的是,在入侵检测方法的初始化阶段,需要确定检测时所使用的基准指纹数据,也即是通过执行步骤201以及后续步骤,获取本端预存的***调用指针指纹数据。
202、根据***调用处理程序入口,获取***调用链表指针;
其中,该***调用链表指针指向***调用链表的首地址,其中,该***调用链表包含所有***调用指针。
具体地,该步骤202包括:在内存中查找第一个Call汇编指令,执行该Call汇编指令,在该Call汇编指令执行过程中,根据该***调用处理程序入口(system_call()),获取该***调用链表指针。
例如,上述利用Call指令获取该***调用链表接口的过程可以应用以下代码实现:
unsigned char*syscall_key="\xff\x14\x85";
for(i=0;i<(128-2);i++)
{if(memoryaddr[i]==syscall_key[0]&&memoryaddr[i+1]==syscall_key[1]&&memoryaddr[i+2]==syscall_key[2])
{
break;
}}//查找第一个Call指令,从而利用Call指令获取该***调用链表接口。
203、根据该***调用链表指针,获取***调用链表;
204、从该***调用链表中导出***调用指针;
其中,该***调用指针指向***调用的内核函数的入口地址。
一般来说,操作***通常包含有不止一个内核函数,即有不止一个***调用指针,在该步骤204中,从该***调用链表中导出所有的***调用指针,包括:_NR_read、_NR_write、_NR_open、_NR_kill、_NR_mkdir、_NR_umask、_NR_getpgid和_NR_getdents64等,除上述列举指针之外,该***调用指针还可以包括其他种类,本发明实施例在此不做限定。
可选地,该步骤204具体包括:通过循环的方式逐一访问该***调用链表的每个结点,从而导出每个结点中包含的***调用指针。
另外,循环的过程中,在导出所有***调用指针的同时,需要保存该***调用链表指针,该保存的过程可以通过以下代码实现:
Original_getdents64=(int(*)(const char*))sys_call_table[_NR_getdents64];//保存***调用链表指针_NR_getdents64指针。
上述实施例中所列举的代码仅是实现其对应功能的一种方式,该功能还可以应用其他程序或硬件功能实现,本发明实施例对此不作限定。
205、对该***调用指针用指纹算法进行处理,得到***调用指针指纹数据;
其中,该指纹算法可以为消息摘要算法,如,MD5(Message Digest Algorithm5,消息摘要算法第五版)算法、SHA-1(Secure Hash Algorithm,安全散列算法)算法等;或者该指纹算法还可以为其它类似算法,本发明实施例不做限定。
需要说明的是,该步骤205中,分别对每一个***调用该指针用指纹算法进行处理,得到每一个***调用指针对应的***调用该指针指纹数据。优选地,可以通过循环的方式逐一处理***调用链表的每个结点,导出结点中包含的***调用指针,该***调用指针用指纹算法进行处理,得到***调用指针指纹数据。
上述步骤204的导出过程和步骤205的指纹算法处理过程可以是以先后顺序进行,如,在步骤204中将所有的***调用指针导出后,对导出的***调用指针进行指纹算法处理。当然,该步骤204的导出过程和步骤205的指纹算法处理过程还可以是并行进行,如,在步骤204中导出一个或多个***调用指针时,即执行步骤205对导出的***调用指针进行指纹算法处理,直到导出所有***调用指针且对导出的***调用指针均进行了指纹算法处理为止。
206、将初始化阶段的***调用指针指纹数据存储在本端;
在此过程中,该存储可以为将该***调用指针指纹数据以文件的形式存储到本端的存储设备中。例如,可以在该终端设备的磁盘等存储设备中创建文件,将该***调用指针指纹数据写入该文件中。
优选地,在存储该***调用指针指纹数据时,可以将每个***调用指针或指针表项标号与其生成的指纹数据对应存储,以便在后续的检测过程中,可以确定发生变化的指针表项标号,进一步确定侵入事件的对象。
以上步骤201-206,是获取本端预存***调用指针指纹数据的过程。通过上述步骤,将该***调用指针指纹数据存储为本端预存的***调用指针指纹数据,将该本端预存的***调用指针指纹数据作为安全基线,在后续的检测过程中,以该安全基线作为比对标准,一旦当前的***调用指针指纹数据与该安全基线比对不一致时,确定终端设备发生入侵事件。
207、将该初始化阶段的***调用指针指纹数据存储到服务器;
可选地,在将初始化阶段的***调用指针指纹数据存储在终端设备上以后,还可以将该初始化阶段的***调用指针指纹数据存储到服务器。
其中,该服务器可以为提供验证服务或安全服务的服务器或服务器上的功能模块,本发明实施例对此不作具体限定。
需要说明的是,对于上述步骤206和步骤207,可以省去步骤207,只将该初始化阶段的***调用指针指纹数据存储在本端;或者省去步骤206,只将该初始化阶段的***调用指针指纹数据存储到服务器;或者按照本发明实施例该执行步骤206和207,以确保当任一保存的指纹数据发生错误时,能够根据本端或服务器保存的指纹数据进行后续的检测过程。
208、获取当前***调用指针指纹数据;
可选地,该步骤208具体包括:每隔第一预设时间间隔,获取当前***调用指针指纹数据。其中,该第一预设时间间隔可以由***或者开发人员预先设定,本发明实施例在此不做限定。该步骤208中的获取可以周期性进行,其周期为第一预设时间间隔。当然,该根据本端预先存储的***调用指针指纹数据进行的检测还可以由用户启动终端设备触发或由用户的其他操作触发,本发明实施例对此不作具体限定。
需要说明的是,获取的该当前***调用指针指纹数据与获取行为发生时***的内核状态相对应;在入侵事件发生时,***调用链表中的某一项或者多项可能被修改,即某一个或者多个***调用指针被修改,一旦某一个或者多个***调用指针被修改,则根据修改后的***调用指针所获取到的指纹数据与初始化阶段所获取到的指纹数据相比,必然会有所不同,因此,可以通过指纹数据的比对,确定是否发生入侵事件。
该步骤208中,获取当前***调用指针指纹数据的过程与步骤201-203的过程相同,在此不再赘述。
209、将当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;
具体地,该步骤209包括:从本端获取本端预存的***调用指针指纹数据,将当前获取的该***调用指针指纹数据与该本端预存的***调用指针指纹数据中每一组具有相同指针表项标号的指纹数据进行比对,只要其中任何一组或者多组不一致,则确定本端发生入侵事件。
该指纹数据与生成指纹数据的***调用指针或指针表项标号为对应存储,因此,在比对过程中,当通过比对确定任一个***调用指针或指针表项标号对应的指纹数据不一致时,可以确定终端设备当前发生了入侵事件,记录该不一致的***调用指针或指针表项标号,以供后续有针对性的对该入侵事件进行修复。
210、当确定当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件,执行步骤213;
211、将该本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;
在本发明实施例中,上述步骤209-211仅以通过将当前获取到的***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对的同时,并行对本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对为例进行说明。而在本发明实施例提供的另一种实施方式中,该209-211还可以由以下步骤代替:将当前获取的该***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;当确定当前获取的该***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
而由于入侵事件对本端预存的***调用指针指纹数据修改的可能性较小,因此也可以不在每个检测周期内都将本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对,在本发明实施例提供的另一种实施方式中,该209-211还可以由以下步骤代替:设置第二预设时间间隔,每隔第二预设时间间隔,将本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对,如果不一致,确定本端发生入侵事件,其中,第二预设时间间隔大于较第一预设时间间隔,该第二预设时间间隔可以由***或者开发人员预先设定,本发明实施例在此不做限定。
具体地,该步骤211具体包括以下任一交互过程:(1)从服务器获取服务器预存的***调用指针指纹数据,将服务器预存的***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;(2)将本端预存的***调用指针指纹数据发送到服务器,由服务器将服务器预存的***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对,并将比对结果返回至本端。
212、当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件;
需要说明的是,该步骤212中,当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,认为该本端预存的***调用指针指纹数据对应的***调用指针与安全基线建立时的***调用指针不同,确定本端发生入侵事件。
可选地,在步骤203中获取***调用链表后,该方法还包括:获取***调用地址文件,该***调用地址文件用于存储该***调用指针;将该***调用地址文件与该***调用链表进行比对;当确定该***调用地址文件与该***调用链表不一致时,确定本端发生入侵事件。
由于该***调用地址文件包括了所有的***调用指针,因此该***调用地址文件中所包括的指针与***调用链表的表项为一一对应的关系,根据指针表项标号,将该***调用地址文件与该***调用链表的表项中具有相同指针表项标号的对应项进行比对,当任一组或多组对应项不一致时,确定本端发生入侵事件。
213、根据该入侵事件,输出警报信息。
其中,根据该入侵事件,输出警报信息,该警报信息可以为本端发出预设的声响、终止当前的入侵行为、发电子邮件到远程控制中心、或其它有报警功能的方式,该警报信息还可以为多种方式混合,本发明实施例在此不做限定。
在本发明实施例中,仅以基于Linux***为例进行说明,而事实上,对于其他内核态和用户态分离的操作***来说,也可以应用本发明实施例提供的方法进行入侵检测,本发明实施例在此不做限定。
本发明实施例提供的方法,通过获取当前***调用指针的指纹数据,并将当前指纹数据和预先存储的***调用指针指纹数据进行比对,以确定是否有入侵事件发生,可以检测到对***内核态的入侵事件,实现了对***全面的保护,提高了***可靠性。
参见图3,本发明实施例提供了一种入侵检测装置,该装置包括:第一获取模块301、导出模块302、指纹算法处理模块303、第一比对模块304和第一确定模块305;其中第一获取模块301用于获取***调用链表;第一获取模块301与导出模块302连接,导出模块302用于从该***调用链表中导出***调用指针;导出模块302与指纹算法处理模块303连接,指纹算法处理模块303用于对该***调用指针用指纹算法进行处理,得到***调用指针指纹数据;指纹算法处理模块303与第一比对模块304连接,第一比对模块304用于将当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;第一比对模块304与第一确定模块305连接,第一确定模块305用于当确定当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,参见图4,在图3所示装置结构的基础上,第一获取模块301包括:第一获取单元3011、第二获取单元3012和第三获取单元3013;其中,第一获取单元3011用于获取***调用处理程序入口;第一获取单元3011与第二获取单元3012连接,第二获取单元3012用于根据该***调用处理程序入口,获取该***调用链表指针,该***调用链表指针指向该***调用链表的首地址;第二获取单元3012与第三获取单元3013连接,第三获取单元3013用于根据该***调用链表指针,获取***调用链表。
可选地,该第一获取单元3012还用于执行SIDT汇编指令,将IDTR寄存器中的中断描述符表的基地址和长度值复制到内存中;根据该中断描述符表的基地址和长度值获取中断描述符表;将该中断描述符表存储到内存中;根据中断描述符表,获取***调用对应的门描述符;根据该门描述符,转到***调用处理程序入口。
可选地,该第二获取单元3013还用于在内存中查找第一个Call汇编指令;执行该Call汇编指令;该Call汇编指令根据该***调用处理程序入口,获取该***调用链表指针。
可选地,本发明实施例还提供了一种入侵检测装置,参见图5,在图3所示装置结构的基础上,该装置还包括:第二获取模块306和第一存储模块307;其中,第一获取模块301与第二获取模块306连接,第二获取模块306用于在初始化阶段,获取初始化阶段的***调用指针指纹数据;第二获取模块306与第一存储模块307连接,第一存储模块307用于将该初始化阶段的***调用指针指纹数据存储在本端。
可选地,本发明实施例还提供了一种入侵检测装置,参见图6,在图5所示装置结构的基础上,该装置还包括:第二存储模块308;其中,第二获取模块306与第二存储模块308连接,第二存储模块308用于将该初始化阶段的***调用指针指纹数据存储到服务器。
可选地,本发明实施例还提供了一种入侵检测装置,参见图7,在图6所示装置结构的基础上,该装置还包括:第二比对模块309和第二确定模块702;其中,第二存储模块308与第二比对模块309连接,第二比对模块309用于将当前获取的该***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;第二比对模块309与第二确定模块310连接,第二确定模块310用于当确定当前获取的该***调用指针指纹数据与该服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,本发明实施例还提供了一种入侵检测装置,参见图8,在图6所示装置结构的基础上,该装置还包括:第三比对模块311和第三确定模块312;其中第二存储模块308与第三比对模块311连接,第三比对模块311用于将该本端预存的***调用指针指纹数据与该服务器预存的***调用指针指纹数据进行比对;第三比对模块311与第三确定模块312连接,第三确定模块312用于当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,本发明实施例还提供了一种入侵检测装置,参见图9,在图3所示装置结构的基础上,该装置还包括:第三获取模块313、第四比对模块314和第四确定模块315;其中第一获取模块301与第三获取模块313连接,第三获取模块313用于获取***调用地址文件,该***调用地址文件用于存储该***调用指针;第三获取模块313与第四比对模块314连接,第四比对模块314用于将该***调用地址文件与该***调用链表进行比对;第四比对模块314与第四确定模块315连接,第四确定模块315用于当确定该***调用地址文件与该***调用链表不一致时,确定本端发生入侵事件。
可选地,本发明实施例还提供了一种入侵检测装置,参见图10,在图3所示装置结构的基础上,该装置还包括:输出警报模块316;其中,第一确定模块305与输出警报模块316连接,输出警报模块316用于根据该入侵事件,输出警报信息。
需要说明的是:上述实施例提供的入侵检测装置在入侵检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的入侵检测装置与入侵检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例提供的装置,通过获取当前***调用指针的指纹数据,并将当前指纹数据和预先存储的***调用指针指纹数据进行比对,以确定是否有入侵事件发生,可以检测到对***内核态的入侵事件,实现了对***全面的保护,提高了***可靠性。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上该仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。