应用程序的自动分类方法和装置的制造方法

文档序号:10691069阅读:669来源:国知局
应用程序的自动分类方法和装置的制造方法
【专利摘要】本发明提供了一种应用程序的自动分类方法和装置。所述方法包括:获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议;基于所述协议相关信息对所述多个应用程序进行聚类;采用所述应用程序的属性标签添加至同一分类下的其他应用程序。本发明实施例提供的一种应用程序的自动分类方法,可以具体应用于恶意程序的分类,通过获取应用程序通信时所基于的网络通信协议的协议相关信息对应用程序进行聚类,以对协议相关信息同类的恶意程序进行程序分析,从而可以大大减少后期恶意程序的分析工作。
【专利说明】
应用程序的自动分类方法和装置
技术领域
[0001]本发明涉及应用程序技术领域,特别是涉及一种应用程序的自动分类方法和装置。
【背景技术】
[0002]恶意程序主要用于通过C&C服务器通信构建僵尸网络,C&C服务器(又称CNC服务器)也就是Command&Control Server,是指控制僵尸网络的主控服务器,用来和僵尸网络的每个感染了恶意程序的宿主机进行通讯并指挥它们的攻击行为。恶意程序通过和它的C&C服务器通讯获得指令进行攻击活动,包括获取DDoS攻击开始的时间和目标,上传从宿主机偷窃信息,定时给感染的文件加密等。
[0003]通常,恶意程序的制作方通过加壳和混淆代码的方式避开检测,从而使同一恶意程序家族产生大量的多态性变异的恶意程序,导致恶意程序不断增多。而传统的防病毒软件通常很难保证其病毒识别数据库中及时加入这些恶意程序,从而导致不能及时有效检测新出现的恶意程序。

【发明内容】

[0004]本发明提供了一种应用程序的自动分类方法以及一种应用程序的自动分类装置以全部解决或部分解决上述技术问题。
[0005]依据本发明的一个方面,提供了一种应用程序的自动分类方法,包括:
[0006]获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议;
[0007]基于所述协议相关信息对所述多个应用程序进行聚类;
[0008]采用所述应用程序的属性标签添加至同一分类下的其他应用程序。
[0009]可选地,所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息包括:
[0010]从所述应用程序网络通信信息中,解析基于所述网络通信协议的协议相关信息。
[0011]可选地,在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,所述方法还包括:
[0012]在安全监控程序的监控下运行所述多个应用程序,以由所述安全监控程序分别抓取各个应用程序的网络通信信息;
[0013]从所述安全监控程序的关联位置提取所述安全监控程序抓取的网络通信信息。
[0014]可选地,在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,所述方法还包括:
[0015]从运行所述应用程序的多个客户端获取所述客户端记录的网络通信信息。
[0016]可选地,所述网络通信信息为所述应用程序向对应服务器首次发送的网络通信信息,所述协议相关信息为所述首次发送的网络通信信息中包括的网络注册信息。
[0017]可选地,所述基于所述协议相关信息对所述多个应用程序进行聚类包括:
[0018]基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类,所述协议特征数据包括所述协议相关信息的长度、信息熵值、信息格式和字段信息中至少一种。
[0019]可选地,所述协议相关信息为所述网络注册信息,所述协议特征数据包括所述协议相关信息的长度、信息熵值;
[0020]所述基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类包括:
[0021 ]统计所述网络注册信息的长度和信息熵值;
[0022]将长度差值和信息熵值差值均符合设定范围并包括设定字段的多个应用程序归于同类。
[0023]可选地,所述协议特征数据还包括所述信息格式和所述字段信息;
[0024]所述基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类还包括:
[0025]针对同一类应用程序,统计所述应用程序的信息格式和字段信息,所述字段信息包括字段属性、字段位置和字段顺序中至少一种;
[0026]将所述信息格式一致且所述字段信息满足相似条件的应用程序进行聚类。
[0027]可选地,还包括:
[0028]按照至少一个网络通信协议的已知协议特征对所述多个应用程序进行一次聚类;
[0029]所述基于所述协议相关信息对所述多个应用程序进行聚类包括:
[0030]基于所述协议相关信息对所述一次聚类的结果进行二次聚类。
[0031]可选地,还包括:
[0032]针对聚类后获得的各类应用程序,生成描述同一分类下多个应用程序的共同特征的分类规则。
[0033]可选地,还包括:
[0034]按照生成的分类规则,在对应分类的多个应用程序中进行筛选,并对筛选后剩余的应用程序进行重新聚类。
[0035]可选地,还包括:
[0036]对符合相似条件的多个分类规则以及对应的分类进行合并。
[0037]依据本发明的另一个方面,还提供了一种应用程序的自动分类装置,包括:
[0038]协议相关信息获取模块,用于获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议;
[0039]协议聚类模块,用于基于所述协议相关信息对所述多个应用程序进行聚类;
[0040]标签添加模块,用于采用所述应用程序的属性标签添加至同一分类下的其他应用程序。
[0041]可选地,所述协议相关信息获取模块,具体用于从所述应用程序网络通信信息中,解析基于所述网络通信协议的协议相关信息。
[0042]可选地,所述装置还包括:
[0043]程序运行模块,用于在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,在安全监控程序的监控下运行所述多个应用程序,以由所述安全监控程序分别抓取各个应用程序的网络通信信息;
[0044]第一网络通信信息提取模块,用于从所述安全监控程序的关联位置提取所述安全监控程序抓取的网络通信信息。
[0045]可选地,所述装置还包括:
[0046]第二网络通信信息提取模块,用于在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,从运行所述应用程序的多个客户端获取所述客户端记录的网络通信信息。
[0047]可选地,所述网络通信信息为所述应用程序向对应服务器首次发送的网络通信信息,所述协议相关信息为所述首次发送的网络通信信息中包括的网络注册信息。
[0048]可选地,所述协议聚类模块,具体用于基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类,所述协议特征数据包括所述协议相关信息的长度、信息熵值、信息格式和字段信息中至少一种。
[0049]可选地,所述协议相关信息为所述网络注册信息,所述协议特征数据包括所述协议相关信息的长度、信息熵值;
[0050]所述协议聚类模块包括:
[0051]第一特征数据统计子模块,用于统计所述网络注册信息的长度和信息熵值;
[0052]第一恶意程序归类子模块,用于将长度差值和信息熵值差值均符合设定范围并包括设定字段的多个应用程序归于同类。
[0053]可选地,所述协议特征数据还包括所述信息格式和所述字段信息;
[0054]所述协议聚类模块还包括:
[0055]第二特征数据统计子模块,用于针对同一类应用程序,统计所述应用程序的信息格式和字段信息,所述字段信息包括字段属性、字段位置和字段顺序中至少一种;
[0056]第二恶意程序归类子模块,用于将所述信息格式一致且所述字段信息满足相似条件的应用程序进行聚类。
[0057]可选地,还包括:
[0058]已知特征聚类模块,用于按照至少一个网络通信协议的已知协议特征对所述多个应用程序进行一次聚类;
[0059]所述协议聚类模块,具体用于基于所述协议相关信息对所述一次聚类的结果进行二次聚类。
[0060]可选地,还包括:
[0061]规则生成模块,用于针对聚类后获得的各类应用程序,生成描述同一分类下多个应用程序的共同特征的分类规则。
[0062]可选地,还包括:
[0063]程序筛选模块,用于按照生成的分类规则,在对应分类的多个应用程序中进行筛选,并对筛选后剩余的应用程序进行重新聚类。
[0064]可选地,还包括:
[0065]规则合并模块,用于对符合相似条件的多个分类规则以及对应的分类进行合并。
[0066]本发明实施例提供的一种应用程序的自动分类方法,可以具体应用于恶意程序的分类,通过获取应用程序通信时所基于的网络通信协议的协议相关信息对应用程序进行聚类,以对协议相关信息同类的恶意程序进行程序分析,从而可以大大减少后期恶意程序的分析工作。
[0067]本发明实施例可以应用于非恶意程序的分类,将某些应用程序已知的属性标签添加至同一分类下的其他应用程序,从而实现了对应用程序的网络级签名的自动生成,有助于进行更好的程序分析以及网络流量分析。
[0068]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0069]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0070]图1是根据本发明实施例1的一种应用程序的自动分类方法的步骤流程图;
[0071]图2是根据本发明实施例2的一种应用程序的自动分类方法的步骤流程图;
[0072]图3是根据本发明实施例的一种应用程序的自动分类装置的结构框图。
【具体实施方式】
[0073]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0074]参照图1,示出了本发明实施例1的一种应用程序的自动分类方法的步骤流程图。
[0075]步骤101,获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议。
[0076]本发明实施例所述的应用程序可以是恶意程序也可以是非恶意程序,不同应用程序基于特定的网络通信协议与服务器进行通信,根据协议相关信息可以区分不同的网络通信协议。
[0077]以恶意程序为例,恶意程序与对应的C&C服务器进行网络通信以实现对宿主机的攻击行为,其通信基于设定的网络通信协议,而不同的僵尸网络的网络通信协议的协议规则差别较大,根据协议相关信息可以进行区分。
[0078]协议相关信息作为不同网络通信协议的区分标志,可以根据实际需求或场景选择一种或多种信息作为协议相关信息。例如,针对恶意程序,在恶意程序与C&C服务器的网络通信协议中,存在一个网络注册信息,用于通知C&C服务器该宿主机的配置信息,例如操作系统版本、CPU频率、内存大小等信息,通过该网络注册信息在僵尸网络注册后即建立了通信连接。不同僵尸网络的网络通信协议的网络注册信息差别较大,因此可以采用网络注册信息对不同的网络通信协议进行区分。
[0079]本发明在应用程序进行网络通信时,获取基于该网络通信协议的协议相关信息,具体可以是在应用程序在各个不同的客户端运行时监控该协议相关信息,也可以是在收集应用程序后,运行多个应用程序并分别监控相应的协议相关信息。
[0080]步骤102,基于所述协议相关信息对所述多个应用程序进行聚类。
[0081]由于网络通信协议相关信息可以对采用不同网络通信协议的应用程序进行区分,因此按照网络通信协议相关信息可以对应用程序进行聚类,将具备相同或相似网络通信协议相关信息的恶意程序聚为一类,从而实现了对应用程序的分类。
[0082]以恶意程序为例,虽然恶意程序容易出现各种变种,但由于同一恶意程序家族的不同的变种还是会表现出类似的恶意活动,通过将大量的恶意程序按照协议相关信息分类至相对少数的恶意程序分类下,以对协议相关信息同类的恶意程序进行程序分析,从而可以大大减少后期恶意程序的分析工作。
[0083]具体的聚类方法可以根据实际需求设定,例如,设定协议相关信息完全相同的应用程序聚为一类,或是协议相关信息的相似字节的比例大于设定阈值,或是协议相关信息的至少一个特定字段完全相同,或是协议相关信息的某种协议特征数据(例如长度、信息熵值等)相同,或是协议相关信息均包含特定关键词,或是协议相关信息满足一定映射关系,例如满足不同格式的对照关系,或是满足一定的匹配关系等等,并且,上述规则可以根据实际需求选择一种或多种。
[0084]对聚类后的各个应用程序还可以采用各种适用的方法进行程序分析。例如,可以采用逆向分析手段,对样本代码进行反汇编,进一步对反汇编的结果进行分析。相比于直接反向分析的方式,采用本发明的方案按照协议进行预先分类可以大大减少后续分析的工作量。
[0085]本发明实施例中,优选地,协议相关信息可以通过监测网络流量,从网络流量中提取,所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息可以包括:从所述应用程序网络通信信息中,解析基于所述网络通信协议的协议相关信息。具体可以是从网络通信信息的特定字段中提取协议相关信息。由于采用的通信协议不同,协议相关信息的具体格式也会有差异,例如采用HTTP协议时,协议相关信息通常是文本格式,而采用TCP/UDP等协议时,协议相关信息通常是二进制格式。
[0086]针对恶意程序,当协议相关信息为网络注册信息时,由于网络注册信息是恶意程序与C&C服务器的第一次通信时发送,此时,所述网络通信信息为所述应用程序向对应服务器首次发送的网络通信信息,所述协议相关信息为所述首次发送的网络通信信息中包括的网络注册信息。
[0087]本发明实施例中,可以通过安全监控程序获取网络通信信息。在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,还可以在安全监控程序的监控下运行所述多个应用程序,以由所述安全监控程序分别抓取各个应用程序的网络通信信息。例如在安全沙箱中运行收集的多个应用程序,并由安全沙箱抓取应用程序的网络通信信息,进一步由实现本发明的装置从所述安全监控程序的关联位置提取所述安全监控程序抓取的网络通信信息。例如,可以是在安全沙箱指定路径下的文件夹中提取,或是通过与安全沙箱进行通信获取。
[0088]本发明实施例中,还可以通过运行应用程序的客户端监控网络通信信息。具体在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,所述方法还包括:从运行所述应用程序的多个客户端获取所述客户端记录的网络通信信息。客户端对应用程序的网络通信信息进行监控,进一步可以将监控到的网络通信信息进行上报,从而无需预先收集应用程序,实现了对应用程序的快速及时的分析。针对恶意程序,具体的可以是在识别该应用程序为恶意程序之后进行上报。
[0089]本发明实施例中,优选地,基于所述协议相关信息对所述多个应用程序进行聚类的步骤可以具体是,基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类,首先,统计标识各个协议相关信息的协议特征数据,具体可以对协议相关信息的特征进行分析,获取标记协议特征的协议特征数据,其次,根据协议特征数据进行聚类,该过程也可以进行一次或多次,也即是进行一次或多次聚类,每次聚类可以采用不同的协议特征数据。
[0090]其中协议特征数据可以根据实际需求设定,例如协议相关信息的长度,协议相关信息的信息熵值、信息格式和字段信息等各种信息中至少一种。其中,字段信息用于描述协议相关信息中有意义的字段的相关特征,例如可以包括字段属性、字段位置和字段顺序中至少一种,字段属性可以为字段所属数据类型(二进制或是字符串),字段顺序描述各个字段的排布顺序。
[0091]以所述协议相关信息为所述网络注册信息为例,可以以长度和信息熵值作为协议特征数据,所述基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类具体包括,统计所述网络注册信息的长度和信息熵值。网络注册信息的长度即所有字节的总长度之和,熵(Entrophy)就是混乱程度的量度,所谓信息熵值可以理解为某种特定信息数据的出现概率,特定信息数据越集中的地方熵值越小,特定信息数据越分散的地方熵值越大。具体可以分别统计各个字符在所有字节中出现的次数,将次数的总和除以所有字节的总长度即可得到信息熵值。
[0092]进一步,可以将长度相近或信息熵值相近的应用程序归于一类,即将协议特征数据符合聚类条件的多个应用程序归于同类包括:将长度差值和信息熵值差值均符合设定范围的多个应用程序归于同类。具体通过比较各个应用程序的长度差值和信息熵的差值,将长度差值符合设定范围,以及信息熵值符合设定范围的应用程序归于一类。其中长度差值的设定范围和信息熵值差值的设定范围可以分别根据实际需求设定,当差值为零时,即将长度一致和信息熵值一致的应用程序归于一类。
[0093]上述根据长度和信息熵值进行分类的过程可以通过k-均值聚类算法或是X-means算法或是其他任意使用的算法实现。
[0094]协议特征数据还可以包括所述信息格式和所述字段信息,在上述方案的基础上,还可以进一步按照信息格式和字段信息进行聚类。相应的,上述基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类还可以进一步包括,首先,针对同一类应用程序,统计所述应用程序的信息格式和字段信息,进一步将所述信息格式一致且所述字段信息满足相似条件的应用程序进行聚类。
[0095]其中,字段信息可以选择字段属性、字段位置和字段顺序中一种或多种,具体的相似条件可以根据实际需求设置,例如,连续两个字段的字段信息相同。
[0096]通过上述聚类过程,先根据网络注册信息的长度和信息熵值进行初步聚类,得到比较大的网络注册信息的分类集群,计算量成本较低,进一步根据信息格式和字段信息将上述分类集群分裂成更小的集群,实现了对计算成本的控制。
[0097]步骤103,采用所述应用程序的属性标签添加至同一分类下的其他应用程序。
[0098]本发明实施例还可以将应用程序已具备的属性标签添加至同一分类下其他应用程序,实现了对应用程序的网络级签名的自动生成,有助于进行更好的程序分析以及网络流量分析。该属性标签可以是应用程序的种类、应用程序的来源等信息,例如,某个应用程序的属性标签标识其来源于某个程序供应商,进而在分类后,可以获知该分类下的其他应用程序也是来源于该程序供应商;某个应用程序的属性标签标识其为专门进行DDoS攻击的木马病毒,进而在分类后,可以获知该分类下的其他应用程序也是进行DDoS攻击的木马病毒。
[0099]参照图2,示出了本发明实施例2的一种应用程序的自动分类方法的步骤流程图。
[0100]步骤201,获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议。
[0101]步骤202,按照至少一个网络通信协议的已知协议特征对所述多个应用程序进行一次聚类。
[0102]在按照协议相关信息对多个应用程序进行聚类之前,还可以按照已知的网络通信协议已知协议特征对应用程序进行一次聚类,例如已知HTTP协议、TCP或UDP协议的一些协议特征,可以首先对网络通信协议属于这些分类的应用程序进行分类。
[0103]步骤203,基于所述协议相关信息对所述一次聚类的结果进行二次聚类。
[0104]由于根据协议相关信息的聚类时需要对各个应用程序两两比较的工作量较大,因此预先进行的一次聚类,可以减少后续根据协议相关信息进行聚类的工作量,提高聚类的效率。
[0105]步骤204,针对聚类后获得的各类应用程序,生成描述同一分类下多个应用程序的共同特征的分类规则。
[0106]由于聚类后的各类应用程序具备相同或相近的协议相关信息,因此可以对应用程序进行共同特征的提取,该共同特征可以是针对应用程序的协议相关信息提取,也可以针对该应用程序的其他程序相关文件(例如exe等可执行文件)提取。
[0107]更具体的,可以是针对协议相关信息或是程序相关文件的整体内容进行共同特征的提取,也可以是针对每个字节或是部分字节提取共同特征。例如,针对各个应用程序,某个字符在整个协议相关信息或是程序相关文件中出现的次数在某个数值范围内,两个连续特定字节相同等,某个特定字节包括特定字符并且特定字符的个数相同。
[0108]需要说明的是,该共同特征可以是该分类下所有应用程序的共同特征,也可以是该分类下大部分应用程序的共同特征,例如大于一定比例的应用程序所具备的共同特征。
[0109]进一步根据提取的共同特征可以生成记录该共同特征的分类规则。
[0110]步骤205,对符合相似条件的多个分类规则以及对应的分类进行合并。
[0111]本实施例中,优选地,还可以对相似的多个分类规则进行合并。其中,相似条件可以根据实际需求设定,以共同特征为针对多个字节分别提取的特征为例,所有字节中有连续的多个字节的共同特征均相同,则可以将对应的分类规则进行合并。合并后可以将合并的各个分类分别对应的应用程序也进行合并。
[0112]步骤206,按照生成的分类规则,在对应分类的多个应用程序中进行筛选,并对筛选后剩余的应用程序进行重新聚类。
[0113]当分类规则用于描述了部分应用程序共同具备的特征时,可以进一步按照上述生成的分类规则对应用程序进行再次的筛选,从而将不符合该分类规则的应用程序剔除,得到具备相同共同特征的应用程序,提高了分类结果的准确性。
[0114]优选地,在基于聚类后的应用程序进行程序分析之前,该步骤可以重复多次进行,也即是针对重新聚类后的应用程序还可以进行多次分类规则的提取和按照分类规则进行筛选的过程,重复执行的次数可以根据实际需求设定,例如,直至分类规则的提取达到设定次数或是同一类中的应用程序满足设定个数为止。
[0115]其中,重复执行分类规则的提取中,每次分类规则可以按照上述举例从不同的维度提取共同特征,具体的维度可以根据实际需求设定。
[0116]步骤207,采用所述应用程序的属性标签添加至同一分类下的其他应用程序。
[0117]本发明实施例可以将应用程序已具备的属性标签添加至同一分类下其他应用程序,实现了对应用程序的网络级签名的自动生成,有助于进行更好的程序分析以及网络流量分析。
[0118]本发明实施例提供的一种应用程序的自动分类方法,可以具体应用于恶意程序的分类,通过获取应用程序通信时所基于的网络通信协议的协议相关信息对应用程序进行聚类,以对协议相关信息同类的恶意程序进行程序分析,从而可以大大减少后期恶意程序的分析工作。
[0119]参照图3,示出了本发明实施例的一种应用程序的自动分类装置的结构框图。
[0120]协议相关信息获取模块301,用于获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议;
[0121 ]协议聚类模块302,用于基于所述协议相关信息对所述多个应用程序进行聚类;
[0122]标签添加模块303,用于采用所述应用程序的属性标签添加至同一分类下的其他应用程序。
[0123]本发明实施例中,优选地,所述协议相关信息获取模块,具体用于从所述应用程序网络通信信息中,解析基于所述网络通信协议的协议相关信息。
[0124]本发明实施例中,优选地,所述装置还包括:
[0125]程序运行模块,用于在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,在安全监控程序的监控下运行所述多个应用程序,以由所述安全监控程序分别抓取各个应用程序的网络通信信息;
[0126]第一网络通信信息提取模块,用于从所述安全监控程序的关联位置提取所述安全监控程序抓取的网络通信信息。
[0127]本发明实施例中,优选地,所述装置还包括:
[0128]第二网络通信信息提取模块,用于在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,从运行所述应用程序的多个客户端获取所述客户端记录的网络通信信息。
[0129]本发明实施例中,优选地,所述网络通信信息为所述应用程序向对应服务器首次发送的网络通信信息,所述协议相关信息为所述首次发送的网络通信信息中包括的网络注册信息。
[0130]本发明实施例中,优选地,所述协议聚类模块,具体用于基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类,所述协议特征数据包括所述协议相关信息的长度、信息熵值、信息格式和字段信息中至少一种。
[0131]本发明实施例中,优选地,所述协议相关信息为所述网络注册信息,所述协议特征数据包括所述协议相关信息的长度、信息熵值;
[0132]所述协议聚类模块包括:
[0133]第一特征数据统计子模块,用于统计所述网络注册信息的长度和信息熵值;
[0134]第一恶意程序归类子模块,用于将长度差值和信息熵值差值均符合设定范围并包括设定字段的多个应用程序归于同类。
[0135]本发明实施例中,优选地,所述协议特征数据还包括所述信息格式和所述字段信息;
[0136]所述协议聚类模块还包括:
[0137]第二特征数据统计子模块,用于针对同一类应用程序,统计所述应用程序的信息格式和字段信息,所述字段信息包括字段属性、字段位置和字段顺序中至少一种;
[0138]第二恶意程序归类子模块,用于将所述信息格式一致且所述字段信息满足相似条件的应用程序进行聚类。
[0139]本发明实施例中,优选地,还包括:
[0140]已知特征聚类模块,用于按照至少一个网络通信协议的已知协议特征对所述多个应用程序进行一次聚类;
[0141]所述协议聚类模块,具体用于基于所述协议相关信息对所述一次聚类的结果进行二次聚类。
[0142]本发明实施例中,优选地,还包括:
[0143]规则生成模块,用于针对聚类后获得的各类应用程序,生成描述同一分类下多个应用程序的共同特征的分类规则。
[0144]本发明实施例中,优选地,还包括:
[0145]程序筛选模块,用于按照生成的分类规则,在对应分类的多个应用程序中进行筛选,并对筛选后剩余的应用程序进行重新聚类。
[0146]本发明实施例中,优选地,还包括:
[0147]规则合并模块,用于对符合相似条件的多个分类规则以及对应的分类进行合并。
[0148]本发明实施例提供的一种应用程序的自动分类方法,可以具体应用于恶意程序的分类,通过获取应用程序通信时所基于的网络通信协议的协议相关信息对应用程序进行聚类,以对协议相关信息同类的恶意程序进行程序分析,从而可以大大减少后期恶意程序的分析工作。
[0149]本发明实施例可以应用于非恶意程序的分类,将某些应用程序已知的属性标签添加至同一分类下的其他应用程序,从而实现了对应用程序的网络级签名的自动生成,有助于进行更好的程序分析以及网络流量分析。
[0150]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0151]在此提供的应用程序的自动分类方案不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0152]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0153]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0154]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0155]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0156]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的应用程序的自动分类方案中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0157]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0158]本发明公开了Al、一种应用程序的自动分类方法,其中,包括:
[0159]获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议;
[0160]基于所述协议相关信息对所述多个应用程序进行聚类;
[0161]采用所述应用程序的属性标签添加至同一分类下的其他应用程序。
[0162]A2、根据Al所述的方法,其中,所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息包括:
[0163]从所述应用程序网络通信信息中,解析基于所述网络通信协议的协议相关信息。
[0164]A3、根据A2所述的方法,其中,在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,所述方法还包括:
[0165]在安全监控程序的监控下运行所述多个应用程序,以由所述安全监控程序分别抓取各个应用程序的网络通信信息;
[0166]从所述安全监控程序的关联位置提取所述安全监控程序抓取的网络通信信息。
[0167]A4、根据A2所述的方法,其中,在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,所述方法还包括:
[0168]从运行所述应用程序的多个客户端获取所述客户端记录的网络通信信息。
[0169]A5、根据A2所述的方法,其中,所述网络通信信息为所述应用程序向对应服务器首次发送的网络通信信息,所述协议相关信息为所述首次发送的网络通信信息中包括的网络注册信息。
[0170]A6、根据Al所述的方法,其中,所述基于所述协议相关信息对所述多个应用程序进行聚类包括:
[0171]基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类,所述协议特征数据包括所述协议相关信息的长度、信息熵值、信息格式和字段信息中至少一种。
[0172]A7、根据A6所述的方法,其中,所述协议相关信息为所述网络注册信息,所述协议特征数据包括所述协议相关信息的长度、信息熵值;
[0173]所述基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类包括:
[0174]统计所述网络注册信息的长度和信息熵值;
[0175]将长度差值和信息熵值差值均符合设定范围并包括设定字段的多个应用程序归于同类。
[0176]AS、根据A7所述的方法,其中,所述协议特征数据还包括所述信息格式和所述字段信息;
[0177]所述基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类还包括:
[0178]针对同一类应用程序,统计所述应用程序的信息格式和字段信息,所述字段信息包括字段属性、字段位置和字段顺序中至少一种;
[0179]将所述信息格式一致且所述字段信息满足相似条件的应用程序进行聚类。
[0180]A9、根据Al所述的方法,其中,还包括:
[0181]按照至少一个网络通信协议的已知协议特征对所述多个应用程序进行一次聚类;
[0182]所述基于所述协议相关信息对所述多个应用程序进行聚类包括:
[0183]基于所述协议相关信息对所述一次聚类的结果进行二次聚类。
[0184]AlO、根据Al所述的方法,其中,还包括:
[0185]针对聚类后获得的各类应用程序,生成描述同一分类下多个应用程序的共同特征的分类规则。
[0186]Al 1、根据AlO所述的方法,其中,还包括:
[0187]按照生成的分类规则,在对应分类的多个应用程序中进行筛选,并对筛选后剩余的应用程序进行重新聚类。
[0188]Al 2、根据Al O所述的方法,其中,还包括:
[0189]对符合相似条件的多个分类规则以及对应的分类进行合并。
[0190]本发明还公开了B13、一种应用程序的自动分类装置,其中,包括:
[0191]协议相关信息获取模块,用于获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议;
[0192]协议聚类模块,用于基于所述协议相关信息对所述多个应用程序进行聚类;
[0193]标签添加模块,用于采用所述应用程序的属性标签添加至同一分类下的其他应用程序。
[0194]B14、根据B13所述的装置,其中,所述协议相关信息获取模块,具体用于从所述应用程序网络通信信息中,解析基于所述网络通信协议的协议相关信息。
[0195]B15、根据B14所述的装置,其中,所述装置还包括:
[0196]程序运行模块,用于在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,在安全监控程序的监控下运行所述多个应用程序,以由所述安全监控程序分别抓取各个应用程序的网络通信信息;
[0197]第一网络通信信息提取模块,用于从所述安全监控程序的关联位置提取所述安全监控程序抓取的网络通信信息。
[0198]B16、根据B14所述的装置,其中,所述装置还包括:
[0199]第二网络通信信息提取模块,用于在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,从运行所述应用程序的多个客户端获取所述客户端记录的网络通信信息。
[0200]B17、根据B14所述的装置,其中,所述网络通信信息为所述应用程序向对应服务器首次发送的网络通信信息,所述协议相关信息为所述首次发送的网络通信信息中包括的网络注册信息。
[0201]B18、根据B13所述的装置,其中,所述协议聚类模块,具体用于基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类,所述协议特征数据包括所述协议相关信息的长度、信息熵值、信息格式和字段信息中至少一种。
[0202]B19、根据B18所述的装置,其中,所述协议相关信息为所述网络注册信息,所述协议特征数据包括所述协议相关信息的长度、信息熵值;
[0203]所述协议聚类模块包括:
[0204]第一特征数据统计子模块,用于统计所述网络注册信息的长度和信息熵值;
[0205]第一恶意程序归类子模块,用于将长度差值和信息熵值差值均符合设定范围并包括设定字段的多个应用程序归于同类。
[0206]B20、根据B19所述的装置,其中,所述协议特征数据还包括所述信息格式和所述字段?目息;
[0207]所述协议聚类模块还包括:
[0208]第二特征数据统计子模块,用于针对同一类应用程序,统计所述应用程序的信息格式和字段信息,所述字段信息包括字段属性、字段位置和字段顺序中至少一种;
[0209]第二恶意程序归类子模块,用于将所述信息格式一致且所述字段信息满足相似条件的应用程序进行聚类。
[0210]Β21、根据Β13所述的装置,其中,还包括:
[0211]已知特征聚类模块,用于按照至少一个网络通信协议的已知协议特征对所述多个应用程序进行一次聚类;
[0212]所述协议聚类模块,具体用于基于所述协议相关信息对所述一次聚类的结果进行二次聚类。
[0213]Β22、根据Β14所述的装置,其中,还包括:
[0214]规则生成模块,用于针对聚类后获得的各类应用程序,生成描述同一分类下多个应用程序的共同特征的分类规则。
[0215]Β23、根据Β22所述的装置,其中,还包括:
[0216]程序筛选模块,用于按照生成的分类规则,在对应分类的多个应用程序中进行筛选,并对筛选后剩余的应用程序进行重新聚类。
[0217]Β24、根据Β22所述的装置,其中,还包括:
[0218]规则合并模块,用于对符合相似条件的多个分类规则以及对应的分类进行合并。
【主权项】
1.一种应用程序的自动分类方法,其中,包括: 获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议; 基于所述协议相关信息对所述多个应用程序进行聚类; 采用所述应用程序的属性标签添加至同一分类下的其他应用程序。2.根据权利要求1所述的方法,其中,所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息包括: 从所述应用程序网络通信信息中,解析基于所述网络通信协议的协议相关信息。3.根据权利要求2所述的方法,其中,在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,所述方法还包括: 在安全监控程序的监控下运行所述多个应用程序,以由所述安全监控程序分别抓取各个应用程序的网络通信信息; 从所述安全监控程序的关联位置提取所述安全监控程序抓取的网络通信信息。4.根据权利要求2所述的方法,其中,在所述获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息之前,所述方法还包括: 从运行所述应用程序的多个客户端获取所述客户端记录的网络通信信息。5.根据权利要求2所述的方法,其中,所述网络通信信息为所述应用程序向对应服务器首次发送的网络通信信息,所述协议相关信息为所述首次发送的网络通信信息中包括的网络注册信息。6.根据权利要求1所述的方法,其中,所述基于所述协议相关信息对所述多个应用程序进行聚类包括: 基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类,所述协议特征数据包括所述协议相关信息的长度、信息熵值、信息格式和字段信息中至少一种。7.根据权利要求6所述的方法,其中,所述协议相关信息为所述网络注册信息,所述协议特征数据包括所述协议相关信息的长度、信息熵值; 所述基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类包括: 统计所述网络注册信息的长度和信息熵值; 将长度差值和信息熵值差值均符合设定范围并包括设定字段的多个应用程序归于同类。8.根据权利要求7所述的方法,其中,所述协议特征数据还包括所述信息格式和所述字段?目息; 所述基于所述协议相关信息的协议特征数据对所述应用程序进行至少一次聚类还包括: 针对同一类应用程序,统计所述应用程序的信息格式和字段信息,所述字段信息包括字段属性、字段位置和字段顺序中至少一种; 将所述信息格式一致且所述字段信息满足相似条件的应用程序进行聚类。9.根据权利要求1所述的方法,其中,还包括: 按照至少一个网络通信协议的已知协议特征对所述多个应用程序进行一次聚类; 所述基于所述协议相关信息对所述多个应用程序进行聚类包括: 基于所述协议相关信息对所述一次聚类的结果进行二次聚类。10.一种应用程序的自动分类装置,其中,包括: 协议相关信息获取模块,用于获取多个应用程序进行网络通信所基于的网络通信协议的协议相关信息,所述协议相关信息用于区分不同的网络通信协议; 协议聚类模块,用于基于所述协议相关信息对所述多个应用程序进行聚类; 标签添加模块,用于采用所述应用程序的属性标签添加至同一分类下的其他应用程序。
【文档编号】H04L29/06GK106060025SQ201610349656
【公开日】2016年10月26日
【申请日】2016年5月24日
【发明人】刘亚, 宋兵
【申请人】北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1