Windows文件系统过滤驱动在防病毒方面的应用

合集下载

文件系统过滤驱动

文件系统过滤驱动

1 引言文件系统过滤概述文件安全性问题已成为当今信息科学领域最重要的课题之一。

目前,解决这个问题的主要技术手段有两种:一是利用应用层HOOK(钩子)技术,对Windows 提供的文件操作函数(API)及由文件操作所触发的Windows消息进行HOOK,经过适当的处理达到预期目的,缺点是效率低、稳定性和一致性差,不适合于大型系统的开发;另一种是开发文件过滤驱动程序,文件过滤驱动作为一种内核态中间层驱动,不需要改变下层驱动或用户程序而增加新的功能,具有效率高、可靠性强、可扩充等特点,成为现阶段信息安全技术研究的热点。

1.1 文件过滤驱动在信息安全领域的应用1 文件加/解密文件过滤驱动程序可以实现对指定文件、目录,甚至整个逻辑盘的加/解密功能。

当文件在写入磁盘的过程中,截获所有对该文件的IRP_MJ_WRITE,在其分发例程中对IRP携带的数据进行加密处理后写入磁盘;文件被从磁盘读取的过程中,截获所有对该文件的IRP_MJ_READ,在其分发例程中对IRP携带的数据进行解密处理后向上层返回。

加密后的文件在磁盘中以密文形式存储,保证了数据存储的安全性。

2 病毒防护应用程序在创建一个新文件或打开一个已存在文件时,文件系统过滤驱动程序截获IRP_MJ_create,判断被打开文件是否存在和病毒特征代码库相匹配的特征,若存在,说明文件感染了病毒,失败掉该IRP,拒绝打开;否则,使IRP继续向下传递,完成正常的打开操作。

3 进程控制为了防止恶意进程的破坏,有时需要规定只允许某些经过安全验证的特定进程对受保护的文件进行访问,其他不在规则范围内的进程不允许访问。

我们可以通过系统提供的PsGetCurrentProcessId、PsGetCurrentThreadId等API函数得到发起I/O请求的进程及线程的相关信息,如:获得发起进程名称,与安全访问规则(进程白名单)中的可信进程相比较,若该进程位于规则中,说明信任其行为是安全的,允许访问受保护文件;否则,拒绝访问。

Windows文件系统过滤驱动开发教程(第二版)

Windows文件系统过滤驱动开发教程(第二版)
同时最新的测试表明,在 Vista 系统上,sfilter 也可以正常的运行。 安装配置 ddk 和在 vc 中开发驱动的方法网上有很多的介绍。ifsddk 安装之后,src 目录下的 filesys 目录下有文件 系统驱动的示例。阅读这些代码你就可以快速的学会文件系统驱动开发。 filter 目录下的 sfilter 是一个文件系统过滤驱 动的例子。另一个 filespy 完全是用这个例子的代码加工得更复杂而已。 本文为觉得代码难懂的读者提供一个可能的捷径。 如何用 ddk 编译这个例子请自己查看相关的资料。 文件系统过滤驱动编译出来后你得到的是一个扩展名为 sys 的文件。同时你需要写一个.inf 文件来实现这个驱动的安 装。我这里不讨论.inf 文件的细节,你可以直接用 sfilter 目录下的 inf 文件修改。以后我们将提供一个通用的 inf 文件. 对 inf 文件点鼠标右键弹出菜单选择“安装”,即可安装这个过滤驱动。但是必须重新启动系统才生效。这是静态加载的 情况。静态加载后如果重启后蓝屏无法启动,可以用其他方式引导系统后到 system32\drivers 目录下删除你的.sys 文 件再重启即可。安全模式无法使你避免蓝屏。所以我后来不得不在机器上装了两个系统。双系统情况下,一个系统崩溃了用 另一个系统启动,删除原来的驱动即可。 同时 xp 和 2003 版本的驱动大多可以动态加载。调试更加快捷,也请阅读相关的资料。 如果要调试代码,请安装 softice 或者 windbg,并阅读 windows 内核调试的相关文档。
Hale Waihona Puke -1. 改版序大约两年以前我在驱动开发网上发表了一组描述如何开发 Windows 文件系统过滤驱动的文章。非常庆幸这些文章能 给大家带来帮助。
原本的文章中我使用了自己编写的代码。我不打算在这里论述代码风格的优劣并发起一场辩论,无可怀疑的是,读者们 大多喜欢看到类似微软范例的代码。为此我把文章中的代码换成微软标准的文件过滤驱动范例 sfilter 的代码。赠于喜欢此 书的读者和驱动开发的后来者们。

文件系统驱动和设备驱动的区别 以及介绍

文件系统驱动和设备驱动的区别 以及介绍

文件系统过滤驱动以及设备驱动的区别一、何谓文件系统过滤驱动?文件系统过滤驱动是一种可选的,为文件系统提供具有附加值功能的驱动程序。

文件系统过滤驱动是一种核心模式组件,它作为Windows NT执行体的一部分运行。

文件系统过滤驱动可以过滤一个或多个文件系统或文件系统卷的I/O操作。

按不同的种类划分,文件系统过滤驱动可以分成日志记录、系统监测、数据修改或事件预防几类。

通常,以文件系统过滤驱动为核心的应用程序有防毒软件、加密程序、分级存储管理系统等。

二、文件系统过滤驱动并不是设备驱动设备驱动是用来控制特定硬件I/O设备的软件组件。

例如:DVD存储设备驱动是一个DVD驱动。

相反,文件系统过滤驱动与一个或多个文件系统协同工作来处理文件I/O操作。

这些操作包括:创建、打开、关闭、枚举文件和目录;获取和设置文件、目录、卷的相关信息;向文件中读取或写入数据。

另外,文件系统过滤驱动必须支持文件系统特定的功能,例如缓存、锁定、稀疏文件、磁盘配额、压缩、安全、可恢复性、还原点和卷装载等。

下面两部分详细的阐述了文件系统过滤驱动和设备驱动之间的相似点与不同点。

1、文件系统过滤驱动同设备驱动的相似点:下列部分描述了Windows操作系统中文件系统过滤驱动和设备驱动之间的相似点:(1)、类似的结构类似于设备驱动,文件系统过滤驱动有着属于自己的DriverEntry、Dispatch和I/O组件例程。

文件系统过滤驱动同设备驱动一样调用许多相同的系统核心例程,它们都会过滤发送给它们所关联的设备的I/O请求。

(2)、类似的功能:文件系统过滤驱动和设备驱动都是I/O子系统的组成部分,因此它们都接收和作用于I/O请求包(IRP)。

类似于设备驱动,文件系统过滤驱动同样可以创建它们自己的IRP并将该IRP发送到低层驱动。

这两种驱动均可以通过注册回调函数来接收多种系统事件的通知。

(3)、其它类似点:同设备驱动类似,文件系统过滤驱动可以接收传入的I/O控制码(IOCTLs)。

基于微过滤驱动网页篡改防御技术

基于微过滤驱动网页篡改防御技术

基于微过滤驱动的网页篡改防御技术摘要:随着互联网的广泛应用,web应用平台在网络信息交互过程中的作用也越来越重要。

因此,如何克服web应用平台面临的各种网络威胁,有效地保障web应用平台安全运行已经成为国内外学者研究的一个的热点课题。

本文主要针对网页篡改这类常见的网络攻击方式,通过分析比较现有几种有效防御技术,深入研究了windows操作系统中的文件系统过滤驱动的机制,并完成了有效网页防篡改功能,从而实现了更为安全可靠的防篡改功能。

关键词:网络应用;信息安全;微过滤;网页防篡改中图分类号:tp393.092随着互联网技术的突飞猛进,大量便捷、多样的网络应用服务凭借其及时高效的特征将很多企业的业务模式由c/s模式逐步转为b/s模式。

然而,大量新的信息安全问题也随之而来。

因此,如何确保网络应用服务的信息安全也逐渐成为了国内外学者研究的热点课题。

面向网络应用层的攻击主要是利用网络应用程序自身存在漏洞机制。

这些漏洞指的是那些发布在网络上的应用服务中存在的一些安全隐患,包括网页篡改、代码注入漏洞、跨站点脚本漏洞、以及跨站点请求伪造漏洞等。

网页篡改攻击是指恶意攻击者利用某些攻击手段对网站的页面件进行非法删除、修改等操作。

本文深入研究了现有几种常见的网页防篡改技术,分析比较了它们的优缺点,在此基础上设计并提出了一种基于文件驱动过滤技术的防篡改方法,从而实现了对网站系统的有效防护。

1 文件系统过滤驱动技术微过滤管理器(即“filter manager”)是一个windows下的文件系统过滤驱动程序,每个微过滤器必须具备唯一的标识符,通过该标识符,系统才能确定如何在输入/输出栈加载该微过滤器。

通过将微过滤管理器加载于其它驱动程序之上,可以对原驱动程序进行加强或者修改。

文件系统的微过滤管理器(即“minifilter”)就能够很大程序加强对文件系统的处理功能。

微过滤器模型的具体框架图则如图1所示。

通常情况下,windows的微过滤管理器主要包含以下几项特征。

Windows应用程序敏感数据保护研究

Windows应用程序敏感数据保护研究

Windows应用程序敏感数据保护研究摘要:通过对Windows操作系统数据管理机制的研究,结合硬件辅助虚拟化技术,提出了一个应用程序敏感数据保护系统。

本系统通过预处理加密技术和物理页帧加密技术阻止对静态存储数据的攻击,通过双影子页表技术和数据执行保护技术隐藏应用程序受保护内存区域内的明文内容,通过监控页表访问控制阻止进程受保护区域被其它进程恶意修改。

关键词:硬件辅助虚拟化;双影子页表;物理页帧加密;数据执行保护0引言随着信息技术的发展,应用程序处理的敏感信息越来越多,而针对这些信息的病毒、木马等恶意程序也随之增加。

而不幸的是在敏感信息的处理过程中,现有的一些保护机制不能有效地抵制恶意程序的攻击,敏感数据仍面临着威胁。

为此,本文在分析了Windows的敏感数据在内存和外存中存在的安全威胁后,详细介绍了数据保护的相关研究,并分析了其优缺点。

在此基础上提出了一种基于Hypervisor的应用程序敏感数据保护系统,利用硬件提供的虚拟化支持实现了一个Hypervisor架构,运行时Hypervisor位于Windows操作系统之下,通过Hypervisor来保护应用程序数据。

本系统通过加密敏感数据来保护外存数据的安全,通过保护应用程序的敏感数据和代码所在的内存来保护内存数据的安全。

数据保护系统以驱动的方式正常运行后,受保护应用程序和经过验证的组件可以访问敏感数据的明文,而用户态或内核态的恶意程序只能访问加密后的信息。

1Windows数据管理及其安全威胁Windows系统中应用程序处理敏感数据时面临的安全威胁点有两个,一个在内存,一个在外存。

根据攻击时敏感数据所处的状态可以分为静态数据分析和实时数据攻击。

静态数据分析是指应用程序的敏感数据被攻击者静态分析所得到。

实时数据攻击主要是指目标应用程序在处理受保护的数据时,恶意代码非法访问该部分数据的行为。

1.1静态数据分析实现静态数据分析的主要方式分为物理内存分析和磁盘文件分析。

svchost.exe病毒专杀工具杀毒

svchost.exe病毒专杀工具杀毒

svchost.exe病毒专杀工具杀毒因为svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm”)。

但windows系统存在多个svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?以下是小编收集的svchost.exe病毒专杀工具杀毒,仅供大家阅读参考!svchost.exe病毒专杀工具杀毒svchost.exe:不是病毒,这是一个属于微软Windows操作系统的系统程序,微软官方对它的解释是:Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。

这个程序对系统的正常运行是非常重要,而且是不能被结束的。

常被病毒冒充的进程名有:svch0st.exe、schvost.exe、scvhost.exe。

随着Windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由svchost.exe进程来启动。

而系统服务是以动态链接库(DLL)形式实现的,它们把可执行程序指向svchost,由svchost调用相应服务的动态链接库来启动服务。

我们可以打开“控制面板”→“管理工具”→服务,双击其中“ClipBook”服务,在其属性面板中可以发现对应的可执行文件路径“C:WINDOWSsystem32clipsrv.exe”。

再双击“Alerter”服务,可以发现其可执行文件路径为“C:WINDOWSsystem32svchost.exe -kLocalService”,而“Server”服务的可执行文件路径为“C:WINDOWSsystem32svchost.exe -knetsvcs”。

正是通过这种调用,可以省下不少系统资源,因此系统中出现多个svchost.exe,其实只是系统的服务而已。

在Windows2000系统中一般存在2个svchost.exe进程,一个是RPCSS(RemoteProcedureCall)服务进程,另外一个则是由很多服务共享的一个svchost.exe;而在WindowsXP 中,则一般有4个以上的svchost.exe服务进程。

Windows操作系统的Windows Defender

Windows操作系统的Windows Defender

Windows操作系统的Windows Defender :一款强大的防病毒软件是一款自带的防病毒软件,对于Windows电脑的用户而言,无论是在家中还是在办公室中,都需要意识到电脑安全问题的重要性。

网络病毒等问题早已不再是个人电脑现象,即便是在联网过程中,计算机也可能面临着众多安全威胁,这些威胁可能由恶意软件、网络诈骗、钓鱼网站等多种情况所导致。

本文将描述Windows Defender的重要性、功能以及软件本身的优点。

1. Windows Defender的重要性无论是从网络威胁的角度,还是从用户安全角度,使用强大的防病毒软件都是很有必要和重要的。

在非公共场合下,个人电脑就好像一个人的个人办公室,其他人也很难进入其中。

但公共场合则相对复杂,所有人都可以进入。

传统的防病毒软件可以锁住所有电脑的大门,使得无论是公共场合、个人电脑还是公司网络,所有用户都能够得到保护。

但是问题是,一些人并不知道这个外部世界的不安全性。

这就是Windows Defender的意义所在,它可以为所有人提供强大的保护,而且使用简便。

2. Windows Defender的功能Windows Defender可以提供防病毒、查杀病毒、智能识别、安全浏览和邮箱保护等功能。

所有这些功能都可以免费使用,而且可以保持最新状态。

其中,防病毒和查杀病毒是最主要,也是最值得使用的功能。

智能识别技术可以在尽可能短的时间里扫描所有文件,同时根据文件的情况自动执行对应操作,这一项可以大大提高工作效率。

安全浏览和邮箱保护则是保证浏览和接收邮件时,不会误打误撞打开不安全的链接和文件。

3. Windows Defender的优点相较于其他的商业病毒软件,Windows Defender的优点较多。

首先是Windows Defender已经集成到Windows 10和Windows 8中的安全中心中,不需要下载,设置等复杂操作。

其次,Windows Defender具有比较友好的使用界面,可以方便的查看电脑的状态,以及执行相关操作。

一种基于文件过滤驱动的Windows文件安全保护方案

一种基于文件过滤驱动的Windows文件安全保护方案

收稿日期:2008-07-10;修回日期:2008-09-16。

基金项目:国家自然科学基金资助项目(60873024);湖北省教育厅重点研究项目(D2*******)。

作者简介:胡宏银(1972-),男,湖北大悟人,讲师,硕士,主要研究方向:软件工程、信息安全; 姚峰(1976-),男,山西大同人,讲师,硕士,主要研究方向:软件工程; 何成万(1967-),男,湖北荆门人,副教授,博士,主要研究方向:软件工程。

文章编号:1001-9081(2009)01-0168-04一种基于文件过滤驱动的W indo ws 文件安全保护方案胡宏银,姚 峰,何成万(武汉工程大学计算机科学与工程学院,武汉430073)(huhongyin@hot m ail .com )摘 要:针对提高文件安全级别需要较高安全成本问题,提出了一种低成本高安全的W indows 文件保护方法。

该方法采用W indows NT 驱动框架,基于文件系统过滤驱动技术实现对文件进行透明加解密。

文件内容用快速的对称算法加密,并且一文件一密钥。

文件密钥用安全性更高的非对称算法加密,加密密钥保存于专用密钥文件中,用户私钥存放在密钥U 盘里。

在此基础上,提出了一种文件安全共享的方法。

分析和应用表明,该方案在增加较少硬件成本基础上,可有效保护存储设备遗失或被盗、管理员密码被破解、文件共享时的文件安全。

关键词:文件系统过滤驱动;对称加密算法;非对称加密算法;密钥文件;加密文件共享中图分类号:TP309 文献标志码:ASoluti on of W i n dows f iles secur ity protecti on ba sed on f ile system f ilter dr i verHU Hong 2yin,Y AO Feng,HE Cheng 2wan(School of Co m puter Science and Engineering,W uhan Institute of Technology,W uhan Hubei 430073,China )Abstract:I n order t o s olve the p r oble m that enhancing files security needs high cost,a s oluti on t o W indows files security p r otecti on with l ow cost was p r oposed .It was based on W indows NT driver and file system filter driver t o encryp t and decryp t the files .File content was encryp ted with fast sy mmetrical encryp ti on algorith m,and every file had one encryp ti on key .File encryp ti on key was encryp ted with safer asy mmetrical encryp ti on algorith m,and encryp ted encryp ti on key was saved in the encryp ti on key file .Thr ough st oring the p rivate key in the U disk,the syste m security was enhanced .Additi onally,a method of encryp ted file share was intr oduced int o this paper .Analysis and app licati on results show that when the me mory is l ost,ad m inistrat or pass word is cracked and files are shared,and the s oluti on can enhance file security with l ow cost .Key words:file syste m filter driver;sy mmetrical encryp ti on algorith m;asy mmetrical encryp ti on algorith m;encryp ti on key file;encryp ted file share0 引言计算机和网络的普及使得计算机中文件的安全性成为关注的焦点和研究的热点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Windows文件系统过滤驱动在防病毒方面的应用发表时间:2009-10-1 刘伟胡平来源:万方数据关键字:文件系统过滤驱动防病毒病毒特征码信息安全信息化应用调查我要找茬在线投稿加入收藏发表评论好文推荐打印文本在操作系统内核层,对用户模式应用程序请求读写的磁盘数据进行病毒扫描。

介绍文件系统过滤驱动的工作原理,利用文件系统过滤驱动,捕获用户应用程序发往目标文件系统驱动的磁盘操作请求,进而获得这些操作请求的处理权,论述防病毒的工作原理,利用文件扫描程序扫描文件系统过滤驱动程序截获的文件数据,并与特征码库中的病毒特征码进行匹配。

若匹配成功,则通知用户模式应用程序进行处理;否则,不做处理,防止从磁盘读取病毒文件或将病毒文件写入磁盘。

0 引言近几年计算机病毒也正以惊人地速度蔓延,对计算机及其网络系统的安全构成严重威胁。

本文提出利用文件系统过滤驱动,捕获用户应用程序向磁盘写入或读出的文件数据,对其进行扫描,并与病毒特征码库中的病毒特征码匹配,以判断是否是病毒文件或染毒文件:根据扫描结果确定是否为病毒文件或染毒文件,以及是否与用户模式应用程序进行通信。

文件系统过滤驱动运行于操作系统内核,其安全性得到操作系统的保证,安全性较高。

1 文件系统过滤驱动原理文件系统过滤驱动是针对文件系统而言的,属于内核模式程序,运行于操作系统的内核模式,仅能附着到目标文件系统驱动的上层。

文件系统驱动是存储管理子系统的一个组件,为用户提供多种手段,将信息存储到永久介质(如磁盘、磁带等),或从永久介质获取信息。

图1显示了文件系统过滤驱动和文件系统驱动与用户应用程序之间的服务关系,应用程序对磁盘发出的操作请求,首先到达 I/O子系统管理器。

在进行读写磁盘数据的时候,缓存管理器会保存最近的磁盘存取记录,所以在接收到应用程序读写磁盘的操作请求后,I/O子系统管理器会先检查所访问的数据是否保存在缓存中,若缓存中有要访问的数据,I/O子系统管理器会构造Fast I/O请求包,从缓存中直接存取数据;如果所需数据不在缓存中,I/O子系统管理器会构造相应的IRP,然后发往文件系统驱动,同时缓存管理器会保存相应的记录。

因此,文件系统过滤驱动程序有两组接口处理由I/O子系统管理器发送来的用户模式应用程序操作请求:一组是普通的处理IRP的分发函数;另一组是FastIo调函数;编写这两组函数也是文件系统过滤驱动的主要任务之一。

图1文件过滤系统原理2 文件系统过滤驱动关键部分实现过程虽然文件系统过滤驱动有FastIo回调函数和IRP分发函数两组接口处理I/O请求;但是,只有IRP请求是从磁盘读取数据;因此,只要捕获与读写请求相应的IRP请求,就可获得对读写数据的处理。

读写IRP请求分别是IRP_MJ_READ和IRP_MJ_WRITE请求;只有将文件系统过滤驱动设备对象成功绑定到目标文件系统所对应的设备对象上之后,才能捕获发往目标设备(磁盘分区)的读写请求,本文着重讨论读写请求的处理。

首先在驱动函数DriverEntry0中指定读写lJ冲请求分发例程的入口指针:关于IRP MJ READ和IRP MJ WRITE请求的数据存放方式;根据其对应的设备对象缓冲标志位(Flags)确定;如果设备对象使用direct I/O方式,Irp->MdlAddress会描述一个包含数据的缓冲区:否则,Irp>MdlAddress为NULL,对应的存储设备对象使用的数据存取方式是bufferI/O方式,Irp->AssociatedIrp.SysternBuer缓冲区中存放提供给设备或驱动程序的数据。

2.1 IRP_MJ_WRITE请求的处理IRP_MJ_WRITE实现的功能是将程序产生的数据或用户数据存入硬盘等永久存储介质,对该请求的处理过程是:(1)判断Irp->Flags是否为IRP_NOCACHE或IRP_PAGING_IO;否则不扫描,向下层驱动发送该IRP请求:(2)获取存放文件数据的缓冲区地址;如果Irp>Mdl-Address不为NULL(即设备对象使用dircctI/O方式),则调用MmGetSystemAddressForMdlSafe()函数得到用户缓冲区的系统映射地址,通过这个地址可以访问用户缓冲区;否则,存储设备使用的是bufferI/O,Irp->AssociatedIrp.SystemBuffer中存放提供给设备或驱动程序的数据;(3)对缓冲区中的文件数据进行扫描,并与特征码库中的病毒特征码进行匹配;(4)若匹配成功,由于特征码与病毒文件一一对应,便可以断定被查文件中为何种病毒,将病毒信息传递给用户模式应用程序,以确定如何处理病毒文件或染毒文件;否则,文件数据为安全文件,向下层驱动传递该IRP请求。

2.2 IRP_MJ_READ请求的处理IRP_MJ_READ请求的功能是从硬盘等存储介质中读出数据,它的处理过程是:首先,检查IRP请求模式(Irp->RequestorMode)是否为内核模式(KernalMode):若是内核模式,直接向下发送该Il心请求;否则,对文件数据进行扫描。

由于IRP_MJ_READ请求只有在完成了之后,所请求的数据才能全部读完;因此,文件数据的扫描操作应该放在IRP_MJ_READ的完成例程中;可以调用函数IoSetCDmpletionRDutine()在IRP_MJ_READ的分发函数中设置完成例程;在完成例程中,首先要获得文件数据的存放位置,根据设各对象采用的是directI/O还是buffer I/O加进行判断,以取得存放文件数据的缓冲区地址,判断方法与上述步骤(2)一致,之后对缓冲区数据进行扫描操作,并与病毒特征码库中的病毒特征码进行匹配:若匹配成功,则可确定为病毒文件或染毒文件,将病毒信息发送到用户模式应用程序,由用户确定处理方法。

否则,视为安全文件,不做处理。

根据需要编写其它的IRP分发函数和FastIo回调函数。

3 防病毒原理病毒的检测方法主要有提取特征码法、校验和法、行为监测法和感染实验法等。

本文提及的防病毒功能,是通过对文件系统过滤驱动截获的、即将写入磁盘或从磁盘读出的文件数据进行扫描的方式实现的,它的病毒检测方法使用特征码法,在所有检测方法中,提取特征码法被公认为是最简单,开销最小的检测方法。

防病毒功能由特征码库模块、文件解析模块、文件扫描模块组成。

文件扫描模块程序的主要功能是扫描即将从磁盘读出或写入磁盘的数据,与特征码库中的特征码匹配,以判断文件是否是病毒文件或染染毒文件。

3.1提取特征码在对文件数据进行扫描的时候,会挑选文件内部的一段或者几段代码作为文件特征码。

特征码主要分为:文件特征码、内存特征码、单一文件特征码、复合文件特征码、单一内存特征码、复合内存特征码等。

其中,文件特征码的提取方式有分别有MD5格式、字符串格式和二段校验和格式。

采用MD5格式提取病毒文件的MD5值,作为其病毒特征码,仅用于临时检测或防范某类特定病毒。

字符串格式使用存在于病毒文件中的特殊字符串来表示一类病毒,适用于所有的病毒,优点是能够利用一段特殊字符串表示出一类病毒,缺点是扫描耗费时间比较长。

两段校验和格式是晟常用的病毒特征码格式,包含两段最能代表该病毒特性病毒文件特殊位置的数据的CRC检验和。

在扫描文件数据时,计算待查文件在该位置的校验和值,通过判断有无符合该值的特征码来断定文件是否是病毒。

该方法具有准确率高,扫描时间少,一个特征码能检查出一类病毒等的优点。

特征代码法的提取过程如下:(1)获取已知病毒样本,如果同时感染了COM文件和EXE文件,则要采集COM型病毒和EXE型病毒两种样本:(2)在病毒样本中,提取特征代码。

提取依据以下原则:·抽取的代码应最能代表该类型病毒,且不能与正常程序代码相同;·抽取的代码要有适当长度;在保持惟一性的前提下,应尽量保持特征码长度短:·在感染了COM文件和EⅫ文件的病毒样本中,要抽取两种样本共有的代码;(3)将提取到的特征代码存入病毒特征码库。

3.2文件解析模块该模块的主要功能是对文件系统过滤驱动截获的文件数据进行分析,根据其文件类型,决定是否解压或脱壳处理。

它的主要组成部分有文件类型榆测模块、文件解压模块、文件脱壳模块和脚本语法分析压缩模块等。

文件类型检测模块的主要任务是检测文件的类型,根据该文件类型确定对文件的所做的处理;文件解眶缩模块的功能是对压缩文件进行解压缩;脱壳模块实现对经过加壳处理的文件进行脱壳处理,通常需要脱壳处理的文件是可执行文件。

脚本语法分析压缩模块处理各种脚本文件。

文件解析模块的实现流程如图2所示。

首先对输入文件的类型进行检测,根据检测出的文件类犁对文件进行相应的处理:如果检测到文件类型是压缩文件,则调用文件解压缩模块对文件数据进行解压缩处理;若检测结果为文件属于脚本文件类型,则应调用脚本语法分析压缩器模块对该文件数据进行分析;如果检测到文件是二进制文件,还需要判断该文件是否经过加壳处理;如果进行了加壳操作处理,则需要调用脱壳模块进行脱壳。

最后将解析之后的文件数据输出,由文件扫描模块对输出的文件数据进行特征码匹配操作。

图2 文件解析模块3.3文件扫描模块文件扫描模块主要对解析后的文件数据进行扫描,并与病毒特征码库提供的病毒特征码进行匹配;匹配成功,则将病毒名称及其它信息发送到用户模式应用程序,由用户决定如何处理。

文件扫描模块的基本过程是:(1)首先装载病毒特征码库;(2)利用文件解析模块对文件数据进行解析;(3)对经过文件解析模块解析之后的文件数据进行扫描;并与病毒特征码库中的病毒特征码进行匹配;(4)匹配成功,可确定扫描的文件数据为病毒或已感染病毒,将文件名和病毒名称发送到用户模式应用程序,这是由文件系统过滤驱动触发用户模式应用程序设置的事件实现的;否则不做处理,退出扫描过程;(5)根据用户模式应用程序的设置决定下一步操作。

4 文件系统过滤驱动与用户模式应用程序的通信4.1用户模式应用程序向内核模式文件系统过滤驱动程序传递数据用户模式应用程序与文件系统过滤驱动程序之问的数据传递是通过使用DeviceloCoontrol()函数来实现的。

但是文件系统过滤驱动拦截了所有的I/O请求,因此文件系统过滤驱动必须区分哪些I/O请求需要文件系统过滤驱动处理。

解决方法之一是在DriverEntry()中创建一个命名控制设备对象,并在它的设备扩展DeviceExtension中定义设备类型。

例如://在DriverEntry()函数中在文件系统过滤驱动拦截I/O请求后,首先检查该请求的设备类型,判断是否是GⅥINTERFACE,即可知该请求是否是发送给文件系统过滤驱动的。

相关文档
最新文档