CN115361176B - 一种基于FlexUDA模型的SQL注入攻击检测方法 - Google Patents
一种基于FlexUDA模型的SQL注入攻击检测方法 Download PDFInfo
- Publication number
- CN115361176B CN115361176B CN202210925221.4A CN202210925221A CN115361176B CN 115361176 B CN115361176 B CN 115361176B CN 202210925221 A CN202210925221 A CN 202210925221A CN 115361176 B CN115361176 B CN 115361176B
- Authority
- CN
- China
- Prior art keywords
- data
- model
- steps
- sql
- idf
- 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.)
- Active
Links
- 238000002347 injection Methods 0.000 title claims abstract description 37
- 239000007924 injection Substances 0.000 title claims abstract description 37
- 238000001514 detection method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012549 training Methods 0.000 claims abstract description 38
- 230000011218 segmentation Effects 0.000 claims abstract description 25
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 238000007781 pre-processing Methods 0.000 claims abstract description 10
- 230000004927 fusion Effects 0.000 claims abstract description 9
- 238000013515 script Methods 0.000 claims abstract description 7
- 238000000137 annealing Methods 0.000 claims abstract description 6
- 239000011159 matrix material Substances 0.000 claims description 30
- 238000011156 evaluation Methods 0.000 claims description 4
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 3
- 241000282326 Felis catus Species 0.000 claims description 3
- 230000006399 behavior Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 230000002787 reinforcement Effects 0.000 claims 1
- 238000013135 deep learning Methods 0.000 abstract description 4
- 238000002474 experimental method Methods 0.000 description 13
- 238000012360 testing method Methods 0.000 description 8
- 238000013136 deep learning model Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
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
-
- 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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- 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/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于FlexUDA模型的SQL注入攻击检测方法,属于网络空间安全技术领域。先在设定靶场网站上运行SQL注入脚本,通过抓包获取大量的注入及非注入SQL样本。再对采集到的数据进行解码、泛化和分词预处理,并对无标签数据进行增强。之后将增强数据和未增强数据使用TF‑IDF和Word2Vec融合算法进行向量化,最后将向量数据输入到FlexUDA模型中进行训练并对实时流量进行检测。该模型使用无监督数据增强技术对无标签数据进行扩充,利用大量无标签数据和少量有标签数据进行模型训练,同时使用阈值自适应技术和训练信号退火技术,有效解决深度学习方法检测SQL注入时因有标签数据不足而导致的过拟合问题。
Description
技术领域
本发明涉及一种基于FlexUDA模型的SQL注入攻击检测方法,属于网络空间安全的范畴。
背景技术
随着互联网技术的发展,网络攻击事件愈发频繁。从2013年到2021年的开放Web安全项目组织OWASP TOP10报告结果显示,注入攻击始终位列排行榜前三。而SQL注入是注入攻击中最常见也是危害性最高的一种攻击类型。国内外学者针对SQL注入已提出了很多的检测方法,大致可分为传统方法和基于机器学习的检测方法。传统方法无论是静态方法、动态方法,还是将两者结合的方法,在面对超级流量的大数据时代,都会存在检测效率低、成本高、占用资源多、漏报率和误报率高以及普适性差等各种各样的问题。而机器学习的发展迎合了数字时代海量数据的特点,使得这项技术飞速发展,应用前景广阔,并已取得了令人惊叹的成果。但浅层机器学习用于SQL注入时需要非常强的专业知识和精准全面的分析能力,才能对SQL数据提取到有效的特征,并且随着注入攻击手段的演变和提升,模型的特征提取也需要不断地手动更新,以适应新出现的注入特征。得到一个好的训练模型往往需要付出很大的代价,且模型的泛化能力往往不是很好。深度学习由于省去了复杂的人工特征提取环节,有望在SQL注入检测领域发挥巨大作用。但是网络安全领域公开的数据集较少,有限的数据集非常容易导致深度学习得到的模型过拟合,这是目前深度学习方法检测SQL注入最大的难题之一。
发明内容
本发明要解决的技术问题是:使用无监督数据增强技术对无标签样本进行增强,并使用TextCNN网络建立一种半监督学习训练模型,使用TF-IDF与Word2Vec融合算法对数据进行向量化处理,在训练过程中使用阈值自适应(Felx-threshold)技术和训练信号退火(TSA)技术,提高模型检测的准确率和召回率,提高模型的训练效率,充分利用了大量的无标签样本,有效地解决了深度学习模型检测SQL注入时因有标签数据不足而导致的过拟合问题。
本发明采用的技术方案是:一种基于FlexUDA模型的SQL注入攻击检测方法,具体步骤为:
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值进行评估。
具体地,所述步骤1)实验数据采集,具体包括如下步骤:
步骤1.1在Windows10虚拟机中部署apache+php+mysql环境,搭建sqli-labs、bwapp靶场;
步骤1.2使用SQLyog对MySQL进行正常访问,同时使用Wireshark抓取正常SQL语句;
步骤1.3使用SQLmap和自定义的temper脚本对靶场进行攻击,同时使用wireshark抓取具有攻击行为的SQL注入语句;
步骤1.4对抓取到的SQL语句进行筛选整理,最终得到20000条正样本,20000条负样本和50000条无标签样本。
具体地,所述步骤2)数据预处理,具体包括如下步骤:
步骤2.1解码处理,解码是针对ASCII编码、URL编码、UNICODE编码和JSON编码,将编码后的数据统一解码成UTF-8编码;
步骤2.2泛化处理,将所有英文字母转换成小写字母,将所有十进制数转换成数字0,将所有十六进制数转换成0x12,将所有日期和时间转换成固定字符串"2-2-2",将过渡重写的关键字进行排查,只留下排查后的剩余字符;
步骤2.3分词处理,将包括空格在内的所有字符进行分词,并将每条SQL数据分词后的结果存入列表中,分词保留原始字符的意义。
具体地,所述步骤3)数据增强的具体包括如下步骤:
步骤3.1计算步骤2)预处理后所有无标签样本的TF-IDF值,存储成稀疏矩阵;
步骤3.2将TF-IDF稀疏矩阵按照TF-IDF值降序排列存储,并设定第500个TF-IDF值为阈值σ;
步骤3.3循环遍历每条输入样本,即一条预处理过的SQL语句:
(1)如果某分词TF-IDF值大于阈值σ:以0.1的概率将该分词用前500个分词中的任意一个随机替换;
(2)如果某分词TF-IDF值小于阈值σ:以0.9的概率将该分词用前500个分词以后的分词中的任意一个随机替换;
(3)结束循环,输出一条增强后的无标签样本;
步骤3.4重复步骤3.1-步骤3.3,直至所有无标签样本均被增强过,数据增强完成。
具体地,所述步骤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)=torch.cat(tT(x)×w(x),v(x))。
具体地,所述步骤5)具体包括如下步骤:
使用半监督学习算法对步骤4)数据向量化后的正样本、负样本和无标签样本进行学习,对有标签数据部分计算其交叉熵损失,对无标签样本计算一致性损失,最后将两种损失按照1:1的比例进行加权求和,得到总损失,利用总损失回传进行网络参数的更新,同时使用Adam优化算法更新网络参数,使用LambdaLRscheduler对优化器的学习率进行调整,使用训练信号退火TSA技术,在无标签样本增加的过程中逐步去除有标签数据来抑制过拟合的产生,使用阈值自适应Flex技术来加速模型的训练,并提高模型预测的准确率和召回率。
具体地,所述步骤6)具体包括如下步骤:
步骤6.1采集实时数据,使用步骤1)的方法对把靶场上的数据进行实时抓取,并使用步骤2)的方法进行预处理,然后送入步骤5)得到的半监督模型中进行检测;
步骤6.2对检测结果使用准确率、精确率、召回率和F1值指标进行模型评估。
本发明的有益效果在于:使用无监督数据增强技术,对无标签样本进行样本增强,大大扩充了模型训练样本量,节省了人力物力,有效地解决深度学习模型检测SQL注入时因有标签SQL样本量不足而导致的过拟合问题。同时使用TF-IDF与Word2Vev融合算法进行向量化,使特征提取更加全面有效,并在训练过程中引入阈值自适应技术和训练信号退火技术,加速了模型训练的速度,同时提高了模型的准确率和召回率,并可有效抑制模型过拟合的产生。
附图说明
图1本发明工作流程图;
图2本发明FlexUDA模型结构图;
图3本发明TextCNN网络图;
图4本发明FlexUDA实验准确率图;
图5本发明FlexUDA实验精确率图;
图6本发明FlexUDA实验召回率图;
图7本发明FlexUDA实验F1值图;
图8本发明FlexUDA实验训练损失图;
图9本发明FlexUDA实验测试损失图;
图10本发明FlexUDA模型与基于数据传输信道的正样本生成方法模型对比实验结果图;
图11本发明FlexUDA模型与基于LSTM-RNN和CNN的有监督模型对比实验结果图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步描述。
实施例1:如图1所示,一种基于FlexUDA模型的SQL注入攻击检测方法,具体步骤为:
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值进行评估。
进一步地,所述步骤1)实验数据采集,具体包括如下步骤:
步骤1.1在Windows10虚拟机中部署apache+php+mysql环境,搭建sqli-labs、bwapp靶场;
步骤1.2使用SQLyog对MySQL进行正常访问,同时使用Wireshark抓取正常SQL语句;
步骤1.3使用SQLmap和自定义的temper脚本对靶场进行攻击,同时使用wireshark抓取具有攻击行为的SQL注入语句;
步骤1.4对抓取到的SQL语句进行筛选整理,最终得到20000条正样本,20000条负样本和50000条无标签样本。
进一步地,所述步骤2)数据预处理,具体包括如下步骤:
步骤2.1解码处理,解码是针对ASCII编码、URL编码、UNICODE编码和JSON编码,将编码后的数据统一解码成UTF-8编码;
步骤2.2泛化处理,将所有英文字母转换成小写字母,将所有十进制数转换成数字0,将所有十六进制数转换成0x12,将所有日期和时间转换成固定字符串"2-2-2",将过渡重写的关键字进行排查,只留下排查后的剩余字符;
步骤2.3分词处理,将包括空格在内的所有字符进行分词,并将每条SQL数据分词后的结果存入列表中,分词保留原始字符的意义,比如"--"可以起到注释的作用,如果拆成两个"-"字符,则失掉原始特征,导致学习效果不佳。
进一步地,所述步骤3)数据增强的具体包括如下步骤:
步骤3.1计算步骤2)预处理后所有无标签样本的TF-IDF值,存储成稀疏矩阵;
步骤3.2将TF-IDF稀疏矩阵按照TF-IDF值降序排列存储,并设定第500个TF-IDF值为阈值σ;
步骤3.3循环遍历每条输入样本(一条预处理过的SQL语句):
(1)如果某分词TF-IDF值大于阈值σ:以0.1的概率将该分词用前500个分词中的任意一个随机替换;
(2)如果某分词TF-IDF值小于阈值σ:以0.9的概率将该分词用前500个分词以后的分词中的任意一个随机替换;
(3)结束循环,输出一条增强后的无标签样本;
步骤3.4重复步骤3.1-步骤3.3,直至所有无标签样本均被增强过,数据增强完成。
进一步地,所述步骤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)=torch.cat(tT(x)×w(x),v(x))。
进一步地,所述步骤5)具体包括如下步骤:
使用半监督学习算法对步骤4)数据向量化后的正样本、负样本和无标签样本进行学习,对有标签数据部分计算其交叉熵损失,对无标签样本计算一致性损失,最后将两种损失按照1:1的比例进行加权求和,得到总损失,利用总损失回传进行网络参数的更新,以学习到较好的模型,同时使用Adam优化算法更新网络参数,使用LambdaLRscheduler对优化器的学习率进行调整,为了防止过拟合的产生,使用训练信号退火TSA技术,在无标签样本增加的过程中逐步去除有标签数据来抑制过拟合的产生,使用阈值自适应Flex技术来加速模型的训练,并提高模型预测的准确率和召回率。
进一步地,所述步骤6)具体包括如下步骤:
步骤6.1采集实时数据,使用步骤1)的方法对把靶场上的数据进行实时抓取,并使用步骤2)的方法进行预处理,然后送入步骤5)得到的半监督模型中进行检测;
步骤6.2对检测结果使用准确率、精确率、召回率和F1值指标进行模型评估。
实施例2:本实施例中采用如实施例1所示的方法进行了以下几组实验,以此证明本模型的优越性,具体实施步骤如下:
首先使用采集到的1000条有标签数据和100000条无标签样本作为训练集对FlexUDA模型进行训练和测试,训练集中有标签正负样本比例为1:1,100000条无标签样本由原始的50000条样本和使用本发明方法增强后得到的50000条样本组成,测试集由1000条正样本和1000条负样本组成。实验结果用准确率Acc、精确率P、召回率R和F1值以及TrainLoss和Test Loss进行描述与分析,如图4-图9所示。
由图4-图9可以看到,FlexUDA模型得到的准确率、精确率、召回率和F1值分别为99.42%,99.01%,99.23%和99.12%,四个指标均在99%以上。在达到80个epoch时,训练已达到一个较好的结果,从训练损失及测试损失也可以看到,模型并未出现过拟合现象。因此该结果可以很好地证明,FlexUDA模型仅需少量的有标签数据和大量的无标签样本便能获得出色的训练效果,而且泛化性能较好,不容易出现过拟合现象。
除此之外,本发明还设置了两组对比实验。第一组对比实验是和一种基于数据传输信道的正样本生成方法做对比,用以验证本发明无监督数据增强方法的效果。对比实验训练集为10000条原始正样本数据,10000条生成的正样本数据,和20000条负样本数据,总计40000条有标签数据,正负样本比例为1:1。本发明依然使用上个实验的数据,实验结果如表1和图10所示。由表1和图10可以看出,本发明方法得到的召回率和F1值相较与对比实验中的基于数据传输信道的正样本生成方法得到的结果,分别提升了0.51%和0.19%,准确率和精确率略有下降。在SQL注入检测中,本发明更注重召回率,大部分时候都希望召回率较高一些,宁愿牺牲一部分的误报率,也不希望注入的发生,因为注入成功可能会给数据库造成巨大的损失。而F1值可以综合衡量召回率和精确率两个指标,常被视为分类器好与坏的综合性能指标。除此之外,本发明的样本增强是针对无标签样本进行增强,相对而言有标签数据的使用量成数倍缩减,只有对比试验的四十分之一,但检测效果依然优于对比实验中的针对有标签数据的增强方法。综合评估后可以看出,本发明方法更胜一筹。
表1数据增强对比实验结果
第二个对比实验是与基于LSTM-RNN网络和基于CNN网络的两个有监督训练模型做对比,验证本发明所用半监督模型的泛化性能是否更为出色。两组有监督模型使用的训练集均为40000条有标签数据,其中包括20000条正样本和20000条负样本,正负样本比例为1:1。实验结果如表2和图11所示。由表2和图11可以看出,与有监督的LSTM-RNN和CNN模型相比,本发明的FlexUDA模型检测效果明显好很多。FlexUDA模型的四个指标均比另外两种模型高,其中的召回率和F1值,分别比LSTM-RNN和CNN高出2.80%、2.25%和1.06%、1.28%。其主要原因就在于有标签数据不够充足导致有监督模型训练过拟合,从而在测试集上表现不佳。从训练数据量来看,FlexUDA模型仅使用有监督模型四十分之一的有标签数据,工作量大大减小,而无标签样本的获取和增强较容易,并不会增加很多额外的工作量。因此本发明FlexUDA模型与有监督模型相比,拥有较大的优势,可以很好地解决有标签数据不足导致的过拟合问题。
表2与有监督模型对比实验结果
综合以上几组实验可以看出,本发明方法可以较好地解决深度学习模型检测SQL注入时因有标签数据不足而导致的过拟合问题,并提高模型分类检测的准确度,加速模型的训练速度。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (5)
1.一种基于FlexUDA模型的SQL注入攻击检测方法,其特征在于:具体步骤为:
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值进行评估;
所述步骤3)数据增强的具体包括如下步骤:
步骤3.1计算步骤2)预处理后所有无标签样本的TF-IDF值,存储成稀疏矩阵;
步骤3.2将TF-IDF稀疏矩阵按照TF-IDF值降序排列存储,并设定第500个TF-IDF值为阈值σ;
步骤3.3循环遍历每条输入样本,即一条预处理过的SQL语句:
(1)如果某分词TF-IDF值大于阈值σ:以0.1的概率将该分词用前500个分词中的任意一个随机替换;
(2)如果某分词TF-IDF值小于阈值σ:以0.9的概率将该分词用前500个分词以后的分词中的任意一个随机替换;
(3)结束循环,输出一条增强后的无标签样本;
步骤3.4重复步骤3.1-步骤3.3,直至所有无标签样本均被增强过,数据增强完成;
所述步骤5)具体包括如下步骤:
使用半监督学习算法对步骤4)数据向量化后的正样本、负样本和无标签样本进行学习,对有标签数据部分计算其交叉熵损失,对无标签样本计算一致性损失,最后将两种损失按照1:1的比例进行加权求和,得到总损失,利用总损失回传进行网络参数的更新,同时使用Adam优化算法更新网络参数,使用LambdaLRscheduler对优化器的学习率进行调整,使用训练信号退火TSA技术,在无标签样本增加的过程中逐步去除有标签数据来抑制过拟合的产生,使用阈值自适应Flex技术来加速模型的训练。
2.根据权利1要求所述的一种基于FlexUDA模型的SQL注入攻击检测方法,其特征在于:所述步骤1)实验数据采集,具体包括如下步骤:
步骤1.1在Windows10虚拟机中部署apache+php+mysql环境,搭建sqli-labs、bwapp靶场;
步骤1.2使用SQLyog对MySQL进行正常访问,同时使用Wireshark抓取正常SQL语句;
步骤1.3使用SQLmap和自定义的temper脚本对靶场进行攻击,同时使用wireshark抓取具有攻击行为的SQL注入语句;
步骤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注入攻击检测方法,其特征在于:所述步骤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)=torch.cat(tT(x)×w(x),v(x))。
5.根据权利1要求所述一种基于FlexUDA模型的SQL注入攻击检测方法,其特征在于:所述步骤6)具体包括如下步骤:
步骤6.1采集实时数据,使用步骤1)的方法对把靶场上的数据进行实时抓取,并使用步骤2)的方法进行预处理,然后送入步骤5)得到的半监督模型中进行检测;
步骤6.2对检测结果使用准确率、精确率、召回率和F1值指标进行模型评估。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210925221.4A CN115361176B (zh) | 2022-08-03 | 2022-08-03 | 一种基于FlexUDA模型的SQL注入攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210925221.4A CN115361176B (zh) | 2022-08-03 | 2022-08-03 | 一种基于FlexUDA模型的SQL注入攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115361176A CN115361176A (zh) | 2022-11-18 |
CN115361176B true CN115361176B (zh) | 2024-03-01 |
Family
ID=84033780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210925221.4A Active CN115361176B (zh) | 2022-08-03 | 2022-08-03 | 一种基于FlexUDA模型的SQL注入攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115361176B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116305104A (zh) * | 2023-05-18 | 2023-06-23 | 湖南工商大学 | 基于区块链的数据入侵取证方法、装置、设备及介质 |
CN116796326B (zh) * | 2023-08-21 | 2023-11-14 | 北京遥感设备研究所 | 一种sql注入检测方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528642A (zh) * | 2016-10-13 | 2017-03-22 | 广东广业开元科技有限公司 | 一种基于tf‑idf特征提取的短文本分类方法 |
CN109347872A (zh) * | 2018-11-29 | 2019-02-15 | 电子科技大学 | 一种基于模糊度和集成学习的网络入侵检测方法 |
CN109413028A (zh) * | 2018-08-29 | 2019-03-01 | 集美大学 | 基于卷积神经网络算法的sql注入检测方法 |
CN110321707A (zh) * | 2018-03-28 | 2019-10-11 | 蓝盾信息安全技术有限公司 | 一种基于大数据算法的sql注入检测方法 |
WO2020259260A1 (zh) * | 2019-06-28 | 2020-12-30 | 华为技术有限公司 | 一种结构化查询语言sql注入检测方法及装置 |
CN112906392A (zh) * | 2021-03-23 | 2021-06-04 | 北京天融信网络安全技术有限公司 | 一种文本增强方法、文本分类方法及相关装置 |
CN114168938A (zh) * | 2021-10-29 | 2022-03-11 | 四川大学 | 一种基于少量异常标签的半监督sql注入攻击检测方法 |
-
2022
- 2022-08-03 CN CN202210925221.4A patent/CN115361176B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528642A (zh) * | 2016-10-13 | 2017-03-22 | 广东广业开元科技有限公司 | 一种基于tf‑idf特征提取的短文本分类方法 |
CN110321707A (zh) * | 2018-03-28 | 2019-10-11 | 蓝盾信息安全技术有限公司 | 一种基于大数据算法的sql注入检测方法 |
CN109413028A (zh) * | 2018-08-29 | 2019-03-01 | 集美大学 | 基于卷积神经网络算法的sql注入检测方法 |
CN109347872A (zh) * | 2018-11-29 | 2019-02-15 | 电子科技大学 | 一种基于模糊度和集成学习的网络入侵检测方法 |
WO2020259260A1 (zh) * | 2019-06-28 | 2020-12-30 | 华为技术有限公司 | 一种结构化查询语言sql注入检测方法及装置 |
CN112906392A (zh) * | 2021-03-23 | 2021-06-04 | 北京天融信网络安全技术有限公司 | 一种文本增强方法、文本分类方法及相关装置 |
CN114168938A (zh) * | 2021-10-29 | 2022-03-11 | 四川大学 | 一种基于少量异常标签的半监督sql注入攻击检测方法 |
Non-Patent Citations (3)
Title |
---|
"A CNN-based Approach to the Detection of SQL Injection Attacks";Ao Luo、Wei Huang、Wenqing Fan;《2019 IEEE/ACIS 18th International Conference on Computer and Information Science (ICIS)》;20191227;全文 * |
"基于自训练的半监督SQL注入检测算法";解银朋;周庆博;何金栋;谢新志;周嵩;《陕西师范大学学报(自然科学版)》;20201211;第49卷(第01期);第37-43页 * |
基于机器学习的检测系统实现;吕志强;王凤伟;;信息系统工程;20200620(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115361176A (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115361176B (zh) | 一种基于FlexUDA模型的SQL注入攻击检测方法 | |
CN109413028B (zh) | 基于卷积神经网络算法的sql注入检测方法 | |
Han et al. | Deepweak: Reasoning common software weaknesses via knowledge graph embedding | |
CN113282759B (zh) | 一种基于威胁情报的网络安全知识图谱生成方法 | |
CN110351301B (zh) | 一种http请求双层递进式异常检测方法 | |
CN111881983B (zh) | 基于分类模型的数据处理方法、装置、电子设备及介质 | |
CN111259397B (zh) | 一种基于马尔科夫图和深度学习的恶意软件分类方法 | |
CN112307473A (zh) | 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型 | |
CN112883378B (zh) | 图嵌入与深度神经网络相融合的安卓恶意软件检测方法 | |
CN112464233B (zh) | 一种云平台上基于rnn的恶意软件检测方法 | |
CN113591093B (zh) | 基于自注意力机制的工业软件漏洞检测方法 | |
Lin et al. | A graph convolutional encoder and decoder model for rumor detection | |
CN109710930A (zh) | 一种基于深度神经网络的中文简历解析方法 | |
CN117195220A (zh) | 基于Tree-LSTM和BiLSTM的智能合约漏洞检测方法及系统 | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
CN107908757A (zh) | 网站分类方法及系统 | |
CN114662405A (zh) | 基于少样本度量和集成学习的岩爆预测方法 | |
CN109753798A (zh) | 一种基于随机森林与FastText的Webshell检测模型 | |
CN117272142A (zh) | 一种日志异常检测方法、系统及电子设备 | |
Lu et al. | A GAN-based method for generating SQL injection attack samples | |
Xie et al. | Malware family classification using LSTM with attention | |
CN113095079A (zh) | 基于bert的自适应分层输出的中文分词方法 | |
Liao et al. | The importance of token granularity matching of pre-trained word vectors for deep learning-based spam classification | |
Ge et al. | Design and Implementation of System of the Web Vulnerability Detection Based on Crawler and Natural Language Processing | |
CN112256838B (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 |