CN104850784A - 一种基于哈希特征向量的恶意软件云检测方法及系统 - Google Patents
一种基于哈希特征向量的恶意软件云检测方法及系统 Download PDFInfo
- Publication number
- CN104850784A CN104850784A CN201510217304.8A CN201510217304A CN104850784A CN 104850784 A CN104850784 A CN 104850784A CN 201510217304 A CN201510217304 A CN 201510217304A CN 104850784 A CN104850784 A CN 104850784A
- Authority
- CN
- China
- Prior art keywords
- characteristic
- file
- terminal
- malware
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于哈希特征向量的恶意软件云检测方法及系统,该方法的步骤为:S1:恶意软件特征向量处理;S2:云服务端将恶意软件特征向量发送给终端,且每当恶意软件特征数据库发成更新时,向终端增量推送特征向量的更新;S3:终端利用分段BF算法对本地待扫描文件进行映射处理后与恶意软件特征向量进行模糊扫描,并将匹配结果发送给云服务端;S4:云服务端对匹配的结果进行进一步的精确扫描,之后将确认结果返回给终端。该系统用来执行上述方法。本发明能够在尽量减小恶意软件检测终端的网络、计算和存储开销的同时,令终端尽量少的向云服务器提交文件信息,从而能够保护终端隐私。
Description
技术领域
本发明主要涉及到计算终端的恶意软件检测领域,特指一种云计算技术下如何在隐私和实际效率兼顾的情况下,利用哈希特征向量技术为终端提供高效的恶意软件扫描检测方法及系统。
背景技术
随着移动智能设备和物联设备的迅速普及和云计算远程存储功能的发展,移动互联网的安全问题凸显。根据艾瑞《2013年中国移动安全数据报告显示》,2013年移动安全形势比较严峻,新增恶意软件69万个,是2012年的五倍多。大量经过重度混淆、加密的恶意软件涌现,且越来越多恶意软件或广告平台开始采用动态加载、延迟发作等方式试图规避安全软件的检测和查杀;另外,恶意软件的传播手段也在变化,内嵌子包或联网下载恶意软件等情况已十分常见,如何保证这样的恶意软件不会漏杀,成为安全厂商需要面对的一大挑战。
终端(计算终端)一般包括移动终端、物联设备、嵌入式设备以及追求效率的计算机终端等等。目前,针对终端的恶意软件扫描的研究越来越深入,主要的技术分为两种类型:
第一种是与传统电脑安全软件类似,在终端上建立存储大量恶意软件特征码的特征码库,在终端上对文件进行特征匹配。这种技术原理简单,通过对已经发现了的恶意软件提取特定的字符串或者计算恶意软件MD5(Message Digest Algorithm MD5)值等方法来创建恶意软件特征码,然后扫描文件,使用例如BM(Boyer-Manber)和AC(Aho-Corasick)算法等模式匹配算法,判断文件是否与某种恶意软件特征码相匹配,如果匹配成功则认为该文件是恶意软件。但是使用这种方法,终端需要不断更新恶意软件特征库,消耗大量网络和计算资源;另外扫描过程也会大量占用CPU和内存资源,严重影响资源受限设备的可用性和电池的持续性。
第二种是基于云计算的在线病毒扫描,在云端建立存储大量恶意软件特征的黑名单数据库和已经被证明是安全文件的白名单数据库。当终端需要进行病毒查杀时,会对设备所有文件计算MD5校验和,然后发送数据到云端。云端会对发送来的数据进行扫描,根据黑名单数据库和白名单数据库识别发送来的数据,判断原始文件是否是恶意软件。这种技术利用互联网,通过联网查询,把对终端里的文件扫描检测从终端转到云端,终端不需要保存恶意软件特征库,也不需要对特征库进行更新,提高了恶意软件查杀和防护的及时性、有效性。同时,90%以上的安全检测由云端服务器承担,从而降低了终端的CPU和内存等资源的占用,使设备运行变快。但是这种技术会将终端上所有文件的信息发送到云端,从而用户的隐私会受到很大的威胁。另外该类方法大都没有考虑字符串类型的特征码检测,且终端的所有文件都需跟云端的所有特征码进行匹配,云端的计算任务极其繁重。
目前国内主流安全厂商生产的运行在终端上的安全软件大致采用上述两种技术模式。另外,目前相关研究也大致符合上述思路,如中国申请号为201110265295.1、名称为“手机恶意软件查杀方法及系统”中提出了一种基于移动网络侧恶意软件监控分析系统的手机恶意软件查杀方法,能提高手机恶意软件查杀效率,但是在查杀过程中存在用户的一些重要身份标识、敏感信息以及服务端特征库泄露的风险,安全性难以得到保障。中国申请号为201010292928.3、名称为“一种信息安全检测方法及移动终端”中提出通过动态虚拟机的方法预先分析恶意软件的行为特征,能有效减少对移动终端的威胁,但是动态虚拟机本身会造成终端资源的大量消耗,造成整体效率的下降。
综上所述,将安全检测过程放在终端,不会对用户隐私构成威胁,但是存在计算、存储、网络资源消耗大的问题,严重影响资源受限终端设备的可用性和电池的持续性;利用云计算的思想和架构,将安全检测过程转移到云端,在终端资源消耗和及时效率方面会得到提高,但是用户隐私却存在泄露的风险,另外云端的计算任务会急剧增加。现有技术未能很好地兼顾隐私和效率两方面的需求,因此提出能够同时兼顾效率和隐私的新型恶意软件扫描策略和架构,对于移动互联网和物联网的安全很有意义。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种在尽量减小恶意软件检测终端的网络、计算和存储开销的同时,令终端尽量少的向云服务器提交文件信息,从而能够保护终端隐私的基于哈希特征向量的恶意软件云检测方法及系统。
为解决上述技术问题,本发明采用以下技术方案:
一种基于哈希特征向量的恶意软件云检测方法,其步骤为:
S1:恶意软件特征向量处理;云服务端用来维护和更新体量较大的恶意软件特征数据库,终端通过分段BF算法将恶意软件特征数据库映射成体量很小的恶意软件特征向量;
S2:云服务端将恶意软件特征向量发送给终端,且每当恶意软件特征数据库发成更新时,向终端增量推送特征向量的更新;
S3:终端利用分段BF算法对本地待扫描文件进行映射处理后与恶意软件特征向量进行模糊扫描,并将匹配结果发送给云服务端;
S4:云服务端对匹配的结果进行进一步的精确扫描,之后将确认结果返回给终端。
作为本发明方法的进一步改进:所述恶意软件特征数据库主要包括MD5特征和字符串特征,云服务端分别对MD5特征和字符串特征进行不同的预处理,并通过BF映射得到恶意软件特征库的MD5特征向量Vmd5和字符串特征向量Vstr。
作为本发明方法的进一步改进:对于MD5特征,若一个特征X={x1,x2,…,xn},特征映射过程包括如下两个步骤:
1)计算X的特征坐标;首先根据X的首字母x1的值,找到对应的BF向量再通过公共哈希函数计算特征在特征向量中的位置H(X),把L(X)=(x1,H(X))称为X的特征坐标;
2)将特征X映射到MD5特征向量Vmd5中;即,将X特征坐标的对应比特位置1,若该位已经为1,则不操作。
作为本发明方法的进一步改进:对于字符串特征,若X={x1,x2,…,xn}是长度为n的字符串,特征映射过程包括如下三个步骤:
1)字符串特征切割;为字符串特征设置一个长度为w的滑动窗口,将特征切割成为统一长度的特征片段;即按照w的滑动窗口切割后得出n-w+1个长度为w的片段,X1={x1,x2,…,xw},X2={x2,x3,…,xw+1},…,Xn-w+1={xn-w+1,xn-w+2,…,xn};
2)计算特征片段Xp(1≤p≤n-w)的特征坐标;在字符串特征的映射过程中的公共函数H采用递归哈希函数R(x1,x2,…,xw);得到哈希结果后,再根据每个片段的首字母xp的值找到对应的BF向量从而得出Xp的特征坐标L(Xp)=(xp,Rp);
3)将特征片段Xp(1≤p≤n-w)映射到字符串特征向量Vstr中,即将Xp特征坐标的对应比特位置1,若该位已经为1,则不操作。
作为本发明方法的进一步改进:所述步骤S2中需要完成恶意软件特征向量推送;终端初始时,需从云服务器端获得恶意软件特征数据库进行恶意软件的模糊扫描,云服务端只向终端推送特征向量,即云服务端在接收到终端推送请求后,特征向量Vmd5和Vstr压缩存储后推送给终端;当恶意软件特征数据库有更新时,云服务端启动终端的特征向量增量更新;在现有恶意软件特征向量的基础上,服务器对新增的恶意软件特征进行步骤S1的处理,从而得到新的恶意软件特征向量;然后,通过对新旧恶意软件特征向量进行异或运算得到恶意软件特征向量更新。云服务端将更新经压缩后推送给所有终端,终端接收到更新向量后再与本地的特征向量进行异或运算即可得出新的恶意软件特征向量。
作为本发明方法的进一步改进:所述步骤S3中终端进行模糊扫描;该部分在终端进行,目的是高效快速地筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征哈希坐标∏={∏md5,∏str},其中,Smd5为嫌疑文件的MD5值集合,∏md5为嫌疑MD5值对应的特征坐标集合,Sstr为嫌疑文件的字符碎片集合,∏str为嫌疑字符碎片对应的特征坐标集合;
在扫描时,对于MD5特征,将带扫描的文件通过MD5映射算法处理成为MD5值Y,然后通过分段BF的映射机制得到MD5值对应的特征坐标L(Y)=(y1,H(Y));若特征坐标L(Y)在MD5特征向量Vmd5中的对应的位值为1,则表示该文件为嫌疑文件,将其MD5值Y加入到Smd5中,特征坐标L(Y)插入到∏md5;
对于字符串文件特征,首先对待扫描文件进行切分,同样设置一个长度为w的滑动窗口,从文件的第一个字节开始向后滑动;切分后得到若干个规整的文件碎片F,将这些碎片采用模式匹配的方法通过短字符特征集的预扫描,如果扫描匹配,则直接可以将该字符串碎片列为恶意碎片;否则碎片通过同样的递归哈希函数进行映射处理,得到字符串文件特征坐标L(F)=(fp,Rp);若L(F)在MD5特征向量Vstr中的对应的位值为1,那么该碎片是嫌疑碎片,将碎片的值F插入到Sstr中,特征坐标L(F)插入到∏str中。
作为本发明方法的进一步改进:所述步骤S3中云端进行精确扫描;云端在接收到终端发送的嫌疑文件集S和嫌疑特征坐标∏后进行精确扫描,根据∏中的特征坐标找到对应的特征匹配集合M。
本发明进一步提供一种基于哈希特征向量的恶意软件云检测系统,包括:
云服务端模块,用于维护和更新恶意特征数据库,记录恶意软件扫描日志,响应和处理终端的请求;
特征哈希模块,用于根据分段BF算法将特征数据库中的特征哈希映射成为特征向量,组成特征,为模糊扫描模块提供特征数据匹配;
模糊扫描模块,用于将终端中的文件按照与特征哈希模块相同的方法映射成为文件向量,与特征中的特征向量进行匹配扫描;记录扫描结果,将匹配命中的文件碎片和特征向量发送至精确扫描模块;
精确扫描模块,用于根据模糊扫描结果,从特征数据库中提取出匹配命中的特征码,与文件碎片进行进一步的匹配确认,防止在模糊扫描中因分段BF算法假阳率造成的误报;
结果反馈模块,用于将精确扫描的结果记录在云服务端,并且发起更新特征数据库请求;将扫描结果返回给终端,并对确认为被恶意软件感染的文件进行清除、隔离或者粉碎动作。
作为本发明系统的进一步改进:所述云服务端模块包括:
请求响应子模块,用于处理来自终端和扫描过程中发出的请求;
特征码维护子模块,用于更新和维护特征码数据库;
恶意扫描纪录子模块,用于纪录恶意扫描的结果信息,维护一段时间内的扫描历史记录;当收到终端发来的嫌疑文件片段时,如果命中恶意扫描纪录时则可跳过精确扫描步骤,直接返回扫描结果。
作为本发明系统的进一步改进:所述模糊扫描模块包括:
文件哈希子模块,用于将待扫描的文件哈希成为文件特征坐标;
MD5特征匹配子模块,用于完成MD5文件特征坐标与MD5特征向量Vmd5的匹配;根据文件哈希子模块的结果,将每个MD5文件特征坐标与特征哈希模块发送的MD5特征向量Vmd5逐一进行匹配,若对应的值为1,则说明该文件为嫌疑文件,需要进行下一步的精确扫描,否则为正常文件;
字符串匹配子模块,用于完成字符串文件特征坐标与字符串特征向量Vstr的匹配;首先对字符串文件片段进行短字符特征集预扫描,若匹配则直接确认为恶意文件并将结果提交至结果反馈模块,否则继续与Vstr中的特征向量匹配;
文件过滤子模块,用于产生文件匹配的结果;对于MD5结果,根据文件哈希子模块的映射记录,溯源出嫌疑的MD5和MD5值对应的文件;而对于字符串结果,则过滤出对应的文件片段和原始文件,筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征坐标集合∏={∏md5,∏str},然后将S和∏发送至云服务端的精确匹配模块。
与现有技术相比,本发明的优点在于:本发明通过基于分段BF算法的特征模糊扫描,能大量减少匹配的特征数目,准确的定位嫌疑特征,有效的提高扫描的效率;在扫描过程中云服务端无需将特征码发送至终端,保护了服务提供商的核心利益;且终端只需将少量的文件碎片发送至服务端,保证了用户隐私泄露的风险较低。
附图说明
图1是本发明方法的流程示意图。
图2是本发明系统在具体应用实例中的原理示意图。
图3是本发明系统在具体应用实例中云服务端模块的架构示意图。
图4是本发明系统在具体应用实例中特征哈希模块的功能示意图。
图5是本发明系统在具体应用实例中特征向量构成示意图。
图6是本发明系统在具体应用实例中模糊扫描模块的结构示意图。
图7是本发明系统在具体应用实例中精确扫描模块的结构示意图。
图8是本发明系统在具体应用实例中结果反馈模块的结构示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
为了能够尽量减小恶意软件检测终端的开销和隐私泄露风险,本发明采用哈希映射的方式将恶意软件特征库压缩成为特征信息向量,在终端和云服务器之间进行检测信息交互。且改变了现有云安全技术需要将用户的所有文件跟所有特征码进行匹配的问题,只需将用户的特定嫌疑文件跟特定特征码进行匹配。
本发明是在Bloom Filter算法的基础上设计恶意软件扫描策略和架构的,下面对BloomFilter算法进行简要的介绍。Bloom Filter(以下简称BF)算法是由B.H.Bloom在1970年提出的二进制向量数据结构,它具有很好的空间和时间效率,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。初始状态时,BF是一个长度为m位的向量,每一位都置为0。为了表达S={X1,X2,…,Xn}这样的n个元素的集合,BF使用k个相互独立的哈希函数hi(1≤i≤k)对每个元素进行BF映射处理,即首先将每个元素映射到{1,…,m}的范围中。对任意一个元素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。
如图1所示,本发明的基于哈希特征向量的恶意软件云检测方法,为:
S1:恶意软件特征向量处理;
云服务端用来维护和更新体量较大的恶意软件特征数据库,终端通过分段BF算法将恶意软件特征数据库映射成体量很小的恶意软件特征向量。
恶意软件特征数据库主要由MD5特征和字符串特征构成。
由于恶意软件特征数据库体量较为庞大,若特征匹配时在云服务器端和终端直接交互将耗费大量的带宽资源,降低匹配的效率。因此,本发明将特征数据库转化成为体量较小的恶意软件特征向量。
为了能够生成恶意软件特征向量,云服务端分别对MD5特征和字符串特征进行不同的预处理,并通过BF映射得到恶意软件特征库的MD5特征向量Vmd5和字符串特征向量Vstr。
S2:云服务端将恶意软件特征向量发送给终端,且每当恶意软件特征数据库发成更新时,向终端增量推送特征向量的更新。
S3:终端利用分段BF算法对本地待扫描文件进行映射处理后与恶意软件特征向量进行模糊扫描,并将匹配结果发送给云服务端。
S4:云服务端对匹配的结果进行进一步的精确扫描,之后将确认结果返回给终端。
在具体应用实例中,上述步骤S1的具体包括:
本发明的分段BF映射机制是采用256个独立的BF向量Vi(0≤i≤255),每个Vi的长度为m,每一位初始值为0。根据特征首字节的内容将其通过唯一对应的Vi映射成为特征向量,且每个独立的Vi都只采用相同的公共哈希函数H,即相当于把一个大长度的BF向量等分为256个小型BF向量,并按特征首字节进行分段映射,这样能够有效的降低误报率、特征映射和匹配的开销。例如:0号BF对应的特征首字节内容为“NULL”,65号BF对应的特征首字节内容为“A”。
针对MD5特征,若一个特征X={x1,x2,…,xn},映射过程包括如下两个步骤:
1.计算X的特征坐标。首先根据X的首字母x1的值,找到对应的BF向量再通过公共哈希函数计算特征在特征向量中的位置H(X),把L(X)=(x1,H(X))称为X的特征坐标。
2.将特征X映射到MD5特征向量Vmd5中。即,将X特征坐标的对应比特位置1,若该位已经为1,则不操作。
对于字符串特征,每个特征的长度是不规则统一的,所以在映射成为字符串特征向量之前需要进行预处理。若X={x1,x2,…,xn}是长度为n的字符串,特征映射过程包括如下三个步骤:
1.字符串特征切割。在本发明中为字符串特征设置一个长度为w的滑动窗口,将特征切割成为统一长度的特征片段。即按照w的滑动窗口切割后得出n-w+1个长度为w的片段,X1={x1,x2,…,xw},X2={x2,x3,…,xw+1},…,Xn-w+1={xn-w+1,xn-w+2,…,xn}。
2.计算特征片段Xp(1≤p≤n-w)的特征坐标。考虑到切分后可能片段数目较多,通过特征映射所带来的计算量会较大,所以在字符串特征的映射过程中的公共函数H采用递归哈希函数R(x1,x2,…,xw)。递归哈希函数的计算是根据输入字符串X的内容决定的,而切割后得到的相邻的两个片段之中会有w-1长度的重叠部分,所以在递归式的哈希函数中,上一文件片段的哈希结果Rp=R(xp,…,xp+w-1)可用于下一片段的哈希结果Rp+1=R(xp+1,…,xp+w)计算中,从而能够有效的减少计算带来的开销。比较常用的递归式哈希函数有Rabin指纹函数等。得到哈希结果后,再根据每个片段的首字母xp的值找到对应的BF向量从而得出Xp的特征坐标L(Xp)=(xp,Rp)。
3.将特征片段Xp(1≤p≤n-w)映射到字符串特征向量Vstr中,即将Xp特征坐标的对应比特位置1,若该位已经为1,则不操作。
对于长度小于w的特征(称为短字符特征),其在总的字符串特征中所占的比例较小,所以都将这些特征在后续的特征模糊扫描中进行单独的扫描,对整个系统的性能影响较小。
由上可知,云服务端将特征通过分段BF映射的过程中,将每个特征或特征片段与其特征坐标建立映射关系,即给每个特征或特征片段X加上一个标签T,TX=L(X),称TX为映射记录。映射记录可以为之后的精确匹配提供准确快速的定位。
在具体应用实例中,步骤S2中需要完成恶意软件特征向量推送。终端初始时,需从云服务器端获得恶意软件特征数据库进行恶意软件的模糊扫描,考虑到终端数据带宽和资费的限制,云服务端只向终端推送特征向量,即云服务端在接收到终端推送请求后,特征向量Vmd5和Vstr压缩存储后推送给终端。由于特征向量属于大型稀疏型向量,采用常用的一些压缩方法,如gzip、xz等,就能达到较高的压缩率,从而减少交互的信息量。对于短字符特征,云服务器端同时将该特征集合压缩加密发送至终端。
在具体应用实例中,步骤S2中针对恶意软件特征向量更新,云服务端负责更新特征数据库(包括短字符特征集)。当恶意软件特征数据库有更新时,云服务端启动终端的特征向量增量更新。在现有恶意软件特征向量的基础上,服务器对新增的恶意软件特征进行步骤S1的处理,从而得到新的恶意软件特征向量;然后,通过对新旧恶意软件特征向量进行异或运算得到恶意软件特征向量更新。云服务端将更新经压缩后推送给所有终端,终端接收到更新向量后再与本地的特征向量进行异或运算即可得出新的恶意软件特征向量,从而完成系统的特征向量更新。对于短字符特征更新,则单独的将需要更新的短字符特征集合压缩加密发送至终端。
在具体应用实例中,步骤S3的终端进行模糊扫描。该部分在终端进行,目的是高效快速地筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征哈希坐标∏={∏md5,∏str},其中,Smd5为嫌疑文件的MD5值集合,∏md5为嫌疑MD5值对应的特征坐标集合,Sstr为嫌疑文件的字符碎片集合,∏str为嫌疑字符碎片对应的特征坐标集合。
在扫描时,对于MD5特征,将带扫描的文件通过MD5映射算法处理成为MD5值Y,然后通过分段BF的映射机制得到MD5值对应的特征坐标L(Y)=(y1,H(Y))。若特征坐标L(Y)在MD5特征向量Vmd5中的对应的位值为1,则表示该文件为嫌疑文件,将其MD5值Y加入到Smd5中,特征坐标L(Y)插入到∏md5。
对于字符串文件特征,首先对待扫描文件进行切分,同样设置一个长度为w的滑动窗口,从文件的第一个字节开始向后滑动。切分后得到若干个规整的文件碎片F,将这些碎片采用模式匹配的方法通过短字符特征集的预扫描,如果扫描匹配,则直接可以将该字符串碎片列为恶意碎片;否则碎片通过同样的递归哈希函数进行映射处理,得到字符串文件特征坐标L(F)=(fp,Rp)。若L(F)在MD5特征向量Vstr中的对应的位值为1,那么该碎片是嫌疑碎片,将碎片的值F插入到Sstr中,特征坐标L(F)插入到∏str中。
由于特征向量所具有的性质,所有恶意文件都会被终端模糊扫描确认为嫌疑文件,但有可能正常文件也被误认为嫌疑文件,因此终端将S和∏发送给云服务器端进行确认。
在具体应用实例中,步骤S4的云端精确扫描。云端在接收到终端发送的嫌疑文件集S和嫌疑特征坐标∏后进行精确扫描,根据∏中的特征坐标找到对应的特征匹配集合M。
具体过程以MD5特征为例,对于任一嫌疑片段X∈Smd5,其特征坐标为L(X)∈∏md5,那么X的特征匹配集合MX为{m|Tm=L(X),m为MD5值特征码}。再将X与MX中的每个m进行精确匹配,即比较两者的值是否相等,如果匹配成功,那么X被确认为恶意MD5特征,否则排除嫌疑。对于嫌疑文件碎片F∈Sstr,处理过程相同,在精确匹配时可采用一些经典的模式匹配算法,如BM和AC算法等。对S中的每个元素都进行精确匹配后,云服务端将匹配结果返回至终端,终端根据结果采取相应的安全措施。
本发明进一步提供一种基于哈希特征向量的恶意软件云检测系统,如图2所示,为本发明的方法在应用之后的系统示意图。它包括:云服务端模块101、特征哈希模块102、模糊扫描模块103、精确扫描模块104和结果反馈模块105。其中:
云服务端模块101,用于维护和更新恶意特征数据库,记录恶意软件扫描日志,响应和处理终端的请求等。
特征哈希模块102,用于根据分段BF算法将特征数据库中的特征哈希映射成为特征向量,组成特征,为模糊扫描模块提供特征数据匹配。
模糊扫描模块103,用于将终端中的文件按照与特征哈希模块相同的方法映射成为文件向量,与特征中的特征向量进行匹配扫描。记录扫描结果,将匹配命中的文件碎片和特征向量发送至精确扫描模块。
精确扫描模块104,用于根据模糊扫描结果,从特征数据库中提取出匹配命中的特征码,与文件碎片进行进一步的匹配确认,防止在模糊扫描中因分段BF算法假阳率造成的误报。
结果反馈模块105,用于将精确扫描的结果记录在云服务端,并且发起更新特征数据库请求;将扫描结果返回给终端,并对确认为被恶意软件感染的文件进行清除、隔离或者粉碎等查杀动作。
扫描过程也由这些模块按顺序进行执行。其中云服务端模块101、特征哈希模块102、精确扫描模块104都集成云服务端内来完成,模糊扫描模块103由终端完成,结果反馈模块105则由云服务端和终端共同完成,结果最后返回至终端。终端与云服务端可以采用无线网络、移动互联网、短信或者彩信的方式进行通信。
如图3所示,为具体应用实例中云服务端模块101的原理示意图。它包括请求响应子模块201、特征码维护子模块202、恶意扫描记录子模块203。其中:
请求响应子模块201,用于处理来自终端和扫描过程中发出的请求,主要包括终端的连接请求、恶意软件扫描请求,扫描过程中产生的更新特征数据库请求,记录恶意扫描记录请求以及其他一些服务信息发布推送请求。
特征码维护子模块202,用于更新和维护特征码数据库,该数据库主要包括两种类型的特征码:MD5特征和字符串特征,其中MD5特征占总特征的85%,字符串特征占15%。特征哈希时将会对两种特征都进行哈希映射处理成为特征向量。
恶意扫描纪录子模块203,用于纪录恶意扫描的结果信息,维护一段时间内的扫描历史记录。当收到终端发来的嫌疑文件片段时,如果命中恶意扫描纪录时则可跳过精确扫描步骤,直接返回扫描结果。
如图4所示,为具体应用实例中特征哈希模块102的原理示意图。它的主要功能是将特征库中的特征码映射成为特征向量,进而构成特征。由于特征库中包括MD5特征和字符串特征,所以对两种特征采取不同的方法进行映射。
如图5所示,为具体应用实例中恶意软件特征向量构成示意图,由256个MD5特征向量、256个字符串特征向量组成,每个特征向量的长度为216位。
如图6所示,为具体应用实例中模糊扫描模块103的原理示意图。该模块包括文件哈希子模块501、MD5特征匹配子模块502、字符串特征匹配子模块503和文件过滤子模块504。其中:
文件哈希子模块501,用于将待扫描的文件哈希成为文件特征坐标。由于特征分为MD5和字符串两类,所以也将文件哈希成为两种特征坐标,即MD5文件特征坐标和字符串文件特征坐标。对于MD5文件特征坐标,是采用MD5哈希算法,将文件映射成为16个字节的哈希值,相当于文件的摘要;再用发明内容中介绍的MD5特征向量生成的方法将MD5文件值映射为文件特征坐标。对于字符串特征坐标,则也采取相同的方法进行文件切割,得到若干个长度规整的文件片段,然后将这些片段通过发明内容中介绍的字符串特征映射方法映射成为字符串文件特征坐标。同时,文件哈希子模块501还建立起文件与文件特征坐标之间的对应关系,即文件映射记录。通俗的说,记录一个文件向量中哪几位是由哪个文件映射而来的,为之后溯源提供准备。
MD5特征匹配子模块502,用于完成MD5文件特征坐标与MD5特征向量Vmd5的匹配。根据文件哈希子模块501的结果,将每个MD5文件特征坐标与特征哈希模块102发送的MD5特征向量Vmd5逐一进行匹配,若对应的值为1,则说明该文件为嫌疑文件,需要进行下一步的精确扫描,否则为正常文件
字符串匹配子模块503,用于完成字符串文件特征坐标与字符串特征向量Vstr的匹配。首先对字符串文件片段进行短字符特征集预扫描,若匹配则直接确认为恶意文件并将结果提交至结果反馈模块105,否则继续与Vstr中的特征向量匹配,具体的过程与MD5特征匹配子模块502类似。
文件过滤子模块504,用于产生文件匹配的结果。对于MD5结果,根据文件哈希子模块501的映射记录,溯源出嫌疑的MD5和MD5值对应的文件。而对于字符串结果,则过滤出对应的文件片段和原始文件,从而筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征坐标集合∏={∏md5,∏str},然后将S和∏发送至云服务端的精确匹配模块104。这里值得说明的是,嫌疑的文件片段多为恶意软件的特征片段,由于分段BF假阳率的存在,可能将终端的用户隐私信息误报为嫌疑片段而进行发送。但是采用多个哈希函数进行映射后假阳率低至可以忽略,从而使得用户的隐私能够得到很好的保护。
如图7所示,为具体应用实例中精确扫描模块104的原理示意图。该模块主要包括MD5文件精确扫描子模块601和字符串文件精确扫描子模块602。其中:
MD5文件精确扫描子模块601,用于对文件过滤子模块504发至的Smd5,∏md5进行精确匹配,进一步确认嫌疑MD5值的恶意性。即对于任一嫌疑片段X∈Smd5,其特征坐标为L(X)∈∏md5,得出X的特征匹配集合MX为{m|Tm=L(X),m为MD5值特征码}。再将X与MX中的每个m进行精确匹配,即比较两者的值是否相等,如果匹配成功,那么X被确认为恶意MD5特征,否则排除嫌疑。
字符串文件精确扫描子模块602,用于对文件过滤子模块504发至的Sstr,∏str进行精确匹配,进一步确认嫌疑文件片段的恶意性。其过程与MD5文件精确扫描子模块601的过程类似,采用典型的模式匹配算法BM和AC对嫌疑文件片段进行精确匹配。
如图8所示,为具体应用实例中结果反馈模块105的原理示意图。该模块包括特征码更新子模块701和结果返回子模块702。其中:
特征码更新子模块701,用于根据精确扫描的结果向云服务端提出特征数据库更新请求。在精确扫描后的文件片段中,可能片段中的若干个字节为恶意特征,其他字节为正常字节或者恶意特征的变种。对于这两种情况,本发明都视为新的恶意特征而更新到特征数据库中。
结果返回子模块702,用于将精确扫描的结果返回至终端,并对被恶意软件感染的文件进行清除、隔离或者粉碎等查杀动作。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (10)
1.一种基于哈希特征向量的恶意软件云检测方法,其特征在于,步骤为:
S1:恶意软件特征向量处理;云服务端用来维护和更新体量较大的恶意软件特征数据库,终端通过分段BF算法将恶意软件特征数据库映射成体量很小的恶意软件特征向量;
S2:云服务端将恶意软件特征向量发送给终端,且每当恶意软件特征数据库发成更新时,向终端增量推送特征向量的更新;
S3:终端利用分段BF算法对本地待扫描文件进行映射处理后与恶意软件特征向量进行模糊扫描,并将匹配结果发送给云服务端;
S4:云服务端对匹配的结果进行进一步的精确扫描,之后将确认结果返回给终端。
2.根据权利要求1所述的基于哈希特征向量的恶意软件云检测方法,其特征在于,所述恶意软件特征数据库主要包括MD5特征和字符串特征,云服务端分别对MD5特征和字符串特征进行不同的预处理,并通过BF映射得到恶意软件特征库的MD5特征向量Vmd5和字符串特征向量Vstr。
3.根据权利要求2所述的基于哈希特征向量的恶意软件云检测方法,其特征在于,对于MD5特征,若一个特征X={x1,x2,…,xn},特征映射过程包括如下两个步骤:
1)计算X的特征坐标;首先根据X的首字母x1的值,找到对应的BF向量再通过公共哈希函数计算特征在特征向量中的位置H(X),把L(X)=(x1,H(X))称为X的特征坐标;
2)将特征X映射到MD5特征向量Vmd5中;即,将X特征坐标的对应比特位置1,,若该位已经为1,则不操作。
4.根据权利要求2所述的基于哈希特征向量的恶意软件云检测方法,其特征在于,对于字符串特征,若X={x1,x2,…,xn}是长度为n的字符串,特征映射过程包括如下三个步骤:
1)字符串特征切割;为字符串特征设置一个长度为w的滑动窗口,将特征切割成为统一长度的特征片段;即按照w的滑动窗口切割后得出n-w+1个长度为w的片段,X1={x1,x2,…,xw},X2={x2,x3,…,xw+1},…,Xn-w+1={xn-w+1,xn-w+2,…,xn};
2)计算特征片段Xp(1≤p≤n-w)的特征坐标;在字符串特征的映射过程中的公共函数H采用递归哈希函数R(x1,x2,…,xw);得到哈希结果后,再根据每个片段的首字母xp的值找到对应的BF向量从而得出Xp的特征坐标L(Xp)=(xp,Rp);
3)将特征片段Xp(1≤p≤n-w)映射到字符串特征向量Vstr中,即将Xp特征坐标的对应比特位置1,若该位已经为1,则不操作。
5.根据权利要求1~4中任意一项所述的基于哈希特征向量的恶意软件云检测方法,其特征在于,所述步骤S2中需要完成恶意软件特征向量推送;终端初始时,需从云服务器端获得恶意软件特征数据库进行恶意软件的模糊扫描,云服务端只向终端推送特征向量,即云服务端在接收到终端推送请求后,特征向量Vmd5和Vstr压缩存储后推送给终端;当恶意软件特征数据库有更新时,云服务端启动终端的特征向量增量更新;在现有恶意软件特征向量的基础上,服务器对新增的恶意软件特征进行步骤S1的处理,从而得到新的恶意软件特征向量;然后,通过对新旧恶意软件特征向量进行异或运算得到恶意软件特征向量更新;云服务端将更新经压缩后推送给所有终端,终端接收到更新向量后再与本地的特征向量进行异或运算即可得出新的恶意软件特征向量。
6.根据权利要求1~4中任意一项所述的基于哈希特征向量的恶意软件云检测方法,其特征在于,所述步骤S3中终端进行模糊扫描;该部分在终端进行,目的是高效快速地筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征哈希坐标∏={∏md5,∏str},其中,Smd5为嫌疑文件的MD5值集合,∏md5为嫌疑MD5值对应的特征坐标集合,Sstr为嫌疑文件的字符碎片集合,∏str为嫌疑字符碎片对应的特征坐标集合;
在扫描时,对于MD5特征,将带扫描的文件通过MD5映射算法处理成为MD5值Y,然后通过分段BF的映射机制得到MD5值对应的特征坐标L(Y)=(y1,H(Y));若特征坐标L(Y)在MD5特征向量Vmd5中的对应的位值为1,则表示该文件为嫌疑文件,将其MD5值Y加入到Smd5中,特征坐标L(Y)插入到∏md5;
对于字符串文件特征,首先对待扫描文件进行切分,同样设置一个长度为w的滑动窗口,从文件的第一个字节开始向后滑动;切分后得到若干个规整的文件碎片F,将这些碎片采用模式匹配的方法通过短字符特征集的预扫描,如果扫描匹配,则直接可以将该字符串碎片列为恶意碎片;否则碎片通过同样的递归哈希函数进行映射处理,得到字符串文件特征坐标L(F)=(fp,Rp);若L(F)在MD5特征向量Vstr中的对应的位值为1,那么该碎片是嫌疑碎片,将碎片的值F插入到Sstr中,特征坐标L(F)插入到∏str中。
7.根据权利要求6所述的基于哈希特征向量的恶意软件云检测方法,其特征在于,所述步骤S3中云端进行精确扫描;云端在接收到终端发送的嫌疑文件集S和嫌疑特征坐标∏后进行精确扫描,根据∏中的特征坐标找到对应的特征匹配集合M。
8.一种基于哈希特征向量的恶意软件云检测系统,其特征在于,包括:
云服务端模块,用于维护和更新恶意特征数据库,记录恶意软件扫描日志,响应和处理终端的请求;
特征哈希模块,用于根据分段BF算法将特征数据库中的特征哈希映射成为特征向量,组成特征,为模糊扫描模块提供特征数据匹配;
模糊扫描模块,用于将终端中的文件按照与特征哈希模块相同的方法映射成为文件向量,与特征中的特征向量进行匹配扫描;记录扫描结果,将匹配命中的文件碎片和特征向量发送至精确扫描模块;
精确扫描模块,用于根据模糊扫描结果,从特征数据库中提取出匹配命中的特征码,与文件碎片进行进一步的匹配确认,防止在模糊扫描中因分段BF算法假阳率造成的误报;
结果反馈模块,用于将精确扫描的结果记录在云服务端,并且发起更新特征数据库请求;将扫描结果返回给终端,并对确认为被恶意软件感染的文件进行清除、隔离或者粉碎动作。
9.根据权利要求8所述的基于哈希特征向量的恶意软件云检测系统,其特征在于,所述云服务端模块包括:
请求响应子模块,用于处理来自终端和扫描过程中发出的请求;
特征码维护子模块,用于更新和维护特征码数据库;
恶意扫描纪录子模块,用于纪录恶意扫描的结果信息,维护一段时间内的扫描历史记录;当收到终端发来的嫌疑文件片段时,如果命中恶意扫描纪录时则可跳过精确扫描步骤,直接返回扫描结果。
10.根据权利要求9所述的基于哈希特征向量的恶意软件云检测系统,其特征在于,所述模糊扫描模块包括:
文件哈希子模块,用于将待扫描的文件哈希成为文件特征坐标;
MD5特征匹配子模块,用于完成MD5文件特征坐标与MD5特征向量Vmd5的匹配;根据文件哈希子模块的结果,将每个MD5文件特征坐标与特征哈希模块发送的MD5特征向量Vmd5逐一进行匹配,若对应的值为1,则说明该文件为嫌疑文件,需要进行下一步的精确扫描,否则为正常文件;
字符串匹配子模块,用于完成字符串文件特征坐标与字符串特征向量Vstr的匹配;首先对字符串文件片段进行短字符特征集预扫描,若匹配则直接确认为恶意文件并将结果提交至结果反馈模块,否则继续与Vstr中的特征向量匹配;
文件过滤子模块,用于产生文件匹配的结果;对于MD5结果,根据文件哈希子模块的映射记录,溯源出嫌疑的MD5和MD5值对应的文件;而对于字符串结果,则过滤出对应的文件片段和原始文件,筛选出嫌疑文件集S={Smd5,Sstr}以及其对应的嫌疑特征坐标集合∏={∏md5,∏str},然后将S和∏发送至云服务端的精确匹配模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510217304.8A CN104850784B (zh) | 2015-04-30 | 2015-04-30 | 一种基于哈希特征向量的恶意软件云检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510217304.8A CN104850784B (zh) | 2015-04-30 | 2015-04-30 | 一种基于哈希特征向量的恶意软件云检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850784A true CN104850784A (zh) | 2015-08-19 |
CN104850784B CN104850784B (zh) | 2018-03-20 |
Family
ID=53850423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510217304.8A Active CN104850784B (zh) | 2015-04-30 | 2015-04-30 | 一种基于哈希特征向量的恶意软件云检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104850784B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484730A (zh) * | 2015-08-31 | 2017-03-08 | 北京国双科技有限公司 | 字符串匹配方法和装置 |
CN107766729A (zh) * | 2017-09-11 | 2018-03-06 | 北京天融信网络安全技术有限公司 | 一种病毒特征匹配方法、终端及计算机可读存储介质 |
CN108898019A (zh) * | 2018-08-17 | 2018-11-27 | 广州瀚华建筑设计有限公司 | Cad病毒查杀方法、系统、计算机设备和可读存储介质 |
CN111368297A (zh) * | 2020-02-02 | 2020-07-03 | 西安电子科技大学 | 隐私保护移动恶意软件检测方法、系统、存储介质及应用 |
CN111417121A (zh) * | 2020-02-17 | 2020-07-14 | 西安电子科技大学 | 具有隐私保护的多恶意软件混合检测方法、系统、装置 |
CN112487432A (zh) * | 2020-12-10 | 2021-03-12 | 杭州安恒信息技术股份有限公司 | 一种基于图标匹配的恶意文件检测的方法、系统及设备 |
CN112513848A (zh) * | 2018-06-15 | 2021-03-16 | 诺基亚技术有限公司 | 隐私保护内容分类 |
CN113051568A (zh) * | 2021-03-29 | 2021-06-29 | 深信服科技股份有限公司 | 一种病毒检测方法、装置、电子设备及存储介质 |
CN114490714A (zh) * | 2022-01-26 | 2022-05-13 | 北京华顺信安科技有限公司 | 一种基于云匹配的资产标签检测方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102123396A (zh) * | 2011-02-14 | 2011-07-13 | 恒安嘉新(北京)科技有限公司 | 基于通信网的手机病毒和恶意软件的云检测方法 |
EP2610776A2 (en) * | 2011-09-16 | 2013-07-03 | Veracode, Inc. | Automated behavioural and static analysis using an instrumented sandbox and machine learning classification for mobile security |
US20140143869A1 (en) * | 2012-11-20 | 2014-05-22 | Symantec Corporation | Using telemetry to reduce malware definition package size |
CN104144148A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 漏洞扫描方法和服务器、以及风险评估系统 |
-
2015
- 2015-04-30 CN CN201510217304.8A patent/CN104850784B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102123396A (zh) * | 2011-02-14 | 2011-07-13 | 恒安嘉新(北京)科技有限公司 | 基于通信网的手机病毒和恶意软件的云检测方法 |
EP2610776A2 (en) * | 2011-09-16 | 2013-07-03 | Veracode, Inc. | Automated behavioural and static analysis using an instrumented sandbox and machine learning classification for mobile security |
US20140143869A1 (en) * | 2012-11-20 | 2014-05-22 | Symantec Corporation | Using telemetry to reduce malware definition package size |
CN104144148A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 漏洞扫描方法和服务器、以及风险评估系统 |
Non-Patent Citations (1)
Title |
---|
王飞: "《中国博士学位论文全文数据库(信息科技辑)》", 15 November 2014 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484730A (zh) * | 2015-08-31 | 2017-03-08 | 北京国双科技有限公司 | 字符串匹配方法和装置 |
CN107766729A (zh) * | 2017-09-11 | 2018-03-06 | 北京天融信网络安全技术有限公司 | 一种病毒特征匹配方法、终端及计算机可读存储介质 |
CN112513848A (zh) * | 2018-06-15 | 2021-03-16 | 诺基亚技术有限公司 | 隐私保护内容分类 |
CN108898019A (zh) * | 2018-08-17 | 2018-11-27 | 广州瀚华建筑设计有限公司 | Cad病毒查杀方法、系统、计算机设备和可读存储介质 |
CN111368297A (zh) * | 2020-02-02 | 2020-07-03 | 西安电子科技大学 | 隐私保护移动恶意软件检测方法、系统、存储介质及应用 |
CN111368297B (zh) * | 2020-02-02 | 2023-02-28 | 西安电子科技大学 | 隐私保护移动恶意软件检测方法、系统、存储介质及应用 |
CN111417121A (zh) * | 2020-02-17 | 2020-07-14 | 西安电子科技大学 | 具有隐私保护的多恶意软件混合检测方法、系统、装置 |
CN111417121B (zh) * | 2020-02-17 | 2022-04-12 | 西安电子科技大学 | 具有隐私保护的多恶意软件混合检测方法、系统、装置 |
CN112487432A (zh) * | 2020-12-10 | 2021-03-12 | 杭州安恒信息技术股份有限公司 | 一种基于图标匹配的恶意文件检测的方法、系统及设备 |
CN113051568A (zh) * | 2021-03-29 | 2021-06-29 | 深信服科技股份有限公司 | 一种病毒检测方法、装置、电子设备及存储介质 |
CN114490714A (zh) * | 2022-01-26 | 2022-05-13 | 北京华顺信安科技有限公司 | 一种基于云匹配的资产标签检测方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104850784B (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104850784A (zh) | 一种基于哈希特征向量的恶意软件云检测方法及系统 | |
CN104850783A (zh) | 一种基于哈希特征矩阵的恶意软件云检测方法及系统 | |
CN113141782A (zh) | 在具有原始作品数据的区块链上存储和验证衍生作品数据 | |
CN108259514B (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
CN103577323B (zh) | 基于动态关键指令序列胎记的软件抄袭检测方法 | |
CN116980230B (zh) | 一种信息安全保护方法及装置 | |
CN112347508A (zh) | 一种区块链数据共享加密和解密方法及系统 | |
KR102259760B1 (ko) | 화이트 리스트 기반 비정상 프로세스 분석 서비스 제공 시스템 | |
CN109726578B (zh) | 一种动态二维码防伪解决办法 | |
CN110138731B (zh) | 一种基于大数据的网络防攻击方法 | |
Bae | Verifying a secure authentication protocol for IoT medical devices | |
Cui et al. | Towards privacy-preserving malware detection systems for android | |
CN116614251A (zh) | 一种数据安全监控系统 | |
CN117134993B (zh) | 基于可累加承诺验证的检索密文可检测方法及设备 | |
CN110995658A (zh) | 网关保护方法、装置、计算机设备及存储介质 | |
CN114553532A (zh) | 数据安全传输方法、装置、电子设备及存储介质 | |
KR100772521B1 (ko) | Rfid 시스템에서의 태그 인증 장치 및 방법 | |
WO2023217086A1 (zh) | 资源文件更新方法、装置、设备及可读存储介质 | |
CN111934882A (zh) | 基于区块链的身份认证方法、装置、电子设备及存储介质 | |
CN117040804A (zh) | 网站的网络攻击检测方法、装置、设备、介质和程序产品 | |
CN117034360A (zh) | 文件泄密风险检测方法、设备、存储介质及装置 | |
CN115550002B (zh) | 一种基于tee的智能家居远程控制方法及相关装置 | |
CN114625756A (zh) | 数据查询方法、装置和服务器 | |
KR20090005834A (ko) | 분산환경에 적합한 저비용 rfid 인증 프로토콜 방법 | |
CN114169540A (zh) | 一种基于改进机器学习的网页用户行为检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |