[发明专利]一种基于机器学习的远程缓冲区溢出攻击检测方法有效
申请号: | 201911344300.0 | 申请日: | 2019-12-23 |
公开(公告)号: | CN113098832B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | 刘亮;李书彬;郑荣锋 | 申请(专利权)人: | 四川大学 |
主分类号: | H04L9/40 | 分类号: | H04L9/40 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 机器 学习 远程 缓冲区 溢出 攻击 检测 方法 | ||
1.一种基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于,所述方法包括如下步骤:
A、搜集所需恶意流量和正常流量,对数据包进行抓取保存为pcap格式文件便于之后的数据分析;
B、将数据包进行过滤,解包分析,将数据按照特定规则进行标准化处理;根据源IP,目的IP,源端口,目的端口四元组将数据包合并成TCP流;
C、对标准化处理后的数据流进行特征提取,根据特定的规则分析,将提取的特征放入csv文件中保存;
根据对远程缓冲区溢出攻击代码的分析提取了5个主要特征,num_letter用于记录payload中填充缓冲区的连续字符的个数,记录为其中一维特征;num_nop用于记录nop指令的个数,汇编指令nop的16进制表示为‘0x90’,用于填充缓冲区;num_0x用于记录payload中16进制数的个数,用于识别shellcode,统计每个TCP流中16进数的个数,并将所统计的个数除以TCP流中的包的个数得出每个TCP流中每个数据包的平均16进制数个数;布尔类型bool_address用于记录payload是否含有内存地址,1代表含有内存地址,0代表不含内存地址;bool_0用于记录payload首部是否含有‘\0’;
D、将提取的特征进行归一化处理,便于机器学习的模型进行学习;
步骤D中,把数据变成(0,1)之间的小数,主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速;
E、选取不同的机器学习模型进行训练和测试,并对各个测试结果的指标进行对比,选取最为合适的模型作为最终的分类器模型。
2.根据权利要求1所述的基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于:
步骤A中,搜集基于缓冲区溢出的远程攻击代码,复现了缓冲区溢出漏洞的攻击过程,同时用wireshark,tcpdump工具进行数据包的抓取,再将其数据包保存为pcap文件格式。
3.根据权利要求1所述的基于机器学习的远程缓冲区溢出攻击检测方法,其特征在于:
在步骤E中,分别选择不同的机器学习模型进行训练,根据评估标准中精确度,召回率的指标进行最终模型的选择。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911344300.0/1.html,转载请声明来源钻瓜专利网。