著录项信息
专利名称 | 一种依据白名单进行恶意程序检测的方法 |
申请号 | CN201010256973.3 | 申请日期 | 2010-08-18 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2010-12-22 | 公开/公告号 | CN101924761A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 奇智软件(北京)有限公司 | 申请人地址 |
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 | 当前权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 |
发明人 | 周鸿祎;齐向东 |
代理机构 | 北京国昊天诚知识产权代理有限公司 | 代理人 | 许志勇 |
摘要
本发明公开了一种依据白名单进行恶意程序检测的方法,包括:服务器端的数据库建立合法程序的白名单并进行收集更新;客户端对一程序的程序特征和/或程序行为进行收集并发送到服务器端进行查询,服务器端根据所述程序特征和/或程序行为在所述白名单中进行分析比对,根据比对结果对所述程序的合法性或信任值进行判定并反馈给所述客户端。本发明通过使用白名单对合法程序进行判定,从而将不属于白名单范畴的非合法程序判定为恶意程序,从另一角度进行恶意程序的判定查杀。
1.一种依据白名单进行恶意程序检测的方法,其特征在于,包括:
服务器端的数据库建立合法程序的白名单并进行收集更新;
所述白名单保存合法程序特征和合法程序行为,所述程序特征包括程序文件内的静态特征和静态特征串;
在具有相同或近似行为的程序之间建立行为与特征的关联关系;
根据所述关联关系,自扩展的对数据库进行维护;
客户端对一程序的程序特征和程序行为进行收集并发送到服务器端进行查询,服务器端根据所述程序特征和程序行为在所述白名单中进行分析比对,根据比对结果对所述程序的合法性或信任值进行判定并反馈给所述客户端。
2.如权利要求1所述的方法,其特征在于,所述服务器端根据所述程序特征和程序行为,与所述白名单中保存的合法程序特征和合法程序行为进行比对,如果命中,则判定所述程序为合法程序,并反馈给所述客户端;如果没有命中,则判定所述程序为恶意程序,并反馈给所述客户端。
3.如权利要求2所述的方法,其特征在于,所述服务器端根据程序的一组程序特征和一组程序行为,与所述白名单中保存的合法程序特征和合法程序行为进行比对,根据命中的程度,对所述程序赋予一信任值,并将所述信任值反馈给所述客户端;
所述客户端预设一阈值,根据所述信任值与所述阈值进行比对,如果所述信任值不小于所述阈值,则判定所述程序为合法程序,如果所述信任值小于所述阈值,则判定所述程序为恶意程序。
4.如权利要求3所述的方法,其特征在于,如果所述一组程序特征和一组程序行为在所述白名单中全部命中,则所述服务器端对所述程序赋予一最高信任值;如果所述一组程序特征和一组程序行为在所述白名单中全部未命中,则所述服务器端对所述程序赋予一最低信任值。
5.如权利要求2或3所述的方法,其特征在于,还包括:所述客户端根据所述判定结果决定对恶意程序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序,恢复系统环境。
6.如权利要求2或3所述的方法,其特征在于,还包括:所述客户端根据所述判定结果并结合所述恶意程序的属性,决定是否对该恶意程序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序。
7.如权利要求6所述的方法,其特征在于,所述属性,包括:所述恶意程序是否为自启动程序和/或所述恶意程序是否存在于系统目录内。
8.如权利要求7所述的方法,其特征在于,所述服务器端的数据库对合法程序的白名单进行收集更新的步骤,进一步包括:
周期性通过手工、利用蜘蛛或网络爬虫和/或用户上传对合法程序进行收集;
通过手工或通过工具自动甄别所述合法程序的程序特征和程序行为并保存在所述白名单中。
9.如权利要求7所述的方法,其特征在于,所述服务器端的数据库对合法程序的白名单进行收集更新的步骤,进一步包括:
根据现有已知白名单中的合法程序特征及其对应的程序行为,对未知程序特征及程序行为进行分析,以更新白名单。
10.如权利要求9所述的方法,其特征在于,所述对未知程序特征及其程序行为进行分析的步骤,包括:
如果未知程序特征与现有白名单中的已知程序特征相同,则将该未知程序特征及其程序行为列入白名单;
如果未知程序行为与现有白名单中的已知程序行为相同或近似,则将该未知程序行为及其程序特征列入白名单;
当某程序行为被列入白名单时,在数据库中将该程序行为对应的程序特征列入白名单,并将与该程序行为有关联关系的其他程序行为和程序特征也列入白名单;和/或当某程序特征被列入白名单时,在数据库中将该程序特征对应的程序行为列入白名单,并将与该程序特征有关联关系的其他程序行为和程序特征也列入白名单。
11.如权利要求10所述的方法,其特征在于,进一步包括:
根据所述具有相同或近似行为的程序之间的关联关系,对未知程序特征及程序行为进行分析,以更新白名单。
一种依据白名单进行恶意程序检测的方法\n技术领域\n[0001] 本发明属于网络安全领域,具体地说,涉及一种依据白名单进行恶意程序检测的方法。\n背景技术\n[0002] 传统的恶意程序防杀主要依赖于特征库模式。特征库是由厂商收集到的恶意程序样本的特征码组成,而特征码则是分析工程师从恶意程序中找到和正当软件的不同之处,截取一段类似于“搜索关键词”的程序代码。当查杀过程中,引擎会读取文件并与特征库中的所有特征码“关键词”进行匹配,如果发现文件程序代码被命中,就可以判定该文件程序为恶意程序。\n[0003] 之后又衍生出了在本地启发式杀毒的方式,是以特定方式实现的动态高度器或反编译器,通过对有关指令序列的反编译逐步理解和确定其蕴藏的真正动机。恶意程序和正常程序的区别可以体现在许多方面,比如:通常一个应用程序在最初的指令,是检查命令行输入有无参数项、清屏和保存原来屏幕显示等,而恶意程序通常最初的指令则是直接写盘操作、解码指令,或搜索某路径下的可执行程序等相关操作指令序列。这些显著的不同之处,一个熟练的程序员在调试状态下只需一瞥便可一目了然。启发式代码扫描技术实际上就是把这种经验和知识移植到一个查杀病毒软件中的具体程序体现。\n[0004] 但是上述查杀恶意软件的方法都是基于恶意行为和/或恶意特征,先对一个程序判定其是否为恶意程序,然后再决定是否进行查杀或者清理。这就不可避免导致出现了如下弊端。\n[0005] 据统计,现今全球恶意程序数量呈几何级增长,基于这种爆发式的增速,特征库的生成与更新往往是滞后的,特征库中恶意程序的特征码的补充跟不上层出不穷的未知恶意程序。\n[0006] 另外,近年来,随着恶意程序制作者对免杀技术的应用,通过对恶意程序加壳或修改该恶意程序的特征码的手法越来越多的出现;以及许多木马程序采用了更多更频繁快速的自动变形,这些都导致通过恶意行为和/或恶意特征对恶意程序进行判定的难度越来越大,从而引起对恶意程序的查杀或清理的困难。\n发明内容\n[0007] 有鉴于此,本发明所要解决的技术问题是提供了一种依据白名单进行恶意程序检测的方法,不依赖于本地数据库,并且基于对合法程序的认定来反向判定恶意程序。\n[0008] 为了解决上述技术问题,本发明公开了一种依据白名单进行恶意程序检测的方法,包括:服务器端的数据库建立合法程序的白名单并进行收集更新;客户端对一程序的程序特征和/或程序行为进行收集并发送到服务器端进行查询,服务器端根据所述程序特征和/或程序行为在所述白名单中进行分析比对,根据比对结果对所述程序的合法性或信任值进行判定并反馈给所述客户端。\n[0009] 进一步地,所述服务器端根据所述程序特征和/或程序行为,与所述白名单中保存的合法程序特征和/或合法程序行为进行比对,如果命中,则判定所述程序为合法程序,并反馈给所述客户端;如果没有命中,则判定所述程序为恶意程序,并反馈给所述客户端。\n[0010] 进一步地,所述服务器端根据程序的一组程序特征和/或一组程序行为,与所述白名单中保存的合法程序特征和/或合法程序行为进行比对,根据命中的程度,对所述程序赋予一信任值,并将所述信任值反馈给所述客户端;所述客户端预设一阈值,根据所述信任值与所述阈值进行比对,如果所述信任值不小于所述阈值,则判定所述所述程序为合法程序,如果所述信任值小于所述阈值,则判定所述程序为恶意程序。\n[0011] 进一步地,如果所述一组程序特征和/或一组程序行为在所述白名单中全部命中,则所述服务器端对所述程序赋予一最高信任值;如果所述一组程序特征和/或一组程序行为在所述白名单中全部未命中,则所述服务器端对所述程序赋予一最低信任值。\n[0012] 进一步地,还包括:所述客户端根据所述判定结果决定对恶意程序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序,恢复系统环境。\n[0013] 进一步地,还包括:所述客户端根据所述判定结果并结合所述恶意程序的属性,决定是否对该恶意程序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序。\n[0014] 进一步地,所述属性,包括:所述恶意程序是否为自启动程序和/或所述恶意程序是否存在于系统目录内。\n[0015] 进一步地,所述服务器端的数据库对合法程序的白名单进行收集更新的步骤,包括:周期性通过手工、利用蜘蛛或网络爬虫和/或用户上传对合法程序进行收集;通过手工或通过工具自动甄别所述合法程序的程序特征和或程序行为并保存在所述白名单中。\n[0016] 进一步地,所述服务器端的数据库对合法程序的白名单进行收集更新的步骤,包括:根据现有已知白名单中的合法程序特征及其对应的程序行为,对未知程序特征及程序行为进行分析,以更新白名单。\n[0017] 进一步地,所述程序特征,包括:程序文件内的静态特征和/或静态特征串。\n[0018] 进一步地,所述对未知程序特征及其程序行为进行分析的步骤,包括:如果未知程序特征与现有白名单中的已知程序特征相同,则将该未知程序特征及其程序行为列入白名单;如果未知程序行为与现有白名单中的已知程序行为相同或近似,则将该未知程序行为及其程序特征列入白名单;当某程序行为被列入白名单时,在数据库中将该程序行为对应的程序特征列入白名单,并将与该程序行为有关联关系的其他程序行为和程序特征也列入白名单;和/或当某程序特征被列入白名单时,在数据库中将该程序特征对应的程序行为列入白名单,并将与该程序特征有关联关系的其他程序行为和程序特征也列入白名单。\n[0019] 进一步地,还包括:在具有相同或近似行为的程序之间建立行为与特征的关联关系,根据所述具有相同或近似行为的程序之间的关联关系,对未知程序特征及程序行为进行分析,以更新白名单。\n[0020] 与现有的方案相比,本发明所获得的技术效果:\n[0021] 本发明通过使用白名单对合法程序进行判定,从而将不属于白名单范畴的非合法程序判定为恶意程序,从另一角度进行恶意程序的判定查杀;\n[0022] 同时引入云安全架构,将所有“云安全”客户端与“云安全”服务器实时连接,将合法程序的判定分析放在服务器端完成;\n[0023] 另外,本发明还通过客户端收集程序行为并关联到程序特征,从而在数据库中记录程序特征及其对应的程序行为,根据收集到的程序行为和程序特征的关联关系,可以在数据库中对样本进行分析归纳,从而有助于对软件或程序进行合法判别。\n附图说明\n[0024] 图1为本发明的实施模式示意图;\n[0025] 图2本发明的依据白名单进行恶意程序检测的方法流程图;\n[0026] 图3为根据本发明实施例所述的关联关系示意图。\n具体实施方式\n[0027] 以下将配合图式及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。\n[0028] 本发明的核心构思在于:服务器端的数据库建立合法程序的白名单并进行收集更新;客户端对一程序的程序特征和/或程序行为进行收集并发送到服务器端进行查询,服务器端根据所述程序特征和/或程序行为在所述白名单中进行分析比对,根据比对结果对所述程序进行判定并反馈给所述客户端。\n[0029] 下面对于由大量客户端计算机102-服务器端104构成的云安全模式下的白名单检测恶意程序方法进行说明。云结构就是一个大型的客户端/服务器(CS)架构,如图1所示,为本发明的实施模式示意图。\n[0030] 参考图2为本发明的依据白名单进行恶意程序检测的方法流程图,包括:\n[0031] S1,服务器端的数据库建立合法程序的白名单并进行收集更新;\n[0032] S2,客户端对一程序的程序特征和/或程序行为进行收集并发送到服务器端进行查询;\n[0033] S3,服务器端根据所述程序特征和/或程序行为在所述白名单中进行分析比对,根据比对结果对所述程序进行判定并反馈给所述客户端;\n[0034] S4,所述客户端根据所述判定结果决定对恶意程序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序,恢复系统环境;或者\n[0035] 所述客户端根据所述判定结果并结合所述恶意程序的属性,决定是否对该恶意程序行为进行拦截、终止执行该恶意程序和/或清理该恶意程序;\n[0036] 所述属性,包括:所述恶意程序是否为自启动程序和/或所述恶意程序是否存在于系统目录内。\n[0037] 对于步骤S3,可以具体由以下方式实现。\n[0038] 第一方式:所述服务器端根据所述程序特征和/或程序行为,与所述白名单中保存的合法程序特征和/或合法程序行为进行比对,如果命中,则判定所述程序为合法程序,并反馈给所述客户端;如果没有命中,则判定所述程序为恶意程序,并反馈给所述客户端。\n[0039] 第二方式:所述服务器端根据程序的一组程序特征和/或一组程序行为,与所述白名单中保存的合法程序特征和/或合法程序行为进行比对,根据命中的程度,对所述程序赋予一信任值,并将所述信任值反馈给所述客户端;所述客户端预设一阈值,根据所述信任值与所述阈值进行比对,如果所述信任值不小于所述阈值,则判定所述所述程序为合法程序,如果所述信任值小于所述阈值,则判定所述程序为恶意程序。\n[0040] 对于信任值的设定,如果所述一组程序特征和/或一组程序行为在所述白名单中全部命中,则所述服务器端对所述程序赋予一最高信任值;如果所述一组程序特征和/或一组程序行为在所述白名单中全部未命中,则所述服务器端对所述程序赋予一最低信任值;处于上述两命中率之间的程序按所述上述趋势设定。\n[0041] 对于步骤S1,所述服务器端的数据库对合法程序的白名单进行收集更新的步骤,可以由以下方式实现。\n[0042] 第一方式:由技术人员周期性通过手工、利用蜘蛛或网络爬虫和/或用户上传对合法程序进行收集;通过手工或通过工具自动甄别所述合法程序的程序特征和或程序行为并保存在所述白名单中。\n[0043] 第二方式:根据现有已知白名单中的合法程序特征及其对应的程序行为,对未知程序特征及程序行为进行分析,以更新白名单。\n[0044] 所述程序特征,可以是程序文件内的静态特征,如经由MD5(Message-Digest Algorithm 5,信息-摘要算法)运算得出的MD5验证码,或SHA1码,或CRC(Cyclic Redundancy Check,循环冗余校验)码等可唯一标识原程序的特征码;也可以是程序文件内的静态特征串。\n[0045] 下面对于第二方式中服务器端的数据库白名单的构建及动态维护进行下说明。\n[0046] 其处理思路主要是:根据现有已知白名单中的程序特征及其对应的程序行为,对未知程序特征及程序行为进行分析,以更新白名单。这种对比分析有时候不需要对程序的行为本身做追踪分析,只需要简单的与现有白名单中的已知程序行为做比对即可判定未知程序的性质。\n[0047] 由于在数据库中记录了程序特征及该特征对应的行为记录,因此可以结合已知白名单对未知程序进行分析。\n[0048] 例如,如果未知程序特征与现有白名单中的已知程序特征相同,则将该未知程序特征及其程序行为都列入白名单。\n[0049] 如果未知程序行为与现有白名单中的已知程序行为相同或近似,则将该未知程序行为及其程序特征都列入白名单。\n[0050] 通过数据库中的记录分析,我们可以发现,有一些程序的行为相同或近似,但程序特征不同,这时,只要我们在具有相同或近似行为的程序之间建立行为与特征的关联关系,并根据这种关联关系,就可以更便捷的对未知程序特征及程序行为进行分析,以更新白名单。\n[0051] 如图3所示,为根据本发明实施例所述的关联关系示意图。假设未知程序A、B和C的特征分别为A、B和C,其各自对应的程序行为为A1~A4,B1~B4,C1~C4。如果经过分析发现程序行为A1~A4,B1~B4,C1~C4之间实质上相同或非常近似,那么就可以在特征A、B、C和行为A1~A4,B1~B4,C1~C4之间建立特征与行为的关联关系。\n[0052] 通过这种关联关系,在某些条件下可以更加快捷的自扩展的对数据库进行维护。\n例如,当程序B的程序行为B1~B4被确认为合法程序行为并被列入白名单时,可以在数据库中自动将与该程序行为对应的程序特征B列入白名单,同时,根据关联关系,可以自动将与该程序行为有关联关系的程序行为A1~A4,C1~C4及对应的程序特征A,特征C也列入白名单。\n[0053] 再例如,如果最初时程序A、B和C都属于黑白未知的程序,而经由其他病毒查杀途径,程序特征B首先被确认为属于合法程序的特征,则在数据库中可以自动将行为B1~B4的组合列入白名单,还可以根据关联关系,将具有相同或近似行为的特征A和C也列入白名单,并将程序行为A1~A4,C1~C4也列入白名单。\n[0054] 本发明由于在数据库中记录了程序特征对应的行为,这就使得对未知程序的行为分析提供了很大的便利。本发明上述分析方法不限于此,还可以利用类似于决策树,贝叶斯算法,神经网域计算等方法,或者使用简单的阈值分析,都可以在本发明的数据库基础上得到很好的应用。\n[0055] 上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
法律信息
- 2022-07-29
专利权的转移
登记生效日: 2022.07.15
专利权人由北京奇虎科技有限公司变更为北京奇虎科技有限公司
地址由100088 北京市西城区新街口外大街28号D座112室(德胜园区)变更为100015 北京市朝阳区酒仙桥路6号院2号楼1至19层104号内8层801
专利权人由奇智软件(北京)有限公司 变更为空
- 2013-11-06
- 2011-06-29
专利申请权的转移
登记生效日: 2011.05.20
申请人由奇智软件(北京)有限公司变更为北京奇虎科技有限公司
地址由100016 北京市朝阳区酒仙桥路14号兆维大厦4层东侧单元变更为100088 北京市西城区新街口外大街28号D座112室(德胜园区)
申请人变更为奇智软件(北京)有限公司
- 2011-02-02
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201010256973.3
申请日: 2010.08.18
- 2010-12-22
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-02-17
|
2009-07-10
| | |
2
| |
2006-05-03
|
2005-09-29
| | |
3
| |
2010-07-28
|
2010-02-05
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |