CN1581768A - 一种入侵检测方法 - Google Patents

一种入侵检测方法 Download PDF

Info

Publication number
CN1581768A
CN1581768A CN 03149743 CN03149743A CN1581768A CN 1581768 A CN1581768 A CN 1581768A CN 03149743 CN03149743 CN 03149743 CN 03149743 A CN03149743 A CN 03149743A CN 1581768 A CN1581768 A CN 1581768A
Authority
CN
China
Prior art keywords
packet
protocol stack
detection system
data packet
intruding detection
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.)
Pending
Application number
CN 03149743
Other languages
English (en)
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.)
Lenovo Wangyu Technology Beijing Co Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN 03149743 priority Critical patent/CN1581768A/zh
Publication of CN1581768A publication Critical patent/CN1581768A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种入侵检测方法,外部网络传送来的数据包经由网卡驱动上传给内核层的协议栈之后,再送至应用层;其中,本方法预先在网卡驱动将数据包向协议栈上传时所调用的数据包处理函数中设置指向入侵检测***的钩子代码;在网卡驱动向协议栈上传接收到的数据包时,先由嵌于***内核层中的入侵检测***对当前上传的数据包进行入侵检测,判断当前检测到的数据包是否为入侵数据包,如果是,则根据预先的设定丢弃该数据包或上传到上层协议栈;否则,将经过检测的数据包上传给协议栈。应用本发明,使入侵检测减少对CPU的开销,不需要进行频繁的上下文切换和数据拷贝的抓包过程。

Description

