CN101604370B - 一种高兼容性的监控Windows内核函数调用的方法 - Google Patents

一种高兼容性的监控Windows内核函数调用的方法 Download PDF

Info

Publication number
CN101604370B
CN101604370B CN200910157267A CN200910157267A CN101604370B CN 101604370 B CN101604370 B CN 101604370B CN 200910157267 A CN200910157267 A CN 200910157267A CN 200910157267 A CN200910157267 A CN 200910157267A CN 101604370 B CN101604370 B CN 101604370B
Authority
CN
China
Prior art keywords
function
ssdt
monitoring
mapping table
new
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
CN200910157267A
Other languages
English (en)
Other versions
CN101604370A (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.)
INFORMATION TECHNOLOGY SAFETY RESEARCH CENTER PLA
Original Assignee
INFORMATION TECHNOLOGY SAFETY RESEARCH CENTER PLA
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 INFORMATION TECHNOLOGY SAFETY RESEARCH CENTER PLA filed Critical INFORMATION TECHNOLOGY SAFETY RESEARCH CENTER PLA
Priority to CN200910157267A priority Critical patent/CN101604370B/zh
Publication of CN101604370A publication Critical patent/CN101604370A/zh
Application granted granted Critical
Publication of CN101604370B publication Critical patent/CN101604370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明属于计算机安全领域,提出一种新型的监控Windows内核函数调用的方法,通过利用扩展SSDT映射表和修改Windows调用内核函数时的跳转偏移量两种方法的结合,达到监控系统内核函数调用的目的,并实现与其他Windows内核函数监控方法的兼容。

Description

一种高兼容性的监控Windows内核函数调用的方法
所属技术领域
本发明属于计算机安全领域,通过提出一种新型的Windows内核函数调用的监控方法,利用扩展SSDT映射表和修改Windows调用内核函数时的跳转偏移量两种方法的结合,达到监控系统内核函数调用的目的,并实现与其他Windows内核函数监控方法的兼容。
背景技术
近年来随着网络应用的深入发展,网络安全也正面临极大的挑战,特别是近一两年网络上猖獗的特洛伊木马和后门,让人望而色变,成为当前网络安全威胁最大的因素。传统的基于静态特征扫描的安全技术已经远远不能适应恶意代码的爆炸性的变化和增长,因此越来越多的安全软件开始以主动防御作为发展的方向,既有以主动防御技术为主的东方微点主动防御软件,也有加入主动防御功能传统杀毒软件,例如卡巴斯基、瑞星、金山、江民等。
目前主动防御的形式主要都是通过对系统内核不同层次函数的监控,进而通过不同的安全策略和算法来进行行为判断。但是目前各种主动防御软件的内核监控方法往往是严重冲突的,甚至与一些安全检测软件也是相冲突的。在主动防御技术尚未成熟,仍需要与传统的基于特征扫描技术的杀毒软件兼容的局面下,如何能做到内核监控技术的高兼容性就成为主动防御发展道路上必须解决的问题。
当前主流的内核监控技术五花八门,例如修改程序IAT表、修改DLL的EAT表、修改内存中DLL文件的API函数、替换程序和DLL文件、修改IDT表、修改SSDT表、修改IRP函数表等等方式。这些方法主要都是通过修改应用程序调用系统内核函数的执行路径,劫持正常程序及系统函数调用的执行路线,在调用内核函数之前首先执行监控代码,来达到系统内核监控功能。
由于各种方法都是通过修改Windows操作系统公用的内核代码来达到监控的目的,因此各种方式非常容易冲突。修改SSDT表的方法更由于其稳定性和易用性被广泛采用,SSDT的全称是System Services Descriptor Table,系统服务描述符表,一般来说此表与链接系统内核的API密切相关,所有应用层都需要通过访问它来调用系统内核函数,因此很多的主动防御都通过修改这张表来达到监控系统内核函数的目的,但如果有两方以上的软件同时修改它就会造成系统崩溃的恶果。
例如360安全浏览器使用的Sandboxie和“瑞星杀毒软件2008版”的安全防护模块监控了部分相同的系统内核函数调用,Sandboxie监控时使用Inline Hook技术修改了瑞星杀毒软件的监控代码,当瑞星杀毒软件升级、修复软件和卸载时,Sandboxie执行Inline Hook时复制的监控代码会导致系统崩溃蓝屏;还有众所周知的常识,现在的杀毒软件例如卡巴斯基、瑞星、江民等等是不能在同一个主机操作系统中安装,也是由于这样的问题。因此,提出一种新型的高兼容性的系统内核函数监控方法对于主动防御产业的发展也是非常重要的。
发明内容
为了做到系统内核函数调用监控的较好的兼容性,本发明结合Windows系统内核调用的流程提出了一种监控系统内核函数调用的新方法,其具体处理方位为:在系统SSDT映射表后添加扩展的监控函数,然后通过修改Windows调用系统内核函数时的跳转偏移量,使被监控函数调用转向扩展的监控函数,以达到监控Windows内核函数调用的目的。
本方法监控流程如下:
1、新建一张SSDT映射表,复制系统原有SSDT表中所有内容到新映射表中,然后在新的映射表后加入扩展监控函数的首地址和参数量等信息,使用新的SSDT映射表替换系统原有的SSDT表。
2、通过Inline Hook系统KiFastCallEntry函数,加入监控判断代码。
3、在第2步中加入的监控判断代码内判断被调用函数(通过EAX寄存器中数值来确认)是否为被监控函数,是则修改EAX寄存器的值为SSDT映射表中相应监控函数的偏移量,不是则不进行任何修改。
4、在SSDT映射表中的监控函数中提取被监控函数参数中的信息并进行处理。
本方法具有的优点如下:
1、较高的兼容性:通过建立一张SSDT映射表并在该映射表尾部追加监控函数,达到并不修改原表的目的,避免了与其他监控冲突的可能。
2、较好的稳定性、易用性:该方法在修改SSDT表的基础上进行内核函数调用监控,具有较好的稳定性和易用性。
附图说明
图1是高兼容性的监控Windows内核函数调用的方法的原理示意图。
具体实施方式
本发明提出的一种新型的高兼容性的基于Windows平台的监控内核函数调用的方法的监控处理流程如图1所示。
首先新建一张SSDT映射表,复制系统原有SSDT表中所有内容到新映射表中,然后在新的映射表后加入扩展监控函数的首地址和参数量等信息,使用新的SSDT映射表替换系统原有的SSDT表。
然后通过Inline Hook系统KiFastCallEntry函数,在系统中加入监控判断代码,使得任何调用KiFastCallEntry的请求都需要首先执行我们的监控判断代码。在该代码中通过判断被调用函数(通过EAX寄存器中数值来确认)是否为被监控函数,是则修改EAX寄存器的值为SSDT映射表中相应监控函数的偏移量,不是则不进行任何修改。
通过修改后的EAX寄存器的值,使得调用原内核函数之前首先需要调用SSDT映射表中的扩展监控函数。最后在该监控函数中提取被监控函数参数中的信息并进行处理。

Claims (2)

1.一种高兼容性的监控Windows内核函数调用的方法,其特征在于含有以下步骤:
第一步、新建一张SSDT映射表,复制系统原有SSDT表中所有内容到新的SSDT映射表中,然后在所述新的SSDT映射表后加入扩展监控函数的首地址和参数量信息,使用所述新的SSDT映射表替换系统原有的SSDT表;
第二步、通过Inlinc Hook系统KiFastCallEntry函数,加入监控判断代码;
第三步、在第二步中加入的所述监控判断代码内判断被调用函数,通过EAX寄存器中数值来确认是否为被监控函数,是则修改EAX寄存器的值为所述新的SSDT映射表中相应监控函数的偏移量,不是则不进行任何修改;
第四步、在所述新的SSDT映射表中的监控函数中提取所述被监控函数参数中的信息并进行处理;
所述第一步含有以下步骤:
在SSDT映射表后添加所述扩展的监控函数,然后通过修改Windows调用系统内核函数时的跳转偏移量,使被监控函数调用转向扩展的监控函数,以达到监控所述Windows内核函数调用的目的;
所述的扩展SSDT映射表,是通过新建一张SSDT映射表,复制系统原有SSDT表中所有内容到所述新的SSDT映射表中,然后在所述新的SSDT映射表后加入所述扩展的监控函数的首地址和参数量信息,使用所述新的SSDT映射表替换系统原有的SSDT表来实现的;
所述的扩展的监控函数,是通过提取所述被监控函数参数中的信息,处理后跳转到系统原内核函数执行或者返回错误代码来实现的;
所述第三步含有以下步骤:
所述的修改所述Windows内核函数调用时的跳转偏移量,是通过对Inline Hook系统的KiFastCallEntry函数来实现的。
2.如权利要求1所述的方法,其特征在于:所述的使被监控函数调用转向扩展的监控函数,是通过所述Inline Hook系统KiFastCallEntry函数后判断EAX寄存器中数值是否为被监控函数的偏移量,是则修改EAX寄存器的值为相应监控函数的偏移量然后跳转到所述KiFastCallEntry函数代码继续执行,否则直接跳转到所述KiFastCallEntry函数代码执行来实现的。
CN200910157267A 2009-07-06 2009-07-06 一种高兼容性的监控Windows内核函数调用的方法 Active CN101604370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910157267A CN101604370B (zh) 2009-07-06 2009-07-06 一种高兼容性的监控Windows内核函数调用的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910157267A CN101604370B (zh) 2009-07-06 2009-07-06 一种高兼容性的监控Windows内核函数调用的方法

Publications (2)

Publication Number Publication Date
CN101604370A CN101604370A (zh) 2009-12-16
CN101604370B true CN101604370B (zh) 2012-08-29

Family

ID=41470094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910157267A Active CN101604370B (zh) 2009-07-06 2009-07-06 一种高兼容性的监控Windows内核函数调用的方法

Country Status (1)

Country Link
CN (1) CN101604370B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515858A (ja) * 2011-04-29 2014-07-03 北京中天安泰信息科技有限公司 実行中の命令を再結合する方法および装置
CN103677770B (zh) * 2012-09-06 2016-12-21 中天安泰(北京)信息技术有限公司 指令重组方法及装置
CN103440149B (zh) * 2013-08-30 2016-08-17 西北工业大学 无数字签名的Windows X64驱动程序加载方法
CN104915221A (zh) * 2014-03-14 2015-09-16 深圳市鑫龙上通讯科技有限公司 一种用于手机驱动的驱动方法
CN106293963B (zh) * 2016-08-01 2020-02-07 北京金山安全管理系统技术有限公司 一种用于windows系统中应用层和驱动层通讯的方法及系统
CN111913742B (zh) * 2018-07-03 2022-11-11 武汉斗鱼网络科技有限公司 一种程序处理方法及相关设备
CN112527302B (zh) * 2019-09-19 2024-03-01 北京字节跳动网络技术有限公司 错误检测的方法及装置、终端和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731310A (zh) * 2005-08-04 2006-02-08 西安交通大学 Windows环境下的主机入侵检测方法
US20070271614A1 (en) * 2006-05-22 2007-11-22 Alen Capalik Decoy network technology with automatic signature generation for intrusion detection and intrusion prevention systems
CN101414339A (zh) * 2007-10-15 2009-04-22 北京瑞星国际软件有限公司 保护进程内存及确保驱动程序加载的安全性的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731310A (zh) * 2005-08-04 2006-02-08 西安交通大学 Windows环境下的主机入侵检测方法
US20070271614A1 (en) * 2006-05-22 2007-11-22 Alen Capalik Decoy network technology with automatic signature generation for intrusion detection and intrusion prevention systems
CN101414339A (zh) * 2007-10-15 2009-04-22 北京瑞星国际软件有限公司 保护进程内存及确保驱动程序加载的安全性的方法

Also Published As

Publication number Publication date
CN101604370A (zh) 2009-12-16

Similar Documents

Publication Publication Date Title
CN101604370B (zh) 一种高兼容性的监控Windows内核函数调用的方法
CN103679032B (zh) 防御恶意软件的方法和装置
AU2014348812B2 (en) Improved control flow integrity system and method
US8424090B2 (en) Apparatus and method for detecting obfuscated malicious web page
US8011006B2 (en) Access controller and access control method
CN102932329B (zh) 一种对程序的行为进行拦截的方法、装置和客户端设备
AU2006210698B2 (en) Intrusion detection for computer programs
CN102737188A (zh) 检测恶意网页的方法及装置
EP2426618B1 (en) Information device, program, method for preventing execution of unauthorized program code, and computer readable recording medium
CN107908958B (zh) SELinux安全标识符防篡改检测方法及系统
CN113138836B (zh) 一种使用基于Docker容器的防逃逸系统的防逃逸方法
US20140373171A1 (en) Security protection of software libraries in a data processing apparatus
CN102981874B (zh) 计算机处理系统和注册表重定向方法
CN113779578B (zh) 移动端应用的智能混淆方法和系统
CN102156834B (zh) 实现进程防杀的方法
CN114595462A (zh) 一种数据处理的方法和装置
CN101950339B (zh) 一种电脑安全防护方法和系统
CN108154011A (zh) 基于art模式的脱壳方法、系统、设备及可读存储介质
CN105550573B (zh) 拦截捆绑软件的方法和装置
CN101706852A (zh) 网游密码保护装置和方法
US11423153B2 (en) Detection of malicious operating system booting and operating system loading
CN102902908B (zh) 免安装ActiveX插件安全检测装置及方法
CN103019674B (zh) 注册表重定向方法和装置
CN106295327B (zh) 可执行文件的加固方法和装置
CN102819703A (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
DD01 Delivery of document by public notice

Addressee: Information Technology Safety Research Center, PLA Li Jingchun

Document name: Notification that Application Deemed to be Withdrawn

C14 Grant of patent or utility model
GR01 Patent grant