[发明专利]一种Windows操作系统下钩子的检测方法无效
申请号: | 200910088251.9 | 申请日: | 2009-07-14 |
公开(公告)号: | CN101620658A | 公开(公告)日: | 2010-01-06 |
发明(设计)人: | 陈向群;白光冬;赵霞;郭耀 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F21/22 | 分类号: | G06F21/22 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) | 代理人: | 冯艺东 |
地址: | 100871北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 windows 操作系统 钩子 检测 方法 | ||
技术领域
本发明涉及恶意软件,具体涉及一种Windows操作系统下钩子的检测方法,属于信息安全技术领域。
背景技术
Windows操作系统是目前使用最为广泛的计算机操作系统,根据调查,世界上有超过90%的个人计算机以及大约66%的服务器使用的是Windows操作系统,由于Windows的广泛使用,使得它成为了遭受黑客和病毒攻击最严重的操作系统,也使得它的安全问题成为用户及计算机安全研究人员关注的焦点。最新的Windows操作系统为Windows Vista,该操作系统由微软公司于2006年11月发布,在之后的一年多时间里,微软公司致力于Vista系统的推广,Vista系统的使用人数正在并将持续增长。但是,尽管微软公司对包括Vista在内的众多操作系统的安全进行改进,但这些操作系统仍然存在着较大的安全隐患。目前我国计算机用户基本上使用的是Windows操作系统,以XP系统最为普遍,Vista系统在我国的使用量也将会大幅度增加,所以更应对其安全问题足够重视。
目前对计算机上的病毒、木马等恶意软件的检测方法大致分为三种:基于恶意软件特征的检测、基于恶意软件行为的检测以及基于恶意软件实现技术的检测。前两种方法是目前杀毒软件广泛采取的方法,但是由于计算机恶意软件的种类繁多,行为各异,这两种方法难以检测出所有的恶意软件;而且这两种方法都只能对已经出现并掌握其特征的恶意软件进行检测,难以在未知恶意软件进入系统的初期进行检测。所以针对恶意软件实现技术的检测逐渐发展起来。
恶意软件最常见的实现技术是钩子技术,通过使用钩子技术,恶意软件可以改变操作系统正常的执行路径,从而破坏系统或者窃取用户信息。在不久前出现的恶意软件rootkit(一种恶意软件使用的具有“隐形”能力的工具包、库或者程序代码,用来隐藏或伪装恶意软件使用的文件、目录和进程)中,更是大量地使用了钩子技术,达到隐藏恶意软件和攻击者踪迹的效果。
根据运行环境的不同,钩子可以分为内核级钩子和用户级钩子,在Windows操作系统中,主要包含以下种类的钩子。
1.内核级钩子
当用户进程调用API进入Windows内核后,通过系统服务描述符表(System ServiceDescriptor Table,SSDT),中断描述符表(Interrupt Descriptor Table,IDT)等跳转表进一步调用不同的内核系统服务函数,所以恶意程序通过修改内核中的这些跳转表来设置不同种类的内核钩子。在Windows内核中,恶意软件使用的钩子主要有:
●IDT钩子
IDT中包含了异常和中断处理函数的入口地址,恶意软件修改IDT,把系统的处理程序替换为其提供的非法程序。
●SSDT钩子
SSDT记录着所有内核系统服务函数的入口地址,恶意软件通过修改SSDT表项而改变内核系统服务函数的处理过程。
●IRP函数表钩子
IRP函数是驱动程序用来处理用户各种请求的,例如读、写、查询等。IRP函数表里记录这IRP函数的入口地址,攻击者也可以替换IRP函数表的一些表项达到恶意目的。
2.用户级钩子
在Windows系统中,大多数进程都依赖于三个子系统:Win32、POSIX和OS/2子系统,这些子系统由一些文件组成,它们以地址表的形式提供了一组应用程序编程接口(API),用户进程可以通过地址表中的函数入口地址调用API请求操作系统的服务,所以这些地址表所在的文件是恶意软件攻击的极佳目标。根据地址表的不同,恶意软件使用的钩子可以分为导入地址表钩子、导出地址表钩子、内联函数钩子、系统可执行文件及DLL钩子等,恶意软件一般在用户态下替换或修改包含这些地址表的文件来设置这些钩子。
目前针对内核级和用户级钩子的检测方法,使用执行指令数分析的技术,这种方法认为如果在跳转表上设置了钩子,那么在执行某些常规的系统函数和库函数时,将会执行额外的指令。于是这种方法通过比较待检测系统和正常系统在运行某个系统调用的指令数差别来分析是否被设置了钩子。这种基于统计的方法,存在一定的误差,并且即使正常系统多次执行某个系统调用的指令数也会有差别,造成了这种方法的误差较大。目前也存在对内核钩子的检测方法,但是基本上只针对某一种跳转表进行检测,由于钩子种类繁多,这种方法难以将所有钩子的检测覆盖全面。单就Windows Vista而言,由于其操作系统发行时间较短,目前尤其缺乏对其进行钩子检测的技术和工具。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910088251.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种利用河道地标间接定位识别立体建筑物的方法
- 下一篇:全文检索方法及系统