一种入侵检测方法
技术领域
本发明涉及计算机网络安全技术领域,特别是指一种入侵检测方法。
背景技术
目前,计算机网络安全技术领域中所使用的入侵检测***大都是在计算机***的应用层实现的,入侵检测***作为一个程序运行于应用层。当进行入侵检测时,入侵检测***使用内设的抓包软件包,通过旁路监听复制数据包的方法,将外部网络传送给网卡并通网卡驱动传向协议栈的数据包进行复制获取,而后入侵检测***再对获取的数据包按照预定的检测规则进行检测。如,将该数据包遍历预先编写好的检测规则集,若与某规则匹配,就说明是入侵,检测到入侵数据包后,并根据所设置的响应策略进行响应,如做日志或进行报警等。
由于入侵检测***运行于用户层之上,因此在检测数据包时,必须利用抓包软件包从***内核层获取该数据包。每次抓包,入侵检测***都需要抓包软件包进入***内核层,复制获取网卡驱动传向协议栈的数据包,而后返回应用层,由入侵检测***对获取的数据包进行检测。这种在***内核层和应用层频繁的上下文切换和数据拷贝增加了CPU的大量开销,影响了入侵检测***的性能。从另一方面考虑,入侵检测***作为一个应用程序运行,本身也有被攻击的可能,因此,用于防范入侵的入侵检测***本身也不太安全。
发明内容
有鉴于此,本发明提供一种入侵检测方法,将入侵检测***嵌于***内核中,使入侵检测减少对CPU的开销,不需要进行频繁的上下文切换和数据拷贝的抓包过程。
本发明为一种入侵检测方法,外部网络传送来的数据包经由网卡驱动上传给内核层的协议栈之后,再送至应用层;入侵检测***对外部网络传送的数据包进行检测,其特征在于,该方法包括:网卡驱动向协议栈上传接收到的数据包时,先由嵌于***内核层中的入侵检测***对当前上传的数据包进行入侵检测,然后再将经过检测的数据包发送给协议栈。
其中,该方法进一步包括:入侵检测***根据预先设定的检测规则,判断当前检测到的数据包是否为入侵数据包,如果是,则直接丢弃该数据包并退出当前入侵检测流程;否则,将经过检测的数据包上传给协议栈。
其中,该方法进一步包括:预先在网卡驱动将数据包向协议栈上传时所调用的数据包处理函数中设置钩子代码。
其中,该方法进一步包括:网卡驱动上传数据包时,执行自身所调用数据包处理函数中的钩子代码,通过钩子代码中设置的指向入侵检测***的指针函数进入入侵检测***,对当前上传的数据包进行检测。
由上述方法可以看出,本发明入侵检测***嵌入于***内核中,不依赖于抓包软件包来获取数据包,因此不需要拷贝数据包到应用层,也不需要频繁的上下文切换,因而减少了CPU开销,节省了访存带宽,提高了检测效率和性能。另一方面,入侵检测***嵌入于***内核中,而不是分离于***内核层之外,因而比运行在应用层更安全。另外,由于每一个进入到协议栈的数据包必须首先经过入侵检测***的审查,只有不构成入侵的数据包才能传送到协议栈,如果数据包经入侵检测***检测后认为构成入侵,就会在数据包传送到协议栈之前丢弃该数据包,因而协议栈之上的应用程序不会受到任何影响,做到了完全的入侵预防,尤为适用于对Web服务器的保护。
附图说明
图1为入侵检测***与***内核结合的示意图。
具体实施方式
图1为入侵检测***与***内核结合的示意图。如图1,本发明将入侵检测***嵌入于***内核,例如,对于Linux***,入侵检测***可以使用Linux的可装载内核模块(LKM)实现,用Linux提供的二进制应用工具insmod将入侵检测嵌入于***内核中。同时,入侵检测***还要挂接到数据链路层与网络层之间,即网卡驱动程序和协议栈之间。这样在网卡驱动将数据包上传时,数据包会首先传送到入侵检测***,经过检测后再向协议栈传送。另外,入侵检测***还包括管理模块,用于控制入侵检测及其相关功能的实现并完成相关的数据配置,由于管理模块功能不是对数据包进行检测,其实现方法可以在应用层实现。
入侵检测***挂接到网卡驱动程序和协议栈之间的实现方法,是在网卡驱动提交数据包并准备上传到协议栈时,在其所调用的数据包处理函数如net_bh函数,***一个钩子(hook),将入侵检测***挂接在该钩子上,利用钩子引导***执行钩子所指定的函数,执行完该功能函数后再继续执行***原有操作。本例中,该段钩子代码包含一个指针函数,该指针函数指向入侵检测***,传向协议栈的数据包便会根据钩子代码中的该指针首先由入侵检测***进行检测。
以下以受护主机接收外部网络数据包,上传到协议栈的过程为例,参照图1所示,对本发明入侵检测实现方法进一步详细说明。
步骤1,网卡接收由外部网络传送来的数据包,并将接收到的数据包通过网卡驱动程序向上提交,调用net_bh函数,准备将数据包上传到协议栈。
步骤2,执行net_bh函数时,触发该net_bh函数中的钩子。由于该钩子代码添加在net_bh函数中,因此在每次数据包上传到协议栈的过程中,这段钩子必定被触发执行。
首先,根据钩子代码中指向入侵检测***的指针函数的值判断是否已经启用入侵检测***,若该指针函数值表示否,则退出本流程,继续执行钩子代码之后的原net_bh函数代码,将数据包上传到协议栈;若指针函数值表示已经启用了入侵检测***,则数据包由入侵检测***按照检测规则进行检测,检测过程与现有技术相同。以上可以看出,任何数据包通过网卡上传到协议栈的过程中,该数据包必先经过入侵检测过程。
步骤3,若通过入侵检测***的管理模块启动了入侵预防功能,入侵检测***可在检测到可疑数据包后,将该数据包进行丢弃,不再上传。
这里所述的入侵预防是指:在入侵检测***中,可以通过其管理模块,设定是否对入侵数据包进行预防,根据其设定的结果值,入侵检测***在检测数据包后,根据其检测结果向钩子代码返回一个值,该返回值指示下一步对数据包的处理。举例如下:
若对入侵数据包不进行预防,即仅对数据包进行入侵检测,则在入侵检测***检测完该数据包后,返回执行码0,net_bh函数***的钩子代码接收到0后,继续执行位于钩子代码之后的原net_bh函数代码,将数据包继续上传到协议栈。
若对入侵数据包进行预防,则在入侵检测***检测到可疑数据包后,直接将该数据包丢弃,并向钩子代码返回退出码-1。net_bh函数中***的钩子代码接收到-1,就直接退出并结束对该数据包的处理流程,中止该数据包的上传过程。因此,可疑数据包在数据链路层会被拦截丢弃,不会上传到协议栈,保证了被保护设备的安全。若检测后认为数据包为合法,则返回执行码0,将数据包继续上传到协议栈。
步骤4,入侵检测***完成对数据包的处理后,入侵检测***进行结果记录,并按照预先设定的响应策略进行响应。
结果记录包括做日志或将检测结果发送到数据库进行记录,日志可以通过调用实现syslog功能的内核函数实现,也可以用printk指令实现。
这里,响应策略是指预先设定检测到可疑数据包时所要执行的动作,如响应策略为检测到可疑数据包时进行报警,则入侵检测***检测到可疑数据包时,将该事件通过报警的方式发送给控制台,这可以通过unix domainsocket发送给本机的报警代理,然后本机的报警代理再把报警发送到控制台的方式实现。
本发明在Linux实现的方法举例如下:以对Linux内核打补丁的方式,在***内核中网卡驱动把数据包提交给协议栈的地方设置一个钩子代码(hook),即把钩子代码添加到net bh函数中,并重新编译内核。然后使用insmod命令把入侵检测******到内核,通过钩子代码的指针函数把入侵检测***挂接到这个钩子上。然后,使用入侵检测***管理模块把入侵检测的规则文件导入到***内核中。之后,启动入侵检测***,并使用入侵检测***管理模块使钩子生效,便可进行入侵检测了。若需要升级更新入侵检测***的入侵检测规则文件,则先把钩子失效,然后重新导入新的规则再使钩子重新生效。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1、一种入侵检测方法,外部网络传送来的数据包经由网卡驱动上传给内核层的协议栈之后,再送至应用层,其特征在于,该方法包括:网卡驱动向协议栈上传接收到的数据包时,首先由嵌于***内核层中的入侵检测***对当前上传的数据包进行入侵检测,然后再将经过检测的数据包发送给协议栈。
2、根据权利要求1所述的方法,其特征在于,该方法进一步包括:入侵检测***根据预先设定的检测规则,判断当前检测到的数据包是否为入侵数据包,如果是,则直接丢弃该数据包并退出当前入侵检测流程;否则,将经过检测的数据包上传给协议栈。
3、根据权利要求1所述的方法,其特征在于,该方法进一步包括:预先在网卡驱动将数据包向协议栈上传时所调用的数据包处理函数中设置钩子代码。
4、根据权利要求3所述的方法,其特征在于,该方法进一步包括:网卡驱动上传数据包时,执行自身所调用数据包处理函数中的钩子代码,通过钩子代码中设置的指向入侵检测***的指针函数进入入侵检测***,对当前上传的数据包进行检测。
CN 03149743 2003-08-04 2003-08-04 一种入侵检测方法 Pending CN1581768A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 03149743 CN1581768A (zh) 2003-08-04 2003-08-04 一种入侵检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 03149743 CN1581768A (zh) 2003-08-04 2003-08-04 一种入侵检测方法

Publications (1)

Publication Number Publication Date
CN1581768A true CN1581768A (zh) 2005-02-16

Family

ID=34579651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 03149743 Pending CN1581768A (zh) 2003-08-04 2003-08-04 一种入侵检测方法

Country Status (1)

Country Link
CN (1) CN1581768A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282244B (zh) * 2008-05-09 2010-12-01 浙江大学 基于spm的入侵检测方法
CN101335752B (zh) * 2008-06-03 2011-07-27 电子科技大学 一种基于频繁片段规则的网络入侵检测方法
CN101442518B (zh) * 2007-11-22 2011-12-28 北京启明星辰信息技术股份有限公司 一种用于异常检测的协议解析方法及***
CN102968578A (zh) * 2012-10-30 2013-03-13 山东中创软件商用中间件股份有限公司 一种防注入方法及***
CN101060411B (zh) * 2007-05-23 2013-04-03 西安交大捷普网络科技有限公司 可提高入侵检测***检测速率和效率的多模匹配方法
CN105119912A (zh) * 2015-08-06 2015-12-02 上海斐讯数据通信技术有限公司 一种端口防扫描方法、***、及一种电子装置
CN109672681A (zh) * 2018-12-25 2019-04-23 上海点融信息科技有限责任公司 入侵检测方法及入侵检测装置
CN114900347A (zh) * 2022-04-28 2022-08-12 重庆长安汽车股份有限公司 一种基于以太网的入侵检测方法及数据包分发方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060411B (zh) * 2007-05-23 2013-04-03 西安交大捷普网络科技有限公司 可提高入侵检测***检测速率和效率的多模匹配方法
CN101442518B (zh) * 2007-11-22 2011-12-28 北京启明星辰信息技术股份有限公司 一种用于异常检测的协议解析方法及***
CN101282244B (zh) * 2008-05-09 2010-12-01 浙江大学 基于spm的入侵检测方法
CN101335752B (zh) * 2008-06-03 2011-07-27 电子科技大学 一种基于频繁片段规则的网络入侵检测方法
CN102968578A (zh) * 2012-10-30 2013-03-13 山东中创软件商用中间件股份有限公司 一种防注入方法及***
CN105119912A (zh) * 2015-08-06 2015-12-02 上海斐讯数据通信技术有限公司 一种端口防扫描方法、***、及一种电子装置
CN109672681A (zh) * 2018-12-25 2019-04-23 上海点融信息科技有限责任公司 入侵检测方法及入侵检测装置
CN114900347A (zh) * 2022-04-28 2022-08-12 重庆长安汽车股份有限公司 一种基于以太网的入侵检测方法及数据包分发方法

Similar Documents

Publication Publication Date Title
CN108848067B (zh) 智能学习并预置只读白名单规则的opc协议安全防护方法
US7752662B2 (en) Method and apparatus for high-speed detection and blocking of zero day worm attacks
EP1654608B1 (en) Method and system for detecting unauthorised use of a communication network
US7334264B2 (en) Computer virus generation detection apparatus and method
KR20040101490A (ko) 기업 네트워크에서의 악의적 코드 검출 및 무효화
US20060288414A1 (en) Method and system for preventing virus infection
DE10249888A1 (de) Knoten, Verfahren und computerlesbares Medium zum Einbringen eines Einbruchspräventionssystems in einen Netzstapel
CN103034807A (zh) 恶意程序检测方法和装置
CN101977188A (zh) 恶意程序检测***
CN1581768A (zh) 一种入侵检测方法
CN111212035A (zh) 一种主机失陷确认及自动修复方法及基于此的***
CN115840938A (zh) 一种文件监控的方法及装置
CN101587521A (zh) 获取远程计算机信息的方法及装置
CN1175351C (zh) Solaris进程自动保护***
JP2006268687A (ja) コンピュータウィルス監視プログラム及びこれを用いたコンピュータ端末装置
CN117040931A (zh) 低误报率的网络攻击检测方法、***及相关设备
CN115086081B (zh) 一种蜜罐防逃逸方法及***
WO2019240054A1 (ja) 通信装置、パケット処理方法及びプログラム
CN1574729A (zh) 入侵检测方法和***
CN112887303B (zh) 一种串入式威胁接入管控***及方法
KR100503772B1 (ko) 유틸리티 방식으로 데이터베이스 서버에 접속하여 수행되는작업을 감시하는 모니터링 시스템 및 방법
CN114707144A (zh) 虚拟机逃逸行为检测方法及装置
KR102182397B1 (ko) 웹 서비스 보호 및 자동 복구 방법 및 그 시스템
Carbone et al. A mechanism for automatic digital evidence collection on high-interaction honeypots
Kim et al. Design and implementation of the honeypot system with focusing on the session redirection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: LEGEND WANGYU TECHNOLOGY (BEIJING) LTD.

Free format text: FORMER OWNER: LIANXIANG (BEIJING) CO. LTD.

Effective date: 20050311

C10 Entry into substantive examination
C41 Transfer of patent application or patent right or utility model
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20050311

Address after: 100086 Beijing City, Haidian District Zhongguancun South Street No. 6 in the information building 801810 room

Applicant after: Lenovo Leadsec (Beijing) Co., Ltd

Address before: 100086 Beijing City, Haidian District Zhongguancun South Street No. 6 in the information building 801810 room

Applicant before: Lenovo (Beijing) Co., Ltd.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication