CN108418793A - 多模式的串匹配方法和装置 - Google Patents
多模式的串匹配方法和装置 Download PDFInfo
- Publication number
- CN108418793A CN108418793A CN201810084136.3A CN201810084136A CN108418793A CN 108418793 A CN108418793 A CN 108418793A CN 201810084136 A CN201810084136 A CN 201810084136A CN 108418793 A CN108418793 A CN 108418793A
- Authority
- CN
- China
- Prior art keywords
- string
- mobile table
- matching
- matching position
- packet
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种多模式的串匹配方法和装置。所述方法包括:根据模式串创建Aho‑Corasick自动机;根据模式串创建移动表,其中所述移动表记录了所述模式串中字符块的位移量;若文本串的滑动窗口未滑动至所述文本串的末尾,根据所述移动表寻找可能的匹配位置;对根据所述移动表找到的可能的匹配位置,根据所述Aho‑Corasick自动机进行匹配验证;根据所述移动表继续寻找下一个可能的匹配位置,直至所述滑动窗口滑动至所述文本串的末尾。本发明实施例提供的多模式的串匹配方法和装置解决了AC算法中窗口滑动慢的问题,以及Wu‑Manber算法中比较结果不留存的问题。
Description
技术领域
本发明属于网络安全技术领域,尤其涉及一种多模式的串匹配方法和装置。
背景技术
入侵检测系统是整个网络安全防护体系中的一个重要组成部分,随着入侵和攻击不断增多,网络规模不断扩大,信息的机密性、完整性和可用性遭到严重侵害,入侵检测技术越来越受到重视。入侵检测就是通过对计算机网络或计算机系统中若干关键点收集信息并对其进行分析,从中发现计算机网络或系统中是否有违反安全策略的行为和被攻击的迹象近几年随着计算机网络技术的不断发展,以及网络应用范围的扩大,网络中出现入侵和攻击的行为也越来越多。攻击行为混夹于大量正常的网络数据包之中,要检测入侵行为,就要对流经网络的数据包进行识别并加以分析,通常包括对数据包负载的分析,其功能是辨别数据包的负载中是否有攻击特征,并根据更具其判别结果对数据包进行相应的处理。攻击特征过滤器设计方法在近几年已取得了很大的发展,下面介绍几种方法:
1.基于最长公共子串方法
早期的大多采用提取“最长公共子串”(LCS)的方法,即在可疑数据流中查找最长的公共子字符串并将其作为攻击特征过滤器,虽然基于后缀树计算两个序列的LCS可在线性时间内完成,但是此过滤器仅仅提取单个最长的特征片段,并不足以准确描述攻击。
2.基于固定长度负载出现频率方法
按照不同的方法将可疑数据流划分为固定长度的分片,然后计算分片在所有可疑数据流中出现的频繁度,最后将频繁度高的分片输出为攻击特征过滤器,该方法存在的问题是难以选取固定长度的大小,计算开销和存储开销大、没有考虑攻击变形情况。也可以将可疑数据流中含有多个特征片段的固定长度部分定义为“关键区域”。但是“关键区域”长度选取困难,不能确保收敛限制了该攻击特征过滤器方法的有效性。
3.基于可变长度负载出现频率
基于可变长度负载出现频率的方法是当前比较有效的特征提取方法,可变长度负载出现频率是指长度大于1的在可疑数据流中频繁出现的字符串,可变长度负载出现频率长度不固定,每一个可变长度负载出现频率可能对应于攻击中的一个特征片段。因此,基于可变长度负载出现频率的方法的核心是提取出数据流中频繁度大于一定阀值的所有可变长度负载出现频率,一般都采用遍历前缀树的算法。以可变长度负载出现频率为核心,设计攻击特征过滤器。
在入侵检测系统中,如果采用单模式匹配算法,每数据包进行匹配时都需要重新运行匹配算法,这样效率很低。所以单模式匹配算法不能满足攻击检测系统日益增加的检测负担,多模式匹配算法代替单模式匹配算法应用于攻击检测系统之中已是大势所趋。
发明内容
针对上述技术问题,本发明实施例提供了一种多模式的串匹配方法和装置,以解决AC算法中窗口滑动慢,以及Wu-Manber算法中比较结果不留存的问题,具体通过以下技术方案予以实现:
一种多模式的串匹配方法,包括:
抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串,根据该模式串创建Aho-Corasick自动机;
根据模式串创建移动表,所述的移动表记录了所述的模式串中字符块的位移量;
若文本串的滑动窗口未滑动至所述文本串的末尾,根据所述移动表寻找可能的匹配位置,所述滑动窗口的长度至少是2;
对根据所述移动表找到的可能的匹配位置,根据所述Aho-Corasick自动机进行匹配验证;
根据所述移动表继续寻找下一个可能的匹配位置,直至所述滑动窗口滑动至所述文本串的末尾。
其中,在所述的抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串之前,还包括:设定数据包采集时间、数量,当采集时间或者采集到数量达到设定值时,停止采集数据包。
其中,根据所述移动表寻找可能的匹配位置包括:查找所述移动表中记录的,位移量为0的位置,并将所述位移量为0的位置作为可能的匹配位置。
其中,对根据所述移动表找到的可能的匹配位置,根据所述Aho-Corasick自动机进行匹配验证包括:读取文本串的下一个字符;若当前状态存在一个权值为所述下一个字符的下一个状态,则跳转至下一个状态;若所述下一个状态为终结状态,则报告字符串匹配成功。
一种多模式的串匹配装置,包括:
自动机创建模块,用于抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串,根据该模式串创建Aho-Corasick自动机;
移动表创建模块,用于根据模式串创建移动表,所述的移动表记录了所述的模式串中字符块的位移量;
匹配位置寻找模块,若文本串的滑动窗口未滑动至所述文本串的末尾,根据所述移动表寻找可能的匹配位置,所述滑动窗口的长度至少是2;
匹配验证模块,用于根据所述移动表找到的可能的匹配位置,根据所述Aho-Corasick自动机进行匹配验证;
判断模块,用于根据所述移动表继续寻找下一个可能的匹配位置,直至所述滑动窗口滑动至所述文本串的末尾。
其中所述自动机创建模块中包括设定模块,用于在所述的抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串之前,设定数据包采集时间、数量,当采集时间或者采集到数量达到设定值时,停止采集数据包。
其中,所述匹配位置寻找模块具体用于:查找所述移动表中记录的,位移量为0的位置,并将所述位移量为0的位置作为可能的匹配位置。
其中,所述匹配验证模块包括:
字符读取单元,用于读取文本串的下一个字符;
状态跳转单元,用于若当前状态存在一个权值为所述下一个字符的下一个状态,则跳转至下一个状态;
报告单元,用于若所述下一个状态为终结状态,则报告字符串匹配成功。
以上技术方案与现有技术相比具有以下技术效果:
本发明实施例提供的多模式的串匹配方法和装置,利用移动表寻找文本串与多个模式串之间可能的匹配位置,再利用Aho-Corasick自动机对所述可能的匹配位置进行匹配验证,综合了AC算法及Wu-Manber算法的优点,解决了AC算法中窗口滑动慢,以及Wu-Manber算法中比较结果不留存的问题,提高了串匹配的执行效率。
附图说明
图1是本发明第一实施例提供的多模式的串匹配方法的流程图;
图2是本发明第二实施例提供的多模式的串匹配装置结构示意图。
具体实施方式
为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
实施例1
本实施例提供一种多模式的串匹配方法,如图1,包括:
抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串,根据该模式串创建Aho-Corasick自动机;
根据模式串创建移动表,移动表记录了所述的模式串中字符块的位移量;
若文本串的滑动窗口未滑动至所述文本串的末尾,根据移动表寻找可能的匹配位置,滑动窗口的长度至少是2;
对根据移动表找到的可能的匹配位置,根据Aho-Corasick自动机进行匹配验证;
根据移动表继续寻找下一个可能的匹配位置,直至滑动窗口滑动至文本串的末尾。
其中,在抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串之前,还包括:设定数据包采集时间、数量,当采集时间或者采集到数量达到设定值时,停止采集数据包。
其中,根据移动表寻找可能的匹配位置包括:查找移动表中记录的,位移量为0的位置,并将位移量为0的位置作为可能的匹配位置。
其中,对根据移动表找到的可能的匹配位置,根据Aho-Corasick自动机进行匹配验证包括:读取文本串的下一个字符;若当前状态存在一个权值为所述下一个字符的下一个状态,则跳转至下一个状态;若所述下一个状态为终结状态,则报告字符串匹配成功。
本实施例通过根据模式串创建Aho-Corasick自动机,根据模式串创建移动表,若文本串的滑动窗口未滑动至所述文本串的末尾,根据所述移动表寻找可能的匹配位置,对根据所述移动表找到的可能的匹配位置,根据所述Aho-Corasick自动机进行匹配验证,根据所述移动表继续寻找下一个可能的匹配位置,直至所述滑动窗口滑动至所述文本串的末尾,解决了AC算法中窗口滑动慢,以及Wu-Manber算法中比较结果不留存的问题。
实施例2
一种多模式的串匹配装置,如图2,包括:
自动机创建模块,用于抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串,根据该模式串创建Aho-Corasick自动机;
移动表创建模块,用于根据模式串创建移动表,所述的移动表记录了所述的模式串中字符块的位移量;
匹配位置寻找模块,若文本串的滑动窗口未滑动至所述文本串的末尾,根据所述移动表寻找可能的匹配位置,所述滑动窗口的长度至少是2;
匹配验证模块,用于根据所述移动表找到的可能的匹配位置,根据所述Aho-Corasick自动机进行匹配验证;
判断模块,用于根据所述移动表继续寻找下一个可能的匹配位置,直至所述滑动窗口滑动至所述文本串的末尾。
其中自动机创建模块中包括设定模块,用于在的抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串之前,设定数据包采集时间、数量,当采集时间或者采集到数量达到设定值时,停止采集数据包。
其中,匹配位置寻找模块具体用于:查找所述移动表中记录的,位移量为0的位置,并将所述位移量为0的位置作为可能的匹配位置。
其中,匹配验证模块包括:
字符读取单元,用于读取文本串的下一个字符;
状态跳转单元,用于若当前状态存在一个权值为所述下一个字符的下一个状态,则跳转至下一个状态;
报告单元,用于若所述下一个状态为终结状态,则报告字符串匹配成功。
在所述Aho-Corasick自动机中,如果一个状态的转移指针的个数是0,则这个状态是终结状态。如果在状态转移的过程中,跳转至的状态是一个终结状态,则说明文本串与模式串之间的匹配成功,可以报告上述成功。
Claims (8)
1.一种多模式的串匹配方法,其特征在于,包括:
抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串,根据该模式串创建Aho-Corasick自动机;
根据模式串创建移动表,所述的移动表记录了所述的模式串中字符块的位移量;
若文本串的滑动窗口未滑动至所述文本串的末尾,根据所述移动表寻找可能的匹配位置,所述滑动窗口的长度至少是2;
对根据所述移动表找到的可能的匹配位置,根据所述Aho-Corasick自动机进行匹配验证;
根据所述移动表继续寻找下一个可能的匹配位置,直至所述滑动窗口滑动至所述文本串的末尾。
2.如权利要求1所述的方法,其特征在于,在所述的抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串之前,还包括:
设定数据包采集时间、数量,当采集时间或者采集到数量达到设定值时,停止采集数据包。
3.如权利要求1所述的方法,其特征在于,根据所述移动表寻找可能的匹配位置包括:查找所述移动表中记录的,位移量为0的位置,并将所述位移量为0的位置作为可能的匹配位置。
4.如权利要求1所述的方法,其特征在于,对根据所述移动表找到的可能的匹配位置,根据所述Aho-Corasick自动机进行匹配验证包括:读取文本串的下一个字符;若当前状态存在一个权值为所述下一个字符的下一个状态,则跳转至下一个状态;若所述下一个状态为终结状态,则报告字符串匹配成功。
5.一种多模式的串匹配装置,其特征在于,包括:
自动机创建模块,用于抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串,根据该模式串创建Aho-Corasick自动机;
移动表创建模块,用于根据模式串创建移动表,所述的移动表记录了所述的模式串中字符块的位移量;
匹配位置寻找模块,若文本串的滑动窗口未滑动至所述文本串的末尾,根据所述移动表寻找可能的匹配位置,所述滑动窗口的长度至少是2;
匹配验证模块,用于根据所述移动表找到的可能的匹配位置,根据所述Aho-Corasick自动机进行匹配验证;
判断模块,用于根据所述移动表继续寻找下一个可能的匹配位置,直至所述滑动窗口滑动至所述文本串的末尾。
6.如权利要求5所述的装置,其特征在于,所述自动机创建模块中包括设定模块,用于在所述的抓取一组数据包,获取该组数据包负载的最长公共子序列作为模式串之前,设定数据包采集时间、数量,当采集时间或者采集到数量达到设定值时,停止采集数据包。
7.如权利要求5所述的装置,其特征在于,所述匹配位置寻找模块具体用于:查找所述移动表中记录的,位移量为0的位置,并将所述位移量为0的位置作为可能的匹配位置。
8.如权利要求5所述的装置,其特征在于,所述匹配验证模块包括:
字符读取单元,用于读取文本串的下一个字符;
状态跳转单元,用于若当前状态存在一个权值为所述下一个字符的下一个状态,则跳转至下一个状态;
报告单元,用于若所述下一个状态为终结状态,则报告字符串匹配成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810084136.3A CN108418793A (zh) | 2018-01-29 | 2018-01-29 | 多模式的串匹配方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810084136.3A CN108418793A (zh) | 2018-01-29 | 2018-01-29 | 多模式的串匹配方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108418793A true CN108418793A (zh) | 2018-08-17 |
Family
ID=63126596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810084136.3A Pending CN108418793A (zh) | 2018-01-29 | 2018-01-29 | 多模式的串匹配方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108418793A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110311914A (zh) * | 2019-07-02 | 2019-10-08 | 北京微步在线科技有限公司 | 通过镜像网络流量提取文件的方法及装置 |
CN112506789A (zh) * | 2020-12-17 | 2021-03-16 | 中国科学院计算技术研究所 | 一种用于数据包检测的并行模式匹配方法 |
-
2018
- 2018-01-29 CN CN201810084136.3A patent/CN108418793A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110311914A (zh) * | 2019-07-02 | 2019-10-08 | 北京微步在线科技有限公司 | 通过镜像网络流量提取文件的方法及装置 |
CN112506789A (zh) * | 2020-12-17 | 2021-03-16 | 中国科学院计算技术研究所 | 一种用于数据包检测的并行模式匹配方法 |
CN112506789B (zh) * | 2020-12-17 | 2022-08-02 | 中国科学院计算技术研究所 | 一种用于数据包检测的并行模式匹配方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103428196B (zh) | 一种基于url白名单的web应用入侵检测方法 | |
CN107251037B (zh) | 黑名单生成装置、黑名单生成系统、黑名单生成方法和记录介质 | |
CN108920954B (zh) | 一种恶意代码自动化检测平台及方法 | |
Shabtai et al. | F-sign: Automatic, function-based signature generation for malware | |
CN104601556A (zh) | 一种面向web的攻击检测方法及系统 | |
CN104978522A (zh) | 一种检测恶意代码的方法和装置 | |
CN109104421B (zh) | 一种网站内容篡改检测方法、装置、设备及可读存储介质 | |
CN102799814A (zh) | 一种钓鱼网站查找系统及方法 | |
CN103532944A (zh) | 一种捕获未知攻击的方法和装置 | |
CN108418793A (zh) | 多模式的串匹配方法和装置 | |
CN105024987A (zh) | 一种web业务日志的监测方法和装置 | |
CN105718795A (zh) | Linux下基于特征码的恶意代码取证方法及系统 | |
Lovanshi et al. | Comparative study of digital forensic tools | |
Aldwairi et al. | Exhaust: Optimizing wu-manber pattern matching for intrusion detection using bloom filters | |
CN101719906B (zh) | 一种基于蠕虫传播行为的蠕虫检测方法 | |
CN109413047A (zh) | 行为模拟的判定方法、系统、服务器及存储介质 | |
CN106911665B (zh) | 一种识别恶意代码弱口令入侵行为的方法及系统 | |
CN113542311B (zh) | 一种实时检测失陷主机并回溯的方法 | |
CN101286979B (zh) | 一种网络攻击检测方法 | |
CN101409623B (zh) | 一种面向高速网络的模式匹配方法 | |
CN111885034B (zh) | 物联网攻击事件追踪方法、装置和计算机设备 | |
CN109194605A (zh) | 一种基于开源信息的可疑威胁指标主动验证方法和系统 | |
CN105653941A (zh) | 一种启发式检测钓鱼网站的方法及系统 | |
CN108573148B (zh) | 一种基于词法分析的混淆加密脚本识别方法 | |
CN115358214A (zh) | 一种基于用户浏览和搜索行为的关键词识别方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180817 |