CN105653950A - 一种基于多模式的恶意代码匹配方法及装置 - Google Patents
一种基于多模式的恶意代码匹配方法及装置 Download PDFInfo
- Publication number
- CN105653950A CN105653950A CN201510420476.5A CN201510420476A CN105653950A CN 105653950 A CN105653950 A CN 105653950A CN 201510420476 A CN201510420476 A CN 201510420476A CN 105653950 A CN105653950 A CN 105653950A
- Authority
- CN
- China
- Prior art keywords
- state machine
- detected
- storage
- finite state
- sample
- 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.)
- Withdrawn
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
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于多模式的恶意代码匹配方法,包括:基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;对于生成的有限状态机进行压缩存储;基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。同时,本发明公开了一种基于多模式的恶意代码匹配装置。本发明所述的技术方案即使在特征库中特征码较多的情况下,也能够以较快的匹配速度完成特征码匹配,同时减少了系统资源的占用。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于多模式的恶意代码匹配方法及装置。
背景技术
AC算法是AlfredV.Aho和MargaretJ.Corasick于1974年提出的一个经典的多模式匹配算法,可以保证对于给定的长度为n的文本,和模式集合P{p1,p2,...pm},在O(n)时间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关。从本质来说,AC算法是一个有限状态自动机算法,在字符串的匹配和操作之前,先对模式集进行预处理,建造自动机。在处理字符串时只需要对文本扫描一次,即可匹配出模式串。
目前,AC算法作为一种线性复杂度的多模式匹配算法,在IDS(入侵检测系统)和恶意代码特征匹配等方面具有很广泛的应用。但是,当特征库中的特征码较多时,就会因为创建自动机引起过大的内存开销。在AC状态机中,由于是按照字节匹配,所以每个节点都有256个指针以对应ASCII字符,在实际匹配过程中,如果下一个字符在模式集中不存在,则需要将指针置空,并利用fail表跳转到下一节点。实际应用中,由于模式集不可能包括全部256个ASCII码字符,所以大量指针置空,相应的,需要的指针空间也就越大,对内存的要求也就越高。因此,当特征库中特征码过多时,传统AC算法不仅不利于硬件实现,而且还会对算法的匹配速度造成影响。
发明内容
本发明所述的技术方案通过缩短待检测样本长度和压缩存储生成的有限状态机的手段,减少系统资源占用;并通过坏字符跳转的原则减少参与匹配的字符数量,从而有效缩短匹配所需的时间。
本发明采用如下方法来实现:一种基于多模式的恶意代码匹配方法,包括:
基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;
判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
对于生成的有限状态机进行压缩存储;
基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
进一步地,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
进一步地,所述压缩存储方法包括:矩阵压缩存储或者Bitmap压缩存储。
本发明可以采用如下装置来实现:一种基于多模式的恶意代码匹配装置,包括:
预处理模块,用于基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;
状态机生成模块,用于判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
压缩存储模块,用于对于生成的有限状态机进行压缩存储;
匹配模块,用于基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
进一步地,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
进一步地,所述压缩存储方法包括:矩阵压缩存储或者Bitmap压缩存储。
综上,本发明给出一种基于多模式的恶意代码匹配方法及装置,与传统的AC算法匹配模式不同,本发明首先将待检测样本进行缩短处理,去除无意义的字符;基于特征库中的全部特征码生成树状有限状态机;并将所述有限状态机基于一定范围进行压缩存储;基于坏字符跳转的原则将有限状态机与待检测样本进行匹配,最终给出匹配结果。
有益效果为:本发明通过缩短待检测样本长度的手段,减少匹配时间;将特征库中的特征码生成有限状态机并压缩存储,从而减小内存压力;基于坏字符跳转的原则进行匹配操作,减少参与匹配的字符数量,进一步缩短匹配所需时间。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种基于多模式的恶意代码匹配方法实施例流程图;
图2为本发明提供的方法实施例中构建的树状有限状态机示意图;
图3为本发明提供的方法实施例中基于坏字符跳转原则跳转后的树状有限状态机示意图;
图4为本发明提供的一种基于多模式的恶意代码匹配装置实施例结构图。
具体实施方式
本发明给出了一种基于多模式的恶意代码匹配方法及装置实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
本发明首先提供了一种基于多模式的恶意代码匹配方法实施例,如图1所示,包括:
S101基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;
S102判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
其中,如果在匹配过程中特征库中的特征码没有改变,则不需要重新构建有限状态机;
例如,特征码分别为ethernetmovesme,ethernetisking,ethernetisdead和ethernetforever,要检查的数据包内容为nothingtoworryaboutinthis;则基于各特征码前缀构建的树状有限状态机如图2所示;
S103对于生成的有限状态机进行压缩存储;
S104基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
其中,所述坏字符跳转的原则为:当树状有限状态机与待检测样本从后向前匹配时,当有限状态机中的字符与待检测样本匹配失效时,则有限状态机向右跳转到下一个失效字符处,如果有限状态机中并不存在该失效字符,则有限状态机向右跳转到最小特征码长度处。
例如:如图2所示的有限状态机,从待检测样本的字符r开始匹配,显然r与特征码中的字符e不匹配,由于有限状态机的下一个r出现在深度5的位置,特征码中最小长度为14,根据坏字符跳转,有限状态机的字符串树可以向左移动5个字符,跳转过程如图3所示。
优选地,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
其中,所述多模式近似匹配算法可以采用散列多模式匹配算法,允许1个错误率的近似匹配,即使模式个数达到几千的数目,搜索匹配的效率仍旧很高;
优选地,所述压缩存储方法包括:矩阵压缩存储或者Bitmap压缩存储。
其中,传统的有限状态机的存储方式为利用二维数组进行完全存储,但是由于二维数组中有效状态较少,存在大量的置空元素,造成了内存的大量消耗,因此可以采用矩阵压缩存储或者Bitmap压缩存储的方式改善这一缺陷。
所述矩阵压缩存储包括如下三个行元素:
ValueVector:存放有限状态机中所有的非零元素的值;
ColVector:存放非零元素对应的列值;
RawVector:存放每一行的第一个非零元素在ValueVector中的位置。
例如:存在如下6×6的矩阵:
020001
000005
000030
001900
000050
030006
ValueVector:215319536;
ColVector:266534526;
RawVector:134578。
所述Bitmap压缩存储方法需要结合特征库中特征码的字频特征进行存储;主要考虑使用ASCII和UNICODE的编码,并只考虑小写字母,将大写字母转换为小写字母可以减少26个状态指针,内存占用会减少至少10%;对于字频高于预设阈值T的字符保留,对于字频低于预设阈值T的字符则被压缩;字符c的频率为f(c)表示,则映射值F(c)如下。
iff(c)>=T,F(c)=++c;
iff(c)==0,F(c)=0;
if0<f(c)<T,F(c)=-1;
在匹配过程中,映射值为正的字符进入跳转状态,为0的字符进入零状态,为-1的字符为低频字符,利用哈希或Bitmap的方法来存储跳转状态。Bitmap利用一个256位的位图来保存二进制1或0,如果对应位为0,则表示对应二维数组对应位置为0,那么需要计算Fail表来获得失效状态,因为使用了256位保存,所以保存的位置能与原来的二维数组相对应。
用户可以根据矩阵压缩存储和Bitmap压缩存储的特征选择所需的压缩存储方法,所述压缩存储方法可以减少状态机的存储空间,减少系统资源占用,能够保证较快的随机访问速度。
本发明还提供了一种基于多模式的恶意代码匹配装置实施例,如图4所示,包括:
预处理模块401,用于基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;
状态机生成模块402,用于判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
压缩存储模块403,用于对于生成的有限状态机进行压缩存储;
匹配模块404,用于基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
优选地,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
优选地,所述压缩存储方法包括:矩阵压缩存储或者Bitmap压缩存储。
如上所述,上述所给出的实施例对传统的AC多模式匹配算法进行了改进,首先,对待检测样本基于特征码的语义特征进行缩短处理;其次,基于特征库中的特征码前缀生成树状有限状态机;选择矩阵压缩存储或者Bitmap压缩存储等方式对生成的有限状态机进行压缩存储;最终基于坏字符跳转的原则进行多模式并行的特征码匹配。
综上,传统的多模式匹配算法是从前向后匹配的,在匹配时也可以做到对待检测样本只进行一次扫描,但是,当特征库中的特征码数量过大时,会造成启动速度慢、内存占用率过高等问题。本发明所给出的方法及装置,针对现有技术中存在的缺陷进行了改进,缩短了待检测样本的长度并压缩存储由特征码生成的有限状态机,并进一步采用坏字符跳转原则从后向前匹配,这样大大减少了参与匹配的字符数量,从而缩短了恶意代码匹配所需的时间。
以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种基于多模式的恶意代码匹配方法,其特征在于,包括:
基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;
判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
对于生成的有限状态机进行压缩存储;
基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
2.如权利要求1所述的方法,其特征在于,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
3.如权利要求1所述的方法,其特征在于,所述压缩存储方法包括:矩阵压缩存储或者Bitmap压缩存储。
4.一种基于多模式的恶意代码匹配装置,其特征在于,包括:
预处理模块,用于基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;
状态机生成模块,用于判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
压缩存储模块,用于对于生成的有限状态机进行压缩存储;
匹配模块,用于基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
5.如权利要求4所述的装置,其特征在于,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
6.如权利要求4所述的装置,其特征在于,所述压缩存储方法包括:矩阵压缩存储或者Bitmap压缩存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510420476.5A CN105653950A (zh) | 2015-07-17 | 2015-07-17 | 一种基于多模式的恶意代码匹配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510420476.5A CN105653950A (zh) | 2015-07-17 | 2015-07-17 | 一种基于多模式的恶意代码匹配方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105653950A true CN105653950A (zh) | 2016-06-08 |
Family
ID=56482096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510420476.5A Withdrawn CN105653950A (zh) | 2015-07-17 | 2015-07-17 | 一种基于多模式的恶意代码匹配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653950A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145082A (zh) * | 2018-08-09 | 2019-01-04 | 北京中关村科金技术有限公司 | 一种用于智能对话系统的敏感词检测方法 |
CN110995694A (zh) * | 2019-11-28 | 2020-04-10 | 新华三半导体技术有限公司 | 网络报文检测方法、装置、网络安全设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980240A (zh) * | 2006-12-08 | 2007-06-13 | 杭州华为三康技术有限公司 | 数据流的模式匹配方法及装置 |
CN103412858A (zh) * | 2012-07-02 | 2013-11-27 | 清华大学 | 用于文本或网络内容分析的大规模特征匹配的方法 |
-
2015
- 2015-07-17 CN CN201510420476.5A patent/CN105653950A/zh not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980240A (zh) * | 2006-12-08 | 2007-06-13 | 杭州华为三康技术有限公司 | 数据流的模式匹配方法及装置 |
CN103412858A (zh) * | 2012-07-02 | 2013-11-27 | 清华大学 | 用于文本或网络内容分析的大规模特征匹配的方法 |
Non-Patent Citations (2)
Title |
---|
巫喜红: "AC多模式匹配算法研究", 《计算机工程》 * |
舒银东: "基于有限状态自动机的多模式匹配算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145082A (zh) * | 2018-08-09 | 2019-01-04 | 北京中关村科金技术有限公司 | 一种用于智能对话系统的敏感词检测方法 |
CN110995694A (zh) * | 2019-11-28 | 2020-04-10 | 新华三半导体技术有限公司 | 网络报文检测方法、装置、网络安全设备及存储介质 |
CN110995694B (zh) * | 2019-11-28 | 2021-10-12 | 新华三半导体技术有限公司 | 网络报文检测方法、装置、网络安全设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
US20180196609A1 (en) | Data Deduplication Using Multi-Chunk Predictive Encoding | |
CN111444196B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN110147204B (zh) | 一种元数据落盘方法、装置、系统及计算机可读存储介质 | |
CN101853301A (zh) | 正则表达式匹配的方法和系统 | |
CN111143513B (zh) | 一种敏感词识别方法、装置及电子设备 | |
CN111144117B (zh) | 知识图谱中文地址消除歧义方法 | |
CN103412858A (zh) | 用于文本或网络内容分析的大规模特征匹配的方法 | |
CN107085613B (zh) | 入库文件的过滤方法和装置 | |
US11550756B2 (en) | System and method for error-resilient data reduction | |
KR102099157B1 (ko) | 빅데이터의 전처리 방법 및 장치 | |
WO2023273218A1 (zh) | Json报文的核对方法和json报文的核对装置 | |
CN105447166A (zh) | 一种基于关键字查找信息的方法及系统 | |
US20240086372A1 (en) | System and method for manipulation of compacted data files | |
US20170277811A1 (en) | Efficient conditional state mapping in a pattern matching automaton | |
CN105760762A (zh) | 一种嵌入式处理器的未知恶意代码检测方法 | |
CN105653950A (zh) | 一种基于多模式的恶意代码匹配方法及装置 | |
WO2015087509A1 (ja) | 状態保存復元装置、状態保存復元方法、および、記憶媒体 | |
CN109800337B (zh) | 一种适用于大字母表的多模式正则匹配算法 | |
CN106940708A (zh) | 一种基于二分查找法实现ip范围定位的方法及系统 | |
CN116192154B (zh) | 数据压缩及数据解压方法、装置、电子设备、芯片 | |
CN102855297B (zh) | 一种控制数据传输的方法和连接器 | |
US9197243B2 (en) | Compression ratio for a compression engine | |
US8463759B2 (en) | Method and system for compressing data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20160608 |