一种依据白名单进行恶意程序检测的方法

文档序号:7757305阅读:222来源:国知局
专利名称:一种依据白名单进行恶意程序检测的方法
技术领域
本发明属于网络安全领域,具体地说,涉及一种依据白名单进行恶意程序检测的 方法。
背景技术
传统的恶意程序防杀主要依赖于特征库模式。特征库是由厂商收集到的恶意程序 样本的特征码组成,而特征码则是分析工程师从恶意程序中找到和正当软件的不同之处, 截取一段类似于“搜索关键词”的程序代码。当查杀过程中,引擎会读取文件并与特征库中 的所有特征码“关键词”进行匹配,如果发现文件程序代码被命中,就可以判定该文件程序 为恶意程序。之后又衍生出了在本地启发式杀毒的方式,是以特定方式实现的动态高度器或反 编译器,通过对有关指令序列的反编译逐步理解和确定其蕴藏的真正动机。恶意程序和正 常程序的区别可以体现在许多方面,比如通常一个应用程序在最初的指令,是检查命令行 输入有无参数项、清屏和保存原来屏幕显示等,而恶意程序通常最初的指令则是直接写盘 操作、解码指令,或搜索某路径下的可执行程序等相关操作指令序列。这些显著的不同之 处,一个熟练的程序员在调试状态下只需一瞥便可一目了然。启发式代码扫描技术实际上 就是把这种经验和知识移植到一个查杀病毒软件中的具体程序体现。但是上述查杀恶意软件的方法都是基于恶意行为和/或恶意特征,先对一个程序 判定其是否为恶意程序,然后再决定是否进行查杀或者清理。这就不可避免导致出现了如 下弊端。据统计,现今全球恶意程序数量呈几何级增长,基于这种爆发式的增速,特征库的 生成与更新往往是滞后的,特征库中恶意程序的特征码的补充跟不上层出不穷的未知恶意 程序。另外,近年来,随着恶意程序制作者对免杀技术的应用,通过对恶意程序加壳或修 改该恶意程序的特征码的手法越来越多的出现;以及许多木马程序采用了更多更频繁快速 的自动变形,这些都导致通过恶意行为和/或恶意特征对恶意程序进行判定的难度越来越 大,从而引起对恶意程序的查杀或清理的困难。

发明内容
有鉴于此,本发明所要解决的技术问题是提供了一种依据白名单进行恶意程序检 测的方法,不依赖于本地数据库,并且基于对合法程序的认定来反向判定恶意程序。为了解决上述技术问题,本发明公开了一种依据白名单进行恶意程序检测的方 法,包括服务器端的数据库建立合法程序的白名单并进行收集更新;客户端对一程序的 程序特征和/或程序行为进行收集并发送到服务器端进行查询,服务器端根据所述程序特 征和/或程序行为在所述白名单中进行分析比对,根据比对结果对所述程序的合法性或信 任值进行判定并反馈给所述客户端。
进一步地,所述服务器端根据所述程序特征和/或程序行为,与所述白名单中保 存的合法程序特征和/或合法程序行为进行比对,如果命中,则判定所述程序为合法程序, 并反馈给所述客户端;如果没有命中,则判定所述程序为恶意程序,并反馈给所述客户端。进一步地,所述服务器端根据程序的一组程序特征和/或一组程序行为,与所述 白名单中保存的合法程序特征和/或合法程序行为进行比对,根据命中的程度,对所述程 序赋予一信任值,并将所述信任值反馈给所述客户端;所述客户端预设一阈值,根据所述信 任值与所述阈值进行比对,如果所述信任值不小于所述阈值,则判定所述所述程序为合法 程序,如果所述信任值小于所述阈值,则判定所述程序为恶意程序。进一步地,如果所述一组程序特征和/或一组程序行为在所述白名单中全部命 中,则所述服务器端对所述程序赋予一最高信任值;如果所述一组程序特征和/或一组程 序行为在所述白名单中全部未命中,则所述服务器端对所述程序赋予一最低信任值。进一步地,还包括所述客户端根据所述判定结果决定对恶意程序行为进行拦截、 终止执行该恶意程序和/或清理该恶意程序,恢复系统环境。进一步地,还包括所述客户端根据所述判定结果并结合所述恶意程序的属性,决 定是否对该恶意程序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序。进一步地,所述属性,包括所述恶意程序是否为自启动程序和/或所述恶意程序 是否存在于系统目录内。进一步地,所述服务器端的数据库对合法程序的白名单进行收集更新的步骤,包 括周期性通过手工、利用蜘蛛或网络爬虫和/或用户上传对合法程序进行收集;通过手工 或通过工具自动甄别所述合法程序的程序特征和或程序行为并保存在所述白名单中。进一步地,所述服务器端的数据库对合法程序的白名单进行收集更新的步骤,包 括根据现有已知白名单中的合法程序特征及其对应的程序行为,对未知程序特征及程序 行为进行分析,以更新白名单。进一步地,所述程序特征,包括程序文件内的静态特征和/或静态特征串。进一步地,所述对未知程序特征及其程序行为进行分析的步骤,包括如果未知程 序特征与现有白名单中的已知程序特征相同,则将该未知程序特征及其程序行为列入白名 单;如果未知程序行为与现有白名单中的已知程序行为相同或近似,则将该未知程序行为 及其程序特征列入白名单;当某程序行为被列入白名单时,在数据库中将该程序行为对应 的程序特征列入白名单,并将与该程序行为有关联关系的其他程序行为和程序特征也列入 白名单;和/或当某程序特征被列入白名单时,在数据库中将该程序特征对应的程序行为 列入白名单,并将与该程序特征有关联关系的其他程序行为和程序特征也列入白名单。进一步地,还包括在具有相同或近似行为的程序之间建立行为与特征的关联关 系,根据所述具有相同或近似行为的程序之间的关联关系,对未知程序特征及程序行为进 行分析,以更新白名单。与现有的方案相比,本发明所获得的技术效果本发明通过使用白名单对合法程序进行判定,从而将不属于白名单范畴的非合法 程序判定为恶意程序,从另一角度进行恶意程序的判定查杀;同时引入云安全架构,将所有“云安全”客户端与“云安全”服务器实时连接,将合 法程序的判定分析放在服务器端完成;
另外,本发明还通过客户端收集程序行为并关联到程序特征,从而在数据库中记 录程序特征及其对应的程序行为,根据收集到的程序行为和程序特征的关联关系,可以在 数据库中对样本进行分析归纳,从而有助于对软件或程序进行合法判别。


图1为本发明的实施模式示意图;图2本发明的依据白名单进行恶意程序检测的方法流程图;图3为根据本发明实施例所述的关联关系示意图。
具体实施例方式以下将配合图式及实施例来详细说明本发明的实施方式,藉此对本发明如何应用 技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。本发明的核心构思在于服务器端的数据库建立合法程序的白名单并进行收集更 新;客户端对一程序的程序特征和/或程序行为进行收集并发送到服务器端进行查询,服 务器端根据所述程序特征和/或程序行为在所述白名单中进行分析比对,根据比对结果对 所述程序进行判定并反馈给所述客户端。下面对于由大量客户端计算机102-服务器端104构成的云安全模式下的白名单 检测恶意程序方法进行说明。云结构就是一个大型的客户端/服务器(CS)架构,如图1所 示,为本发明的实施模式示意图。参考图2为本发明的依据白名单进行恶意程序检测的方法流程图,包括Si,服务器端的数据库建立合法程序的白名单并进行收集更新;S2,客户端对一程序的程序特征和/或程序行为进行收集并发送到服务器端进行 查询;S3,服务器端根据所述程序特征和/或程序行为在所述白名单中进行分析比对, 根据比对结果对所述程序进行判定并反馈给所述客户端;S4,所述客户端根据所述判定结果决定对恶意程序行为进行拦截、终止执行该恶 意程序和/或清理该恶意程序,恢复系统环境;或者所述客户端根据所述判定结果并结合所述恶意程序的属性,决定是否对该恶意程 序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序;所述属性,包括所述恶意程序是否为自启动程序和/或所述恶意程序是否存在 于系统目录内。对于步骤S3,可以具体由以下方式实现。第一方式所述服务器端根据所述程序特征和/或程序行为,与所述白名单中保 存的合法程序特征和/或合法程序行为进行比对,如果命中,则判定所述程序为合法程序, 并反馈给所述客户端;如果没有命中,则判定所述程序为恶意程序,并反馈给所述客户端。第二方式所述服务器端根据程序的一组程序特征和/或一组程序行为,与所述 白名单中保存的合法程序特征和/或合法程序行为进行比对,根据命中的程度,对所述程 序赋予一信任值,并将所述信任值反馈给所述客户端;所述客户端预设一阈值,根据所述信 任值与所述阈值进行比对,如果所述信任值不小于所述阈值,则判定所述所述程序为合法程序,如果所述信任值小于所述阈值,则判定所述程序为恶意程序。对于信任值的设定,如果所述一组程序特征和/或一组程序行为在所述白名单中 全部命中,则所述服务器端对所述程序赋予一最高信任值;如果所述一组程序特征和/或 一组程序行为在所述白名单中全部未命中,则所述服务器端对所述程序赋予一最低信任 值;处于上述两命中率之间的程序按所述上述趋势设定。对于步骤Si,所述服务器端的数据库对合法程序的白名单进行收集更新的步骤, 可以由以下方式实现。第一方式由技术人员周期性通过手工、利用蜘蛛或网络爬虫和/或用户上传对 合法程序进行收集;通过手工或通过工具自动甄别所述合法程序的程序特征和或程序行为 并保存在所述白名单中。第二方式根据现有已知白名单中的合法程序特征及其对应的程序行为,对未知 程序特征及程序行为进行分析,以更新白名单。所述程序特征,可以是程序文件内的静态特征,如经由MD5 (Message-Di gest Algorithm 5,信息-摘要算法)运算得出的MD5验证码,或SHAl码,或CRC (Cyclic Redundancy Check,循环冗余校验)码等可唯一标识原程序的特征码;也可以是程序文件 内的静态特征串。下面对于第二方式中服务器端的数据库白名单的构建及动态维护进行下说明。其处理思路主要是根据现有已知白名单中的程序特征及其对应的程序行为,对 未知程序特征及程序行为进行分析,以更新白名单。这种对比分析有时候不需要对程序的 行为本身做追踪分析,只需要简单的与现有白名单中的已知程序行为做比对即可判定未知 程序的性质。由于在数据库中记录了程序特征及该特征对应的行为记录,因此可以结合已知白 名单对未知程序进行分析。例如,如果未知程序特征与现有白名单中的已知程序特征相同,则将该未知程序 特征及其程序行为都列入白名单。如果未知程序行为与现有白名单中的已知程序行为相同或近似,则将该未知程序 行为及其程序特征都列入白名单。通过数据库中的记录分析,我们可以发现,有一些程序的行为相同或近似,但程序 特征不同,这时,只要我们在具有相同或近似行为的程序之间建立行为与特征的关联关系, 并根据这种关联关系,就可以更便捷的对未知程序特征及程序行为进行分析,以更新白名如图3所示,为根据本发明实施例所述的关联关系示意图。假设未知程序A、B和 C的特征分别为A、B和C,其各自对应的程序行为为Al A4,Bl B4,Cl C4。如果经过 分析发现程序行为Al A4,Bl B4,Cl C4之间实质上相同或非常近似,那么就可以在 特征A、B、C和行为Al A4,Bl B4,Cl C4之间建立特征与行为的关联关系。通过这种关联关系,在某些条件下可以更加快捷的自扩展的对数据库进行维护。 例如,当程序B的程序行为Bl B4被确认为合法程序行为并被列入白名单时,可以在数据 库中自动将与该程序行为对应的程序特征B列入白名单,同时,根据关联关系,可以自动将 与该程序行为有关联关系的程序行为Al A4,Cl C4及对应的程序特征A,特征C也列入白名单。再例如,如果最初时程序A、B和C都属于黑白未知的程序,而经由其他病毒查杀途 径,程序特征B首先被确认为属于合法程序的特征,则在数据库中可以自动将行为Bl B4 的组合列入白名单,还可以根据关联关系,将具有相同或近似行为的特征A和C也列入白名 单,并将程序行为Al A4,Cl C4也列入白名单。本发明由于在数据库中记录了程序特征对应的行为,这就使得对未知程序的行为 分析提供了很大的便利。本发明上述分析方法不限于此,还可以利用类似于决策树,贝叶斯 算法,神经网域计算等方法,或者使用简单的阈值分析,都可以在本发明的数据库基础上得 到很好的应用。上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明 并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、 修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识 进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发 明所附权利要求的保护范围内。
权利要求
一种依据白名单进行恶意程序检测的方法,其特征在于,包括服务器端的数据库建立合法程序的白名单并进行收集更新;客户端对一程序的程序特征和/或程序行为进行收集并发送到服务器端进行查询,服务器端根据所述程序特征和/或程序行为在所述白名单中进行分析比对,根据比对结果对所述程序的合法性或信任值进行判定并反馈给所述客户端。
2.如权利要求1所述的方法,其特征在于,所述服务器端根据所述程序特征和/或程 序行为,与所述白名单中保存的合法程序特征和/或合法程序行为进行比对,如果命中,则 判定所述程序为合法程序,并反馈给所述客户端;如果没有命中,则判定所述程序为恶意程 序,并反馈给所述客户端。
3.如权利要求2所述的方法,其特征在于,所述服务器端根据程序的一组程序特征和 /或一组程序行为,与所述白名单中保存的合法程序特征和/或合法程序行为进行比对,根 据命中的程度,对所述程序赋予一信任值,并将所述信任值反馈给所述客户端;所述客户端预设一阈值,根据所述信任值与所述阈值进行比对,如果所述信任值不小 于所述阈值,则判定所述所述程序为合法程序,如果所述信任值小于所述阈值,则判定所述 程序为恶意程序。
4.如权利要求3所述的方法,其特征在于,如果所述一组程序特征和/或一组程序行为 在所述白名单中全部命中,则所述服务器端对所述程序赋予一最高信任值;如果所述一组 程序特征和/或一组程序行为在所述白名单中全部未命中,则所述服务器端对所述程序赋予一最低信任值。
5.如权利要求2或3所述的方法,其特征在于,还包括所述客户端根据所述判定结果 决定对恶意程序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序,恢复系统环^Mi ο
6.如权利要求2或3所述的方法,其特征在于,还包括所述客户端根据所述判定结果 并结合所述恶意程序的属性,决定是否对该恶意程序行为进行拦截、终止执行该恶意程序 和/或清理该恶意程序。
7.如权利要求6所述的方法,其特征在于,所述属性,包括所述恶意程序是否为自启 动程序和/或所述恶意程序是否存在于系统目录内。
8.如权利要求7所述的方法,其特征在于,所述服务器端的数据库对合法程序的白名 单进行收集更新的步骤,进一步包括周期性通过手工、利用蜘蛛或网络爬虫和/或用户上传对合法程序进行收集; 通过手工或通过工具自动甄别所述合法程序的程序特征和或程序行为并保存在所述 白名单中。
9.如权利要求7所述的方法,其特征在于,所述服务器端的数据库对合法程序的白名 单进行收集更新的步骤,进一步包括根据现有已知白名单中的合法程序特征及其对应的程序行为,对未知程序特征及程序 行为进行分析,以更新白名单。
10.如权利要求8或9所述的方法,其特征在于,所述程序特征,包括程序文件内的静 态特征和/或静态特征串。
11.如权利要求9所述的方法,其特征在于,所述对未知程序特征及其程序行为进行分析的步骤,包括如果未知程序特征与现有白名单中的已知程序特征相同,则将该未知程序特征及其程 序行为列入白名单;如果未知程序行为与现有白名单中的已知程序行为相同或近似,则将该未知程序行为 及其程序特征列入白名单;当某程序行为被列入白名单时,在数据库中将该程序行为对应的程序特征列入白名 单,并将与该程序行为有关联关系的其他程序行为和程序特征也列入白名单;和/或当某程序特征被列入白名单时,在数据库中将该程序特征对应的程序行为列入白名 单,并将与该程序特征有关联关系的其他程序行为和程序特征也列入白名单。
12.如权利要求11所述的方法,其特征在于,进一步包括在具有相同或近似行为的程序之间建立行为与特征的关联关系,根据所述具有相同或 近似行为的程序之间的关联关系,对未知程序特征及程序行为进行分析,以更新白名单。
全文摘要
本发明公开了一种依据白名单进行恶意程序检测的方法,包括服务器端的数据库建立合法程序的白名单并进行收集更新;客户端对一程序的程序特征和/或程序行为进行收集并发送到服务器端进行查询,服务器端根据所述程序特征和/或程序行为在所述白名单中进行分析比对,根据比对结果对所述程序的合法性或信任值进行判定并反馈给所述客户端。本发明通过使用白名单对合法程序进行判定,从而将不属于白名单范畴的非合法程序判定为恶意程序,从另一角度进行恶意程序的判定查杀。
文档编号H04L29/06GK101924761SQ20101025697
公开日2010年12月22日 申请日期2010年8月18日 优先权日2010年8月18日
发明者周鸿祎, 齐向东 申请人:奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1