CN103514402B - 入侵检测方法及装置 - Google Patents

入侵检测方法及装置 Download PDF

Info

Publication number
CN103514402B
CN103514402B CN201310462793.4A CN201310462793A CN103514402B CN 103514402 B CN103514402 B CN 103514402B CN 201310462793 A CN201310462793 A CN 201310462793A CN 103514402 B CN103514402 B CN 103514402B
Authority
CN
China
Prior art keywords
system call
print data
finger print
pointer
local terminal
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.)
Active
Application number
CN201310462793.4A
Other languages
English (en)
Other versions
CN103514402A (zh
Inventor
韩方
张涛
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.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network 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 Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN201310462793.4A priority Critical patent/CN103514402B/zh
Publication of CN103514402A publication Critical patent/CN103514402A/zh
Application granted granted Critical
Publication of CN103514402B publication Critical patent/CN103514402B/zh
Active 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Collating Specific Patterns (AREA)

Abstract

本发明公开了一种入侵检测方法及装置,属于计算机安全技术领域。该方法包括:获取***调用链表;从***调用链表中导出***调用指针;对***调用指针用指纹算法进行处理,得到***调用指针指纹数据;将当前获取的***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;当确定当前获取的***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。该装置包括:第一获取模块、导出模块、指纹算法处理模块、第一比对模块和第一确定模块。本发明将当前指纹数据和预存的***调用指针指纹数据进行比对,以确定是否有入侵事件发生,可以检测到对***内核态的入侵事件,实现了对***全面的保护,提高了***可靠性。

Description

入侵检测方法及装置
技术领域
本发明涉及计算机安全技术领域,特别涉及一种入侵检测方法及装置。
背景技术
随着Linux***越来越多的被用于企业服务器,如何提高Linux***的安全性成为一个值得重视的问题。
为了给Linux***提供实时防护,一般采用主机入侵检测技术,通过收集和分析***日志以及用户态的配置文件、库文件和***指令等信息,检测***中是否有入侵事件发生。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
Linux***将自身划分为用户态和内核态两部分。目前基于Linux***的主机入侵检测技术中收集和分析的信息均属于用户态的信息,无法对Linux***内核进行检测,因此无法检测到对Linux***内核态的入侵事件。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种入侵检测方法及装置。该技术方案如下:
一方面,提供了一种入侵检测方法,该方法包括:
获取***调用链表;
从该***调用链表中导出***调用指针;
对该***调用指针用指纹算法进行处理,得到***调用指针指纹数据;
将当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;
当确定当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件;
该获取***调用链表包括:
获取***调用处理程序入口;
根据该***调用处理程序入口,获取该***调用链表指针,该***调用链表指针指向该***调用链表的首地址;
根据该***调用链表指针,获取***调用链表;
该获取***调用处理程序入口包括:
执行SIDT汇编指令,将IDTR寄存器中的中断描述符表的基地址和长度值复制到内存中;
根据该中断描述符表的基地址和长度值获取中断描述符表;
将该中断描述符表存储到内存中;
根据中断描述符表,获取***调用对应的门描述符;
根据该门描述符,转到***调用处理程序入口。
可选地,该根据该***调用处理程序入口,获取该***调用链表指针包括:
在内存中查找第一个Call汇编指令;
执行该Call汇编指令;
该Call汇编指令根据该***调用处理程序入口,获取该***调用链表指针。
可选地,获取***调用链表之前,该方法还包括:
在初始化阶段,获取初始化阶段的***调用指针指纹数据;
将该初始化阶段的***调用指针指纹数据存储在本端。
可选地,在初始化阶段,获取初始化阶段的***调用指针指纹数据之后,该方法还包括:
将该初始化阶段的***调用指针指纹数据存储到服务器。
可选地,将该初始化阶段的***调用指针指纹数据存储到服务器之后,该方法还包括:
将当前获取的该***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;
当确定当前获取的该***调用指针指纹数据与该服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,将该初始化阶段的***调用指针指纹数据存储到服务器之后,该方法还包括:
将该本端预存的***调用指针指纹数据与该服务器预存的***调用指针指纹数据进行比对;
当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,获取***调用链表之后,该方法还包括:
获取***调用地址文件,该***调用地址文件用于存储该***调用指针;
将该***调用地址文件与该***调用链表进行比对;
当确定该***调用地址文件与该***调用链表不一致时,确定本端发生入侵事件。
可选地,确定本端发生入侵事件之后,该方法还包括:
根据该入侵事件,输出警报信息。
另一方面,提供了一种入侵检测装置,该装置包括:
第一获取模块,用于获取***调用链表;
导出模块,用于从该***调用链表中导出***调用指针;
指纹算法处理模块,用于对该***调用指针用指纹算法进行处理,得到***调用指针指纹数据;
第一比对模块,用于将当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;
第一确定模块,用于当确定当前获取的该***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件;
该第一获取模块包括:
第一获取单元,用于获取***调用处理程序入口;
第二获取单元,用于根据该***调用处理程序入口,获取该***调用链表指针,该***调用链表指针指向该***调用链表的首地址;
第三获取单元,用于根据该***调用链表指针,获取***调用链表;
该第一获取单元还用于执行SIDT汇编指令,将IDTR寄存器中的中断描述符表的基地址和长度值复制到内存中;根据该中断描述符表的基地址和长度值获取中断描述符表;将该中断描述符表存储到内存中;根据中断描述符表,获取***调用对应的门描述符;根据该门描述符,转到***调用处理程序入口。
可选地,该第二获取单元还用于在内存中查找第一个Call汇编指令;执行该Call汇编指令;该Call汇编指令根据该***调用处理程序入口,获取该***调用链表指针。
可选地,该装置还包括:
第二获取模块,用于在初始化阶段,获取初始化阶段的***调用指针指纹数据;
第一存储模块,用于将该初始化阶段的***调用指针指纹数据存储在本端。
可选地,该装置还包括:
第二存储模块,用于将该初始化阶段的***调用指针指纹数据存储到服务器。
可选地,该装置还包括:
第二比对模块,用于将当前获取的该***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;
第二确定模块,用于当确定当前获取的该***调用指针指纹数据与该服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,该装置还包括:
第三比对模块,用于将该本端预存的***调用指针指纹数据与该服务器预存的***调用指针指纹数据进行比对;
第三确定模块,用于当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
可选地,该装置还包括:
第三获取模块,用于获取***调用地址文件,该***调用地址文件用于存储该***调用指针;
第四比对模块,用于将该***调用地址文件与该***调用链表进行比对;
第四确定模块,用于当确定该***调用地址文件与该***调用链表不一致时,确定本端发生入侵事件。
可选地,该装置还包括:
输出警报模块,用于根据该入侵事件,输出警报信息。
本发明实施例提供的技术方案带来的有益效果是:
通过获取当前***调用指针的指纹数据,并将当前指纹数据和预先存储的***调用指针指纹数据进行比对,以确定是否有入侵事件发生,可以检测到对***内核态的入侵事件,实现了对***全面的保护,提高了***可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种入侵检测方法的流程图;
图2是本发明实施例提供的一种入侵检测方法的流程图;
图3是本发明实施例提供的一种入侵检测装置结构示意图;
图4是本发明实施例提供的一种入侵检测装置结构示意图;
图5是本发明实施例提供的一种入侵检测装置结构示意图;
图6是本发明实施例提供的一种入侵检测装置结构示意图;
图7是本发明实施例提供的一种入侵检测装置结构示意图;
图8是本发明实施例提供的一种入侵检测装置结构示意图;
图9是本发明实施例提供的一种入侵检测装置结构示意图;
图10是本发明实施例提供的一种入侵检测装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图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用于根据该入侵事件,输出警报信息。
需要说明的是:上述实施例提供的入侵检测装置在入侵检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的入侵检测装置与入侵检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例提供的装置,通过获取当前***调用指针的指纹数据,并将当前指纹数据和预先存储的***调用指针指纹数据进行比对,以确定是否有入侵事件发生,可以检测到对***内核态的入侵事件,实现了对***全面的保护,提高了***可靠性。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上该仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种入侵检测方法,其特征在于,所述方法包括:
获取***调用链表;
从所述***调用链表中导出***调用指针;
对所述***调用指针用指纹算法进行处理,得到***调用指针指纹数据;
将当前获取的所述***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;
当确定当前获取的所述***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件;
所述获取***调用链表包括:
获取***调用处理程序入口;
根据所述***调用处理程序入口,获取所述***调用链表指针,所述***调用链表指针指向所述***调用链表的首地址;
根据所述***调用链表指针,获取***调用链表;
所述获取***调用处理程序入口包括:
执行SIDT汇编指令,将IDTR寄存器中的中断描述符表的基地址和长度值复制到内存中;
根据所述中断描述符表的基地址和长度值获取中断描述符表;
将所述中断描述符表存储到内存中;
根据中断描述符表,获取***调用对应的门描述符;
根据所述门描述符,转到***调用处理程序入口。
2.根据权利要求1所述的方法,其特征在于,所述根据所述***调用处理程序入口,获取所述***调用链表指针包括:
在内存中查找第一个Call汇编指令;
执行所述Call汇编指令;
所述Call汇编指令根据所述***调用处理程序入口,获取所述***调用链表指针。
3.根据权利要求1所述的方法,其特征在于,获取***调用链表之前,所述方法还包括:
在初始化阶段,获取初始化阶段的***调用指针指纹数据;
将所述初始化阶段的***调用指针指纹数据存储在本端。
4.根据权利要求3所述的方法,其特征在于,在初始化阶段,获取初始化阶段的***调用指针指纹数据之后,所述方法还包括:
将所述初始化阶段的***调用指针指纹数据存储到服务器。
5.根据权利要求4所述的方法,其特征在于,将所述初始化阶段的***调用指针指纹数据存储到服务器之后,所述方法还包括:
将当前获取的所述***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;
当确定当前获取的所述***调用指针指纹数据与所述服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
6.根据权利要求4所述的方法,其特征在于,将所述初始化阶段的***调用指针指纹数据存储到服务器之后,所述方法还包括:
将所述本端预存的***调用指针指纹数据与所述服务器预存的***调用指针指纹数据进行比对;
当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
7.根据权利要求1所述的方法,其特征在于,获取***调用链表之后,所述方法还包括:
获取***调用地址文件,所述***调用地址文件用于存储所述***调用指针;
将所述***调用地址文件与所述***调用链表进行比对;
当确定所述***调用地址文件与所述***调用链表不一致时,确定本端发生入侵事件。
8.根据权利要求1所述的方法,其特征在于,确定本端发生入侵事件之后,所述方法还包括:
根据所述入侵事件,输出警报信息。
9.一种入侵检测装置,其特征在于,所述装置包括:
第一获取模块,用于获取***调用链表;
导出模块,用于从所述***调用链表中导出***调用指针;
指纹算法处理模块,用于对所述***调用指针用指纹算法进行处理,得到***调用指针指纹数据;
第一比对模块,用于将当前获取的所述***调用指针指纹数据与本端预存的***调用指针指纹数据进行比对;
第一确定模块,用于当确定当前获取的所述***调用指针指纹数据与本端预存的***调用指针指纹数据不一致时,确定本端发生入侵事件;
所述第一获取模块包括:
第一获取单元,用于获取***调用处理程序入口;
第二获取单元,用于根据所述***调用处理程序入口,获取所述***调用链表指针,所述***调用链表指针指向所述***调用链表的首地址;
第三获取单元,用于根据所述***调用链表指针,获取***调用链表;
所述第一获取单元还用于执行SIDT汇编指令,将IDTR寄存器中的中断描述符表的基地址和长度值复制到内存中;根据所述中断描述符表的基地址和长度值获取中断描述符表;将所述中断描述符表存储到内存中;根据中断描述符表,获取***调用对应的门描述符;根据所述门描述符,转到***调用处理程序入口。
10.根据权利要求9所述的装置,其特征在于,所述第二获取单元还用于在内存中查找第一个Call汇编指令;执行所述Call汇编指令;所述Call汇编指令根据所述***调用处理程序入口,获取所述***调用链表指针。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于在初始化阶段,获取初始化阶段的***调用指针指纹数据;
第一存储模块,用于将所述初始化阶段的***调用指针指纹数据存储在本端。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二存储模块,用于将所述初始化阶段的***调用指针指纹数据存储到服务器。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二比对模块,用于将当前获取的所述***调用指针指纹数据与服务器预存的***调用指针指纹数据进行比对;
第二确定模块,用于当确定当前获取的所述***调用指针指纹数据与所述服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第三比对模块,用于将所述本端预存的***调用指针指纹数据与所述服务器预存的***调用指针指纹数据进行比对;
第三确定模块,用于当确定本端预存的***调用指针指纹数据与服务器预存的***调用指针指纹数据不一致时,确定本端发生入侵事件。
15.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取***调用地址文件,所述***调用地址文件用于存储所述***调用指针;
第四比对模块,用于将所述***调用地址文件与所述***调用链表进行比对;
第四确定模块,用于当确定所述***调用地址文件与所述***调用链表不一致时,确定本端发生入侵事件。
16.根据权利要求9所述的装置,其特征在于,所述装置还包括:
输出警报模块,用于根据所述入侵事件,输出警报信息。
CN201310462793.4A 2013-09-30 2013-09-30 入侵检测方法及装置 Active CN103514402B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310462793.4A CN103514402B (zh) 2013-09-30 2013-09-30 入侵检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310462793.4A CN103514402B (zh) 2013-09-30 2013-09-30 入侵检测方法及装置

Publications (2)

Publication Number Publication Date
CN103514402A CN103514402A (zh) 2014-01-15
CN103514402B true CN103514402B (zh) 2017-01-11

Family

ID=49897108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310462793.4A Active CN103514402B (zh) 2013-09-30 2013-09-30 入侵检测方法及装置

Country Status (1)

Country Link
CN (1) CN103514402B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008337B (zh) * 2014-05-07 2019-08-23 广州华多网络科技有限公司 一种基于Linux***的主动防御方法及装置
CN106888106A (zh) * 2015-12-16 2017-06-23 国家电网公司 智能电网中的it资产大规模侦测***
CN105700995A (zh) * 2016-01-19 2016-06-22 浪潮电子信息产业股份有限公司 一种检测服务器入侵开关Intruder有效性的方法
CN107016283B (zh) * 2017-02-15 2019-09-10 中国科学院信息工程研究所 基于完整性验证的Android权限提升攻击安全防御方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271498A (zh) * 2008-03-25 2008-09-24 浙江大学 在linux操作***通过威胁链表和安全链表实现可信计算的方法
CN101901313A (zh) * 2010-06-10 2010-12-01 中科方德软件有限公司 一种Linux文件保护***及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100544674B1 (ko) * 2003-11-11 2006-01-23 한국전자통신연구원 커널 기반의 침입탐지시스템에서의 침입탐지규칙 동적변경 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271498A (zh) * 2008-03-25 2008-09-24 浙江大学 在linux操作***通过威胁链表和安全链表实现可信计算的方法
CN101901313A (zh) * 2010-06-10 2010-12-01 中科方德软件有限公司 一种Linux文件保护***及方法

Also Published As

Publication number Publication date
CN103514402A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
US10055582B1 (en) Automated detection and remediation of ransomware attacks involving a storage device of a computer network
US7835390B2 (en) Network traffic identification by waveform analysis
US8572016B2 (en) Match engine for detection of multi-pattern rules
US20180285596A1 (en) System and method for managing sensitive data
CN106682505A (zh) 一种病毒检测方法、终端、服务器及***
CN104598815B (zh) 恶意广告程序的识别方法、装置及客户端
US20160188723A1 (en) Cloud website recommendation method and system based on terminal access statistics, and related device
US9690598B2 (en) Remotely establishing device platform integrity
CN103514402B (zh) 入侵检测方法及装置
CN107302586B (zh) 一种Webshell检测方法以及装置、计算机装置、可读存储介质
CN111898124B (zh) 进程访问控制方法和装置、存储介质及电子设备
EP3455773A1 (en) Inferential exploit attempt detection
US9910994B1 (en) System for assuring security of sensitive data on a host
CN107770125A (zh) 一种网络安全应急响应方法及应急响应平台
US11151087B2 (en) Tracking file movement in a network environment
US11907379B2 (en) Creating a secure searchable path by hashing each component of the path
US11385996B1 (en) Monitoring execution of software using online path signatures
CN110099044A (zh) 云主机安全检测***及方法
CN111191243A (zh) 一种漏洞检测方法、装置和存储介质
US11533323B2 (en) Computer security system for ingesting and analyzing network traffic
CN101540704B (zh) 不可信dbms恶意入侵检测***及方法
Lai et al. GAN‐Based Information Leakage Attack Detection in Federated Learning
CN110443039A (zh) 插件安全性的检测方法、装置以及电子设备
CN112600828B (zh) 基于数据报文的电力控制***攻击检测防护方法及装置
CN101902338A (zh) 一种采用统一检测框架的入侵检测***和入侵检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140115

Assignee: All kinds of fruits garden, Guangzhou network technology company limited

Assignor: Guangzhou Huaduo Network Technology Co., Ltd.

Contract record no.: 2015990000266

Denomination of invention: Detection method and device for oil well intrusion based on video image intelligent analysis

License type: Common License

Record date: 20150511

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
GR01 Patent grant
GR01 Patent grant
C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: 511446 Guangzhou City, Guangdong Province, Panyu District, South Village, Huambo Business District Wanda Plaza, block B1, floor 28

Patentee after: Guangzhou Huaduo Network Technology Co., Ltd.

Address before: 510655, Guangzhou, Whampoa Avenue, No. 2, creative industrial park, building 3-08,

Patentee before: Guangzhou Huaduo Network Technology Co., Ltd.