著录项信息
| 专利名称 | 一种基于哈希特征矩阵的恶意软件云检测方法及系统 |
| 申请号 | CN201510217280.6 | 申请日期 | 2015-04-30 |
| 法律状态 | 授权 | 申报国家 | 中国 |
| 公开/公告日 | 2015-08-19 | 公开/公告号 | CN104850783A |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | G06F21/56 | IPC分类号 | G;0;6;F;2;1;/;5;6查看分类表>
|
| 申请人 | 中国人民解放军国防科学技术大学 | 申请人地址 | 湖南省长沙市砚瓦池正街47号中国人民解放军国防科学技术大学计算机学院网络所
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 中国人民解放军国防科学技术大学 | 当前权利人 | 中国人民解放军国防科学技术大学 |
| 发明人 | 王小峰;苏金树;陈曙晖;孙浩;胡晓峰;吴纯青;彭伟;原玉磊;周寰 |
| 代理机构 | 湖南兆弘专利事务所(普通合伙) | 代理人 | 周长清 |
摘要
一种基于哈希特征矩阵的恶意软件云检测方法及系统,方法步骤为:S1:云服务器负责维护和更新体量较大的恶意软件特征数据库,通过特征映射机制将恶意软件特征数据库映射成体量很小的恶意软件特征矩阵;S2:云服务器将恶意软件特征向量发送给终端,且在更新时向终端推送更新;S3:终端对本地待扫描文件进行映射处理后与恶意软件特征向量矩阵进行模糊扫描,得到嫌疑文件集并将相关扫描结果发送给云服务端;S4:云服务端缩小嫌疑文件集对应的特征码,对嫌疑文件集进行精确匹配,最后将确认结果返回给终端。该系统用来执行上述方法。本发明可减小恶意软件检测终端的开销和隐私泄露风险,实现对用户的特定嫌疑文件进一步筛选和定位,减轻云服务器负担。
1.一种基于哈希特征矩阵的恶意软件云检测方法,其特征在于,步骤为:
S1:云服务器负责维护和更新体量大的恶意软件特征数据库,并通过特征映射机制将恶意软件特征数据库映射成体量小的恶意软件特征矩阵;
S2:云服务器将恶意软件特征向量发送给终端,且每当恶意软件特征数据库生成更新时,向终端增量推送特征向量的更新;
S3:终端利用相同的映射机制对本地待扫描文件进行映射处理后与恶意软件特征向量矩阵进行模糊扫描,得到嫌疑文件集并将相关扫描结果发送给云服务器;
S4:云服务器采用恶意特征码集合筛选机制缩小嫌疑文件集对应的特征码,对嫌疑文件集进行精确匹配并减小精确匹配的计算量,最后将确认结果返回给终端。
2.根据权利要求1所述的基于哈希特征矩阵的恶意软件云检测方法,其特征在于,所述步骤S1中的恶意软件特征数据库包括MD5特征和字符串特征。
3.根据权利要求2所述的基于哈希特征矩阵的恶意软件云检测方法,其特征在于,所述云服务器端针对MD5特征进行预处理,云服务器端维护特征向量矩阵Vmd5及其对应的恶意特征集合Mmd5,其中向量矩阵Vmd5由k个特征向量Vi构成,其中1≤i≤k,每个特征向量Vi对应m位比特Vi,j,其中1≤j≤m,所有向量比特位初始为0;每个特征向量Vi对应一个哈希函数hi,而每个特征向量比特位Vi,j对应一个恶意特征码集合Mi,j,初始均为空集 对于MD5特征数据库中的每一个MD5特征X,映射过程包括三个步骤:
1)通过向量矩阵Vmd5的k个哈希函数hi计算得到特征X在向量矩阵中的特征坐标,其中1≤i≤k;将MD5特征值X作为哈希函数的输入,则得到X的特征坐标L(X)={hi(X)},其中1≤i≤k;
2)将特征X插入到恶意特征码集合Mmd5中;根据步骤1)中的特征坐标L(X),分别加入到k个特征向量比特位 其中1≤i≤k,对应的恶意特征码集合 中;
3)将特征X映射到恶意特征向量矩阵Vmd5中;即将X特征坐标的对应比特位置1,其中1≤i≤k。
4.根据权利要求2所述的基于哈希特征矩阵的恶意软件云检测方法,其特征在于,所述云服务器端针对字符串特征进行预处理;为字符串特征设置一个长度为w的滑动窗口,将字符串特征切割成为统一长度的特征片段,然后进行特征映射。
5.根据权利要求2~4中任意一项所述的基于哈希特征矩阵的恶意软件云检测方法,其特征在于,所述步骤S2中进行恶意软件特征向量矩阵推送;终端初始时,从云服务器端获得恶意软件特征数据库进行恶意软件的模糊扫描,云服务器只向终端推送特征向量矩阵,即云服务器在接收到终端推送请求后,特征向量矩阵Vmd5和Vstr压缩存储后推送给终端。
6.根据权利要求3所述的基于哈希特征矩阵的恶意软件云检测方法,其特征在于,所述步骤S3中终端进行模糊扫描,筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征坐标集合∏={∏md5,∏str};其中,Smd5为嫌疑文件的MD5值集合,∏md5为嫌疑MD5值对应的特征坐标集合,Sstr为嫌疑文件的碎片集合,∏str为嫌疑碎片对应的特征坐标集合;
在扫描时,对于MD5特征矩阵,将待扫描的文件通过MD5映射算法处理成为MD5值Y,然后计算得出MD5值Y对应的特征坐标L(Y)={hi(Y)},其中1≤i≤k,若特征坐标L(Y)在MD5特征向量矩阵Vmd5中对应的比特位都为1,即Vi,hi(Y)=1,其中1≤i≤k,则表示该文件是嫌疑文件,将其MD5值Y插入到Smd5中,特征坐标L(Y)插入到∏md5中;
对于字符串特征矩阵,首先对待扫描文件进行切分,设置一个长度为w的滑动窗口,从文件的第一个字节开始向后滑动;切分后得到若干个规整的文件碎片F’,将这些碎片采用模式匹配的方法通过短字符特征集的预扫描,如果扫描匹配,则直接将字符串碎片列为恶意碎片;否则碎片通过递归哈希函数进行映射处理,得到字符串文件特征坐标L(F′)={di(F′)},其中1≤i≤k;若特征坐标L(F′)在字符串特征向量矩阵Vstr中对应的比特位都为1,即 其中1≤i≤k,那么该碎片是嫌疑碎片,将碎片的值插入到Sstr中,特征坐标插入到∏str中。
7.根据权利要求3所述的基于哈希特征矩阵的恶意软件云检测方法,其特征在于,所述步骤S4中云端进行精确扫描;云服务器端接收到嫌疑文件集S和对应的特征坐标集∏后进行精确扫描;恶意集合筛选具体过程为,对于任一嫌疑文件X∈S,其特征坐标为L(X)={hi(X)}∈∏,其中1≤i≤k,则该特征坐标对应的所有恶意特征码集合为 其中
1≤i≤k;若嫌疑文件片段符合恶意特征,其必与恶意特征码集合中的某个恶意特征片段精确匹配;设精确匹配集合为 与X精确匹配的特征码必定会在M(X)中的所有子集中出现,即在所有子集的交集EX中出现。
8.一种基于哈希特征矩阵的恶意软件云检测系统,其特征在于,它包括:
云服务器模块,用于维护和更新恶意特征数据库和恶意特征矩阵,记录恶意软件扫描日志,响应和处理终端的请求;
特征哈希模块,用于将特征数据库中的特征哈希映射成为特征向量矩阵,构造恶意特征集合,为模糊扫描模块提供特征数据匹配;
模糊扫描模块,用于将终端中的文件按照与特征哈希模块相同的方法映射成为文件向量,进行短字符特征预扫描和特征向量矩阵匹配扫描;记录扫描结果,若短字符特征匹配成功则将结果提交至结果反馈模块,否则将与恶意特征向量矩阵匹配的文件碎片和相应的特征坐标发送至精确扫描模块;
精确扫描模块,用于根据模糊扫描结果,采用恶意集合筛选机制根据可疑特征坐标对恶意集作进一步的筛选,与文件碎片进行进一步的精确匹配确认,减少模糊扫描时因特征映射机制带来的假阳率造成的误报;
结果反馈模块,用于将精确扫描的结果记录在云服务器模块云服务器,并且发起更新特征数据库请求;将扫描结果返回给终端,并对确认为被恶意软件感染的文件进行清除、隔离或者粉碎动作。
9.根据权利要求8所述的基于哈希特征矩阵的恶意软件云检测系统,其特征在于,所述云服务器模块包括:
请求响应子模块,用于处理来自终端和扫描过程中发出的请求;
特征码维护子模块,用于更新和维护特征码数据库;
恶意扫描纪录子模块,用于纪录恶意扫描的结果信息,维护一段时间内的扫描历史记录;当收到终端发来的嫌疑文件片段时,如果命中恶意扫描纪录时则可跳过精确扫描步骤,直接返回扫描结果。
10.根据权利要求9所述的基于哈希特征矩阵的恶意软件云检测系统,其特征在于,所述模糊扫描模块包括:
文件哈希子模块,用于将待扫描的文件哈希成为文件特征坐标;
MD5特征匹配子模块,用于完成MD5文件特征坐标与MD5特征向量矩阵Vmd5的匹配;根据文件哈希子模块的结果,查找每个MD5文件特征坐标在模块发送的MD5特征向量矩阵Vmd5是否为1,若都为1,则说明该文件为嫌疑文件,进行下一步的精确扫描,否则为正常文件;
字符串匹配子模块,用于完成字符串文件特征坐标与字符串特征向量矩阵Vstr的匹配;
首先对字符串文件片段进行短字符特征集预扫描,若匹配则直接确认为恶意文件并将结果提交至结果反馈模块,否则继续与Vstr中的特征向量匹配;
文件过滤子模块,用于产生文件匹配的结果。
一种基于哈希特征矩阵的恶意软件云检测方法及系统\n技术领域\n[0001] 本发明主要涉及到计算终端的恶意软件检测领域,特指一种云计算技术下如何在隐私和实际效率兼顾的情况下,利用哈希特征向量技术为终端提供高效的恶意软件扫描检测方法及系统。\n背景技术\n[0002] 随着移动智能设备和物联设备的迅速普及和云计算远程存储功能的发展,移动互联网的安全问题凸显。根据艾瑞《2013年中国移动安全数据报告显示》,2013年移动安全形势比较严峻,新增恶意软件69万个,是2012年的五倍多。大量经过重度混淆、加密的恶意软件涌现,且越来越多恶意软件或广告平台开始采用动态加载、延迟发作等方式试图规避安全软件的检测和查杀;另外,恶意软件的传播手段也在变化,内嵌子包或联网下载恶意软件等情况已十分常见,如何保证这样的恶意软件不会漏杀,成为安全厂商需要面对的一大挑战。\n[0003] 终端(计算终端)一般包括移动终端、物联设备、嵌入式设备以及追求效率的计算机终端等等。目前,针对终端的恶意软件扫描的研究越来越深入,主要的技术分为两种类型:\n[0004] 第一种是与传统电脑安全软件类似,在终端上建立存储大量恶意软件特征码的特征码库,在终端上对文件进行特征匹配。这种技术原理简单,通过对已经发现了的恶意软件提取特定的字符串或者计算恶意软件MD5(Message Digest Algorithm MD5)值等方法来创建恶意软件特征码,然后扫描文件,使用例如BM(Boyer-Manber)和AC(Aho-Corasick)算法等模式匹配算法,判断文件是否与某种恶意软件特征码相匹配,如果匹配成功则认为该文件是恶意软件。但是使用这种方法,终端需要不断更新恶意软件特征库,消耗大量网络和计算资源;另外扫描过程也会大量占用CPU和内存资源,严重影响资源受限设备的可用性和电池的持续性。\n[0005] 第二种是基于云计算的在线病毒扫描,在云端建立存储大量恶意软件特征的黑名单数据库和已经被证明是安全文件的白名单数据库。当终端需要进行病毒查杀时,会对设备所有文件计算MD5校验和,然后发送数据到云端。云端会对发送来的数据进行扫描,根据黑名单数据库和白名单数据库识别发送来的数据,判断原始文件是否是恶意软件。这种技术利用互联网,通过联网查询,把对终端里的文件扫描检测从终端转到云端,终端不需要保存恶意软件特征库,也不需要对特征库进行更新,提高了恶意软件查杀和防护的及时性、有效性。同时,90%以上的安全检测由云端服务器承担,从而降低了终端的CPU和内存等资源的占用,使设备运行变快。但是这种技术会将终端上所有文件的信息发送到云端,从而用户的隐私会受到很大的威胁。另外该类方法大都没有考虑字符串类型的特征码检测,且终端的所有文件都需跟云端的所有特征码进行匹配,云端的计算任务极其繁重。\n[0006] 目前国内主流安全厂商生产的运行在终端上的安全软件大致采用上述两种技术模式。另外,目前相关研究也大致符合上述思路,如中国申请号为201110265295.1、名称为“手机恶意软件查杀方法及系统”中提出了一种基于移动网络侧恶意软件监控分析系统的手机恶意软件查杀方法,能提高手机恶意软件查杀效率,但是在查杀过程中存在用户的一些重要身份标识、敏感信息以及服务端特征库泄露的风险,安全性难以得到保障。中国申请号为201010292928.3、名称为“一种信息安全检测方法及移动终端”中提出通过动态虚拟机的方法预先分析恶意软件的行为特征,能有效减少对移动终端的威胁,但是动态虚拟机本身会造成终端资源的大量消耗,造成整体效率的下降。\n[0007] 综上所述,将安全检测过程放在终端,不会对用户隐私构成威胁,但是存在计算、存储、网络资源消耗大的问题,严重影响资源受限终端设备的可用性和电池的持续性;利用云计算的思想和架构,将安全检测过程转移到云端,在终端资源消耗和及时效率方面会得到提高,但是用户隐私却存在泄露的风险,另外云端的计算任务会急剧增加。现有技术未能很好地兼顾隐私和效率两方面的需求,因此提出能够同时兼顾效率和隐私的新型恶意软件扫描策略和架构,对于移动互联网和物联网的安全很有意义。\n发明内容\n[0008] 本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够尽量减小恶意软件检测终端的开销和隐私泄露风险,同时实现对用户的特定嫌疑文件进一步的筛选和定位,减少特征匹配的次数和计算开销,达到减轻云服务器负担目的的基于哈希特征矩阵的恶意软件云检测方法及系统。\n[0009] 为解决上述技术问题,本发明采用以下技术方案:\n[0010] 一种基于哈希特征矩阵的恶意软件云检测方法,其步骤为:\n[0011] S1:云服务器负责维护和更新体量较大的恶意软件特征数据库,并通过特征映射机制将恶意软件特征数据库映射成体量很小的恶意软件特征矩阵;\n[0012] S2:云服务器将恶意软件特征向量发送给终端,且每当恶意软件特征数据库生成更新时,向终端增量推送特征向量的更新;\n[0013] S3:终端利用相同的映射机制对本地待扫描文件进行映射处理后与恶意软件特征向量矩阵进行模糊扫描,得到嫌疑文件集并将相关扫描结果发送给云服务端;\n[0014] S4:云服务端采用恶意特征码集合筛选机制缩小嫌疑文件集对应的特征码,对嫌疑文件集进行精确匹配并减小精确匹配的计算量,最后将确认结果返回给终端。\n[0015] 作为本发明方法的进一步改进:所述步骤S1中的恶意软件特征数据库包括MD5特征和字符串特征。\n[0016] 作为本发明方法的进一步改进:所述云服务器端针对MD5特征进行预处理,云服务器端维护特征向量矩阵Vmd5及其对应的恶意特征集合Mmd5,其中向量矩阵Vmd5由k个特征向量Vi(1≤i≤k)构成,每个特征向量Vi对应m位比特Vi,j(1≤j≤m),所有向量比特位初始为0;每个特征向量Vi对应一个哈希函数hi,而每个特征向量比特位Vi,j对应一个恶意特征码集合Mi,j,初始均为空集 对于MD5特征数据库中的每一个MD5特征X,映射过程包括三个步骤:\n[0017] 1)通过向量矩阵Vmd5的k个哈希函数hi(1≤i≤k)计算得到特征X在向量矩阵中的特征坐标;将MD5特征值X作为哈希函数的输入,则得到X的特征坐标L(X)={hi(X)}(1≤i≤k);\n[0018] 2)将特征X插入到恶意特征码集合Mmd5中;根据步骤1)中的特征坐标L(X),分别加入到k个特征向量比特位 (1≤i≤k)对应的恶意特征码集合 中;\n[0019] 3)将特征X映射到恶意特征向量矩阵Vmd5中;即将X特征坐标的对应比特位置1,(1≤i≤k)。\n[0020] 作为本发明方法的进一步改进:所述云服务器端针对字符串特征进行预处理;为字符串特征设置一个长度为w的滑动窗口,将特征切割成为统一长度的特征片段,然后进行特征映射。\n[0021] 作为本发明方法的进一步改进:所述步骤S2中进行恶意软件特征向量矩阵推送;\n终端初始时,从云服务器端获得恶意软件特征数据库进行恶意软件的模糊扫描,云服务端只向终端推送特征向量矩阵,即云服务端在接收到终端推送请求后,特征向量矩阵Vmd5和Vstr压缩存储后推送给终端。\n[0022] 作为本发明方法的进一步改进:所述步骤S3中终端进行模糊扫描,筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征坐标集合∏={∏md5,∏str};其中,Smd5为嫌疑文件的MD5值集合,∏md5为嫌疑MD5值对应的特征坐标集合,Sstr为嫌疑文件的碎片集合,∏str为嫌疑碎片对应的特征坐标集合;\n[0023] 在扫描时,对于MD5特征矩阵,将待扫描的文件通过MD5映射算法处理成为MD5值Y,然后计算得出MD5值Y对应的特征坐标L(Y)={hi(Y)}(1≤i≤k),若特征坐标L(Y)在MD5特征向量矩阵Vmd5中对应的比特位都为1,即 (1≤i≤k),则表示该文件是嫌疑文件,将其MD5值Y插入到Smd5中,特征坐标L(Y)插入到∏md5中;\n[0024] 对于字符串特征矩阵,首先对待扫描文件进行切分,设置一个长度为w的滑动窗口,从文件的第一个字节开始向后滑动;切分后得到若干个规整的文件碎片F’,将这些碎片采用模式匹配的方法通过短字符特征集的预扫描,如果扫描匹配,则直接将该字符串碎片列为恶意碎片;否则碎片通过同样的递归哈希函数进行映射处理,得到字符串文件特征坐标L(F′)={di(F′)}(1≤i≤k);若特征坐标L(F′)在字符串特征向量矩阵Vstr中对应的比特位都为1,即 (1≤i≤k),那么该碎片是嫌疑碎片,将碎片的值插入到Sstr中,特征坐标插入到∏str中。\n[0025] 作为本发明方法的进一步改进:所述步骤S4中云端进行精确扫描;云服务器端接收到嫌疑文件集S和对应的特征坐标集∏后进行精确扫描;恶意集合筛选具体过程为,对于任一嫌疑文件X∈S,其特征坐标为L(X)={hi(X)}(1≤i≤k)∈∏,则该特征坐标对应的所有恶意特征码集合为 (1≤i≤k);若嫌疑文件片段符合恶意特征,其必与恶\n意特征码集合中的某个恶意特征片段精确匹配;设精确匹配集合为 与X精确\n匹配的特征码必定会在M(X)中的所有子集中出现,即在所有子集的交集EX中出现。\n[0026] 本发明进一步提供一种基于哈希特征矩阵的恶意软件云检测系统,它包括:\n[0027] 云服务器模块,用于维护和更新恶意特征数据库和恶意特征矩阵,记录恶意软件扫描日志,响应和处理终端的请求;\n[0028] 特征哈希模块,用于将特征数据库中的特征哈希映射成为特征向量矩阵,构造恶意特征集合,为模糊扫描模块提供特征数据匹配;\n[0029] 模糊扫描模块,用于将终端中的文件按照与特征哈希模块相同的方法映射成为文件向量,进行短字符特征预扫描和特征向量矩阵匹配扫描;记录扫描结果,若短字符特征匹配成功则将结果提交至结果反馈模块,否则将与恶意特征向量矩阵匹配的文件碎片和相应的特征坐标发送至精确扫描模块;\n[0030] 精确扫描模块,用于根据模糊扫描结果,采用恶意集合筛选机制根据可疑特征坐标对恶意集作进一步的筛选,与文件碎片进行进一步的精确匹配确认,减少模糊扫描时因特征映射机制带来的假阳率造成的误报;\n[0031] 结果反馈模块,用于将精确扫描的结果记录在云服务端,并且发起更新特征数据库请求;将扫描结果返回给终端,并对确认为被恶意软件感染的文件进行清除、隔离或者粉碎动作。\n[0032] 作为本发明系统的进一步改进:所述云服务器端模块包括:\n[0033] 请求响应子模块,用于处理来自终端和扫描过程中发出的请求;\n[0034] 特征码维护子模块,用于更新和维护特征码数据库;\n[0035] 恶意扫描纪录子模块,用于纪录恶意扫描的结果信息,维护一段时间内的扫描历史记录;当收到终端发来的嫌疑文件片段时,如果命中恶意扫描纪录时则可跳过精确扫描步骤,直接返回扫描结果。\n[0036] 作为本发明系统的进一步改进:所述模糊扫描模块包括:\n[0037] 文件哈希子模块,用于将待扫描的文件哈希成为文件特征坐标;\n[0038] MD5特征匹配子模块,用于完成MD5文件特征坐标与MD5特征向量矩阵Vmd5的匹配;\n根据文件哈希子模块的结果,查找每个MD5文件特征坐标在模块发送的MD5特征向量矩阵Vmd5是否为1,若都为1,则说明该文件为嫌疑文件,进行下一步的精确扫描,否则为正常文件;\n[0039] 字符串匹配子模块,用于完成字符串文件特征坐标与字符串特征向量矩阵Vstr的匹配;首先对字符串文件片段进行短字符特征集预扫描,若匹配则直接确认为恶意文件并将结果提交至结果反馈模块,否则继续与Vstr中的特征向量匹配;\n[0040] 文件过滤子模块,用于产生文件匹配的结果。\n[0041] 与现有技术相比,本发明的优点在于:本发明中的特征映射机制能够在保障较高准确率的前提下极大的压缩存储恶意特征数据,减少终端和云服务器端的通信开销。通过恶意集合筛选能大幅减少待精确匹配的恶意特征片段的数目,从而达到减少计算和存储开销,及云服务器端运维成本的目的;且其筛选效果随着恶意数据库体量的增大而提高,能有效适应恶意数据库不断扩增的特点,具有良好的扩展性。\n附图说明\n[0042] 图1是本发明方法的流程示意图。\n[0043] 图2是本发明系统在具体应用实例中的原理示意图。\n[0044] 图3是本发明系统在具体应用实例中云服务器端模块的架构示意图。\n[0045] 图4是本发明系统在具体应用实例中特征映射模块的功能示意图。\n[0046] 图5是本发明系统在具体应用实例中恶意软件特征矩阵构成示意图。\n[0047] 图6是本发明系统在具体应用实例中模糊扫描模块的结构示意图。\n[0048] 图7是本发明系统在具体应用实例中精确扫描模块的结构示意图。\n[0049] 图8是本发明系统在具体应用实例中结果反馈模块的结构示意图。\n具体实施方式\n[0050] 以下将结合说明书附图和具体实施例对本发明做进一步详细说明。\n[0051] 本发明的基本构思是,从减少恶意软件扫描开销和减少服务商运维成本的角度提供一种基于云平台的扫描架构,可以很好的适应恶意特征数据库体量不断增长的特点,具有较强的检测实时性,且能够提供准确的恶意威胁定位,从而保证较高的恶意软件扫描结果正确性。\n[0052] 本发明是在Bloom Filter算法的基础上设计恶意软件扫描策略和架构的,下面对该算法进行简要的介绍。Bloom Filter(以下简称BF)算法是由B.H.Bloom在1970年提出的二进制向量数据结构,它具有很好的空间和时间效率,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。初始状态时,BF是一个长度为m位的向量,每一位都置为0。为了表达S={X1,X2,…,Xn}这样的n个元素的集合,BF使用k个相互独立的哈希函数hi(1≤i≤k)对每个元素进行BF映射处理,即首先将每个元素映射到{1,…,m}的范围中。\n对任意一个元素X,第i个哈希函数映射的位置hi(X)就会被置为1(1≤i≤k)。若一个位置多次被置为1,那么只有第一次会起作用,后面几次将没有任何效果。在判断Y是否属于这个集合时,我们对Y应用k次哈希函数,如果所有hi(Y)(1≤i≤k)的位置都是1,那么我们就认为Y是集合中的元素,否则就认为Y不是集合中的元素。这种判断机制会因为哈希函数的碰撞而带来假阳率(False Positive),如已知Y1在X中,若hi(Y1)与hi(Y2)值相同,那么Y2则会被误判为也在X中,经计算可知这种假阳率的概率为(1-e-kn/m)k。\n[0053] 如图1所示,本发明的基于哈希特征矩阵的恶意软件云检测方法,其步骤为:\n[0054] S1:云服务器负责维护和更新体量较大的恶意软件特征数据库,并通过特征映射机制将特征数据库映射成体量很小的恶意软件特征矩阵。\n[0055] S2:云服务器将恶意软件特征向量发送给终端,且每当恶意软件特征数据库生成更新时,向终端增量推送特征向量的更新。\n[0056] S3:终端利用相同的映射机制对本地待扫描文件进行映射处理后与恶意软件特征向量矩阵进行模糊扫描,得到嫌疑文件集并将相关扫描结果发送给云服务端。\n[0057] S4:云服务端采用恶意特征码集合筛选机制尽量缩小嫌疑文件集对应的特征码,从而能够对嫌疑文件集进行精确匹配并减小精确匹配的计算量,最后将确认结果返回给终端。\n[0058] 在具体应用实例中,步骤S1中的恶意软件特征数据库主要包括MD5特征和字符串特征。由于特征数据库体量较为庞大,若特征匹配时在云服务器端和终端直接交互将耗费大量的带宽资源,降低匹配的效率。因此本发明将特征数据库转化成为体量较小的特征矩阵。为了能够生成特征矩阵,云服务器端分别对MD5特征和字符串特征进行不同的预处理,并通过本发明中的特征映射机制得到恶意软件特征库的MD5特征矩阵和字符串特征矩阵,具体处理过程如下。\n[0059] 针对MD5特征,云服务器端维护特征向量矩阵Vmd5及其对应的恶意特征集合Mmd5,其中向量矩阵Vmd5由k个特征向量Vi(1≤i≤k)构成,每个特征向量Vi对应m位比特Vi,j(1≤j≤m),所有向量比特位初始为0。每个特征向量Vi对应一个哈希函数hi,而每个特征向量比特位Vi,j对应一个恶意特征码集合Mi,j,初始均为空集 对于MD5特征数据库中的每一个MD5特征X,映射过程包括三个步骤:\n[0060] 1).通过向量矩阵Vmd5的k个哈希函数hi(1≤i≤k)计算得到特征X在向量矩阵中的特征坐标。MD5特征本身就是格式统一的16个字节哈希值,所以将其映射到特征向量矩阵中较为简单。将MD5特征值X作为哈希函数的输入,则可以得到X的特征坐标L(X)={hi(X)}(1≤i≤k)。\n[0061] 2).将特征X插入到恶意特征码集合Mmd5中。根据步骤1中的特征坐标L(X),分别加入到k个特征向量比特位 (1≤i≤k)对应的恶意特征码集合 中。\n[0062] 3).将特征X映射到恶意特征向量矩阵Vmd5中。即将X特征坐标的对应比特位置1,(1≤i≤k)。\n[0063] 对于字符串特征,每个特征的长度是不规则统一的,所以在映射成为字符串特征矩阵之前需要进行预处理。在本发明中,为字符串特征设置一个长度为w的滑动窗口,将特征切割成为统一长度的特征片段,然后进行特征映射。例如X={x1,x2,…,xn}是长度为n的字符串,按照w的滑动窗口切割后得出n-w+1个长度为w的片段,X1={x1,x2,…,xw},X2={x2,x3,…,xw+1},…,Xn-w+1={xn-w+1,xn-w+2,…,xn}。考虑到切分后可能片段数目较多,通过特征映射所带来的计算量会较大,所以映射过程中采用递归哈希函数。即字符串特征向量矩阵Vstr由k个长度为m位的特征向量Vi(1≤i≤k)构成,每个特征向量Vi对应一个递归哈希函数di(x1,x2,…,xw)。递归哈希函数的计算是根据输入字符串X的内容决定的,而文件预处理切割后得到的相邻的两个片段之中会有w-1长度的重叠部分,所以在递归式的哈希函数中,上一文件片段的哈希结果fp=di(xp,…,xp+w-1)可用于下一片段的哈希结果fp+1=di(xp+1,…,xp+w)计算中(1≤p≤n-w),从而能够有效的减少计算带来的开销。比较常用的递归式哈希函数有Rabin指纹函数等。\n[0064] 字符串特征经过类似于MD5特征的三个步骤操作后得到特征坐标,即可将所有特征片段插入到特征坐标对应的恶意特征码集合Mstr中,映射至字符串特征矩阵Vstr中,从而构成字符串特征矩阵。对于长度小于w的特征(称为短字符特征),其在总的字符串特征中所占的比例较小,所以都将这些特征在后续的特征模糊扫描中进行单独的扫描,对整个系统的性能影响较小。\n[0065] 在具体应用实例中,步骤S2中需要进行恶意软件特征向量矩阵推送。终端初始时,需从云服务器端获得恶意软件特征数据库进行恶意软件的模糊扫描,考虑到终端数据带宽和资费的限制,云服务端只向终端推送特征向量矩阵,即云服务端在接收到终端推送请求后,特征向量矩阵Vmd5和Vstr压缩存储后推送给终端。由于向量矩阵属于大型稀疏型矩阵,采用常用的一些压缩方法,如gzip、xz等,就能达到较高的压缩率,从而减少交互的信息量。对于短字符特征,云服务器端同时将该特征集合压缩加密发送至终端。\n[0066] 在具体应用实例中,步骤S2中需要进行恶意软件特征矩阵更新。云服务器端负责更新特征数据库(包括短字符特征集)和特征矩阵,并周期性的将特征向量矩阵的增量更新推送给终端进行更新。当恶意软件特征数据库有更新时,对特征矩阵执行更新操作。\n[0067] 以MD5值特征为例,对任一需要更新的MD5值特征X,云服务器端的操作主要包括以下四个步骤:\n[0068] 1).计算X的特征坐标L(X)={hi(X)}(1≤i≤k)。\n[0069] 2).若X为新增特征码,则将X分别加入到特征坐标L(X)对应的恶意特征码集合(1≤i≤k)中。若X为待删除的旧特征码,则将X分别从特征坐标L(X)对应的恶意特征码集合 (1≤i≤k)中删除。\n[0070] 3).更新特征向量矩阵Vmd5。若X为新增特征码,将L(X)对应的向量比特位都置为1,即 (1≤i≤k),其中若某比特位已为1,则不操作。若X为待删除的旧特征码,在完成步骤2后,若存在L(X)对应的某恶意特征码集合 为空,则将该集合对应的向量比特位置0,即 若均不为空,则不操作。\n[0071] 4).对于终端,为节省特征矩阵更新的开销,云服务器以一定时间为周期,将特征向量矩阵Vmd5和Vstr的增量更新矩阵压缩打包发送至终端,从而使得终端能够高效更新特征向量矩阵。\n[0072] 对于短字符特征更新,则单独的将需要更新的短字符特征集合压缩加密发送至终端。\n[0073] 在具体应用实例中,步骤S3中终端进行模糊扫描。该部分在终端进行,目的是高效快速地筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征坐标集合∏={∏md5,∏str}。其中,Smd5为嫌疑文件的MD5值集合,∏md5为嫌疑MD5值对应的特征坐标集合,Sstr为嫌疑文件的碎片集合,∏str为嫌疑碎片对应的特征坐标集合。\n[0074] 在扫描时,对于MD5特征矩阵,将待扫描的文件通过MD5映射算法处理成为MD5值Y,然后计算得出MD5值Y对应的特征坐标L(Y)={hi(Y)}(1≤i≤k),若特征坐标L(Y)在MD5特征向量矩阵Vmd5中对应的比特位都为1,即 (1≤i≤k),则表示该文件是嫌疑文件,将其MD5值Y插入到Smd5中,特征坐标L(Y)插入到∏md5中。\n[0075] 对于字符串特征矩阵,首先对待扫描文件进行切分,同样设置一个长度为w的滑动窗口,从文件的第一个字节开始向后滑动。切分后得到若干个规整的文件碎片F’,将这些碎片采用模式匹配的方法通过短字符特征集的预扫描,如果扫描匹配,则直接可以将该字符串碎片列为恶意碎片;否则碎片通过同样的递归哈希函数进行映射处理,得到字符串文件特征坐标L(F′)={di(F′)}(1≤i≤k)。若特征坐标L(F′)在字符串特征向量矩阵Vstr中对应的比特位都为1,即 (1≤i≤k),那么该碎片是嫌疑碎片,将碎片的值插入到Sstr中,特征坐标插入到∏str中。\n[0076] 由于特征向量所具有的性质,所有恶意文件都会被终端模糊扫描确认为嫌疑文件,但有可能正常文件也被误认为嫌疑文件,因此终端将S和∏发送给云服务器端进行确认。\n[0077] 在具体应用实例中,步骤S4中云端进行精确扫描。云服务器端接收到嫌疑文件集S和对应的特征坐标集∏后进行精确扫描。由于特征映射机制对恶意特征数据库进行压缩存储,导致映射到同一恶意集合中的恶意特征片段数目较多,若将嫌疑文件与所有恶意特征片段进行逐一模式匹配,将会对云服务器造成大量的计算和存储开销,从而降低服务质量,提高维护成本。故本发明中设计了恶意集合筛选机制,从而进一步缩小扫描范围、精确定位恶意特征。\n[0078] 恶意集合筛选具体过程为,对于任一嫌疑文件X∈S,其特征坐标为L(X)={hi(X)}(1≤i≤k)∈∏,则该特征坐标对应的所有恶意特征码集合为 (1≤i≤k)。若嫌疑文件片段符合恶意特征,其必与恶意特征码集合中的某个恶意特征片段精确匹配,而为了缩小精确匹配的范围,必须从M(X)中选取出待精确匹配的集合。设精确匹配集合为根据前文叙述的特征映射过程,与X精确匹配的特征码必定会在M(X)中的所\n有子集中出现,即在所有子集的交集EX中出现。\n[0079] 故在精确扫描时,根据嫌疑文件X,首先筛选出其对应的精确匹配集合,然后将X与该集合中每个恶意特征片段进行模式匹配。对于MD5特征,在模式匹配时只需简单的比较X与MD5特征码的值是否相等;对于字符串特征,可以采用的模式匹配算法有BM、AC算法等。若匹配成功则说明X为恶意文件片段,云服务器端将该结果返回给终端,由终端采取隔离、删除等安全措施。\n[0080] 本发明进一步提供一种基于哈希特征矩阵的恶意软件云检测系统,如图2所示,为其在具体应用实例中的原理示意图。它包括:云服务器模块101、特征哈希模块102、模糊扫描模块103、精确扫描模块104和结果反馈模块105。其中:\n[0081] 云服务器模块101,用于维护和更新恶意特征数据库和恶意特征矩阵,记录恶意软件扫描日志,响应和处理终端的请求等。\n[0082] 特征哈希模块102,用于将特征数据库中的特征哈希映射成为特征向量矩阵,构造恶意特征集合,为模糊扫描模块提供特征数据匹配。\n[0083] 模糊扫描模块103,用于将终端中的文件按照与特征哈希模块102相同的方法映射成为文件向量,进行短字符特征预扫描和特征向量矩阵匹配扫描。记录扫描结果,若短字符特征匹配成功则将结果提交至结果反馈模块105,否则将与恶意特征向量矩阵匹配的文件碎片和相应的特征坐标发送至精确扫描模块。\n[0084] 精确扫描模块104,用于根据模糊扫描结果,采用恶意集合筛选机制根据可疑特征坐标对恶意集作进一步的筛选,与文件碎片进行进一步的精确匹配确认,减少模糊扫描时因特征映射机制带来的假阳率造成的误报。\n[0085] 结果反馈模块105,用于将精确扫描的结果记录在云服务端,并且发起更新特征数据库请求;将扫描结果返回给终端,并对确认为被恶意软件感染的文件进行清除、隔离或者粉碎等查杀动作。\n[0086] 扫描过程也由这些模块按顺序进行执行。其中云服务器模块101、特征哈希模块\n102、精确扫描模块104都集成于云服务端内由云服务端完成,模糊扫描模块103位于终端内由终端完成,结果反馈模块105则由云服务端和终端共同完成,结果最后返回至终端。终端与云服务端可以采用无线网络、移动互联网、短信或者彩信的方式进行通信。\n[0087] 如图3所示,为本发明具体应用实例中的云服务器端模块101的架构示意图,其包括:\n[0088] 请求响应子模块201,用于处理来自终端和扫描过程中发出的请求,主要包括终端的连接请求、恶意软件扫描请求,扫描过程中产生的更新特征数据库请求,记录恶意扫描记录请求以及其他一些服务信息发布推送请求。\n[0089] 特征码维护子模块202,用于更新和维护特征码数据库,该数据库主要包括两种类型的特征码:MD5特征和字符串特征,其中MD5特征占总特征的85%,字符串特征占15%。特征哈希时将会对两种特征都进行哈希映射处理成为特征向量。\n[0090] 恶意扫描纪录子模块203,用于纪录恶意扫描的结果信息,维护一段时间内的扫描历史记录。当收到终端发来的嫌疑文件片段时,如果命中恶意扫描纪录时则可跳过精确扫描步骤,直接返回扫描结果。\n[0091] 如图4所示,为本发明具体应用实例中的特征映射模块102的功能示意图。该模块的主要功能是通过特征映射机制将特征库中的特征码映射成为特征向量,进而组成特征向量矩阵,并形成恶意特征集合。由于特征库中包括MD5特征和字符串特征,所以对两种特征采取不同的预处理后进行映射。\n[0092] 如图5所示,为本发明具体应用实例中恶意软件特征矩阵构成示意图,图中Vk为特征向量矩阵中的特征向量,k为特征向量的数目,m为特征向量的长度,Mi,j为特征向量中Vi,j对应的恶意特征码集合。为简单起见,图中只给出了少数值为1的Vi,j对应的Mi,j示例。\n[0093] 如图6所示,为本发明具体应用实例中模糊扫描模块103的结构示意图,其包括:\n[0094] 文件哈希子模块501,用于将待扫描的文件哈希成为文件特征坐标。由于特征分为MD5和字符串两类,所以也将文件哈希成为两种特征坐标,即MD5文件特征坐标和字符串文件特征坐标。对于MD5文件特征坐标,是采用MD5哈希算法,将文件映射成为16个字节的哈希值,相当于文件的摘要;再用发明内容中介绍的特征映射方法将MD5文件值映射为文件特征坐标。对于字符串特征坐标,则也采取相同的方法进行文件切割,得到若干个长度规整的文件片段,然后将这些片段通过特征映射方法映射成为字符串文件特征坐标。同时,为了节省终端的计算和存储开销,文件哈希子模块501不维护类似的特征矩阵,只建立起文件与文件特征坐标之间的对应关系,称为映射记录。通俗的说,记录一个文件向量空间中文件和恶意集之间的映射关系,为之后根据精确匹配结果对恶意文件采取安全措施提供准备。\n[0095] MD5特征匹配子模块502,用于完成MD5文件特征坐标与MD5特征向量矩阵Vmd5的匹配。根据文件哈希子模块501的结果,查找每个MD5文件特征坐标在模块102发送的MD5特征向量矩阵Vmd5是否为1,若都为1,则说明该文件为嫌疑文件,需要进行下一步的精确扫描,否则为正常文件。\n[0096] 字符串匹配子模块503用于完成字符串文件特征坐标与字符串特征向量矩阵Vstr的匹配。首先对字符串文件片段进行短字符特征集预扫描,若匹配则直接确认为恶意文件并将结果提交至结果反馈模块105,否则继续与Vstr中的特征向量匹配,具体的过程与MD5特征匹配子模块502类似。\n[0097] 文件过滤子模块504,用于产生文件匹配的结果。对于MD5结果,根据文件哈希子模块501的映射记录,溯源出嫌疑的MD5和MD5值对应的文件;而对于字符串结果,则过滤出对应的文件片段和原始文件,从而筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征坐标集合∏={∏md5,∏str}。然后将S和∏发送至云服务端的精确匹配模块104。这里值得说明的是,嫌疑的文件片段多为恶意软件的特征片段,由于特征映射假阳率的存在,可能将终端的用户正常隐私信息误报为嫌疑片段而进行发送。但是采用多个哈希函数进行映射后假阳率低至可以忽略,从而使得用户的隐私能够得到很好的保护。\n[0098] 如图7所示,为本发明具体应用实例中精确扫描模块104的结构示意图,其包括:\n[0099] MD5文件精确扫描子模块601,用于对文件过滤子模块504发至的Smd5,∏md5根据恶意集合筛选机制进行筛选和精确匹配,进一步确认嫌疑MD5值的恶意性。即根据任一MD5嫌疑文件X∈Smd5,特征坐标L(X)={hi(X)}(1≤i≤k)∈∏md5,在Mmd5中筛选得出对应的精确匹配集 然后对EX中的MD5特征码和嫌疑MD5值进行精确的模式匹配,若相同则确认为恶意MD5值,否则排除嫌疑。\n[0100] 字符串文件精确扫描子模块602,用于对文件过滤子模块504发至的Sstr,∏str进行精确匹配,进一步确认嫌疑文件片段的恶意性。其过程与MD5文件精确扫描子模块601的过程类似。\n[0101] 如图8所示,为本发明具体应用实例中结果反馈模块105的结构示意图,其包括:\n[0102] 特征码更新子模块701,用于根据精确扫描的结果向云服务端提出特征数据库更新请求。在精确扫描后的文件片段中,可能片段中的若干个字节为恶意特征,其他字节为正常字节或者恶意特征的变种。对于这两种情况,本发明都视为新的恶意特征而更新到特征数据库中。\n[0103] 结果返回子模块702,用于将精确扫描的结果返回至终端,并根据文件哈希子模块\n501中的映射记录,找到被恶意软件感染的文件并对其进行清除、隔离或者粉碎等查杀动作。\n[0104] 以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
法律信息
- 2018-07-13
- 2015-09-16
实质审查的生效
IPC(主分类): G06F 21/56
专利申请号: 201510217280.6
申请日: 2015.04.30
- 2015-08-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-07-13
|
2011-02-14
| | |
2
| |
2011-01-26
|
2010-09-26
| | |
3
| | 暂无 |
2012-06-06
| | |
4
| |
2011-12-14
|
2011-09-08
| | |
5
| | 暂无 |
2012-09-14
| | |
6
| |
2013-03-13
|
2012-11-21
| | |
7
| |
2013-11-20
|
2013-07-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |