CN102289617B - 反恶意软件装置、服务器和匹配恶意软件模式的方法 - Google Patents
反恶意软件装置、服务器和匹配恶意软件模式的方法 Download PDFInfo
- Publication number
- CN102289617B CN102289617B CN201110183976.3A CN201110183976A CN102289617B CN 102289617 B CN102289617 B CN 102289617B CN 201110183976 A CN201110183976 A CN 201110183976A CN 102289617 B CN102289617 B CN 102289617B
- Authority
- CN
- China
- Prior art keywords
- hash
- malware
- coefficient
- cryptographic hash
- pattern
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Abstract
本发明提供一种反恶意软件装置、服务器和匹配恶意软件模式的方法。哈希值产生单元通过使用具有至少一个哈希系数的哈希函数来产生恶意软件模式的哈希值和目标数据的哈希值。哈希匹配器单元将目标数据的哈希值与恶意软件模式的哈希值进行匹配。如果哈希匹配器单元匹配成功,则匹配单元将恶意软件模式与目标数据进行匹配。
Description
本申请要求于2010年6月21日提交到韩国知识产权局的第10-2010-0058504号韩国专利申请以及于2011年6月17日提交到韩国知识产权局的第10-2011-0059075号韩国专利申请的优先权,所述申请通过引用全部公开于此以资参考。
技术领域
符合示例性实施例的方法和设备涉及一种反恶意软件装置、服务器和匹配恶意软件模式(malware pattern)的方法,更具体地说,涉及一种能够在病毒模式匹配中最小化哈希冲突的反恶意软件装置、服务器和匹配恶意软件模式的方法。
背景技术
恶意软件(malware)是一种被设计为用于侵害计算机系统的软件,诸如,计算机病毒、木马程序、恶意代码等。由于与打开附件或者下载并安装软件的传统概念不同,仅通过点击著名搜索页面的链接或图像,非期望的软件就被安装并且系统可被袭击,所以需要留意恶意软件。
与计算机相比,对操作系统和文件系统的关注较少,而使用的数据的重要性相对较低,因此,迄今为止,对于无线通信系统的移动病毒并未被很好地识别和破坏。
然而,随着移动终端的硬件变得高端,并且其中运行的应用程序变得多样和复杂,过去攻击计算机的恶意软件很可能对移动终端造成严重的损害。具体说来,随着移动终端互联网服务(诸如WiBro)趋向于普及,除了攻击计算机应用程序的脆弱性的恶意软件之外,还出现了攻击服务和便携式终端应用程序(诸如,蓝牙、多媒体消息系统(MMS)等)的脆弱性的移动恶意软件。这些多样的移动恶意软件会造成严重的损害,包括:引起便携式终端的故障、数据的删除或用户隐私信息的泄露。
发明内容
一个或多个示例性实施例可克服上述缺点以及以上未描述的其它缺点。然而,应理解:一个或多个示例性实施例不需要克服上述缺点,并且可以不克服上述任何问题。
一个或多个示例性实施例提供一种反恶意软件装置、服务器和匹配恶意软件模式的方法,其在服务器选择用于防止哈希冲突的哈希系数或哈希函数,并将所述哈希系数或哈希函数发送到反恶意软件装置,由此最小化哈希冲突。
一个或多个示例性实施例还提供一种用于匹配恶意软件模式的反恶意软件装置、服务器和方法,其在反恶意软件系统的服务器中计算哈希系数,由此在客户机防止哈希冲突。
根据示例性实施例的一方面,提供一种反恶意软件装置,所述反恶意软件装置包括:哈希值产生单元,用于通过使用具有至少一个哈希系数的哈希函数来产生恶意软件模式的哈希值以及目标数据的哈希值;哈希匹配器单元,用于将目标数据的哈希值匹配到恶意软件模式的哈希值;以及匹配单元,如果哈希匹配器单元匹配成功,则所述匹配单元将恶意软件模式与目标数据进行匹配。
根据另一示例性实施例的一方面,提供一种用于将恶意软件模式发送到反恶意软件装置的服务器,其中,所述反恶意软件装置通过使用具有哈希系数的哈希函数来执行恶意软件模式匹配,所述服务器包括:更新单元,用于当恶意软件模式被发送到反恶意软件装置时,将哈希系数发送到反恶意软件装置。
根据另一示例性实施例的一方面,提供一种用于通过使用哈希系数来执行恶意软件模式匹配操作的方法,所述方法包括:基于恶意软件模式来选择哈希系数,使得恶意软件模式的哈希值之间的冲突概率被最小化;通过使用选择的哈希系数来计算恶意软件的哈希值;当恶意软件模式的哈希值中的至少一个与目标数据的哈希值彼此匹配时,将恶意软件模式与目标数据进行匹配。
根据另一示例性实施例的一方面,提供一种通过使用哈希函数进行的恶意软件模式匹配方法,所述方法包括:通过使用哈希函数来计算恶意软件模式的哈希值;通过使用哈希函数来计算目标数据的哈希值;当恶意软件模式的哈希值与目标数据的哈希值彼此匹配时,将恶意软件模式与目标数据进行匹配;确定计算的恶意软件模式数据的哈希值是否彼此冲突。
示例性实施例的附加方面和优点将在下面的详细描述中进行阐述,将通过所述详细描述而变得清楚,或者可通过对示例性实施例的实践而获知。
附图说明
通过参照附图进行的对示例性实施例的详细描述,本发明的上述和/或其它方面将会更加清楚,其中:
图1是根据本发明示例性实施例的反恶意软件系统的框图;
图2是根据本发明示例性实施例的用于解释发送到反恶意软件装置的恶意软件模式数据的包和/或文件的格式的示图;
图3示意性示出在哈希值产生单元中产生用于第一恶意软件模式数据中的病毒模式数据的哈希值的一系列操作;
图4是第一哈希匹配器表和第一子项匹配器(sub matcher)表;
图5是模式DB的表;
图6是第二哈希匹配器表和第二子项匹配器表;
图7是根据本发明另一示例性实施例的反恶意软件系统的框图;
图8是示出根据本发明示例性实施例的恶意软件模式匹配方法中服务器的操作的流程图;
图9是根据本发明示例性实施例的反恶意软件装置的恶意软件模式匹配方法的流程图;
图10是根据本发明示例性实施例的反恶意软件装置的恶意软件模式匹配方法的更新操作的流程图;
图11是根据本发明另一示例性实施例的反恶意软件系统的框图;
图12是根据本发明示例性实施例的在反恶意软件系统中防止哈希冲突的方法的流程图;
图13是根据本发明示例性实施例的产生块(block)的操作的流程图;
图14是根据本发明示例性实施例的防止哈希冲突的操作的流程图;
图15是根据本发明示例性实施例的处理哈希函数的操作的流程图;以及
图16是根据本发明示例性实施例的由服务器执行的更新操作的流程图。
具体实施方式
现将参照附图更加全面地描述示例性实施例,以阐明本发明的各方面、特点和优点。然而,本发明可以按照许多不同的形式来实施,而不应被解释为受限于这里阐述的示例性实施例。而提供了这些实施例,以使本公开将是全面和完整的,并将本发明的范围充分传达给本领域的普通技术人员。应理解:当部件、层或区域被称为在另一部件、层或区域“之上”时,所述部件、层或区域可以直接位于所述另一部件、层或区域之上,或者可插入部件、层或区域。
这里使用的术语仅仅是为了描述特定实施例,并不是为了限制本发明。如这里所使用的,单数形式意在还包括复数形式,除非上下文清楚地指示并非如此。还应理解:当在说明书中使用术语“包括”时,所述术语“包括”表示存在声明的特征、整数、步骤、操作、层、区域、部件、组件和/或它们的组合,但是并不排除存在或者添加有一个或多个其它特征、整数、步骤、操作、层、区域、部件、组件和/或它们的组合。如这里所使用的,术语“和/或”包括一个或多个相关的列出项中的任何项或项组合。
图1是根据本发明示例性实施例的反恶意软件系统的框图。
参照图1,反恶意软件系统包括服务器100和反恶意软件装置200。服务器100和反恶意软件装置200可通过网络10彼此连接,以执行通信。
服务器100将恶意软件模式数据库(DB)和至少一个哈希系数发送到反恶意软件装置200。恶意软件模式DB包括多个恶意软件模式。恶意软件模式(诸如病毒、木马程序、感染文件、恶意代码等)会侵害文件。
恶意软件模式是被反恶意软件装置200用来检测目标数据是否感染有恶意软件的参考数据。恶意软件模式可包括用于病毒扫描的病毒模式以及用于放火墙过滤的规则模式。后面将描述病毒模式和规则模式。
哈希系数被用于在反恶意软件装置200中计算哈希值。哈希系数可被选为用于尽可能地防止哈希冲突的系数。根据本发明的实施例,哈希系数可包括基于恶意软件模式的病毒模式选择的病毒哈希系数以及基于规则模式选择的规则哈希系数。
如果更新恶意软件模式被产生,则服务器100重新选择哈希系数,并将包括更新恶意软件模式和重新选择的哈希系数的更新恶意软件模式DB发送到反恶意软件装置200。
反恶意软件装置200通过使用具有至少一个哈希系数的哈希函数来执行恶意软件模式匹配。所述至少一个哈希系数由服务器100选择。为此,反恶意软件装置200将从服务器100接收的恶意软件模式DB中所包括的哈希系数用作哈希函数的系数,并将恶意软件模式代入哈希函数的参数。反恶意软件装置200可相应于移动电子装置,诸如,片上系统、笔记本、桌上型计算机、智能电话、智能卡、半导体知识产权芯片(IP)等。以下,“恶意软件模式或多个恶意软件模式”通常被称为“恶意软件模式数据”,“将被发送到反恶意软件装置200的恶意软件模式数据”或“先前存储在反恶意软件装置200中的恶意软件模式数据”被称为“第一恶意软件模式数据”,“将被发送到反恶意软件装置200的哈希系数”被称为“第一哈希系数”,“具有第一哈希系数的哈希函数”被称为“第一哈希函数”。
此外,以下,如果从服务器100发送到反恶意软件装置200的第一恶意软件模式数据是病毒模式数据,则与病毒模式数据一起发送的第一哈希系数可以是病毒哈希系数。如果从服务器100发送到反恶意软件装置200的第一恶意软件模式数据是规则模式数据,则与规则模式数据一起发送的第一哈希系数可以是规则哈希系数。如果从服务器100发送到反恶意软件装置200的第一恶意软件模式数据包括病毒模式数据和规则模式数据两者,则与病毒模式数据和规则模式数据一起发送的第一哈希系数可包括病毒哈希系数和规则哈希系数。根据本发明的实施例,服务器100可包括哈希系数选择单元110和更新单元120。
当哈希函数被应用于第一恶意软件模式数据时,哈希系数选择单元110基于产生最小哈希冲突结果的哈希函数选择将被发送到反恶意软件装置200的第一哈希系数。
例如,当第一恶意软件模式数据被应用于哈希函数时,哈希系数选择单元110可通过使用以下算法来选择第一哈希系数,所述算法使获得的哈希值的冲突概率最小化。更具体地说,哈希系数选择单元110可通过使用多个候选哈希组GN(N=1,2…)来获得第一恶意软件模式数据的哈希值。每个候选哈希组GN包括至少一个候选哈希系数。例如,第一候选哈希组G1包括候选哈希系数a1、b1、c1,第二候选哈希组G2包括候选哈希系数a2、b2、c2。哈希系数选择单元110可通过将候选哈希组G1、G2、…的候选哈希系数应用于哈希函数来计算每个候选哈希组GN的哈希值。在这一点上,哈希系数选择单元110可基于反恶意软件装置200正在使用的第一恶意软件模式数据来计算哈希值。哈希系数选择单元110可对每个候选哈希组GN的哈希值的冲突数量(即,哈希冲突的数量)进行计数,并将具有最少哈希冲突的候选哈希组的哈希系数选择为第一哈希系数。
或者,当第一恶意软件模式数据被应用于哈希函数时,哈希系数选择单元110可将使获得的哈希值的方差值最小化的哈希系数选为第一哈希系数。也就是说,如果每个候选哈希组GN的哈希值被计算,则哈希系数选择单元110可针对每个候选哈希组GN计算哈希值的方差值。哈希系数选择单元110可确认导致针对每个候选哈希组GN计算的方差值中的最小方差值的计算的候选哈希组,并将确认的候选哈希组的哈希系数选为第一哈希系数。
更新单元120在将第一恶意软件模式数据发送到反恶意软件装置200时,可发送选择的第一哈希系数,作为恶意软件模式数据。由更新单元120发送的第一哈希系数可被用于计算被发送到反恶意软件装置200的第一恶意软件模式数据的哈希值。
图2是根据本发明示例性实施例的用于解释被发送到反恶意软件装置200的恶意软件模式数据的包和/或文件的格式的示图。
参照图2,所述包和/或文件包括:头部项310、哈希项320和数据项330。更新单元120将头部信息写入头部项310,将第一哈希系数写入哈希项320,并将第一恶意软件模式数据记录在数据项330中。如果数据被写入头部项310、哈希项320和数据项330中,则更新单元120可按照SVD格式将包和/或文件发送到反恶意软件装置200。
同时,下面,当存在将被更新的数据时,将描述第一恶意软件模式数据。以下,“第一恶意软件模式数据中将被更新的数据”被称为“更新恶意软件模式数据”,基于更新恶意软件模式数据被进一步重新计算的哈希系数被称为“第二哈希系数”,“具有第二哈希系数的哈希函数”被称为“第二哈希函数”。
当更新恶意软件模式数据和第一恶意软件模式数据被用于哈希函数时,哈希系数选择单元110可通过使用以下算法来选择第二哈希系数,所述算法使获得的哈希值之间的冲突概率最小化。或者,当更新恶意软件模式数据和第一恶意软件模式数据被应用于哈希函数时,哈希系数选择单元110可将使获得的哈希值的方差值最小化的哈希系数作为第二哈希系数。
更新单元120可将选择的第二哈希系数和更新恶意软件模式数据发送到反恶意软件装置200。参照图2,更新单元120可将头部信息写入头部项310,将第二哈希系数写入哈希项320,将更新恶意软件模式数据写入数据项330,并将包和/或文件发送到反恶意软件装置200。
返回参照图1,根据本发明实施例的反恶意软件装置200可包括模式DB210、哈希值产生单元220、模式的哈希值表230、表产生单元240、第一哈希匹配器表250、第一子项匹配器表255、第二哈希匹配器表260、第二子项匹配器表265、哈希匹配器单元270和匹配单元280。
反恶意软件装置200按照图2所示的SVD格式从服务器100接收包括第一恶意软件模式数据和第一哈希系数的恶意软件模式DB。恶意软件模式DB中的第一恶意软件模式数据被存储在模式DB 210中的存储器(未示出)中,第一哈希系数被输入到哈希值产生单元220。
模式DB 210存储从服务器100接收的第一恶意软件模式数据。当匹配单元280对目标数据执行匹配时,第一恶意软件模式数据可被用于检测目标数据是否感染有恶意软件。
当从服务器100接收的第一恶意软件模式数据包括病毒模式数据和规则模式数据两者时,模式DB 210可包括病毒模式DB和规则模式DB。病毒模式DB和规则模式DB可被存储在片上系统(SoC)中所包括的存储器(未示出)中。
病毒模式DB是病毒模式数据的集合,被用于对目标数据执行病毒扫描。也就是说,病毒模式数据被用于检测目标数据是否感染有病毒。
规则模式DB是存储规则模式数据的DB。规则模式数据被用于过滤从外部输入的包数据,即,用于确定是阻止还是允许所述包数据。规则模式数据可由用户直接设置,或可被服务器100设置为默认值并发送到用户装置。
哈希值产生单元220可通过使用从服务器100接收的第一哈希系数以及存储在模式DB 210中的第一恶意软件模式数据中的至少一个来产生第一恶意软件模式数据的哈希值HP。也就是说,哈希值产生单元220可产生病毒模式数据的哈希值HV或产生规则模式数据的哈希值HR。因此,以下,哈希值HP可以是哈希值HV或哈希值HR。
由服务器100基于通过对于第一恶意软件模式数据的哈希函数的最小哈希冲突结果来选择第一哈希系数。第一哈希函数是被确定用于使针对将被发送到反恶意软件装置200的第一恶意软件模式数据而随机获得的哈希值之间的冲突概率最小化的函数。
哈希值产生单元220可通过使用具有第一哈希系数的第一哈希函数来产生第一恶意软件模式数据的哈希值。
现将参照图3到图5来描述通过在反恶意软件装置200中使用病毒模式数据和病毒哈希系数来产生病毒模式数据的哈希值,以及执行病毒扫描的操作。
图3示意性示出在哈希值产生单元220中产生用于第一恶意软件模式数据中的病毒模式数据的哈希值的一系列操作。
参照图3,当哈希函数形式为f(H)=ax+by+c时,a、b、c指示哈希系数,x、y、z指示参数。因此,当从服务器110接收的第一哈希系数(即,病毒哈希系数)为a1、b1、c1时,哈希值产生单元220可通过将a1、b1、c1分别代入a、b、c来产生第一哈希函数f(H)=a1x+b1y+c1z。哈希值产生单元220可将存储在模式DB 210中的病毒模式数据的值输入到x、y、z,并产生每个病毒模式数据的哈希值HV。作为参数输入的值可具有从病毒模式数据输入的所有数值。也就是说,如果输入参数值的数量是100,则一条病毒模式数据的哈希值的最大数量可以是100。
如果全部病毒模式数据的哈希值HV被产生,则哈希值产生单元220可产生模式的哈希值表230。
模式的哈希值表230是由哈希值产生单元220产生的哈希值HV与对应于哈希值HV的病毒模式数据的模式的映射表,并可被加载到存储器(未示出)。在图3中,当病毒模式数据中的任一哈希值为“X”时,与哈希值X对应的病毒模式数据的模式具有abcdefg。
表产生单元240可基于模式的哈希值表230产生第一哈希匹配器表250和第一子项匹配器表255。
图4是第一哈希匹配器表250和第一子项匹配器表255。
参照图4的右侧表,可从第一哈希函数产生的所有哈希值HV被定义为索引。
表产生单元240可产生第一哈希匹配器表250。例如,表产生单元240可将模式的哈希值表230的哈希值HV与所有索引进行比较,如果哈希值HV与索引相同,则将相同的索引设置为“1”。当没有与哈希值HV相同的索引时,使用值“0”,当存在与哈希值HV相同的索引时,使用值“1”。图3的模式的哈希值表包括与哈希值HV相同的X和Y,因此,在图4的第一哈希匹配器表250的索引X和Y处标示“1”。
表产生单元240可通过使用模式的哈希值表230和第一哈希匹配器表250来产生第一子项匹配器表255。第一子项匹配器表255可被用于执行用于在匹配单元280中的病毒扫描的轻微模式匹配(LPM,light pattern matching)和精确模式匹配(EPM,exact pattern matching)中的至少一个。后面将描述LPM和EPM。
参照图5,表产生单元240可针对第一哈希匹配器表250的所有索引中与哈希值HV相同的索引(包括X和Y)产生第一子项匹配器表255。以下,“所有索引中与哈希值HV相同的索引”被称为“匹配索引”。
表产生单元240可通过使用与匹配索引对应的每个病毒模式数据的中间值和末尾值以及存储了病毒模式数据的地址来产生第一子项匹配器表255。与匹配索引对应的每个病毒模式数据的中间值和末尾值可参照模式的哈希值表230。例如,如果匹配索引是X,则X的模式为abcdefg。表产生单元240可确认模式的哈希值表中的模式abcdefg的中间值d和末尾值g。
图4的“病毒模式数据地址”是存储有病毒模式数据的地址。“偏移1”表示模式的头部值与中间值之间的偏移。“偏移2”表示模式的头部值与末尾值之间的偏移。
如果两个或更多哈希值HV与第一哈希匹配器表250中的索引相同,则认为已经发生了哈希冲突。例如,如果两个哈希值HV与第一哈希匹配器表250中的索引相同,则“冲突模式的偏移”表示分配给所述两个哈希值HV之一的匹配索引。由于与所述两个哈希值HV对应的病毒模式数据不同,因此,所述两个哈希值HV可具有不同的中间值和末尾值。因此,表产生单元240通过向所述两个哈希值HV之一分配不同的匹配索引来产生第一子项匹配器表255。参照图5,匹配索引X的冲突模式偏移为Z。这表示相同的哈希值HV被映射到匹配索引Z。
返回参照图1,哈希值产生单元220可接收将对其执行病毒扫描的目标数据,并且还可产生目标数据的哈希值。目标数据可包括先前被划分为预定义大小的多条子项数据S1、S2、S3…。在这种情况下,哈希值产生单元220可顺序地接收子项数据S1、S2、S3…,并产生子项数据S1、S2、S3…的哈希值HS。哈希值产生单元220可向匹配单元280提供产生的子项数据S1、S2、S3…的哈希值HS。以下,将描述第一子项数据S1和第一子项数据S1的哈希值HS1。
哈希匹配器单元270可从哈希值产生单元220接收第一子项数据S1的哈希值HS1。哈希匹配器单元270可将第一子项数据S1的哈希值HS1匹配到第一哈希匹配器表250的标示“1”的索引(例如,X和Y)。标示“1”的匹配索引是病毒模式数据的哈希值HV的一部分。
与哈希匹配器单元270以接口相连的硬件(未示出)可确定匹配的成功。如果第一哈希匹配器表250的标示“1”的匹配索引(例如,X和Y)包括与第一子项数据S1的哈希值HS1相同的匹配索引,则所述硬件可确定匹配成功。例如,当第一子项数据S1的哈希值HS1是X时,如果匹配索引包括X,则硬件确定匹配成功。
如果通过哈希匹配器单元270使匹配成功,则匹配单元280可将至少一条病毒模式数据与第一子项数据S1的模式进行匹配。更具体地说,匹配单元280可执行将对应于与哈希值HS1相同的匹配索引(例如,X)的病毒模式数据与第一子项数据S1的模式进行匹配的操作。这是因为“与第一子项数据S1的哈希值HS1相同的匹配索引”是通过将病毒模式数据代入第一哈希函数而产生的哈希值。将病毒模式数据与第一子项数据S1的模式进行匹配的结果影响对第一子项数据S是否感染有恶意软件的判定。
为此,匹配单元280可使用LPM和EPM。
LPM是一种通过使用病毒模式数据以及第一子项数据S1的中间值和末尾值来匹配模式的方法。更具体地说,匹配单元280确认第一子项匹配器表255中与第一子项数据S1的哈希值HS1相同的匹配索引(例如,X)的中间值和末尾值。匹配单元280确认第一子项数据S1的中间值和末尾值。匹配单元280将确认的匹配索引的中间值与第一子项数据S1的中间值进行匹配,并将确认的匹配索引的末尾值与第一子项数据S1的末尾值进行匹配。
作为使用LPM的结果,如果中间值彼此不同或者末尾值彼此不同,则表示第一子项数据S1不具有病毒模式数据的模式。因此,第一子项数据S1可被确定为未感染有恶意软件的正常数据。
同时,作为使用LPM的结果,如果中间值彼此相同并且末尾值彼此相同,则匹配单元280可通过使用EPM来执行模式匹配操作。更具体地说,作为使用LPM的结果,如果中间值和末尾值彼此相同,则匹配单元280可通过使用病毒模式数据和第一子项数据S1的所有位置的值来对模式进行匹配。
为此,匹配单元280基于第一子项匹配器表255来确认被映射到并存储在匹配索引X中的病毒模式数据的地址。匹配单元280从存储器(未示出)读取存储在确认的地址中的病毒模式数据的模式。模式DB 210或模式的哈希值表230可被加载到存储器中。图5是模式DB 210的表。匹配单元280将存储在对应的地址中的病毒模式数据的全部模式abcdefg与第一子项数据S1的全部模式进行匹配。
以下,现将参照图6来描述通过在反恶意软件装置200中使用规则模式数据和规则哈希函数来产生规则模式数据的哈希值并过滤哈希值的操作。
图6是第二哈希匹配器表260和第二子项匹配器表265。
哈希值产生单元220可通过将从服务器100接收的规则哈希系数应用于先前的哈希函数来创建第一哈希函数。哈希值产生单元220可通过将存储在模式DB 210中的至少一部分规则模式数据的值输入到第一哈希函数来产生规则模式数据的哈希值HR。这类似于参照图3描述的产生哈希值HR的处理。
如果所有规则模式数据的哈希值HR被产生,则哈希值产生单元220可产生规则模式哈希值表(未示出)。规则模式哈希值表(未示出)可被加载到存储器(未示出),其中,所述规则模式哈希值表为将由哈希值产生单元220产生的哈希值HR与对应于所述哈希值HR的规则模式数据的模式进行匹配的表。
如果所有规则模式数据的哈希值HR被产生,则表产生单元240可基于规则模式的哈希值表(未示出)来产生第二哈希匹配器表260和第二子项匹配器表265。
参照图6,第二哈希匹配器表260包括索引(键值,key value)和指示“存在/不存在”的项。表产生单元240可将能够从第一哈希函数产生的所有哈希值HR确定为索引。表产生单元240可通过将从规则模式数据产生的哈希值HR与所有索引进行比较来产生第二哈希匹配器表260。在第二哈希匹配器表260中,指示“存在/不存在”的项的值“1”表示存在与哈希值HR相同的索引,指示“存在/不存在”的所述项的值“0”表示不存在与哈希值HR相同的索引。这类似于参照图4所描述的产生第一哈希匹配器表250的处理。
在第二哈希匹配器表260的索引X处标示“1”,因此,在所有规则模式数据的哈希值HR中存在X。
表产生单元240可通过使用规则模式的哈希值表(未示出)和第二哈希匹配器表260来产生第二子项匹配器表265。
表产生单元240可针对第二哈希匹配器表260的所有索引中与哈希值HR相同的索引(包括X和A)产生第二子项匹配器表265。以下,将所有索引中与哈希值HR相同的索引称为匹配索引。
第二子项匹配器表265包括仅用于IP和端口的子项(sub)。每个子项具有不同的值。
IP子项包括索引、中间值“中间(mid)”、末尾值“末尾(tail)”、应用于所有协议的规则模式的存在/不存在“ispro”、应用于所有端口的规则模式的存在/不存在“isport”、实际模式存储器地址、下一地址“next”等。
端口子项包括索引、IP哈希值、协议哈希值“proto hash(哈希)”、实际模式存储器地址、下一地址“next”等。
IP子项的中间值“mid”具有IP地址的第三字节值,IP子项的末尾值具有IP地址的最后字节的值。这种字节位置选择可实现通过在哈希匹配器270中使用IP的开头2字节、中间值和末尾值对IPv4的IP地址执行认证。可通过作为规则模式数据的包的头部来确认与匹配索引对应的规则模式数据的中间值和末尾值。
ispro值指示应用于所有协议的规则模式的存在/不存在“ispro”。如果对应的索引值的实际规则模式中的一个协议是全部(ALL),则ispro值为1,如果不是,则ispro值为0。
ispro可允许根据对应IP的值来重新构建标记(IP,Protocol(协议),Port(端口))的范围。例如,如果存在两个规则模式,诸如,[in,202.131.29.71,TCP,80,Allow(允许)]和[in,202.131.29.70,ALL(全部),80,Allow],则标记被设置为非全部(Not all)、全部(ALL)和非全部。在这一点上,由于202.131.29.71不具有对于协议为ALL的规则模式,所以ispro变为0,这随后将标记“Protocol(协议)”改为非全部(Not all)。
isport值指示应用于所有端口的规则模式的存在/不存在“isport”。如果对应的索引值的实际规则模式中的一个端口是全部(ALL),则isport值为1,如果不是,则isport值为0。这类似于ispro值的函数。
实际模式存储器地址具有实际存储对应的规则数据的存储器的地址值。下一地址“next”是用于当在作为第二子项匹配器表265的一哈希值中聚焦各种规则模式时搜索下一子项所必需的值。下一地址“next”类似于第一子项匹配器表255的冲突模式的偏移。
在本发明中,端口子项的IP哈希值和协议的哈希值被用于给出对应的规则的端口、IP和协议之间的关联。如果端口、IP和协议没有关联,则必须针对端口搜索全部规则模式。
返回参照图1,哈希值产生单元220可接收将被过滤的目标数据,还可产生目标数据的哈希值HF,并向匹配单元280提供所述哈希值HF。哈希值产生单元220可产生目标数据的包的各种类型的信息(诸如,IP地址、端口、协议等)中的每一种信息的哈希值HF。
如果第二哈希匹配器表260和第二子项匹配器表265被产生,则哈希匹配器单元270可从哈希值产生单元220接收目标数据的哈希值HF。哈希匹配器单元270可将第二哈希匹配器表260的标示有“1”的匹配索引(例如,X和A)与目标数据的哈希值HF进行匹配。
如果通过哈希匹配器单元270使匹配成功,则匹配单元280可将与哈希值HF相同的匹配索引(例如,X)所对应的规则模式数据的模式与目标数据进行匹配,并执行过滤。为了进行模式匹配,匹配单元280可基于第二子项匹配器表265使用LPM和EPM。这与针对病毒模式数据的模式匹配描述的内容相同,因此,将不在这里重复其详细描述。可按照硬件逻辑方式来实现哈希匹配器单元270和匹配单元280。如果通过模式匹配,规则模式数据的模式和目标数据的模式彼此相同,则可阻止目标数据。同时,返回参照图1,如果第一恶意软件模式数据被更新,即,如果存在更新恶意软件模式数据,则可基于更新恶意软件模式数据的特性来改变第一哈希系数和第一哈希函数。这是因为服务器100基于通过对于更新恶意软件模式数据的哈希函数的最小哈希冲突结果来重新产生哈希系数。重新产生的哈希系数或改变的第一哈希函数是以上声明的第二哈希系数。因此,从服务器100提供的第二哈希系数被包括在更新恶意软件模式数据中。
当哈希值产生单元220从服务器100接收到更新恶意软件模式数据时,哈希值产生单元220可通过使用与更新恶意软件模式数据一起发送的第二哈希系数来重新产生哈希值。也就是说,哈希值产生单元220可通过使用具有与更新恶意软件模式数据一起从服务器100发送的第二哈希系数的第二哈希函数来重新产生哈希值。因此,包括更新恶意软件模式数据的更新恶意软件模式DB可包括写有头部信息的头部项310和写有第二哈希系数的哈希项320。此外,更新恶意软件模式数据可被添加到模式DB 210。然后,哈希值产生单元220、表产生单元240、哈希匹配器单元270和匹配单元280的操作与输入第一恶意软件模式数据的操作相同,因此,这里将省略对它们的详细描述。
根据以上描述的本发明的实施例,服务器100可将包括哈希系数的恶意软件模式数据发送到反恶意软件装置200。反恶意软件装置200可通过使用从服务器100接收的哈希系数来确定哈希函数,并执行模式匹配。
图7是根据本发明另一示例性实施例的反恶意软件系统的框图。
参照图7,反恶意软件系统包括服务器600和反恶意软件装置700。服务器600和反恶意软件装置700可通过网络20彼此连接以执行通信。图7的服务器600和反恶意软件装置700类似于参照图1到图6描述的服务器100和反恶意软件装置200,这里将省略对它们的详细描述。
然而,图1的服务器100选择哈希系数,并将所述哈希系数发送到反恶意软件200,而服务器600可选择应用哈希系数的哈希函数,并将所述哈希函数发送到反恶意软件装置700。反恶意软件装置700可通过使用接收的哈希函数来产生第一恶意软件模式数据的哈希值和目标数据的哈希值。
为此,本实施例的服务器600包括哈希函数选择单元610和更新单元620。
哈希函数选择单元610可针对第一恶意软件模式数据从反恶意软件引擎选择可检测并快速搜索全部模式数据的函数,将用于选择的函数的最佳系数值选为哈希系数,并确定将被发送到反恶意软件装置700的第一哈希函数。
例如,哈希函数选择单元610针对第一恶意软件模式数据从各个哈希函数选择可检测并快速搜索最佳模式的函数。哈希函数选择单元610可通过使用由图1的哈希系数选择单元110使用的算法来选择第一哈希系数,将第一哈希系数更新到给定哈希函数,并选择第一哈希函数。
或者,哈希函数选择单元610可通过使用由图1的哈希系数选择单元110计算的方差值来选择第一哈希系数,将第一哈希系数更新到给定哈希函数,并选择第一哈希函数。
如果存在用于更新第一恶意软件模式数据的数据,则哈希函数选择单元610可通过使用发送到反恶意软件装置700的新的更新恶意软件模式数据和第一恶意软件模式数据来选择第二哈希函数。
当更新单元620将第一恶意软件模式数据发送到反恶意软件装置700时,更新单元620可发送选择的第一哈希函数和恶意软件模式数据。第一哈希函数可被用于产生发送到反恶意软件装置700的第一恶意软件模式数据的哈希值。
如果服务器600从反恶意软件装置700接收请求,则服务器600将更新哈希函数随同必要的更新恶意软件模式数据发送到反恶意软件装置700。
根据本发明的实施例,如果从服务器600发送到反恶意软件装置700的第一恶意软件模式数据是病毒模式数据,则与病毒模式数据一起发送的第一哈希函数可以是病毒哈希函数。此外,如果从服务器600发送到反恶意软件装置700的第一恶意软件模式数据是规则模式数据,则与规则模式数据一起发送的第一哈希函数可以是规则哈希函数。如果从服务器600发送到反恶意软件装置700的第一恶意软件模式数据包括病毒模式数据和规则模式数据,则与病毒模式数据和规则模式数据一起发送的第一哈希函数可包括病毒哈希函数和规则哈希函数。
同时,根据本发明的另一实施例,反恶意软件装置700可包括模式DB710、哈希值产生单元720、模式的哈希值表730、表产生单元740、第一哈希匹配器表750、第一子项匹配器表755、第二哈希匹配器表760、第二子项匹配器表765、哈希匹配器单元770、匹配单元780和更新请求单元790。
图7的模式DB 710、模式的哈希值表730、表产生单元740、第一哈希匹配器表750、第一子项匹配器表755、第二哈希匹配器表760、第二子项匹配器表765、哈希匹配器单元770和匹配单元780与图1的模式DB 210、模式的哈希值表230、表产生单元240、第一哈希匹配器表250、第一子项匹配器表255、第二哈希匹配器表260、第二子项匹配器表265、哈希匹配器单元270和匹配单元280相同。
然而,哈希值产生单元720通过使用从服务器600接收的第一哈希函数来产生第一恶意软件模式数据的哈希值和子项数据的哈希值。例如,如果第一恶意软件模式数据是病毒模式数据,则哈希值产生单元720通过使用病毒哈希函数来产生病毒模式数据的哈希值。
如果由哈希值产生单元720产生的第一恶意软件模式数据的哈希值之间的冲突数量超过参考值,则更新请求单元790可请求服务器600更新第一哈希系数或第一哈希函数。更新请求单元790还可请求服务器600更新第一恶意软件模式数据以及第一哈希系数。更新请求单元790可选择性地包括在反恶意软件装置700中。
更新请求单元790可监测第一子项匹配器表755并对哈希冲突数量进行计数。例如,更新请求单元790可将写入第二子项匹配器表755的冲突模式偏移项中的匹配索引的数量用作哈希冲突数量。或者,可由计数器(未示出)对哈希冲突数量进行计数。
根据本发明的另一实施例,服务器600可将包括哈希函数的恶意软件模式数据发送到反恶意软件装置700。反恶意软件装置700可通过使用从服务器600接收的哈希函数来产生哈希值,并执行哈希匹配。
图8是示出根据本发明示例性实施例的恶意软件模式匹配方法中服务器的操作的流程图。
参照图8,可由参照图1或图7描述的服务器100或服务器600中的任何一个来执行所述操作。
在操作S810,服务器可选择候选哈希组GN(N=1,2,…)。例如,第一候选哈希组G1可包括候选哈希系数,作为a1、b1、c1,第二候选哈希组G2可包括候选哈希系数,作为a2、b2、c2。
在操作S820,服务器可计算每个候选哈希组GN的哈希值。也就是说,服务器可通过将候选哈希组G1、G2、…应用于哈希函数来计算每个候选哈希组GN的哈希值。在这一点上,服务器可通过将由反恶意软件装置正在使用的恶意软件模式数据代入哈希函数来计算哈希值。
在操作S830,服务器可比较针对每个候选哈希组G1、G2、…计算的哈希值,并确认每个候选哈希组G1、G2、…的哈希冲突的数量。
在操作S840,服务器可确认具有最少哈希冲突的候选哈希组,并选择确认的候选哈希组的哈希系数,作为将被发送到反恶意软件装置的哈希系数。
在操作S850,服务器可将在操作S840选择的哈希系数以及用于在操作S820计算哈希值的恶意软件模式数据发送到反恶意软件装置。
在操作S860,服务器可针对每个候选哈希组G1、G2、…计算在操作S820计算的哈希值的方差值。
在操作S870,服务器可确认具有针对候选哈希组计算的方差值中的最小方差值的候选哈希组,并选择确认的候选哈希组的哈希系数,作为将被发送到反恶意软件装置的哈希系数。
如上所述,当恶意软件模式数据被应用于哈希函数时,服务器可选择使获得的哈希值之间的冲突概率最小化的哈希系数。如果恶意软件模式数据是病毒模式数据,服务器可按照病毒模式数据来选择病毒哈希系数,如果恶意软件模式数据是规则模式数据,则服务器可按照规则模式数据来选择规则哈希系数。
图9是根据本发明示例性实施例的反恶意软件装置的恶意软件模式匹配方法的流程图。
可由参照图1或图7描述的反恶意软件装置200和反恶意软件装置700中的任何一个来执行图9的恶意软件模式匹配方法。
在操作S905,反恶意软件装置可从服务器接收恶意软件模式DB。恶意软件模式DB包括用于进行模式匹配以确定目标数据感染有恶意软件的恶意软件模式数据以及哈希系数。如果在操作S905接收的恶意软件模式数据是用于病毒扫描的病毒模式数据,则哈希系数可以是按照病毒模式数据选择的病毒哈希系数。此外,如果在操作S905接收的恶意软件模式数据是规则模式数据,则哈希系数可以是按照规则模式数据选择的规则哈希系数。此外,如果在操作S905接收的恶意软件模式数据包括病毒模式数据和规则模式数据两者,则哈希系数可包括病毒哈希系数和规则哈希系数两者。
在操作S910,反恶意软件装置在模式DB中存储或更新接收的恶意软件模式数据。
在操作S915,反恶意软件装置可将哈希函数的哈希系数改变为接收的哈希系数。
在操作S920,反恶意软件装置可将恶意软件模式数据代入应用了接收的哈希系数的哈希函数,产生恶意软件模式数据的哈希值,并通过使用产生的哈希值来更新模式的哈希值表。如果不存在模式的哈希值表,则反恶意软件装置可通过使用产生的哈希值来重新产生模式的哈希值表。
在操作S925,反恶意软件装置可基于模式的哈希值表来更新哈希匹配器表和子项匹配器表。如果不存在哈希匹配器表和子项匹配器表,则反恶意软件装置可重新产生哈希匹配器表和子项匹配器表。这已经参照图4和图5详细描述过。
在操作S930,反恶意软件装置可通过以子项数据单位接收目标数据来产生子项数据的哈希值。反恶意软件装置可通过将子项数据代入在操作S915更新的哈希函数来产生子项数据的哈希值。
在操作S935,反恶意软件装置对子项数据的哈希值执行匹配操作。也就是说,反恶意软件装置可将产生的子项数据的哈希值匹配到哈希匹配器表的匹配索引(即,哈希匹配器表中标示有“1”的索引)。
在操作S940,反恶意软件装置可确定所述匹配索引之一是否与子项数据的哈希值相同。
如果在操作S940,匹配索引之一与子项数据的哈希值相同(Y),则反恶意软件装置可执行LPM操作。LPM是通过使用恶意软件模式数据以及子项数据的中间值和末尾值来进行模式匹配的方法。
在操作S950,反恶意软件装置可确定恶意软件模式数据和子项数据的中间值是否相同以及恶意软件模式数据和子项数据的末尾值是否相同。
如果在操作S950,恶意软件模式数据与子项数据的中间值和末尾值相同(Y),则反恶意软件装置可执行EPM操作。EPM是通过使用恶意软件模式数据和子项数据的所有位置的值来进行模式匹配的方法。
在操作S960,反恶意软件装置可确定恶意软件模式数据与全部子项数据是否完全相同。
如果在操作S960,恶意软件模式数据与全部子项数据完全相同(Y),则在操作S965,反恶意软件装置可确定子项数据对应于恶意软件模式。
同时,如果在操作S960,恶意软件模式数据与全部子项数据没有完全相同(N),则在操作S975,反恶意软件装置可确定子项数据对应于正常模式。
同时,如果在操作S940,匹配索引之一与子项数据的哈希值不相同(N),并且如果在操作S950,恶意软件模式数据与子项数据的中间值和末尾值不相同(N),则在操作S975,反恶意软件装置确定当前处理的子项数据是否是目标数据的最后子项数据。
如果当前处理的子项数据不是目标数据的最后子项数据,则反恶意软件装置在操作S935对下一子项数据执行模式匹配。
图10是根据本发明示例性实施例的反恶意软件装置的恶意软件模式匹配方法的更新操作的流程图。
可由参照图1或图7描述的反恶意软件装置200和反恶意软件装置700之一以及服务器100和服务器600之一来执行图10的更新操作。
在操作S1010,如果发生哈希冲突,则在操作S1020,反恶意软件装置可对哈希冲突数量进行计数或确认。反恶意软件装置可对在操作S920产生的恶意软件模式数据的哈希值之间的冲突数量进行计数。反恶意软件装置可从在操作S925产生的子项匹配器表的冲突模式偏移的数量来获知哈希冲突数量。
在操作S1030,反恶意软件装置可将在操作S1020确认的哈希冲突数量与参考值进行比较。
如果在操作S1030,在操作S1020确认的哈希冲突数量超过参考值(Y),则在操作S1040,反恶意软件装置可请求服务器更新恶意软件模式数据和哈希系数。
在操作S1050,服务器可根据反恶意软件装置的请求,选择使哈希冲突发生概率最小化的哈希系数或哈希函数。服务器可基于先前涉及的恶意软件模式数据或更新恶意软件模式数据来重新选择哈希系数或哈希函数。上述处理可类似于参照图8描述的操作。
在操作S1060,服务器可将在操作S1050涉及的更新恶意软件模式数据和重新选择的哈希系数或哈希函数发送到反恶意软件装置。
图11是根据本发明另一示例性实施例的反恶意软件系统的框图。
参照图11,反恶意软件系统包括服务器1100和客户机1200。
服务器1100更新恶意软件模式DB,计算用于防止在客户机1200检测恶意软件的操作中发生哈希冲突的哈希系数,并将计算出的哈希系数发送到客户机1200。服务器1100可以是参照图1和图7描述的服务器100和服务器600之一,也可按照类似于服务器100和服务器600的方式来操作。恶意软件模式DB可以是参照图1和图7描述的恶意软件模式DB。
客户机1200可从服务器1100下载恶意软件模式DB,并检测目标数据是否感染有恶意软件。客户机1200可以是参照图1和图7描述的反恶意软件装置200和反恶意软件装置700之一,也可以按照类似于反恶意软件装置200和反恶意软件装置700的方式来操作。然而,可利用SOC来实现客户机1200。
在本实施例中,如果服务器1100从客户机1200接收到更新请求,则服务器1100可将哈希系数和必要的更新信息发送到客户机1200。必要的更新信息可包括由服务器1100计算的哈希系数或哈希函数和恶意软件模式数据。
服务器1100包括用于更新恶意软件模式DB的更新单元1110和用于计算哈希系数的冲突避免单元1120。
更新单元1110可额外提供由图1和图7的更新单元120和更新单元620中的至少一个执行的功能。更新单元1110包括恶意软件模式输入处理单元1111、块产生处理单元1112和更新信息构建单元1114。
恶意软件模式输入处理单元1111处理将被发送到客户机1200的恶意软件模式数据的输入。
块产生处理单元1112产生块。更新信息构建单元1114构建更新信息。例如,更新信息构建单元1114可通过以下操作来构建更新信息(即,恶意软件模式DB):将由哈希系数选择单元1122选择的哈希系数和由哈希函数选择单元1123选择的哈希函数之一写入哈希项320,并将恶意软件模式数据写入数据项330。
冲突避免单元1120包括累计块DB 1121、哈希系数选择单元1122和哈希函数选择单元1123。累计块DB 1121存储累计块信息。哈希系数选择单元1122选择哈希系数。哈希函数选择单元1123选择哈希函数。
哈希系数选择单元1122可执行图1的哈希系数选择单元110的功能。也就是说,哈希系数选择单元1122可基于通过对于恶意软件模式的哈希函数的最小哈希冲突结果来选择将被发送到客户机1200的哈希系数。例如,当恶意软件模式数据被应用于哈希函数时,哈希系数选择单元1122可通过使用以下算法来选择哈希系数,所述算法使获得的哈希值的冲突概率最小化。或者,当恶意软件模式数据被应用于哈希函数时,哈希系数选择单元1122可通过使用获得的哈希值的方差值来选择哈希系数。
哈希函数选择单元1123可执行图7的哈希函数选择单元610的功能。也就是说,哈希函数选择单元1123按照由哈希系数选择单元1122使用的相同方式来选择哈希系数,并选择应用了所选择的哈希系数的哈希函数。
同时,客户机1200包括反恶意软件应用单元1210和反恶意软件SOC1220。
反恶意软件应用单元1210可提供反恶意软件必需的驱动器和环境设置。为此,反恶意软件应用单元1210包括环境设置和DB更新请求单元1211、DB处理模块1212、SOC调用单元1213以及扫描队列和驱动器模块1214。
环境设置和DB更新请求单元1211可设置用于反恶意软件操作的环境,并请求服务器1100更新恶意软件模式DB。环境设置和DB更新请求单元1211可额外提供图7的更新请求单元790的功能。
DB处理模块1212可处理恶意软件模式DB,即,恶意软件模式数据、哈希函数或哈希系数。SOC调用单元1213调用SOC。
扫描队列和驱动器模块1214可提供和/或驱动由客户机1200执行的模式匹配所必需的各种驱动器。
反恶意软件SOC 1220通过使用恶意软件模式DB来检测感染有恶意软件的数据。为此,反恶意软件SOC 1220包括搜索引擎1221、模式匹配模块1222、DB管理器模块1223、文件数据处理模块1224、包数据处理模块1225和防火墙规则管理器模块1226。
搜索引擎1211负责搜索恶意软件模式。搜索引擎1211可以是执行图1和图7的哈希产生单元220和哈希产生单元720、表产生单元240和表产生单元740以及哈希匹配器单元270和哈希匹配器单元770的功能的硬件。因此,搜索引擎1211可产生恶意软件模式数据的哈希值和子项数据的哈希值,产生模式的哈希值表,并执行哈希值匹配。
模式匹配模块1222对恶意软件模式数据和子项数据执行模式匹配。模式匹配模块1222可对应于图1和图7的匹配单元280和匹配单元780。
DB管理器模块1223管理恶意软件模式DB。例如,DB管理器模块1223可将恶意软件模式数据加载到存储器(未示出),从而搜索引擎1211可产生哈希值。
文件数据处理模块1224处理文件数据。包数据处理模块1225处理包数据。例如,包数据处理模块1224可将目标数据划分为具有预定单位的子项数据。每个子项数据被提供给搜索引擎1211并被用于产生子项数据的哈希值。
防火墙规则管理器模块1226管理防火墙规则。
以下,参照图12到图16来描述在具有图11的结构的反恶意软件系统中防止哈希冲突的方法。图12到图16是根据本发明示例性实施例的在反恶意软件系统中防止哈希冲突的方法的流程图。执行防止哈希冲突的方法的反恶意软件系统可包括图11的服务器1100和客户机1200。
图12是根据本发明示例性实施例的在反恶意软件系统中防止哈希冲突的方法的流程图。
参照图12,服务器设置并初始化用于恶意软件模式DB块的初始值(操作S1201)。
如果新的恶意软件模式数据(即,更新恶意软件模式数据)被输入,则服务器确定新的块作业是否必要(操作S1203和S1205)。
如果服务器确定新的块作业必要,则服务器按照确定的格式来准备恶意软件模式数据DB并将恶意软件模式数据DB存储在恶意软件模式DB中(操作S1207)。
服务器对恶意软件模式数据执行新的块产生处理,并产生块(操作S1209)。
服务器执行冲突避免处理,以避免针对在操作S1209产生的块的哈希冲突(操作S1211)。服务器可通过执行冲突避免处理来选择哈希系数。尽管没有在操作S1211示出,但是服务器可通过执行冲突避免处理来选择哈希函数。
服务器存储通过冲突避免处理所选择的哈希系数或哈希函数(操作S1213)。
图13是根据本发明示例性实施例的产生块的操作S1209的流程图。
参照图13,服务器从在操作S1207存储的恶意软件模式数据DB读取恶意软件模式数据。
服务器从恶意软件模式数据提取数据(操作S1303)。例如,服务器可根据包括在恶意软件模式数据中的位置、OS信息和输入时间,提取以locationID_OSID_YYYYMMDD格式的块ID“BlockID”,作为所述数据。如果与提取的块ID相同的块ID已经存在,则服务器可更新提取的块数据的版本。然后,服务器输入对应的块数据的大小和数据、md5值、是否使用、输入人员和输入时间。
然后,服务器通过使用在操作S1303提取的数据来产生块数据(操作S1305)。
服务器将产生的块数据存储在恶意软件模式数据DB中(操作S1307)。
图14是根据本发明示例性实施例的防止哈希冲突的操作S1211的流程图。
参照图14,服务器确认恶意软件模式DB中的块数据(操作S1401)。
服务器确定新添加的块是否包括在块数据中(操作S1403)。
如果服务器确定新添加的块包括在块数据中,则服务器将新添加的块的块数据添加在恶意软件模式DB中(操作S1405)。
服务器针对包括在恶意软件模式DB中的恶意软件模式数据执行用于计算哈希系数的初始化(操作S1407)。
服务器选择多个候选系数值(操作S1409)。多个候选系数值可以是多个候选哈希组GN(N=1,2…)的形式,其中,每个候选哈希组GN具有参照图1描述的一个或多个候选哈希系数。
服务器通过使用在操作S1409选择的候选系数值对恶意软件模式数据执行哈希函数处理(操作S1411)。
服务器通过比较哈希函数处理结果来选择使哈希冲突最小化的哈希系数(操作S1413)。
图15是根据本发明示例性实施例的处理哈希函数的操作S1411的流程图。
参照图15,服务器初始化包括存储器存储位置的大小和系数值的范围的信息(操作S1501)。
服务器构建系数矩阵和哈希函数表(操作S1503和S1505)。系数矩阵可以是具有在操作S1409选择的多个候选系数值的候选哈希组。例如,系数矩阵可包括G1={a1,b1,c1}、G2={a2,b2,c2}、G3={a3,b3,c3}、…,并且可以是多个。
服务器从恶意软件模式DB读取恶意软件模式数据(操作S1507)。
服务器将读取的恶意软件模式数据转换为将被应用于哈希函数的格式(操作S1509)。
服务器通过将系数矩阵的候选系数值和转换的恶意软件模式数据应用于哈希函数来计算哈希值,并将计算出的哈希值应用于哈希函数表(操作S1511)。在操作S1511,服务器计算每个候选哈希组的哈希值并将哈希值应用于哈希函数表。
服务器计算哈希函数表的值的方差值(操作S1513)。也就是说,服务器计算每个候选哈希组的哈希值,并计算每个候选哈希组的哈希值的方差值。
然后,服务器选择指示从每个候选哈希组计算的方差值中的最小方差值的系数矩阵(操作S1515)。包括在选择的系数矩阵中的候选系数是将被发送到客户机的哈希系数。
同时,客户机1200在更新时间请求服务器1100进行更新。在这一点上,客户机1200可将存储在其中的校验和、装置执行环境、位置信息、版本ID发送到服务器1100。更新单元1110基于接收的信息确定客户机1200是否被改变,当客户机1200被改变时,更新单元1110运行位置判决器,并设置精确的位置。
因此,服务器1110运行更新信息构建单元1114,并将以下项发送到客户机1200:客户机1200所必需的块信息、块信息的作业类型(附加/下载/添加/删除/替换)、更新恶意软件模式数据以及根据更新恶意软件模式数据重新选择的哈希系数。
接收到对应的信息的客户机1200基于块信息和作业类型来更新它的块,并将更新结果转送到服务器1100。服务器1100存储更新结果并完成所述操作。
图16是根据本发明示例性实施例的由服务器执行的更新操作的流程图。
参照图16,服务器从客户机确定最后更新信息是否被改变(操作S1601)。
如果服务器确定最后更新信息被改变,则服务器更新客户机的更新信息(操作S1619)。
如果服务器确定最后更新信息没有被改变,则服务器确定客户机是否包括块(操作S1603)。
如果服务器确定客户机包括块,则服务器针对块信息确定版本ID是否不同或者其块的数量是否不同(操作S1605)。
如果服务器确定版本ID不同,则服务器向客户机请求关于客户机块的信息(操作S1613)。
服务器从客户机接收关于客户机块的信息(操作S1615)。
服务器确定每个块的作业类型(添加/移除/替换/更新),并构建对应的作业类型所必需的信息(操作S1617)。
如果在操作S1605服务器确定块的数量不同,则服务器构建块附加信息(操作S1607)。
服务器读取将被发送到客户机的块的哈希系数(操作S1609)。
服务器通过使用读取的哈希系数来构建每个块的最终更新信息,并将最终更新信息发送到客户机(操作S1611)。
然后,服务器返回操作S1601,并重复所述操作。
如果服务器确定客户机不包括块,则服务器直接进行到操作S1609。
根据本发明,服务器通过服务器的计算环境,执行能够最小化哈希冲突的作业,构建最佳哈希系数值,并将最佳哈希系数值和签名DB发送到客户机,从而解决客户机的存储器存储空间和计算效率有限这一现有问题。
因此,客户机显著减少负载消耗,并仅通过处理结果部分来预计性能的提高。
此外,哈希系数被最小化,由此快速地处理模式检测。
存储器访问得越少,小型计算装置中的哈希冲突越少,由此减少由于存储器较快的速度和较小的容量导致的电池消耗。
上述示例性实施例和优点仅仅是示例性的,而不被解释为对本发明构思的限制。所述示例性实施例可被容易地应用于其它类型的设备。此外,对示例性实施例的描述意在进行说明,而不是为了限制权利要求的范围,许多可选方式、改进和变型对于本领域技术人员而言是明显的。
Claims (17)
1.一种反恶意软件装置,包括:
哈希值产生单元,用于通过使用具有至少一个哈希系数的哈希函数来产生恶意软件模式的哈希值和目标数据的哈希值;
哈希匹配器单元,用于将目标数据的哈希值匹配到恶意软件模式的哈希值;
匹配单元,如果哈希匹配器单元匹配成功,则所述匹配单元将恶意软件模式与目标数据进行匹配;以及
表产生单元,基于恶意软件模式的哈希值来产生哈希匹配器表和子项匹配器表,哈希匹配器表包括索引,作为与指示被映射到相同索引的两个或更多哈希值之间发生冲突的值相关联的恶意软件模式的哈希值,子项匹配器表包括与偏移冲突模式相关联的索引,其中,所述偏移冲突模式将所述两个或更多哈希值中的一个映射到替换索引,子项匹配器表还将所述索引与所述替换索引中的至少一个与以下项中的至少一个关联,以解决所述冲突:(i)恶意软件模式的头部值和恶意软件模式的中间值;(ii)恶意软件模式的中间值和恶意软件模式的尾部值,
其中,如果没有发生冲突,则哈希匹配器单元使用哈希匹配器表将目标数据的哈希值与恶意软件模式的哈希值进行匹配,如果发生了冲突,则哈希匹配器单元使用子项匹配器表将目标数据的哈希值与恶意软件模式的哈希值进行匹配。
2.如权利要求1所述的反恶意软件装置,其中,基于从应用于恶意软件模式的多个哈希函数产生的哈希冲突结果中的最小哈希冲突结果来确定所述至少一个哈希系数和/或哈希函数。
3.如权利要求1所述的反恶意软件装置,其中,所述至少一个哈希系数和/或哈希函数与恶意软件模式一起被从通过网络连接的服务器接收。
4.如权利要求3所述的反恶意软件装置,其中,当哈希值产生单元从服务器接收到更新恶意软件模式时,所述哈希值产生单元通过使用与更新恶意软件模式一起发送的哈希系数来重新产生哈希值。
5.如权利要求1所述的反恶意软件装置,其中,当恶意软件模式被更新时,基于通过对于更新恶意软件模式的哈希函数的最小哈希冲突结果来改变所述至少一个哈希系数和/或哈希函数。
6.如权利要求5所述的反恶意软件装置,其中,所述改变的至少一个哈希系数和/或改变的哈希函数被包括在更新恶意软件模式中,
其中,哈希值产生单元通过使用包括在更新恶意软件模式中的所述改变的至少一个哈希系数和/或改变的哈希函数来重新产生哈希值。
7.如权利要求5所述的反恶意软件装置,其中,包括更新恶意软件模式的更新恶意软件模式DB包括头部项和哈希项,其中,在所述头部项中写有头部信息,在所述哈希项中写有所述改变的至少一个哈希系数和/或改变的哈希函数。
8.如权利要求1所述的反恶意软件装置,其中,当将被发送到反恶意软件装置的恶意软件模式的哈希值被获得时,按照使获得的哈希值之间的冲突概率最小化的方式来确定哈希函数。
9.如权利要求1所述的反恶意软件装置,还包括:更新请求单元,用于当由哈希值产生单元产生的恶意软件模式的哈希值之间的冲突数量超过参考值时,请求更新所述至少一个哈希系数和/或哈希函数。
10.如权利要求1所述的反恶意软件装置,其中,恶意软件模式包括用于病毒扫描的病毒模式和用于防火墙过滤的规则模式中的至少一个,所述至少一个哈希系数包括用于病毒扫描的病毒哈希系数和用于防火墙过滤的规则哈希系数中的至少一个。
11.如权利要求1所述的反恶意软件装置,其中,所述反恶意软件装置相应于片上系统(SOC)、桌上型计算机、智能电话、智能卡和半导体知识产权芯片(IP)之一。
12.如权利要求1所述的反恶意软件装置,其中,匹配单元执行以下处理中的至少一个:(i)将恶意软件模式的头部值和中间值与目标数据的头部值和中间值进行比较;(ii)将恶意软件模式的中间值和末尾值与目标数据的中间值和末尾值进行比较,
其中,当确定(i)恶意软件模式的头部值和中间值与目标数据的头部值和中间值相同与(ii)恶意软件模式的中间值和末尾值与目标数据的中间值和末尾值相同中的至少一个时,匹配单元将恶意软件模式的所有值与目标数据的所有值进行比较,
其中,当确定恶意软件模式的所有值与目标数据的所有值相同时,匹配单元确定目标数据中存在恶意软件。
13.如权利要求1所述的反恶意软件装置,还包括更新请求单元,
其中,更新请求单元确定恶意软件模式的哈希值的哈希冲突的数量是否超过参考值,并响应于确定恶意软件模式的哈希值的哈希冲突的数量超过参考值来请求服务器发送更新的哈希系数,所述更新的哈希系数为所述至少一个哈希系数的更新,响应于所述请求,反恶意软件装置从服务器接收更新的哈希系数,哈希值产生单元使用具有更新的哈希系数的哈希函数来产生恶意软件模式的更新的哈希值;
其中,哈希匹配器单元将目标数据的哈希值与恶意软件模式的更新的哈希值进行匹配。
14.一种通过使用哈希函数进行的恶意软件模式匹配方法,所述方法包括:
通过使用哈希函数来计算恶意软件模式的哈希值;
通过使用哈希函数来计算目标数据的哈希值;
当恶意软件模式的哈希值与目标数据的哈希值彼此匹配时,将恶意软件模式与目标数据进行匹配;以及
确定计算出的恶意软件的哈希值是否彼此冲突,
其中,基于恶意软件模式的哈希值来产生哈希匹配器表和子项匹配器表,哈希匹配器表包括索引,作为与指示被映射到相同索引的两个或更多哈希值之间发生冲突的值相关联的恶意软件模式的哈希值,子项匹配器表包括与偏移冲突模式相关联的索引,其中,所述偏移冲突模式将所述两个或更多哈希值中的一个映射到替换索引,子项匹配器表还将所述索引与所述替换索引中的至少一个与以下项中的至少一个关联,以解决所述冲突:(i)恶意软件模式的头部值和恶意软件模式的中间值;(ii)恶意软件模式的中间值和恶意软件模式的尾部值,
其中,如果没有发生冲突,则哈希匹配器单元使用哈希匹配器表将目标数据的哈希值与恶意软件模式的哈希值进行匹配,如果发生了冲突,则哈希匹配器单元使用子项匹配器表将目标数据的哈希值与恶意软件模式的哈希值进行匹配。
15.如权利要求14所述的方法,其中,如果恶意软件模式的哈希值之间的冲突数量超过先前设置的参考值,重新选择哈希函数或包括在哈希函数中的哈希系数。
16.如权利要求15所述的方法,其中,重新选择哈希函数或包括在哈希函数中的哈希系数的步骤包括:
选择候选哈希系数;
通过使用候选哈希系数获得将被用于进行匹配的恶意软件模式的哈希值;以及
通过比较获得的哈希值从候选哈希系数选择使哈希系数最小化的哈希系数。
17.如权利要求15所述的方法,其中,重新选择哈希函数或包括在哈希函数中的哈希系数的步骤包括:
选择候选哈希系数;
通过使用候选哈希系数获得被用于进行匹配的恶意软件模式的哈希值;以及
通过计算每个获得的哈希值的方差值从候选哈希系数选择具有最小方差值的哈希系数。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20100058504 | 2010-06-21 | ||
KR10-2010-0058504 | 2010-06-21 | ||
KR10-2011-0059075 | 2011-06-17 | ||
KR1020110059075A KR101274348B1 (ko) | 2010-06-21 | 2011-06-17 | 안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102289617A CN102289617A (zh) | 2011-12-21 |
CN102289617B true CN102289617B (zh) | 2014-07-09 |
Family
ID=44862402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110183976.3A Active CN102289617B (zh) | 2010-06-21 | 2011-06-21 | 反恶意软件装置、服务器和匹配恶意软件模式的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8365288B2 (zh) |
EP (1) | EP2410453A1 (zh) |
CN (1) | CN102289617B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102029465B1 (ko) * | 2011-11-17 | 2019-10-08 | 삼성에스디에스 주식회사 | 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법 |
US8281399B1 (en) * | 2012-03-28 | 2012-10-02 | Symantec Corporation | Systems and methods for using property tables to perform non-iterative malware scans |
CN103455753B (zh) * | 2012-05-30 | 2016-07-13 | 北京金山安全软件有限公司 | 一种样本文件分析方法及装置 |
JP6028567B2 (ja) * | 2012-12-28 | 2016-11-16 | 富士通株式会社 | データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法 |
US9491193B2 (en) * | 2013-06-27 | 2016-11-08 | Secureage Technology, Inc. | System and method for antivirus protection |
CN106415583A (zh) | 2014-01-22 | 2017-02-15 | 英派尔科技开发有限公司 | 通过现场可编程门阵列的电压测量结果来检测恶意软件 |
US10243985B2 (en) | 2014-06-03 | 2019-03-26 | Hexadite Ltd. | System and methods thereof for monitoring and preventing security incidents in a computerized environment |
US10885098B2 (en) * | 2015-09-15 | 2021-01-05 | Canon Kabushiki Kaisha | Method, system and apparatus for generating hash codes |
US9954873B2 (en) | 2015-09-30 | 2018-04-24 | The Mitre Corporation | Mobile device-based intrusion prevention system |
US10567411B2 (en) | 2015-10-01 | 2020-02-18 | Twistlock, Ltd. | Dynamically adapted traffic inspection and filtering in containerized environments |
US10915628B2 (en) | 2015-10-01 | 2021-02-09 | Twistlock, Ltd. | Runtime detection of vulnerabilities in an application layer of software containers |
US10586042B2 (en) | 2015-10-01 | 2020-03-10 | Twistlock, Ltd. | Profiling of container images and enforcing security policies respective thereof |
US10599833B2 (en) | 2015-10-01 | 2020-03-24 | Twistlock, Ltd. | Networking-based profiling of containers and security enforcement |
US10922418B2 (en) | 2015-10-01 | 2021-02-16 | Twistlock, Ltd. | Runtime detection and mitigation of vulnerabilities in application software containers |
US10664590B2 (en) | 2015-10-01 | 2020-05-26 | Twistlock, Ltd. | Filesystem action profiling of containers and security enforcement |
US10223534B2 (en) | 2015-10-15 | 2019-03-05 | Twistlock, Ltd. | Static detection of vulnerabilities in base images of software containers |
US10943014B2 (en) | 2015-10-01 | 2021-03-09 | Twistlock, Ltd | Profiling of spawned processes in container images and enforcing security policies respective thereof |
US20170111364A1 (en) * | 2015-10-14 | 2017-04-20 | Uber Technologies, Inc. | Determining fraudulent user accounts using contact information |
US10778446B2 (en) | 2015-10-15 | 2020-09-15 | Twistlock, Ltd. | Detection of vulnerable root certificates in software containers |
US10313366B1 (en) * | 2016-09-23 | 2019-06-04 | EMC IP Holding Company LLC | Retroactive identification of previously unknown malware based on network traffic analysis from a sandbox environment |
CN106961393B (zh) * | 2017-03-06 | 2020-11-27 | 北京安博通科技股份有限公司 | 网络会话中udp报文的检测方法及装置 |
CN110019407B (zh) * | 2017-12-29 | 2021-07-13 | 北京金风科创风电设备有限公司 | 风电场中枚举数据的处理方法、装置、设备和存储介质 |
US10733473B2 (en) | 2018-09-20 | 2020-08-04 | Uber Technologies Inc. | Object verification for a network-based service |
US10999299B2 (en) | 2018-10-09 | 2021-05-04 | Uber Technologies, Inc. | Location-spoofing detection system for a network service |
US11509647B2 (en) * | 2019-01-28 | 2022-11-22 | Microsoft Technology Licensing, Llc | Determination of weak hashed credentials |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701464A (en) * | 1995-09-15 | 1997-12-23 | Intel Corporation | Parameterized bloom filters |
US5920900A (en) * | 1996-12-30 | 1999-07-06 | Cabletron Systems, Inc. | Hash-based translation method and apparatus with multiple level collision resolution |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328349B2 (en) | 2001-12-14 | 2008-02-05 | Bbn Technologies Corp. | Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses |
US7539871B1 (en) | 2004-02-23 | 2009-05-26 | Sun Microsystems, Inc. | System and method for identifying message propagation |
US7650639B2 (en) | 2005-03-31 | 2010-01-19 | Microsoft Corporation | System and method for protecting a limited resource computer from malware |
US7624436B2 (en) | 2005-06-30 | 2009-11-24 | Intel Corporation | Multi-pattern packet content inspection mechanisms employing tagged values |
US7757290B2 (en) | 2006-01-30 | 2010-07-13 | Microsoft Corporation | Bypassing software services to detect malware |
WO2007117574A2 (en) | 2006-04-06 | 2007-10-18 | Smobile Systems Inc. | Non-signature malware detection system and method for mobile platforms |
US8015970B2 (en) | 2007-07-26 | 2011-09-13 | 3M Innovative Properties Company | Respirator, welding helmet, or face shield that has low surface energy hard-coat lens |
US8286246B2 (en) * | 2007-08-10 | 2012-10-09 | Fortinet, Inc. | Circuits and methods for efficient data transfer in a virus co-processing system |
US8245296B2 (en) | 2008-05-23 | 2012-08-14 | Verizon Patent And Licensing Inc. | Malware detection device |
US8234709B2 (en) | 2008-06-20 | 2012-07-31 | Symantec Operating Corporation | Streaming malware definition updates |
US20100077482A1 (en) | 2008-09-23 | 2010-03-25 | Robert Edward Adams | Method and system for scanning electronic data for predetermined data patterns |
CN101431472B (zh) * | 2008-12-15 | 2011-05-25 | 中兴通讯股份有限公司 | 媒体访问控制条目的处理方法和装置 |
US20100228701A1 (en) * | 2009-03-06 | 2010-09-09 | Microsoft Corporation | Updating bloom filters |
US20100274755A1 (en) | 2009-04-28 | 2010-10-28 | Stewart Richard Alan | Binary software binary image analysis |
US9280609B2 (en) * | 2009-09-08 | 2016-03-08 | Brocade Communications Systems, Inc. | Exact match lookup scheme |
US8635705B2 (en) | 2009-09-25 | 2014-01-21 | Intel Corporation | Computer system and method with anti-malware |
KR101069362B1 (ko) | 2009-11-27 | 2011-09-30 | 주식회사 세미콘라이트 | 반도체 발광소자 |
-
2011
- 2011-06-21 CN CN201110183976.3A patent/CN102289617B/zh active Active
- 2011-06-21 US US13/165,429 patent/US8365288B2/en active Active
- 2011-06-21 EP EP11170732A patent/EP2410453A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701464A (en) * | 1995-09-15 | 1997-12-23 | Intel Corporation | Parameterized bloom filters |
US5920900A (en) * | 1996-12-30 | 1999-07-06 | Cabletron Systems, Inc. | Hash-based translation method and apparatus with multiple level collision resolution |
Also Published As
Publication number | Publication date |
---|---|
US8365288B2 (en) | 2013-01-29 |
CN102289617A (zh) | 2011-12-21 |
US20110314548A1 (en) | 2011-12-22 |
EP2410453A1 (en) | 2012-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102289617B (zh) | 反恶意软件装置、服务器和匹配恶意软件模式的方法 | |
AU2019221574B2 (en) | Asset management system, method, apparatus, and electronic device | |
US10521116B2 (en) | System and method for managing object store | |
US8966633B2 (en) | Method and device for multiple engine virus killing | |
CN112041872A (zh) | 在分区区块链网络中维护区块链的区块 | |
EP2490370B1 (en) | Method for providing an anti-malware service | |
US20230098185A1 (en) | High performance distributed system of record with extended transaction processing capability | |
EP2055049B1 (en) | A push update system | |
CN109873804A (zh) | 基于行为的服务识别方法、装置、设备及可读存储介质 | |
CN110069295B (zh) | 区块链处理方法、装置、设备和介质 | |
CN113596033B (zh) | 访问控制方法及装置、设备、存储介质 | |
WO2020232195A1 (en) | Method for midserver facilitation of long-haul transport of telemetry for cloud-based services | |
JP2022525551A (ja) | データレコードのコピーの分散型台帳システムへの誤伝送の防止 | |
CN116360954B (zh) | 基于云边协同技术的工业物联网管控方法和管控系统 | |
KR101909268B1 (ko) | Rapi 기반 프로파일링 정보를 공유하기 위한 시스템 및 그 방법 | |
JP5378458B2 (ja) | アンチマルウェアデバイス、サーバ及びマルウェアパターンマッチング方法 | |
US9201809B2 (en) | Accidental shared volume erasure prevention | |
US11171788B2 (en) | System and method for shared end device authentication for in-band requests | |
KR101429884B1 (ko) | 고속 네트워크 대용량 트래픽 처리를 위한 분산처리 해싱방법 및 분산처리해싱시스템 | |
CN111241539A (zh) | 一种虚拟化平台的安全防护系统及方法 | |
US11762995B2 (en) | Antivirus scanning architecture for uploaded files | |
US20220407871A1 (en) | Massive vulnerable surface protection | |
KR102192909B1 (ko) | 화이트리스트 기반의 단말기 보안 방법 및 시스템 | |
US20230222027A1 (en) | Distributed system, communication terminal, function recovery method, and program | |
US11212259B2 (en) | Inspection offload clustering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |