CN113098832A - 一种基于机器学习的远程缓冲区溢出攻击检测方法 - Google Patents
一种基于机器学习的远程缓冲区溢出攻击检测方法 Download PDFInfo
- Publication number
- CN113098832A CN113098832A CN201911344300.0A CN201911344300A CN113098832A CN 113098832 A CN113098832 A CN 113098832A CN 201911344300 A CN201911344300 A CN 201911344300A CN 113098832 A CN113098832 A CN 113098832A
- Authority
- CN
- China
- Prior art keywords
- buffer overflow
- machine learning
- data
- detection method
- flow
- 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
Images
Classifications
-
- 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
-
- 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/1433—Vulnerability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明应用于计算机流量分析领域,旨在用机器学习的方法建立模型用于对网络入侵活动中的缓冲区溢出攻击进行检测。本发明首先通过复现大量远程缓冲区溢出漏洞的exploit来收集攻击流量样本,再结合正常数据流量组成完整的数据集。该方法首先提取样本流量的基本信息,组成完整的tcp流,再利用本方法特有的特征提取规则对样本进行特征提取,将预处理后的特征利用不同模型的机器学习方法进行训练,测试和比较,选择分类效果最好的模型作为检测远程缓冲区溢出漏洞攻击的分类器。本方法具有精准度高,误报率低,耗时短,等特点,利用本方法进行远程缓冲区溢出攻击检测能够有效的在网络中识别具有缓冲区溢出攻击行为的恶意流量,便于进行拦截和防御。
Description
技术领域
本发明涉及网络流量检测技术,旨在利用远程缓冲区溢出exploit流量的特征和机器学习算法对网络中数据流进行检测,核心是从收集到的正常和异常流量包中提取特征,通过特定的规则和机器学习的方法生成分类模型来识别网络中的缓冲区溢出攻击行为。
背景技术
缓冲区溢出攻击是利用缓冲区溢出漏洞所进行的攻击行为。缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统关机、重新启动等后果。
缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符。但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区,又被称为“堆栈”,在各个操作进程之间,指令会被临时储存在“堆栈”当中,“堆栈”也会出现缓冲区溢出。
缓冲区溢出攻击检测技术可按照检测的对象不同分为三大类,即基于源代码的检测技术,基于目标代码的检测技术,基于攻击代码特征的检测技术。
传统的针对缓冲区溢出攻击检测的方法存在以下这些问题:基于源码的检测技术虽然可以检测出大量的漏洞攻击,但是缺点是误报率高,结果集大,针对性不强,流程复杂,源码获得较为困难;基于目标代码的检测技术通用性很强,并且降低了漏报率,但精度难以提高,造成误报率较高,另外执行时间很难估计,大部分方法只能给出一种模糊的判断,判断软件中是否存在漏洞,而对漏洞在源码中的具体位置不能确定;传统的基于攻击代码特征的检测技术这种检测都可以在入侵检测等外围防御系统中实现,缺点是漏报率较高,无法检测出无明显特征的溢出攻击注入代码。
同时针对缓冲区漏洞的网络攻击愈演愈烈,极大地威胁着人们的生活安全和国家安全,迫切需要一种精准度高,误报率低的远程缓冲区溢出攻击检测方法来克服已有检测方法的不足,来对上述攻击行为进行有效的检测。
发明内容
“一种基于机器学习的远程缓冲区溢出攻击检测方法”是在对网络中缓冲区溢出攻击检测研究中针对目前存在的问题所提出的发明。本发明的目标是改善现有检测方法精准度低,误报漏报率高的缺点,提出了一个基于机器学习的远程缓冲区溢出攻击检测方法。机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实,实时的模拟人类学习方式,近年来,机器学习广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别等领域,并取得了突破性进展。该发明将机器学习方法应用于网络流量检测领域,用于对网络数据流中缓冲区溢出攻击行为的识别检测,区别于传统的基于代码特征检测技术,基于机器学习方法的缓冲区溢出攻击检测方法能够自动的从已有数据集中按照该方法独有的特征提取规则进行特征的提取和分析,并根据特征对机器学习模型进行训练,并将训练好的模型应用于实际的流量检测当中去。该方法不仅可以有效地检测出网络中关于缓冲区溢出攻击的恶意流量,而且可以识别未知的新型缓冲区溢出攻击方式,可将训练好的分类器模型应用于网络节点处,不需要获得程序源码,也不会影响节点处设备的正常运转,而且该方法提取的特征针对性强,因此训练出的分类器的检测效果比传统检测方法好很多。
为了达到上述效果,本发明的技术框架包含了:收集缓冲区溢出攻击恶意代码,并对其复现攻击过程并抓包,同时抓取一定量的正常流量包也存入pcap文件;解包过滤合并tcp流,将pcap文件中的数据包进行解包解码,剔除对分析数据无用的包,并把过滤后的数据包进行tcp流合并,便于下一步对完整的tcp流进行特征提取;对每一个tcp流打标签并提取特征存入csv文件便于下一步分析;将收集到的特征进行归一化处理,使其适用于机器学习的模型;将归一化后的特征和标签作为机器学习模型的参数进行训练和测试;比较多个模型测试出来的评估指标,择其优选为最终检测远程缓冲区溢出攻击的模型。
附图说明
从下面结合附图的详细描述中,将会更加清晰地理解本发明的目标,实现方法,优点和特性,其中。
图1是说明本发明的检测技术的整体流程图。
图2是说明本发明的检测技术的第一步获取数据的流程。
图3是说明本发明的检测技术的第二步过滤整合数据的流程。
图4是说明本发明的检测技术的第三步特征提取的流程。
图5是说明本发明的检测技术的第四步数据归一化的流程。
图6是说明本发明的检测技术的第五步及第六步:模型训练测试及选择。
具体实施方式
本发明中的远程缓冲区溢出攻击检测技术是基于机器学习的一种恶意流量检测方法,适用性强,精准度高,误报率低,能够高效准确地检测远程缓冲区溢出攻击,及时发现网络中潜在的威胁。下面结合附图对本发明做进一步说明。
如图1所示,基于机器学习的远程缓冲区攻击检测方法共含有六个基本步骤,每一步实现不同的功能,并且每一步的数据均来自上一步的处理。第一步将所需数据流进行抓取保存为pcap格式文件便于之后的数据分析;第二步将数据包进行解包分析,将数据按照特定规则进行标准化处理;第三部对标准化处理后的数据流进行特征提取,这是最为关键的一步,决定着最终分类器的使用效果;第四步是将提取的特征进行归一化处理,便于机器学习的模型进行学习;第五步选取不同的机器学习模型进行训练和测试;第六步对各个测试结果的指标进行对比,选取最为合适的模型作为最终的分类器模型。下面将对每一步做详细的描述。
如图2所示,我通过搜集近10年来的基于缓冲区溢出的远程攻击代码,复现了将近400个缓冲区溢出漏洞的攻击过程,包括永恒之蓝等重大漏洞,同时用wireshark,tcpdump等工具进行数据包的抓取,再将其数据包保存为pcap文件格式。同时,在其他主机上抓取正常数据包也保存为pcap文件格式,以便与下一步对数据包的处理。
如图3所示,首先判断其传输层协议,若为TCP协议则继续判断其载荷长度,若载荷长度不为零(TCP协议三次握手等)则开始解包操作,去除数据包的网络层和传输层的头部,为了分析完整的恶意数据流的特征,根据源IP,目的IP,源端口,目的端口四元组将数据包合并成TCP流,将合并完的TCP流解码为字符串,并对每一个TCP流打上相应的标签便于下一步的数据流分析。
如图4所示,在对数据流的特征提取过程中,根据第一步对远程缓冲区溢出攻击代码的分析提取了5个主要特征,num_letter用于记录payload中填充缓冲区的连续字符的个数,大量连续相同的填充字符是缓冲区溢出攻击代码中一个重要特征,故把每个TCP流的连续数量大于8的字符数的种类和重复数进行了统计,记录为其中一维特征。num_nop用于记录‘nop’指令的个数,在汇编指令中,‘nop’指令为空操作指令,‘nop’作为填充物,填充未使用的缓冲区,用于控制溢出地址的位置,‘nop’指令一般表示为0x90表示。
num_0x用于记录payload中16进制数的个数,用于识别shellcode,这里统计TCP流中16进数的个数,并将所统计的个数除以TCP流中的包的个数得出每个TCP流中每个数据包的平均16进制数个数。布尔类型bool_address用于记录payload是否含有内存地址(一般为eip中jmp esp的地址),1代表含有内存地址,0代表不含内存地址。据第一步对远程缓冲区溢出攻击代码的分析,内存地址一般存在于两个重复多次连续字符之间,一般为4字节或8字节的形式出现。以此为依据进行内存地址的统计。bool_0用于记录payload首部是否含有‘\0’,1为没找到,0为找到, 因为字符串处理函数没有指定长度,单单凭借结尾字符是不是‘\0'来判断结束,故shellcode中一定不含‘\0’。因此把是否含‘\0’作为布尔类型的特征值。
图5所示归一化过程,把数据变成(0,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。
将归一化后的数据,分别选择诸如贝叶斯网络,随机森林等不同的机器学习模型进行训练,根据评估标准中精确度,召回率等指标进行最终模型的选择。最终选择训练完成的随机森林模型作为最终的分类器模型。
Claims (6)
1.一种基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于,所述方法包括如下步骤:
A、搜集所需恶意流量和正常流量,对数据包进行抓取保存为pcap格式文件便于之后的数据分析;
B、将数据包进行过滤,解包分析,将数据按照特定规则进行标准化处理;
C、对标准化处理后的数据流进行特征提取,根据特定的规则分析,将提取的特征放入csv文件中保存;
D、将提取的特征进行归一化处理,便于机器学习的模型进行学习;
E、选取不同的机器学习模型进行训练和测试,并对各个测试结果的指标进行对比,选取最为合适的模型作为最终的分类器模型。
2.根据权利要求1所述的基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于:步骤1中,搜集基于缓冲区溢出的远程攻击代码,复现了缓冲区溢出漏洞的攻击过程,同时用wireshark,tcpdump等工具进行数据包的抓取,再将其数据包保存为pcap文件格式。
3.根据权利要求1所述的基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于:步骤2中包括根据端口号和数据包长度对数据包进行过滤,根据源IP,目的IP,源端口,目的端口四元组将数据包合并成TCP流。
4.根据权利要求1所述的基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于:步骤3中根据第一步对远程缓冲区溢出攻击代码的分析提取了5个主要特征,num_letter用于记录payload中填充缓冲区的连续字符的个数;num_nop用于记录nop指令的个数,汇编指令nop的16进制表示为‘0x90’,用于填充缓冲区;num_0x用于记录payload中16进制数的个数,用于识别shellcode,统计每个TCP流中16进数的个数,并将所统计的个数除以TCP流中的包的个数得出每个TCP流中每个数据包的平均16进制数个数;布尔类型bool_address用于记录payload是否含有内存地址(一般为eip中jmp esp的地址),1代表含有内存地址,0代表不含内存地址;bool_0用于记录payload首部是否含有‘\0’, 因为字符串处理函数没有指定长度,单单凭借结尾字符是不是‘\0'来判断结束,故shellcode中一定不含‘\0’。
5.根据权利要求1所述的基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于:步骤4中,把数据变成(0,1)之间的小数,主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。
6.根据权利要求1所述的基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于:在步骤5中,分别选择诸如贝叶斯网络,随机森林等不同的机器学习模型进行训练,根据评估标准中精确度,召回率等指标进行最终模型的选择。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911344300.0A CN113098832B (zh) | 2019-12-23 | 2019-12-23 | 一种基于机器学习的远程缓冲区溢出攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911344300.0A CN113098832B (zh) | 2019-12-23 | 2019-12-23 | 一种基于机器学习的远程缓冲区溢出攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113098832A true CN113098832A (zh) | 2021-07-09 |
CN113098832B CN113098832B (zh) | 2022-09-27 |
Family
ID=76663620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911344300.0A Active CN113098832B (zh) | 2019-12-23 | 2019-12-23 | 一种基于机器学习的远程缓冲区溢出攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113098832B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183998A (zh) * | 2007-12-14 | 2008-05-21 | 浙江工业大学 | 具有时效性的动态双向环行tcp流缓冲区建立和执行方法 |
CN101286979A (zh) * | 2008-06-03 | 2008-10-15 | 电子科技大学 | 一种网络攻击检测方法 |
CN103248605A (zh) * | 2012-02-02 | 2013-08-14 | 哈尔滨安天科技股份有限公司 | 一种基于ipv6的tcp流汇聚方法及系统 |
CN108881305A (zh) * | 2018-08-08 | 2018-11-23 | 西安交通大学 | 一种面向加密流量识别的样本自动标定方法 |
CN109063745A (zh) * | 2018-07-11 | 2018-12-21 | 南京邮电大学 | 一种基于决策树的网络设备类型识别方法及系统 |
CN109167798A (zh) * | 2018-11-01 | 2019-01-08 | 四川长虹电器股份有限公司 | 一种基于机器学习的家用物联网设备DDoS检测方法 |
CN109871809A (zh) * | 2019-02-22 | 2019-06-11 | 福州大学 | 一种基于语义网的机器学习流程智能组装方法 |
US20190197244A1 (en) * | 2017-12-22 | 2019-06-27 | Royal Bank Of Canada | Reinforcement-based system and method for detecting system vulnerabilities |
CN110011999A (zh) * | 2019-03-29 | 2019-07-12 | 东北大学 | 基于深度学习的IPv6网络DDoS攻击检测系统及方法 |
CN110245491A (zh) * | 2019-06-11 | 2019-09-17 | 合肥宜拾惠网络科技有限公司 | 网络攻击类型的确定方法、装置以及存储器和处理器 |
CN110266675A (zh) * | 2019-06-12 | 2019-09-20 | 成都积微物联集团股份有限公司 | 一种基于深度学习的xss攻击自动化检测方法 |
-
2019
- 2019-12-23 CN CN201911344300.0A patent/CN113098832B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183998A (zh) * | 2007-12-14 | 2008-05-21 | 浙江工业大学 | 具有时效性的动态双向环行tcp流缓冲区建立和执行方法 |
CN101286979A (zh) * | 2008-06-03 | 2008-10-15 | 电子科技大学 | 一种网络攻击检测方法 |
CN103248605A (zh) * | 2012-02-02 | 2013-08-14 | 哈尔滨安天科技股份有限公司 | 一种基于ipv6的tcp流汇聚方法及系统 |
US20190197244A1 (en) * | 2017-12-22 | 2019-06-27 | Royal Bank Of Canada | Reinforcement-based system and method for detecting system vulnerabilities |
CN109063745A (zh) * | 2018-07-11 | 2018-12-21 | 南京邮电大学 | 一种基于决策树的网络设备类型识别方法及系统 |
CN108881305A (zh) * | 2018-08-08 | 2018-11-23 | 西安交通大学 | 一种面向加密流量识别的样本自动标定方法 |
CN109167798A (zh) * | 2018-11-01 | 2019-01-08 | 四川长虹电器股份有限公司 | 一种基于机器学习的家用物联网设备DDoS检测方法 |
CN109871809A (zh) * | 2019-02-22 | 2019-06-11 | 福州大学 | 一种基于语义网的机器学习流程智能组装方法 |
CN110011999A (zh) * | 2019-03-29 | 2019-07-12 | 东北大学 | 基于深度学习的IPv6网络DDoS攻击检测系统及方法 |
CN110245491A (zh) * | 2019-06-11 | 2019-09-17 | 合肥宜拾惠网络科技有限公司 | 网络攻击类型的确定方法、装置以及存储器和处理器 |
CN110266675A (zh) * | 2019-06-12 | 2019-09-20 | 成都积微物联集团股份有限公司 | 一种基于深度学习的xss攻击自动化检测方法 |
Non-Patent Citations (2)
Title |
---|
陈冠衡等: "基于深度神经网络的异常流量检测算法", 《信息网络安全》 * |
陈冠衡等: "基于深度神经网络的异常流量检测算法", 《信息网络安全》, 30 June 2019 (2019-06-30), pages 68 - 75 * |
Also Published As
Publication number | Publication date |
---|---|
CN113098832B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597734B (zh) | 一种适用于工控私有协议的模糊测试用例生成方法 | |
CN109117634B (zh) | 基于网络流量多视图融合的恶意软件检测方法及系统 | |
CN113645232B (zh) | 一种面向工业互联网的智能化流量监测方法、系统及存储介质 | |
CN104753946A (zh) | 一种基于网络流量元数据的安全分析框架 | |
CN109194677A (zh) | 一种sql注入攻击检测方法、装置及设备 | |
CN111526099B (zh) | 基于深度学习的物联网应用流量检测方法 | |
CN107016298B (zh) | 一种网页篡改监测方法及装置 | |
CN110392013A (zh) | 一种基于网络流量分类的恶意软件识别方法、系统及电子设备 | |
CN110149247B (zh) | 一种网络状态的检测方法及装置 | |
CN112434178A (zh) | 图像分类方法、装置、电子设备和存储介质 | |
CN114091602A (zh) | 一种基于机器学习的ssr流量识别系统及方法 | |
CN116346456A (zh) | 业务逻辑漏洞攻击检测模型训练方法及装置 | |
CN113098832B (zh) | 一种基于机器学习的远程缓冲区溢出攻击检测方法 | |
CN112953948A (zh) | 一种实时网络横向蠕虫攻击流量检测方法及装置 | |
CN117336055A (zh) | 一种网络异常行为检测方法、装置、电子设备及存储介质 | |
CN112073396A (zh) | 一种内网横向移动攻击行为的检测方法及装置 | |
CN111723370A (zh) | 一种容器恶意行为检测的方法和设备 | |
CN112929364B (zh) | 一种基于icmp隧道分析的数据泄漏检测方法及系统 | |
CN109194756A (zh) | 应用程序特征信息提取方法及装置 | |
CN112653683A (zh) | 基于大数据和云计算的数据流式处理方法及云服务器 | |
CN111988343A (zh) | 一种远程设定规则并监测工业网络入侵的系统及方法 | |
KR102483797B1 (ko) | 설명가능한 인공지능을 이용한 네트워크 패킷 공격의 원인 분석 방법, 이를 수행하는 장치 및 컴퓨터 프로그램 | |
CN113055396B (zh) | 一种跨终端溯源分析的方法、装置、系统和存储介质 | |
EP4254237A1 (en) | Security data processing device, security data processing method, and computer-readable storage medium for storing program for processing security data | |
CN117272392B (zh) | 用于终端的数据安全保护与备份控制方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |