一种电脑安全防护方法和系统的制作方法

文档序号:6332002阅读:87来源:国知局
专利名称:一种电脑安全防护方法和系统的制作方法
技术领域
本发明涉及一种电脑安全防护方法和系统。
背景技术
为因应层出不穷的病毒木马,目前不论采用被动防御还是主动防御的技术,病毒 库均越来越庞大。即使这样也不能完全禁止未知病毒木马对电脑系统的破坏。由于电脑程 序的多样性、复杂性和不断变化的特性,决定了主动防御技术只能识别部分程序,无法对所 有程序或模块进行身份识别,这样还是要依靠病毒库和软件行为进行识别,这样就为未知 病毒的活动提供了入侵的机会。

发明内容
本发明所要解决的技术问题是提供一种电脑安全防护方法和系统,使得无须依靠 病毒库和软件行为识别,即可运行未知的可执行模块,而不对操作系统和安全的应用程序 数据造成破坏。为解决上述技术问题,本发明的技术方案如下一种电脑安全防护方法,包括以下步骤在中心服务器生成与安全的可执行模块对应的特征码和分类标识码,该分类标识 码包括类型码和产品名称码;在客户机建立社会区、系统区和工作区,该社会区包括在客户机磁盘上建立的指 定目录,以及在注册表建立的指定分支;该系统区包括操作系统目录;该工作区包括除系 统区和社会区外的目录和注册表;客户机运行进程或线程时,计算该进程或线程的特征码,如是第一次执行,且本地 没有匹配的特征码,则通过该特征码在中心服务器中检索,如中心服务器存在与该特征码 对应的产品名称码,则下载该产品名称码对应的所有特征码,加入本地模块特征库;对于客户机运行的进程或线程,判断以下条件是否均成立加载的可执行模块的特征码均为本地模块特征库中的特征码;没有访问安全网址以外的网址;进程或线程不在社会区的指定目录;若均成立,则进程或线程被标记为工作属性被标记为工作属性的进程或线程,可 以对系统区和工作区进行所有操作,对社会区只有操作系统进程才可以访问;否则,进程或线程被标记为社会属性被标记为社会属性的进程或线程,除进程或 线程所在目录外,看不到工作区任何信息,而且对社会区以外的注册表和磁盘操作,被重定 向到社会区的指定分支和指定目录。所述生成与安全的可执行模块对应的特征码的步骤包括判断可执行模块的格 式,并计算校验和;计算可执行模块的长度指示。所述电脑安全防护方法还可进一步包括自动将被标记为工作属性的进程或线程产生的新的可执行模块的特征码加入到本地模块特征库。所述电脑安全防护方法还可进一步包括禁止标记为社会属性的进程或线程加载 驱动。所述电脑安全防护方法还可进一步包括标记为社会属性的进程或线程全局应用 钩子调用时返回失败。所述电脑安全防护方法还可进一步包括标记为社会属性的进程或线程远程线程 注入时返回失败;所述电脑安全防护方法还可进一步包括禁止标记为社会属性的进程或线程终止 被标记为社会属性的进程以外的进程,以及直接读写磁盘和内存。根据本发明的另一方面,提供一种电脑安全防护系统,包括中心服务器,其生成与安全的可执行模块对应的特征码和分类标识码,该分类标 识码包括类型码和产品名称码;电脑安全防护客户端,其在客户机建立社会区、系统区和工作区,该社会区包括在 客户机磁盘上建立的指定目录,以及在注册表建立的指定分支;该系统区包括操作系统目 录;该工作区包括除系统区和社会区外的目录和注册表;当客户机运行进程或线程时,所述电脑安全防护客户端计算该进程或线程的特征 码,如是第一次执行,且本地没有匹配的特征码,则通过该特征码在中心服务器中检索,如 中心服务器存在与该特征码对应的产品名称码,则下载该产品名称码对应的所有特征码, 加入本地模块特征库;对于客户机运行的进程或线程,所述电脑安全防护客户端判断以下条件是否均成 立加载的可执行模块的特征码均为本地模块特征库中的特征码;没有访问安全网址以外的网址;进程或线程不在社会区的指定目录;若均成立,则进程或线程被标记为工作属性被标记为工作属性的进程或线程,可 以对系统区和工作区进行所有操作,对社会区只有操作系统进程才可以访问;否则,进程或线程被标记为社会属性被标记为社会属性的进程或线程,除进程或 线程所在目录外,看不到工作区任何信息,而且对社会区以外的注册表和磁盘操作,被重定 向到社会区的指定分支和指定目录。本发明的一种电脑安全防护方法和系统,把客户机资源分为系统区、工作区和社 会区,通过给被标记为不同运行属性的进程或线程设置对这三个区的不同访问权限,实现 工作区和社会区的隔离。对于大量的未知可执行模块,在运行时都会标记为社会属性,被标 记为社会属性的进程或线程,只能对系统区和当前目录进行只读操作,所有其他对社会区 以外的操作全部重定向到社会区操作,由于看不到工作区信息,达到了社会区跟工作区数 据的隔离。同时对系统有破坏的操作被屏蔽。因此,即使是有大量病毒程序,也不会对工作 区数据造成任何损坏或工作区数据的泄露,达到彻底屏蔽病毒木马的效果。对于安全级别 要求比较高的环境,还可以完全禁止社会属性进程或线程运行,这样可以避免有病毒木马 利用该机器对远程机器进行攻击。


图1是本发明的电脑安全防护客户端的防护流程图。
具体实施例方式下面根据附图,给出本发明的较佳实施例,并予以详细描述,使能更好地理解本发 明的功能、特点。本发明的电脑安全防护系统包括中心服务器和电脑安全防护客户端。中心服务器生成与安全的可执行模块对应的特征码,并把这些特征码收集起来, 作为可执行模块标识的一部分,加入中心模块特征库。可执行模块文件的格式包括com、MZ、NE、LE、PE,绝大部分可执行模块是PE格式 的。相应的特征码构造方法如下1.计算校验和对于com、MZ格式的可执行模块,一般对整个文件计算校验和;对于NE、LE格式的可执行模块,只对DOS头和对应的NE头、LE头进行校验和计 算;对于PE格式的可执行模块,只对DOS头和对应的PE头和节表进行校验和计算。2.计算可执行模块的长度指示若可执行模块的实际长度不超过2个字节,则以可执行模块的实际长度作为该可 执行模块的长度指示;否则,通过将可执行模块的实际长度跟双字节的无符号整数相除,从 而获取2个字节的余数,以该余数作为该可执行模块的长度指示。计算的校验和、长度指示均为2个字节,它们一起构成4个字节的可执行模块的特 征码。例如,对于可执行模块qq.exe,其特征码为10110000000000000000011100000000。本领域的技术人员应当理解,上述特征码可采用其他方法构造,只要可执行模块 能与该特征码唯一对应。为了在中心服务器对可执行模块进行分类管理且便于电脑安全防护客户端下载 跟当前电脑相关的特征码,每个可执行模块的可执行模块标识除了 4个字节的特征码外, 还有4个字节的分类标识码,由中心服务器生成,该分类标识码包括类型码和产品名称码。类型码考虑到512个类型应该足以给可执行模块分类,因此安排8个位。例如, 可以以00110000表示即时通信类型。产品名称码考虑到产品的多样性,每个类型安排24位用于表示产品名称。例如, 可以以000000000000000000110001表示腾讯即时通信产品。所以,每个可执行模块标识包含8个字节,其中4个字节是分类标识码,另外4个 字节是特征码。上述特征码和分类标识码的生成方法也适用于安全性未定的可执行模块。客户端安装完毕后,在首次运行时会对当前操作系统版本和已安装应用软件进行 扫描。对于操作系统,直接下载与操作系统版本对应的特征码;对于已安装的应用软件, 可以计算安装目录下任一可执行模块的4字节特征码,并通过该特征码在中心服务器中检 索,如中心服务器存在与该特征码对应的产品名称码,则下载该产品名称码对应的所有特征码,加入本地模块特征库;对于后续安装的新的应用软件,第一次使用时候也会通过上面 的方法下载对应的特征码。这些特征码构成本地模块特征库。安装完客户端后在客户机建立社会区、系统区和工作区。系统区包括操作系统目录,对于Windows操作系统就是指Windows或WINNT目录 以及操作系统安装产生的其他目录。社会区包括在每个磁盘分区的指定目录,即社会区目录,例如根目录下的HU119VM 目录,对于Windows操作系统,还包括注册表中的所有指定分支,即社会区分支,例如 HU119VM 分支。工作区包括除去系统区和社会区外的所有目录和注册表。工作属性进程或线程运行时候,如果加载的可执行模块的特征码均为本地模块 特征库中的特征码,同时没有访问安全网址以外的网址(安全网址由中心服务器提供),同 时进程当前目录不在社会区,则被标记为工作属性。被标记为工作属性的进程或线程,可以 对系统区和工作区进行所有操作,对社会区信息只有操作系统进程才可以访问。具有工作 属性的进程或线程对操作系统的访问和文件数据的操作,都是真实操作。社会属性进程或线程运行时候,如果加载的可执行模块的特征码为本地模块特 征库以外的特征码,或访问了安全网址以外的网址,或进程当前目录位于社会区中,则被标 记为社会属性。被标记为社会属性的进程或线程,除当前目录外,看不到工作区任何信息而 且对社会区以外的注册表和磁盘操作,都是虚拟的,被重定向到社会区分支和社会区目录, 但对于当前进程或线程来说是完全透明的。下面举例描述社会区在注册表中的分配管理。对任一注册表操作,反映到核心的 操作路径只有这两种情况\\\\Registry\\Machine\\xxxxxx\\xxxxxx,以及\\\\Registry\\USER\\xxxxxx\\xxxxxx0社会区注册表分支固定安排在第三节后面\\\\Registry\\Machine\\xxxxxx\\hull9vm\\xxxxxx,以及\\\\Registry\\USER\\xxxxxx\\hull9vm\\xxxxxx0所以标记为社会属性的进程或线程修改注册表\\\\RegiStryWMachineW system\\testapp 时,实际是对 \\\\Registry\\Machine\\system\\hull9vm\\testapp 的 修改。下面举例描述社会区在磁盘分区中的分配管理。对任一个文件系统分区,该分区 根目录都会分配一个社会区目录“/hul 19vm”。根据进程或线程加载的可执行模块的模块特征、网页请求方式和进程当前目录所 处的位置,该进程或线程动态标记为两个运行属性工作属性和社会属性。具有不同属性的 进程或线程,具有不同的访问客户机资源权限社会属性的进程或线程,除了自身当前目录 外,看不到工作区信息;工作属性的进程和线程(操作系统进程除外),看不到社会区信息。 这样就对工作区和社会区数据做到了隔离的效果,同时社会属性的进程或线程不能实际修 改社会区以外的任何信息,也保证了操作系统的稳定,除操作系统文件。为了既保证未知程序的运行,同时又对系统区和工作区数据没有任何破坏作用, 因此对标记为社会属性的进程或线程权限设置如下
a)所有驱动加载被禁止,也就是说具有社会属性的进程或线程,只能在应用层运 行,不能安装驱动;b)全局应用钩子调用,返回失败;c)远程线程注入,返回失败;d)禁止终止被标记为社会属性的进程以外的进程;e)直接读写磁盘和内存被禁止;f)除自身目录外,不能访问工作区的文件;g)所有对社会区以外的注册表和文件的写操作都重定向到社会区分支和社会区目录。下面举例介绍标记为社会属性的进程或线程对客户机资源的访问1.对社会区以外文件的写操作,全部重定向到当前磁盘分区的社会区目录中。 如要写文件 c:\\windows\\system32\\smon. dll 时,文件过滤驱动会写入 c:\\hull9vm\\ windows\\system32\\smon. dll ;要写文件 d:\\wtsoft\\ss. dat 时,文件过滤驱动会写入 d:\\hull9vm\\wtsoft\\ss. dat。2.对文件的读操作,除了可以看到系统区目录外,就只能看到程序自身当前 路径和每个磁盘分区下的社会区(hull9vm)目录下的信息。如读文件c:\\Wind0WS\\ system32\\smon. dll,文件过滤驱动会先读 c \\hul 19vm\\windows\\system32\\smon. dll,如这文件不存在,才会去读真实的文件c:\\Wind0WS\\SyStem32\\Sm0n. dll。如读文件 d:\\wtsoft\\ss. dat,文件过滤驱动会直接读 d:\\hull9vm\\wtsoft\ss. dat,如失败,则直 接返回失败,因为工作区是不让具有社会属性的进程和线程访问的,如社会区中对应的目 录不存在,就表示该文件不存在。3.对注册表的写操作,全部重定向到对应注册表的一个固定社会区分支,社会 区分支分配见前面介绍。如写注册表\\\\Registry\\Machine\\system\\testapp, 注册表过滤驱动会写入 \\\\Registry\\Machine\\system\\hull9vm\\testapp ;写注 册素 \\\\Registry\\user\\HKEY_CURRENT_USER\\testapp,注册表过滤驱动会写入 \\\\Registry\\user\\HKEY_CURRENT_USER\\hull9vm\\testapp04.对注册表的读操作。如读注册表\\\\RegistryWMachineWsystemW testapp, Sil^iliiitiilXsJ]^^^ \\\\Registry\\Machine\\system\\hull9vm\\testapp, 如失败则会渎真实地方 \\\\Registry\\Machine\\system\\testapp ;根据上面访问文件和注册表中所述,通过文件过滤驱动实现工作区与社会区之间 的不可见,通过注册表过滤驱动实现对注册表的保护。对于以社会属性运行的安装包,安装的程序都会写到社会区中,这样如不通过合 并处理,从开始菜单中就看不到刚安装的应用程序。这时候,系统进程通过把开始菜单对应 目录如社会区中对应的开始菜单目录在内存中进行合并处理,这样操作系统进程就可以把 刚安装的应用程序在开始菜单上显示出来,其他特殊处理,以此类推。参考图1,电脑安全防护客户端的防护流程如下(为描述方便,特征码记录在本地 模块特征库中的可执行模块定义为已知模块,特征码未记录在本地模块特征库中的可执行 模块定义为未知模块)启动新进程先计算该可执行模块的4字节的特征码,计算该进程或线程的特征
8码,如是第一次执行,且本地没有匹配的特征码,则通过该特征码在中心服务器中检索,如 中心服务器存在对应的产品名称码,则下载该产品名称码对应的所有特征码,加入本地模 块特征库;对于客户机运行的进程或线程,判断以下条件是否均成立加载的可执行模块的特征码均为本地模块特征库中的特征码;没有访问安全网址以外的网址;进程或线程不在社会区的指定目录;若均成立,则进程或线程被标记为工作属性被标记为工作属性的进程或线程,可 以对系统区和工作区进行所有操作,对社会区只有操作系统进程才可以访问;否则,进程或线程被标记为社会属性被标记为社会属性的进程或线程,除进程或 线程所在目录外,看不到工作区任何信息,而且对社会区以外的注册表和磁盘操作,被重定 向到社会区分支和社会区目录。对于被标记为工作属性的进程或线程产生的新的可执行模块,自动将该可执行模 块的特征码加入到本地模块特征库。显然,在上述教导下,可能对本发明进行多种修正和变型,并在所附权利要求的范 围内,本发明可以以不同于具体描述的方式实施。
权利要求
一种电脑安全防护方法,包括以下步骤(1 1)在中心服务器生成与安全的可执行模块对应的特征码和分类标识码,该分类标识码包括类型码和产品名称码;(1 2)在客户机建立社会区、系统区和工作区,该社会区包括在客户机磁盘上建立的指定目录,以及在注册表建立的指定分支;该系统区包括操作系统目录;该工作区包括除系统区和社会区外的目录和注册表;(1 3)客户机运行进程或线程时,计算该进程或线程的特征码,如是第一次执行,且本地没有匹配的特征码,则通过该特征码在中心服务器中检索,如中心服务器存在与该特征码对应的产品名称码,则下载该产品名称码对应的所有特征码,加入本地模块特征库;(1 4)对于客户机运行的进程或线程,判断以下条件是否均成立加载的可执行模块的特征码均为本地模块特征库中的特征码;没有访问安全网址以外的网址;进程或线程不在社会区的指定目录;若均成立,则进程或线程被标记为工作属性被标记为工作属性的进程或线程,可以对系统区和工作区进行所有操作,对社会区只有操作系统进程才可以访问;否则,进程或线程被标记为社会属性被标记为社会属性的进程或线程,除进程或线程所在目录外,看不到工作区任何信息,而且对社会区以外的注册表和磁盘操作,被重定向到社会区的指定分支和指定目录。
2.如权利要求1所述的方法,所述生成与安全的可执行模块对应的特征码的步骤包括(2-1)判断可执行模块的格式,并计算校验和 若可执行模块为com、MZ格式,则对整个文件计算校验和; 若可执行模块为NE、LE格式,则只对DOS头和对应的NE头、LE头计算校验和; 若可执行模块为PE格式,则只对DOS头和对应的PE头和节表计算校验和; (2-2)计算可执行模块的长度指示若可执行模块的实际长度不超过2个字节,则以该实际长度作为该可执行模块的长度 指示;否则,将该实际长度跟双字节的无符号整数相除,获取2个字节的余数,以该余数作为 该可执行模块的长度指示。
3.如权利要求1所述的方法,进一步包括自动将被标记为工作属性的进程或线程产生 的新的可执行模块的特征码加入到本地模块特征库。
4.如权利要求1所述的方法,进一步包括禁止标记为社会属性的进程或线程加载驱动。
5.如权利要求1所述的方法,进一步包括标记为社会属性的进程或线程全局应用钩子 调用时返回失败。
6.如权利要求1所述的方法,进一步包括标记为社会属性的进程或线程远程线程注入 时返回失败。
7.如权利要求1所述的方法,进一步包括禁止标记为社会属性的进程或线程终止被标 记为社会属性的进程以外的进程,以及直接读写磁盘和内存。
8.一种电脑安全防护系统,包括中心服务器,其生成与安全的可执行模块对应的特征码和分类标识码,该分类标识码 包括类型码和产品名称码;电脑安全防护客户端,其在客户机建立社会区、系统区和工作区,该社会区包括在客户 机磁盘上建立的指定目录,以及在注册表建立的指定分支;该系统区包括操作系统目录; 该工作区包括除系统区和社会区外的目录和注册表;当客户机运行进程或线程时,所述电脑安全防护客户端计算该进程或线程的特征码, 如是第一次执行,且本地没有匹配的特征码,则通过该特征码在中心服务器中检索,如中心 服务器存在与该特征码对应的产品名称码,则下载该产品名称码对应的所有特征码,加入 本地模块特征库;对于客户机运行的进程或线程,所述电脑安全防护客户端判断以下条件是否均成立 加载的可执行模块的特征码均为本地模块特征库中的特征码; 没有访问安全网址以外的网址; 进程或线程不在社会区的指定目录;若均成立,则进程或线程被标记为工作属性被标记为工作属性的进程或线程,可以对 系统区和工作区进行所有操作,对社会区只有操作系统进程才可以访问;否则,进程或线程被标记为社会属性被标记为社会属性的进程或线程,除进程或线程 所在目录外,看不到工作区任何信息,而且对社会区以外的注册表和磁盘操作,被重定向到 社会区的指定分支和指定目录。
9.如权利要求8所述的系统,所述与安全的可执行模块对应的特征码包括校验和与可 执行模块的长度指示,其中若可执行模块为com、MZ格式,则对整个文件计算校验和; 若可执行模块为NE、LE格式,则只对DOS头和对应的NE头、LE头计算校验和; 若可执行模块为PE格式,则只对DOS头和对应的PE头和节表计算校验和; 若可执行模块的实际长度不超过2个字节,则以该实际长度作为该可执行模块的长度 指示;否则,将该实际长度跟双字节的无符号整数相除,获取2个字节的余数,以该余数作为 该可执行模块的长度指示。
10.如权利要求8所述的系统,所述电脑安全防护客户端自动将被标记为工作属性的 进程或线程产生的新的可执行模块的特征码加入到本地模块特征库。
全文摘要
本发明公开了一种电脑安全防护方法和系统。所述电脑安全防护方法,包括生成与安全的可执行模块对应的特征码和分类标识码,在客户机划分社会区、系统区和工作区,当客户机运行进程或线程时,计算该进程或线程的特征码,并按照进程或线程的特征码是否已知、是否访问了安全网址以外的网址以及所在目录,将进程或线程被标记为工作属性或社会属性,从而具有对客户机资源的不同权限。本发明使客户机无须依靠病毒库和软件行为识别,即可运行未知的可执行模块,而不对操作系统和应用程序数据造成破坏。
文档编号G06F21/53GK101950339SQ20101028120
公开日2011年1月19日 申请日期2010年9月14日 优先权日2010年9月14日
发明者胡志水 申请人:上海置水软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1