公开/公告号CN103824018A
专利类型发明专利
公开/公告日2014-05-28
原文格式PDF
申请/专利权人 腾讯科技(深圳)有限公司;
申请/专利号CN201210468022.1
发明设计人 郭祎斌;
申请日2012-11-19
分类号G06F21/56;
代理机构北京路浩知识产权代理有限公司;
代理人王莹
地址 518000 广东省深圳市福田区振兴路赛格科技园2栋东403室
入库时间 2024-02-19 23:58:24
法律状态公告日
法律状态信息
法律状态
2017-11-14
授权
授权
2015-05-13
实质审查的生效 IPC(主分类):G06F21/56 申请日:20121119
实质审查的生效
2014-05-28
公开
公开
技术领域
本发明涉及网络安全技术领域,尤其涉及一种可执行文件处理方 法以及可执行文件监控方法。
背景技术
对于主机反病毒安全软件来讲,分成静态防御和动态防御两大基 本技术,这两个方面是对抗病毒传播的基石。其中,动态防御是保障 用户机器安全的一项重要技术,文件监控又是动态防御体系中的重要 组成部分。文件监控中,有一项重要功能就是当一个可执行文件在被 系统执行的时候,应该首先辨别这个可执行文件是否是恶意程序,其 中包括进程文件(exe)和动态链接库文件(dll),处于安全性考虑,这 个步骤一般是阻塞住可执行文件的执行流程,等待查杀完毕,如果不 是病毒,则放行可执行文件并继续执行。一般来讲,用户机器中病毒 文件所占有的比例是很小的。如果用户不访问恶意网站,或者本身操 作系统没有太多的漏洞,不会感染太多的病毒。所以在一般的用户场 景下,程序查杀的都是正常文件。
为了提高查杀效率,现有技术中,当文件监控拦截了执行动作后, 文件监控查杀执行文件,然后将查杀结果写入一个缓存,当下次这个 文件再执行的时候,直接命中缓存,达到不重复查杀的目的。这样使 得文件监控查杀可执行文件,对系统的影响减小。然而这种方案必须 建立在客户机器上文件监控已经查杀了可执行文件的基础上,因为如 果用户第一次安装杀毒软件,这个加速cache实际上必须等到用户执行 了相关文件之后才能建立。用户首次启动杀毒软件的时候,文件监控 还是会拖慢系统的执行速度。
发明内容
(一)技术问题
本发明要解决的问题是:可执行文件在执行时候,提高杀毒软件的 查杀可执行文件的速度,达到文件监控对系统在执行文件的时候,对 操作系统干扰最小化。
(二)技术方案
本发明提供一种可执行文件查杀加速方法,该方法包括:
收集可执行文件列表;
根据所述列表采样可执行文件的信息,并利用所述信息建立白名 单文件;
根据所述列表和信息验证所述白名单文件是否组建成功;
客户端查找引擎利用所述组建成功的白名单文件直接获取一正在 执行文件的查杀结果。
可选的,根据所述列表采样可执行文件的信息进一步包括:
一次性运行所述列表中的可执行文件,监控每个所述可执行文件 在操作系统中加载到内存的内存区间数据;
将所有的内存区间数据进行合并;
将合并后的内存区间数据与可执行文件进行映射,获得可执行文 件的文件区间、映射文件内容以及基本信息;
计算上述信息的hash值。
可选的,该方法还包括:
将可执行文件的文件区间、文件内容以及基本信息以key-value方 式存储到数据库中,其中key为文件全内容hash值,value为映射文件 内容hash值和文件区间数据。
可选的,收集可执行文件列表进一步包括:
统计出操作系统常用核心进程文件和动态链接库文件;
收集与运行软件相关的加载进程文件和其动态链接文件;
根据上述文件建立可执行文件列表。
可选的,根据所述列表和信息验证所述白名单文件是否组建成功 进一步包括:
计算所述列表中任一文件的全内容hash,根据所述全内容hash在 所述数据库中查找先关文件内存区间数据;
根据内存区间数据,计算相关区间的内存映射数据hash;
将所述内存映射hash与数据库中相应的hash进行比较,以判断所 述内存映射hash是否完整。
可选的,根据所述列表和信息验证所述白名单文件是否组建成功 还包括:
任取一个白名单文件;
根据所述白名单文件中的区间计算所有黑文件的hash值;
判断所述hash值是否命中数据库中的hash值;
如果命中,则调整区间,重新计算所有黑文件的hash值,如果没 有,则判断白名单文件正常;
当判断所述内存映射hash完整并且白名单文件正常时,则验证所 述白名单文件组建成功。
可选的,所述客户端查找引擎利用所述组建成功的白名单文件直 接获取一正在执行文件的查杀结果进一步包括:
文件监控装置监控可执行文件的运行;
当监控到可执行文件运行后,检查本地缓存中是否有所述文件;
如果有,则直接利用本地缓存中的结果,如果没有,则检查是否 在所述验证组建成功的白名单文件中,如果是,则将相关的结果写入 本地缓存中,如果否,则中止可执行文件的运行流程并进行查杀。
本发明还提供一种可执行文件查杀加速装置,该装置包括:
收集单元,用于收集可执行文件列表;
采样单元,用于根据所述列表采样可执行文件的信息,并利用所 述信息建立白名单文件;
验证单元,用于根据所述列表和信息验证所述白名单文件是否组 建成功;
其中所述组建成功的白名单文件应用于查找引擎以直接获取一正 在执行文件的查杀结果。
可选的,所述采样单元进一步包括:
监控子单元,用于在一次性运行所述列表中的可执行文件时监控 每个所述可执行文件在操作系统中加载到内存的内存区间数据;
采样子单元,用于根据所述内存区间数据采样可执行文件的信息。
可选的,所述采样子单元进一步包括:
合并单元,用于将所有的内存区间数据进行合并;
映射单元,用于将合并后的内存区间数据与可执行文件进行映射, 并获得可执行文件的文件区间、文件内容以及基本信息。
可选的,该装置还包括存储单元,用于将可执行文件的文件区间、 文件内容以及基本信息以key-value方式存储到数据库中,其中key为 文件全内容hash,value为内存映射数据hash和内存区间数据,所述内 存映射数据是内存区间数据映射到文件上的数据。
可选的,所述收集单元进一步包括:
统计单元,用于统计出操作系统常用核心进程文件和动态链接库 文件;
收集子单元,用于收集与运行软件相关的加载进程文件和其动态 链接文件;
列表产生单元,用于根据上述文件建立可执行文件列表。
(三)技术效果
本发明通过使用自动生成的白名单,提高了杀毒软件的查杀可执 行文件的速度,达到文件监控对系统在执行文件的时候,对操作系统 干扰最小化。
附图说明
图1表示本发明中可执行文件查杀加速方法的流程图;
图2表示本发明中自动产生白名单文件的流程图;
图3表示本发明中执行文件查杀时的流程图;
图4表示本发明中可执行文件查杀加速装置的结构图;
图5表示本发明中可执行文件查杀加速装置的详细结构图。
具体实施方式
本发明提供一种可执行文件查杀加速方法,如图1所示,该方法 包括:
收集可执行文件列表(S1);
根据所述列表采样可执行文件的信息,并利用所述信息建立白名 单文件(S2);
根据所述列表和信息验证所述白名单文件是否组建成功(S3);
客户端查找引擎利用所述组建成功的白名单文件直接获取一正在 执行文件的查杀结果(S4)。
通过上述方案,可以达到在拦截可执行文件的过程中,杀毒软件通 过自动生成的白名单直接获取白名单中列出的可执行文件的查杀结 果,从而占用较少的处理资源,也不需要中止可执行文件的运行,对 操作系统的影响最小。
经过统计发现,文件监控的可执行动作拦截,大部分都是拦截了操 作系统的核心文件,同时这些核心文件都会在操作系统中,当进程启 动的时候被反复加载很多遍。而且一个操作系统中,大部分的文件都 是正常文件,病毒和恶意文件占有的比例很小。因而上述可执行文件 应包括与操作系统相关的核心进程文件和其动态链接文件,即在一次 性运行指定的可执行文件前,应收集或者统计与操作系统相关的核心 进程文件和其动态链接文件,并形成核心进程文件和其动态链接文件 的文件列表。
文件监控的可执行动作拦截,还拦截了相当部分的常用软件,因而 可执行文件还应包括一些常用软件。根据一段时间的统计,例如(3个 月,半年等等),统计出相关软件的相关版本信息,同时通过运行相关 软件,统计出相关软件的一般加载进程文件(exe)和动态链接库文 件(dll)的列表。
将这些列表汇总,统计出相关的文件,以此作为白名单文件的基础 数据。
因而,收集可执行文件列表可进一步包括:
统计出操作系统常用核心进程文件和动态链接库文件;
收集与运行软件相关的加载进程文件和其动态链接文件;
根据上述文件建立可执行文件列表。
可选的,如图2所示,根据所述列表采样可执行文件的信息进一 步包括:
一次性运行所述列表中的可执行文件,监控每个所述可执行文件 在操作系统中加载到内存的内存区间数据(S21);
根据所述内存区间数据采样可执行文件的信息(S22,S223,S24)。
在操作系统中一次运行这些相关软件时,可运用现有的集群,然 后通过自己的内存采样程序采样在首次启动这个执行文件的时候的内 存区间数据。内存采样程序,功能就是监控指定的可执行文件在操作 系统执行可执行文件的时候,加载文件到内存中的内容。因为操作系 统不可能将可执行文件中所有的内容都加载到内存中,所以是部分加 载。通过利用内存采样程序了减少白名单计算量,而且由于内存区间 数据是操作系统已经预先加载到内存中,基本上不会有磁盘IO。
可执行文件在操作系统首次加载部分一般都是不相同的,我们针对 这个部分做hash,生成白名单一般就可以了。
因而,如图2所示:根据所述内存区间数据采样可执行文件的信 息可进一步包括:
将所有的内存区间数据进行合并(S22);
将合并后的内存区间数据与可执行文件进行映射,获得可执行文 件的文件区间、映射文件内容以及基本信息(S23);
计算上述信息的hash值(S24)。
将计算出的hash唯一校验数据以Key-value方式组织进入数据库。 其中Key是文件全内容hash,或者用户的安装目录等等。Value是根据 映射文件内容计算出来的hash数值和文件区间数据,对生成的白名单 进行验证,以测试白名单文件是否正常。
根据所述列表和信息验证所述白名单文件是否组建成功进一步包 括:
计算所述列表中任一文件的全内容hash,根据所述全内容hash在 所述数据库中查找先关文件内存区间数据;
根据内存区间数据,计算相关区间的内存映射数据hash;
将所述内存映射hash与数据库中相应的hash进行比较,以判断所 述内存映射hash是否完整。
当判断所述内存映射hash完整并且白名单文件正常时,则验证所 述白名单文件组建成功。
也可利用黑文件对生成的白名单进行测试,以测试白名单文件是 否正常,具体程序流程如下:
根据所述列表和信息验证所述白名单文件是否组建成功还可包 括:
任取一个白名单文件;
根据所述白名单文件中的区间计算所有黑文件的hash值;
判断所述hash值是否命中数据库中的hash值;
如果命中,则调整区间,重新计算所有黑文件的hash值,如果没 有,则判断白名单文件正常;
总之,正常白名单文件必须满足:
1.不能和恶意文件向冲突,就是恶意文件不能进入这个白名单;
2.收集有限的文件,根据热度淘汰相关;
3.必须可升级。
将生成的上述白名单公布给客户端,客户端在首次启动的时候, 利用所述白名单进行可执行的监控,如图3所示,所述客户端查找引 擎利用所述组建成功的白名单文件直接获取一正在执行文件的查杀结 果(S4)进一步包括:
文件监控装置监控可执行文件的运行(S41);
当监控到可执行文件运行后,检查本地缓存中是否有所述文件 (S42);
如果有,则直接利用本地缓存中的结果(S43),如果没有,则检查 是否在所述验证组建成功的白名单文件中(S44),如果是,则将相关的 结果写入本地缓存中(S45),如果否,则中止可执行文件的运行流程并 进行查杀(S46)。
本发明还提供一种可执行文件查杀加速装置,如图4所示,该装 置包括:
收集单元(1),用于收集可执行文件列表;
采样单元(2),用于根据所述列表采样可执行文件的信息,并利 用所述信息建立白名单文件;
验证单元(3),用于根据所述列表和信息验证所述白名单文件是 否组建成功;
其中所述组建成功的白名单文件应用于查找引擎以直接获取一正 在执行文件的查杀结果。
如图5所示,所述采样单元可进一步包括:
监控子单元(21),用于在一次性运行所述列表中的可执行文件时 监控每个所述可执行文件在操作系统中加载到内存的内存区间数据;
采样子单元(22),用于根据所述内存区间数据采样可执行文件的 信息。
所述采样子单元(22)可进一步包括:
合并单元(221),用于将所有的内存区间数据进行合并;
映射单元(222),用于将合并后的内存区间数据与可执行文件进 行映射,并获得可执行文件的文件区间、文件内容以及基本信息。
所述收集单元(1)进一步包括:
统计单元(11),用于统计出操作系统常用核心进程文件和动态链 接库文件;
收集子单元(12),用于收集与运行软件相关的加载进程文件和其 动态链接文件;
列表产生单元(13),用于根据上述文件建立可执行文件列表。
该装置还包括存储单元(4),用于将可执行文件的文件区间、文 件内容以及基本信息以key-value方式存储到数据库中,其中key为文 件全内容hash,value为内存映射数据hash和内存区间数据,所述内存 映射数据是内存区间数据映射到文件上的数据。
总之本发明可加速可执行文件在执行时候杀毒软件的查杀可执行 文件查杀速度,达到文件监控对系统在执行文件的时候对操作系统干 扰最小化。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关 技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下, 还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明 的范畴,本发明的专利保护范围应由权利要求限定。
机译: 可执行文件加密程序,可执行文件加密程序生成设备,通过可执行程序进行的文件加密方法,可执行文件加密程序生成方法以及具有可执行文件加密程序的文件加密方法
机译: 一种用于从父可执行文件生成可执行文件以生成派生客户项的方法
机译: 从父可执行文件生成可执行文件以生成派生客户项的方法