安全公司报告
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210925221.4 (22)申请日 2022.08.03 (71)申请人 昆明理工大 学 地址 650093 云南省昆明市五华区学府路 253号 (72)发明人 王海瑞 王清宇  (74)专利代理 机构 昆明明润知识产权代理事务 所(普通合伙) 53215 专利代理师 马海红 (51)Int.Cl. H04L 9/40(2022.01) G06N 3/04(2006.01) G06F 40/289(2020.01) G06F 40/216(2020.01) G06F 21/55(2013.01) (54)发明名称 一种基于FlexUDA模型的SQL注入攻击检测 方法 (57)摘要 本发明涉及一种基于FlexUDA模型的SQL注 入攻击检测方法, 属于网络空间安全技术领域。 先在设定靶场网站上运行SQL注入脚本, 通过抓 包获取大量的注入及非注入SQL样本。 再对采集 到的数据进行解码、 泛化和分词预处理, 并对无 标签数据进行增强。 之后将增强数据和未增强数 据使用TF ‑IDF和Word2Vec融合算 法进行向量化, 最后将向量数据输入到 FlexUDA模型中进行训练 并对实时流量进行检测。 该模型使用无监督数据 增强技术对 无标签数据进行扩充, 利用大量无标 签数据和少量有标签数据进行模 型训练, 同时使 用阈值自适应技术和训练信号退火技术, 有效解 决深度学习方法检测SQL注入时因有标签数据不 足而导致的过拟合问题。 权利要求书2页 说明书7页 附图6页 CN 115361176 A 2022.11.18 CN 115361176 A 1.一种基于FlexUDA模型的SQ L注入攻击检测方法, 其特 征在于: 具体步骤为: 1)实验数据采集: 通过在设定靶场网站上运行SQLmap和temper脚本, 使用wireshark进 行抓包, 获取若干条SQL注入语句作为正样本, 若干条正常SQL语句作为负样本和若干条无 标签样本; 2)数据预处 理: 对步骤1)采集的数据进行解码、 泛化、 分词的预处 理; 3)数据增强: 通过计算步骤2)得到的无标签样本的TF ‑IDF值, 根据特征的重要程度进 行排序, 分别对重要和不重要的数据按照一定规则进行随机替换, 在尽可能保证有价值特 征不受影响的情况 下, 将无标签样本量扩大一 倍; 4)数据向量化: 使用TF ‑IDF和Word2Vec融合算法对步骤2)及步骤3)得到的所有数据进 行向量化; 5)模型训练: 将步骤4)得到的向量化数据输入到TextCNN网络中, 使用半监督学习算法 对网络进行训练, 通过总损失回传不断调整网络参数, 得到一个泛化性能较好的半监督模 型; 6)SQL注入攻击检测: 使用步骤5)中训练好的模型对靶场数据进行检测, 并使用准确 率、 精确率、 召回率和F1值进行评估。 2.根据权利1要求所述的一种基于FlexUDA模型的SQL注入攻击检测方法, 其特征在于: 所述步骤1)实验数据采集, 具体包括如下步骤: 步骤1.1在Windows10虚拟机中部署apache+php+mysql环境, 搭建sqli ‑labs、 bwapp靶 场; 步骤1.2使用SQ Lyog对MySQ L进行正常访问, 同时使用W ireshark 抓取正常SQ L语句; 步骤1.3使用SQLmap和自定义的temper脚本对靶场 进行攻击, 同时使用wireshark抓取 具有攻击行为的SQ L注入语句; 步骤1.4对抓取到的SQL语句进行筛选整理, 最终得到20000条正样本, 20000条负样本 和50000条无标签样本 。 3.根据权利1要求所述一种基于FlexUDA模型的SQL注入攻击检测方法, 其特征在于: 所 述步骤2)数据预处 理, 具体包括如下步骤: 步骤2.1解码处理, 解码是针对ASCII编码、 URL编码、 UNICODE编码和JSON编码, 将编码 后的数据统一 解码成UTF‑8编码; 步骤2.2泛化处理, 将所有英文字母转换成小写字母, 将所有十进制数转换成数字0, 将 所有十六进制数转换成0x12, 将所有日期和时间转换成固定字 符串"2‑2‑2",将过渡重写的 关键字进行排 查, 只留下排 查后的剩余字符; 步骤2.3分词处理, 将包括空格在内的所有字符进行分词, 并将每条SQL数据分词后的 结果存入列表中, 分词保留原 始字符的意 义。 4.根据权利1要求所述一种基于FlexUDA模型的SQL注入攻击检测方法, 其特征在于: 所 述步骤3)数据增强的具体包括如下步骤: 步骤3.1计算 步骤2)预处 理后所有无 标签样本的TF ‑IDF值, 存 储成稀疏矩阵; 步骤3.2将TF ‑IDF稀疏矩阵按照TF ‑IDF值降序排列存储, 并设定第500个TF ‑IDF值为阈 值σ; 步骤3.3循环遍历每条输入样本, 即一条 预处理过的SQ L语句:权 利 要 求 书 1/2 页 2 CN 115361176 A 2(1)如果某分词TF ‑IDF值大于阈值σ: 以0.1的概率将该分词用前500个分词中的任意一 个随机替换; (2)如果某分词TF ‑IDF值小于阈值σ: 以0.9的概率将该分词用前500个分词以后的分词 中的任意 一个随机替换; (3)结束循环, 输出一条增强后的无 标签样本; 步骤3.4重复步骤3.1 ‑步骤3.3, 直至所有无 标签样本均被增强过, 数据增强完成。 5.根据权利1要求所述一种基于FlexUDA模型的SQL注入攻击检测方法, 其特征在于: 所 述步骤4)数据向量 化, 具体包括如下步骤: 步骤4.1对步骤3)得到的增 强数据和步骤2)得到的未增 强数据中的每一条包含n个词 语的SQL样本x使用skim ‑gram算法计算其词向量矩阵v(x),每个词向量维度为m, 得到n*m维 矩阵v(x), 使用TF ‑IDF算法计算 其TF‑IDF值, 得到1*n维TF ‑IDF矩阵t(x); 步骤4.2将步骤4.1计算得到的两个矩阵v(x)和t(x)相乘, 得到1*m维矩阵w(x); w(x)=t(x) ×v(x) 步骤4.3将t(x)的转置矩阵与w(x)矩阵相乘, 再与v(x)矩阵拼接, 最后得到融合后的 2n*m维的融合矩阵f(x) f(x)=torc h.cat(tT(x)×w(x),v(x) )。 6.根据权利1要求所述一种基于FlexUDA模型的SQL注入攻击检测方法, 其特征在于: 所 述步骤5)具体包括如下步骤: 使用半监督学习算法对步骤4)数据向量化后的正样本、 负样本和无标签样本进行学 习, 对有标签数据部 分计算其交叉熵损失, 对无标签样本计算一致性损失, 最后 将两种损失 按照1:1的比例进行加权求和, 得到总损失, 利用总损失回传进行网络参数的更新, 同时使 用Adam优化算法更新网络参数, 使用LambdaLRscheduler对优化器的学习率进行调整, 使用 训练信号退火TSA技术, 在无标签样本增加的过程中逐步去除有标签数据来抑制过拟合的 产生, 使用阈值自适应Flex技 术来加速模型的训练。 7.根据权利1要求所述一种基于FlexUDA模型的SQL注入攻击检测方法, 其特征在于: 所 述步骤6)具体包括如下步骤: 步骤6.1采集实时数据, 使用步骤1)的方法对把靶场上的数据进行实时抓取, 并使用步 骤2)的方法进行 预处理, 然后送入步骤5)得到的半监 督模型中进行检测; 步骤6.2对检测结果使用准确率、 精确率、 召回率和F1值指标进行模型评估。权 利 要 求 书 2/2 页 3 CN 115361176 A 3

PDF文档 专利 一种基于FlexUDA模型的SQL注入攻击检测方法

文档预览
中文文档 16 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于FlexUDA模型的SQL注入攻击检测方法 第 1 页 专利 一种基于FlexUDA模型的SQL注入攻击检测方法 第 2 页 专利 一种基于FlexUDA模型的SQL注入攻击检测方法 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-18 22:27:44上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。