CN117879934A - 一种基于网络数据包上下文的sql注入攻击检测方法 - Google Patents

一种基于网络数据包上下文的sql注入攻击检测方法 Download PDF

Info

Publication number
CN117879934A
CN117879934A CN202410033224.6A CN202410033224A CN117879934A CN 117879934 A CN117879934 A CN 117879934A CN 202410033224 A CN202410033224 A CN 202410033224A CN 117879934 A CN117879934 A CN 117879934A
Authority
CN
China
Prior art keywords
data
model
sql injection
request
response
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
Application number
CN202410033224.6A
Other languages
English (en)
Inventor
李挥
陈雨红
彭明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Digital Internet Co ltd
Original Assignee
Jiangsu Digital Internet Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangsu Digital Internet Co ltd filed Critical Jiangsu Digital Internet Co ltd
Priority to CN202410033224.6A priority Critical patent/CN117879934A/zh
Publication of CN117879934A publication Critical patent/CN117879934A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于网络数据包上下文的SQL注入攻击检测方法,涉及计算机信息技术领域,本发明通过收集请求-响应网络数据包上下文的SQL注入攻击检测的数据集,并在此基础上训练了一个基于Transformer的SQL注入攻击检测模型,利用BERT基于的自适应Transformer模型,引入注意机制,通过对输入序列的每个部分进行加权平均,可以动态地选择与当前任务最相关的信息,在上下文感知的异常检测过程中,考虑请求和响应之间的上下文信息,利用上下文分析提高检测的灵敏度和准确性,具有根据网络数据包请求报文和响应报文关联SQL注入攻击的上下文,可以更好地捕捉上下文关联,提供更加准确的检测结果。

Description

一种基于网络数据包上下文的SQL注入攻击检测方法
技术领域
本发明涉及计算机信息处理技术领域,具体为一种基于网络数据包上下文的SQL注入攻击检测方法。
背景技术
在保护存储在数据库中的敏感信息时。最常见和持久的对数据库安全构成威胁的问题之一是SQL注入攻击。这些攻击利用与数据库交互的Web应用程序中的漏洞,使恶意行为者能够操纵SQL查询,从而未经授权地访问或操纵底层数据,近年来,许多研究采用了各种机器学习算法来检测SQL注入攻击,包括支持向量机、决策树、随机森林、神经网络等。这些算法可以从大量的训练数据中学习SQL注入攻击的模式,并用于对新的查询进行分类和判断。这些机器学习方法可以学习复杂的特征和关系,从而更好地捕捉SQL注入攻击的模式。相比之下,传统方法可能无法捕捉到隐藏在数据中的细微差异或非明显的攻击特征,目前的SQL注入攻击数据集中通常包含了一系列已知的SQL注入攻击网络数据包负载样本,这些网络数据包负载样本代表了各种不同类型的注入攻击向量。这些样本可以是手动构造的,也可以是从实际攻击中收集的,在现有的研究中,用于检测SQL注入攻击的数据集主要集中在有效负载语句或静态网络流量数据包上,RNN模型能够处理序列数据,并且理论上可以处理任意长度的序列。它能够捕获到一定程度的上下文信息;
现有技术中的,公开号为CN111737289A提供的一种SQL注入攻击的检测方法、装置,其中,所述方法包括:获取待检测的目标SQL语句;对所述目标SQL语句进行特征工程处理,得到所述目标SQL语句的特征数据;将所述特征数据输入预先训练完毕的SQL注入攻击检测模型中得到检测结果;若所述检测结果大于预设的概率阈值,则将所述目标SQL语句确定为SQL注入语句,利用训练完毕的SQL注入攻击检测模型确定目标SQL语句是否为SQL注入语句,可以解决现有的SQL注入攻击检测方案依赖于规则集或者固定的数据库的结构,需要人工参与,容易导致误报、漏报或失效的技术问题,提升了SQL注入攻击检测的效果。
公开号为CN113343235A提供的一种基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质,其方法为:构建应用层用户请求样本集,每个样本包括一条应用层用户请求及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载及其类别;对样本集进行数据预处理得到用户请求及各词元的类别真实标签;使用预处理后的样本集训练预先构建的基于Transformer的深度神经网络模型;使用训练得到的模型对待检测的应用层用户请求中的各词元,预测其恶意有效负载类别;最终合并连续且相同类别的词元,确定用户请求中的恶意有效负载信息,能够准确有效地对应用层用户请求中的恶意有效负载信息进行检测。
存在的不足之处有:攻击者会使用各种数据编码技术(如URL编码、十六进制编码或Base64编码)来屏蔽或更改注入语句中的特殊字符或关键字,此外,通过HTTP参数污染,攻击者可以为具有相同名称的参数分配多个值,导致应用程序以意想不到的方式运行,从而引入漏洞,大多数关于SQL注入攻击的数据集主要集中在攻击请求数据包的有效负载上,如使用不同的数据编码方法或HTTP参数污染,在响应数据包中表现出更明显的特征,当攻击者使用URL编码来隐藏注入语句时,响应包可能会显示解码错误或其他异常,这为识别和反击这些攻击提供了一个新的视角,如何利用请求-响应网络数据包上下文数据集训练的基于Transformer的SQL注入攻击检测模型,来识别融合数据编码技术SQL注入攻击是当下需要改进的方向;
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种基于网络数据包上下文的SQL注入攻击检测方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于网络数据包上下文的SQL注入攻击检测方法,具体步骤包括:
S1、采集公开数据集中SQL注入攻击语句对应的负载数据与起始行还有头部字段,并拼接为请求报文,搭建一个使用MySQL数据库的模拟网站,使用Python语言的requests库的方法向模拟网站发送构造好的请求报文,模拟网站接收到请求报文后在数据库中查询数据并返回响应报文;
S2、使用Wireshark在网络层捕获HTTP请求报文和响应报文数据后进行保存,并依次对捕获的数据进行数据拼接和数据标记,从捕获的SQL注入数据集中提取攻击语句、标签、HTTP请求报文和响应报文数据,用户接收Wireshark捕获网络流量中的HTTP请求报文和响应报文后,将正常数据和SQL注入攻击数据整理为新数据集,所述新数据集包括训练数据集和测试数据集,获取新数据集后依次进行数据清洗和数据编码;
S3、通过使用递增学习算法对新型SQL注入攻击模式进行实时模型更新,并基于模拟网站和递增学习算法构建在线学习模型;
S4、对每对网络数据包的HTTP请求报文和响应报文进行联合分析,提取特征,引入时间序列分析,捕捉请求和响应之间的时间关系;并分析HTTP请求报文和响应报文的内容上下文,提取SQL注入攻击的特征标志;
S5、利用BERT模型深度编码请求-响应对应的上下文本内容,以捕获SQL注入攻击的复杂特征;
S6、利用BERT模型捕获长距离的依赖关系,并自适应调整以适应新型攻击模式,并利用BERT模型基于的Transformer模型自注意力机制,来捕捉请求和响应之间的长距离依赖,结合BERT的编码向量,进行深层次的上下文分析;
S7、通过不断训练模型以适应新出现的SQL注入攻击模式,实现模型的动态更新和学习,以应对网络环境中的变化;
S8、使用BERT模型对训练数据集进行训练,以调整模型参数,同时,通过交叉验证和参数调整来优化模型性能,并使用训练好的模型在测试数据集上进行验证;
S9、将自适应Transformer模型的输出与传统以及其他异常检测方法结合,以提高准确率和鲁棒性,使用集成学习方法,结合多种模型的预测结果进行最终判断;
S10、在上下文感知的异常检测过程中,考虑请求和响应之间的上下文信息,利用上下文分析提高检测的灵敏度和准确性。
与现有技术相比,本发明的有益效果是:通过收集请求-响应网络数据包上下文的SQL注入攻击检测的数据集,并在此基础上训练了一个基于Transformer的SQL注入攻击检测模型,具体通过利用BERT模型深度编码请求-响应对应的上下文本内容,以捕获SQL注入攻击的复杂特征,并利用BERT模型基于的Transformer模型自注意力机制,通过对输入序列的每个部分进行加权平均,可以动态地选择与当前任务最相关的信息,在上下文感知的异常检测过程中,考虑请求和响应之间的上下文信息,利用上下文分析提高检测的灵敏度和准确性,具有根据网络数据包请求报文和响应报文关联SQL注入攻击的上下文,提供更加丰富的检测信息;以及可以更好地捕捉上下文关联,提供更加准确的检测结果。
附图说明
图1为本发明整体方法流程示意图;
图2为本发明基于网络数据包上下文的数据集构造过程的流程示意图;
图3为本发明基于Transformer的检测模型架构流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明进一步详细说明。
需要说明的是,除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”“下”“左”“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
实施例:
请参阅图1至3,本发明提供一种技术方案:
一种基于网络数据包上下文的SQL注入攻击检测方法,具体步骤包括:
S1、采集公开数据集中SQL注入攻击语句对应的负载数据与起始行还有头部字段,并拼接为请求报文,搭建一个使用MySQL数据库的模拟网站,使用Python语言的requests库的方法向模拟网站发送构造好的请求报文,模拟网站接收到请求报文后在数据库中查询数据并返回响应报文;
S2、使用Wireshark在网络层捕获HTTP请求报文和响应报文数据后进行保存,并依次对捕获的数据进行数据拼接和数据标记,从捕获的SQL注入数据集中提取攻击语句、标签、HTTP请求报文和响应报文数据,用户接收Wireshark捕获网络流量中的HTTP请求报文和响应报文后,将正常数据和SQL注入攻击数据整理为新数据集,所述新数据集包括训练数据集和测试数据集,获取新数据集后依次进行数据清洗和数据编码;
S3、通过使用递增学习算法对新型SQL注入攻击模式进行实时模型更新,并基于模拟网站和递增学习算法构建在线学习模型;
S4、对每对网络数据包的HTTP请求报文和响应报文进行联合分析,提取特征,引入时间序列分析,捕捉请求和响应之间的时间关系;并分析HTTP请求报文和响应报文的内容上下文,提取SQL注入攻击的特征标志;
S5、利用BERT模型深度编码请求-响应对应的上下文本内容,以捕获SQL注入攻击的复杂特征;
S6、利用BERT模型捕获长距离的依赖关系,并自适应调整以适应新型攻击模式,并利用BERT模型基于的Transformer模型自注意力机制,来捕捉请求和响应之间的长距离依赖,结合BERT的编码向量,进行深层次的上下文分析;
S7、通过不断训练模型以适应新出现的SQL注入攻击模式,实现模型的动态更新和学习,以应对网络环境中的变化;
S8、使用BERT模型对训练数据集进行训练,以调整模型参数,同时,通过交叉验证和参数调整来优化模型性能,并使用训练好的模型在测试数据集上进行验证;
S9、将自适应Transformer模型的输出与传统以及其他异常检测方法结合,以提高准确率和鲁棒性,使用集成学习方法,结合多种模型的预测结果进行最终判断;
S10、在上下文感知的异常检测过程中,考虑请求和响应之间的上下文信息,利用上下文分析提高检测的灵敏度和准确性。
实施例二:
在实施例一的基础上进一步说明,所述搭建一个使用MySQL数据库的模拟网站包括,
a、安装MySQL:根据操作系统下载并安装MySQL数据库服务器,配置数据库访问权限和凭据;
b、创建数据库和表:创建一个新的数据库和表,用于存储模拟数据;
c、安装Sqli-labs靶场:
下载Sqli-labs的源代码或安装包;
解压缩文件并进入相关的目录;
根据提供的文档,执行必要的配置步骤,包括修改配置文件以连接到MySQL数据库;
d、初始化Sqli-labs数据库:
运行脚本或命令来初始化Sqli-labs使用的数据库表;
数据库表包含模拟的漏洞场景、SQL注入攻击攻击载荷等信息;
e、启动Sqli-labs服务:
启动Sqli-labs的服务,使其可以接受请求;
包括运行一个Web服务器,选择Apache或Nginx,以便可以通过浏览器访问Sqli-labs的Web界面;
所述通过使用Wireshark在网络层捕获HTTP请求报文和响应报文数据后进行保存,并依次对捕获的数据进行数据拼接、数据标记包括,
确保捕获的请求报文数据包括Time、Protocol、Length、RequestURIquery;
确保捕获的响应报文数据包括Time、Protocol、Length、Data;
将HTTP请求报文和响应报文的相关字段进行拼接,拼接字段包括:Time、Protocol、Length、RequestURIquery、Data;
对拼接后的数据进行标注,以区分正常数据和SQL注入攻击数据;
所述用于接收到请求报文后在数据库中查询数据并返回响应报文包括,
所述模拟网站包括网站客户端和网站服务端,网站客户端使用Python的requests库构造并发送包含攻击负载的HTTP请求到模拟网站,将公开数据集中的负载数据与起始行还有头部字段拼接为请求报文,然后使用Python语言的requests库的方法发送构造好的报文,网站在接收到请求报文后在数据库中查询数据并返回响应报文;
所述获取数据集后依次进行数据清洗和数据编码包括,
删除无关或冗余数据,规范化数据格式,采用统一时间戳格式,去掉任何空值和消除重复记录,删除缺失值或空值是至关重要的,因为它可以防止模型学习不正确的关系或根据不完整的数据进行预测,在收发包的过程中也会有一些重传等原因多余或损坏的数据包,这些数据包也需要被丢弃;
对文本数据采用UTF-8进行编码,UTF-8兼容性好,支持更广泛的字符集,适用于多语言环境;
具体编码操作步骤为:
a、数据提取:使用网络流量捕获工具从网络流量中提取文本数据;
b、执行编码:使用Python编程语言中的编码函数,将提取的数据转换为UTF-8格式;示例代码:encoded_data=raw_data.encode('utf-8'),其中raw_data是提取的原始文本数据,encoded_data是编码后的数据;
c、验证编码:通过检查编码后数据无乱码,确保转换正确。
所述使用递增学习算法对新型攻击模式进行实时模型更新包括,
实时模型更新的计算公式为:
其中,θ代表模型参数α是学习率,J是损失函数,x和y是数据样本及其标签。
实施例三:
在实施例一的基础上进一步说明,所述通过对每对网络数据包的HTTP请求报文和响应报文进行联合分析,提取特征,引入时间序列分析,捕捉请求和响应之间的时间关系包括,
时间序列分析具体操作步骤:
a、数据配对:根据TCP连接和HTTP会话信息,将请求和响应报文配对;
b、提取时间特征:记录配对的请求和响应报文之间的时间差,示例公式:时间差异=响应时间戳-请求时间戳;
c、时间序列分析:使用时间序列分析方法中的自回归模型分析时间差数据,识别异常模式,自回归模型公式如下:
(Yt=φ1Yt-12Yt-2+…+φpYt-pt)
其中,Yt是时间序列中的当前值,φ是模型参数,p是滞后期数,òt是误差项;
所述并分析HTTP请求报文和响应报文的内容上下文,提取SQL注入攻击的特征标志包括,
具体操作步骤:
a、文本分析:应用自然语言处理技术中的正则表达式分析请求报文内容;
b、模式识别:识别典型SQL注入模式,如异常的SQL命令结构;
示例模式:SELECT*FROMusersWHEREusername='[input]'
其中,SELECT*:从表中选择所有的列;
FROMusers:从名为"users"的表中进行选择;
WHEREusername='[input]':指定一个条件,只选择那些满足条件的行,在这里,条件是"username"列的值等于给定的用户输入'[input]';
c、特征提取:提取关键词和结构模式作为特征。
实施例四:
在实施例三的基础上进一步说明,所述利用BERT模型深度编码请求-响应对应的文本内容,以捕获SQL注入攻击的复杂特征包括,
BERT模型深度编码具体操作步骤:
a、数据准备:格式化请求-响应对应数据为BERT模型可接受的格式;
b、应用BERT:使用预训练的BERT模型对数据进行深度编码;
c、特征提取:从BERT模型的输出中提取特征向量TZXl;
“特征向量TZXl”是BERT模型输出,代表输入序列的深层语义表示;
这里设置的参数包括:
padding=True:如果一批数据中的句子长度不一,就用0进行填充,使它们的长度相同。
truncation=True:如果句子的长度超过最大长度,就将其截断。
max_length=512:设置句子的最大长度,这是BERT模型的输入长度的上限。
实施例五:
在实施例四的基础上进一步说明,所述利用BERT基于的自适应Transformer模型,该模型能够捕获长距离的依赖关系,并自适应调整以适应新型攻击模式包括,
自适应Transformer模型具体操作步骤:
a、集成BERT和Transformer:将BERT编码向量作为自适应Transformer模型的输入;
b、模型训练:对自适应Transformer模型进行训练,以识别SQL注入模式,使用特定于领域的数据集进行训练,以提高准确性;
c、自适应调整:应用所述在线学习模型,使模型能够自动适应新型攻击模式;
使用公式如下:
SCJg=Transformer(TZXl)
其中SCJg是模型最终的预测结果;
所述利用自适应Transformer模型的自注意力机制,来捕捉请求和响应之间的长距离依赖,结合BERT的编码向量,进行深层次的上下文分析包括,
自注意力机制引入了Self-Attention的概念,允许模型在处理输入序列时在每个片段之间建立关联,这种全局关联有助于模型捕获和理解序列中的上下文关系,特别是在以远程依赖为特征的场景中,具体来说,Self-Attention通过计算输入序列中每个元素与其他元素之间的相似性来实现这一点,由此产生的注意矩阵反映了输入序列的内部结构和关系,为模型提供了更全面和深入的上下文视角;
自注意力配置步骤如下所示:
a、构建自注意力层采用公式如下所示:
其中,(Q,K,V)分别是查询Query、键Key、值Value矩阵,d、k是键的维度,用于缩放点积;
b、添加位置编码:位置编码用于给模型提供单词在句子中位置的信息;
其中,pos是位置,i是维度;
所述通过不断训练模型以适应新出现的SQL注入攻击模式,实现模型的动态更新和学习包括以下步骤,
a、数据预处理:分词,转换为词向量;
b、应用自注意力:在模型中使用所述建立的自注意力层处理输入数据,注意机制通过对输入序列的每个部分进行加权平均,可以动态地选择与当前任务最相关的信息;
c、训练:使用带标签的数据,数据包括SQL注入和正常请求,进行监督学习;
d、特征提取:识别和提取关于SQL注入攻击的关键特征。
实施例六:
在实施例五的基础上进一步说明,所述使用客户提供的数据集进行模型训练,同时,通过交叉验证和参数调整来优化模型性能包括以下步骤,
a、数据集选择:选择包含SQL查询和正常请求的数据集;
b、数据清洗:清理、标准化数据;
c、选择模型结构:确定模型架构,如层数、隐藏单元数;
d、应用交叉验证:划分数据集为训练集和验证集,进行多次训练和验证;
e、超参数优化:调整学习率、批大小等以优化性能。
详细步骤为:
1.1.数据集筛选选择包含SQL查询和正常请求的数据集;
1.2.数据清洗-清理无关数据,标准化文本格式,使用PyTorch的DataLoader类;
参数:batch_size=16:每个批次的样本数量,这个值影响内存使用和训练速度;
shuffle=True:对训练数据进行随机打乱,以增强模型的泛化能力;
2.数据分词:应用Bert-base-uncased分词器,输入文本X被分割成单词或子词w1,w2,...,wn,添加特殊标记[CLS]和[SEP];
特殊标记用于表示分类任务和句子边界,分词器负责将输入文本转换为BERT模型可以理解的分词,使用的“Bert-base-uncased”分词器专为处理小写文本而设计,并与“Bert-base-uncased”预训练模型保持一致,然后将分词后的序列转换为一个整数序列,每个整数对应于BERT内部词表中的一个索引。同时,还需要构造一个位置序列(positionsequence)和一个段落序列(segmentsequence),用于表示每个单词或子词在原始文本中的位置和所属的句子,将整数序列、位置序列和段落序列作为BERT模型的输入,经过一系列的Transformer编码器层,得到每个单词或子词的输出向量。其中,[CLS]标记对应的输出向量被视为整个文本序列的表示,可以用于分类任务,最后将[CLS]标记对应的输出向量输入到一个全连接层的分类器中,得到每个类别对应的概率,并根据最大值来判断文本属于哪个类别。
3.模型训练与结构定义:
其中模型训练过程的定义为,
a、设置训练模式,将模型设置为训练模式;
对于每个epoch进行批量处理,并设定模型训练的轮数值为:epochs=50,其能够影响模型的学习程度和过拟合风险。
梯度处理:optimizer.zero_grad():
optimizer是优化器对象,通常是在模型定义时创建的。它负责使用梯度信息来更新模型的参数:
zero_grad()方法是优化器对象的一个方法,用于将模型参数的梯度清零;
作用:该函数的作用是清除之前计算得到的梯度信息,以防止梯度累积;
背景:在PyTorch中,梯度是通过autograd模块自动计算的,在反向传播过程中,梯度会累积到各个参数的grad属性中,因此,在每次迭代开始时,需要将之前的梯度清零,以便计算新的梯度;
loss.backward():
loss是模型在训练过程中计算得到的损失值,损失值是一个表示模型预测与实际目标之间差异的指标:
backward()方法是PyTorch中Tensor对象的一个方法,用于计算相对于输入的梯度;
当调用loss.backward()时,PyTorch会根据损失值计算模型参数的梯度;
作用:该函数的作用是计算当前批次的损失函数对模型参数的梯度;
背景:在深度学习中,通过反向传播算法计算损失函数对模型参数的梯度。这些梯度将用于优化算法的更新步骤;
torch.nn.utils.clip_grad_norm_(model.parameters(),1.0):
torch.nn.utils是PyTorch中提供的工具模块,用于包含一系列有用的工具函数;
clip_grad_norm_()是一个函数,用于对模型的梯度进行裁剪;
model.parameters()是传递给裁剪函数的参数,它指的是模型的所有参数,在这里,它假设模型的参数存储在model.parameters()中;
1.0是指定的梯度范围,也就是裁剪梯度的阈值,这里设置为1.0,表示梯度值会被限制在[-1.0,1.0]的范围内。任何超过这个范围的梯度值都会被缩放到这个范围内;
作用:该函数的作用是对模型的梯度进行裁剪,防止梯度爆炸;
背景:在训练深度神经网络时,梯度爆炸是一种常见的问题,可能导致数值不稳定,通过对梯度进行裁剪,将梯度的范数(Norm)限制在一个阈值内,防止其超过该阈值。
optimizer.step():
作用:该函数的作用是使用优化器更新模型的参数;
背景:优化器根据损失函数的梯度信息来更新模型的权重和偏置,以使损失函数最小化;step函数实际上执行了参数的梯度下降步骤,即参数=参数-学习率*梯度。
数学模型与参数解释:
DataLoader:是PyTorch中用于封装数据加载逻辑的类,它提供了对数据的并行加载和预处理的支持,使得在训练神经网络时能够更加方便地使用数据,DataLoader的主要作用是将数据集封装成一个可迭代的对象,可以按照设定的批次大小(batch size)和顺序提供数据,其主要特性:
批次加载:将大规模数据集划分成小批次,方便模型的训练。
并行加载:在数据加载时可以使用多线程或多进程进行并行加载,提高数据加载的效率。
数据打乱:可以选择是否在每个epoch开始时打乱数据,以增加模型的泛化能力。
自定义数据处理:可以通过自定义collate_fn函数来指定如何处理每个批次的数据。
(batch_size):控制每个批次的样本数,决定内存占用和训练速度。
(shuffle):布尔值,决定是否每次迭代都打乱数据顺序。
训练过程:
(epochs):训练轮数,影响模型对数据的学习深度。
():损失函数(L)关于模型参数(θ)的梯度。
(clipgradnorm):梯度裁剪的阈值,用于控制梯度的最大大小,防止梯度爆炸
3.1.定义模型结构-使用BERT作为基础模型,设定隐藏层单元数H和层数L。
3.2.模型训练-输入经BERT处理的数据D到定制模型,训练模型,最小化损失函数L。
4.交叉验证和超参数优化:
4.1.交叉验证:划分数据集为训练集Dtrain和验证集Dval
4.2.超参数优化:调整学习率η和批大小B,使用验证集性能指导优化。
5.模型输出与分类:
5.1.输出处理:BERT模型的CLS标记输出C作为文本表示。
5.2.分类决策:使用逻辑回归或其他分类器进行分类。
数学模型解释
BERTTokenization
X:输入的文本序列。
wi:分词后的单词或子词。
模型训练
H:模型中的隐藏单元数。
L:Transformer层的数量。
L:损失函数,例如交叉熵损失,用于指导模型训练。
超参数优化
η:学习率,控制模型在每次迭代中的更新幅度。
B:批大小,指每次训练过程中用于梯度计算的数据量。
通过上述步骤,我们可以构建一个既利用了BERT的文本处理能力,又结合了深度学习技术的强大检测模型,从而更有效地识别和预防SQL注入攻击。
实施例七:
在实施例六的基础上进一步说明,所述将自适应Transformer模型的输出与传统的异常检测方法结合,以提高检测的准确性和鲁棒性包括以下结合公式,
最终判定=g(模型输出,异常检测指标)
其中(g)是决策函数,具体模型融合步骤为:
a、确定融合策略:确定如何结合Transformer输出和传统方法,使用简单的加权平均方法融合Transformer和SVM模型;
b、分析和比较结果:比较两种方法的输出,找出不一致和异常。
所述将自适应Transformer模型的输出与其他异常检测方法(如基于规则的检测)结合,使用集成学习方法,结合多种模型的预测结果进行最终判断包括,
集成学习配置步骤为:
a、选择多个模型:包括Transformer、SVM、决策树等,
b、配置集成方法:例如投票机制、堆叠(stacking),
c、融合预测结果:
整合不同模型输出:结合不同模型的预测结果,集成模型公式:(Y=f(T(X),S(X),D(X)))其中,(T,S,D)分别代表Transformer、SVM、决策树的输出,(f)是集成函数;
d、最终判断:综合分析结果:基于集成结果作出判断。
所述在上下文感知的异常检测过程中,考虑请求和响应之间的上下文信息,利用上下文分析提高检测的灵敏度和准确性包括以下步骤,
a、数据预处理:从HTTP请求和响应中提取关键特征,如请求参数、响应时间、状态码等。
构建时间序列数据以捕获请求和响应之间的时序关系。
b、上下文分析模型构建:选择循环神经网络(RNN)作为主要模型,因为它能有效处理时间序列数据。
训练模型识别正常的请求-响应模式和异常模式。
c、异常检测实施:实时监控网络流量,使用训练好的RNN模型分析请求和响应之间的上下文,并标记出与正常模式显著不同的模式作为异常。
实施例八:
在实施例七的基础上进一步说明,所述应用模型解释工具来理解模型的决策过程,并进行性能评估包括,
所述模型解释工具为LIME或SHAP,所述性能评估为准确率、召回率;
分析公式为:解释=解释工具(模型,输入);
其中“解释”是模型决策的可视化解释;SHAP值是一种理论方法,用于解释每个特征对模型预测的贡献,SHAP值可以解释为特征值对预测结果(相对于平均预测)的影响;
在实施上下文感知的异常检测后,通过使用SHAP工具,我们可以更好地理解模型在不同上下文条件下是如何做出决策的,这有助于优化模型并提高其准确性和可靠性;
结合BERT和自适应Transformer:此方案融合了最新的BERT和自适应Transformer模型来处理网络数据包,这种结合提供了更深层次的数据理解和更灵活的模型结构调整;
并得到以下1、2两种有益效果,
1、根据网络数据包请求报文和响应报文关联SQL注入攻击的上下文,提供更加丰富的检测信息。
2、本方案在提出的检测数据集的基础上训练了一个基于Transformer的检测模型,可以更好地捕捉上下文关联,提供更加准确的检测结果。
上述公式均是去量纲取其数值计算,公式是由采集大量数据进行软件模拟得到最近真实情况的一个公式,公式中的预设参数由本领域的技术人员根据实际情况进行设置。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够、电子硬件,或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方法来执行,取决于技术方案的特定应用和设计约束条件。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (7)

1.一种基于网络数据包上下文的SQL注入攻击检测方法,其特征在于,具体步骤包括:
S1、采集公开数据集中SQL注入攻击语句对应的负载数据与起始行还有头部字段,并拼接为请求报文,搭建一个使用MySQL数据库的模拟网站,使用Python语言的requests库的方法向模拟网站发送构造好的请求报文,模拟网站接收到请求报文后在数据库中查询数据并返回响应报文;
S2、使用Wireshark在网络层捕获HTTP请求报文和响应报文数据后进行保存,并依次对捕获的数据进行数据拼接和数据标记,从捕获的SQL注入数据集中提取攻击语句、标签、HTTP请求报文和响应报文数据,用户接收Wireshark捕获网络流量中的HTTP请求报文和响应报文后,将正常数据和SQL注入攻击数据整理为新数据集,所述新数据集包括训练数据集和测试数据集,获取新数据集后依次进行数据清洗和数据编码;
S3、通过使用递增学习算法对新型SQL注入攻击模式进行实时模型更新,并基于模拟网站和递增学习算法构建在线学习模型;
S4、对每对网络数据包的HTTP请求报文和响应报文进行联合分析,提取特征,引入时间序列分析,捕捉请求和响应之间的时间关系;并分析HTTP请求报文和响应报文的内容上下文,提取SQL注入攻击的特征标志;
S5、利用BERT模型深度编码请求-响应对应的上下文本内容,以捕获SQL注入攻击的复杂特征;
S6、利用BERT模型捕获长距离的依赖关系,并自适应调整以适应新型攻击模式,并利用BERT模型基于的Transformer模型自注意力机制,来捕捉请求和响应之间的长距离依赖,结合BERT的编码向量,进行深层次的上下文分析;
S7、通过不断训练模型以适应新出现的SQL注入攻击模式,实现模型的动态更新和学习,以应对网络环境中的变化;
S8、使用BERT模型对训练数据集进行训练,以调整模型参数,同时,通过交叉验证和参数调整来优化模型性能,并使用训练好的模型在测试数据集上进行验证;
S9、将自适应Transformer模型的输出与传统以及其他异常检测方法结合,以提高准确率和鲁棒性,使用集成学习方法,结合多种模型的预测结果进行最终判断;
S10、在上下文感知的异常检测过程中,考虑请求和响应之间的上下文信息,利用上下文分析提高检测的灵敏度和准确性。
2.根据权利要求1所述的一种基于网络数据包上下文的SQL注入攻击检测方法,其特征在于:所述搭建一个使用MySQL数据库的模拟网站包括,
a、安装MySQL:根据操作系统下载并安装MySQL数据库服务器,配置数据库访问权限和凭据;
b、创建数据库和表:创建一个新的数据库和表,用于存储模拟数据;
c、安装Sqli-labs靶场:
下载Sqli-labs的源代码或安装包;
解压缩文件并进入相关的目录;
根据提供的文档,执行必要的配置步骤,包括修改配置文件以连接到MySQL数据库;
d、初始化Sqli-labs数据库:
运行脚本或命令来初始化Sqli-labs使用的数据库表;
数据库表包含模拟的漏洞场景、SQL注入攻击攻击载荷等信息;
e、启动Sqli-labs服务:
启动Sqli-labs的服务,使其可以接受请求;
包括运行一个Web服务器,选择Apache或Nginx,以便可以通过浏览器访问Sql i-labs的Web界面;
使用Wireshark在网络层捕获HTTP请求报文和响应报文数据后进行保存,并依次对捕获的数据进行数据拼接、数据标记包括,
确保捕获的请求报文数据包括Time、Protocol、Length、RequestURIquery;
确保捕获的响应报文数据包括Time、Protocol、Length、Data;
将HTTP请求报文和响应报文的相关字段进行拼接,拼接字段包括:Time、Protocol、Length、RequestURIquery、Data;
对拼接后的数据进行标注,以区分正常数据和SQL注入攻击数据;
所述获取数据集后依次进行数据清洗和数据编码包括,
删除无关或冗余数据,规范化数据格式,采用统一时间戳格式,去掉任何空值和消除重复记录,并对文本数据采用UTF-8进行编码;
所述使用递增学习算法对新型攻击模式进行实时模型更新包括,
实时模型更新的计算公式为:
其中,θ代表模型参数α是学习率,J是损失函数,x和y是数据样本及其标签。
3.根据权利要求2所述的一种基于网络数据包上下文的SQL注入攻击检测方法,其特征在于:所述通过对每对网络数据包的HTTP请求报文和响应报文进行联合分析,提取特征,引入时间序列分析,捕捉请求和响应之间的时间关系包括,
时间序列分析具体操作步骤:
a、数据配对:根据TCP连接和HTTP会话信息,将请求和响应报文配对;
b、提取时间特征:记录配对的请求和响应报文之间的时间差,示例公式:时间差异=响应时间戳-请求时间戳;
c、时间序列分析:使用时间序列分析方法中的自回归模型分析时间差数据,识别异常模式,自回归模型公式如下:
(Yt=φ1Yt-12Yt-2+…+φpYt-pt)
其中,Yt是时间序列中的当前值,φ是模型参数,p是滞后期数,òt是误差项;
所述并分析HTTP请求报文和响应报文的内容上下文,提取SQL注入攻击的特征标志包括,
具体操作步骤:
a、文本分析:应用自然语言处理技术中的正则表达式分析请求报文内容;
b、模式识别:识别典型SQL注入模式,如异常的SQL命令结构;
c、特征提取:提取关键词和结构模式作为特征。
4.根据权利要求3所述的一种基于网络数据包上下文的SQL注入攻击检测方法,其特征在于:所述利用BERT模型深度编码请求-响应对应的文本内容,以捕获SQL注入攻击的复杂特征包括,
BERT模型深度编码具体操作步骤:
a、数据准备:格式化请求-响应对应数据为BERT模型可接受的格式;
b、应用BERT:使用预训练的BERT模型对数据进行深度编码;
c、特征提取:从BERT模型的输出中提取特征向量TZXl;
其中特征向量TZXl是BERT模型输出。
5.根据权利要求4所述的一种基于网络数据包上下文的SQL注入攻击检测方法,其特征在于:所述利用BERT模型基于的Transformer模型自注意力机制,来捕捉请求和响应之间的长距离依赖,并自适应调整以适应新型攻击模式包括,
所述Transformer模型具体操作步骤:
a、集成BERT和Transformer:将BERT编码向量作为自适应Transformer模型的输入;
b、模型训练:对自适应Transformer模型进行训练,以识别SQL注入模式,使用特定于领域的数据集进行训练,以提高准确性;
c、自适应调整:应用所述在线学习模型,使模型能够自动适应新型攻击模式;
使用公式如下:
SCJg=Transformer(TZXl)
其中SCJg是模型最终的预测结果;
所述利用自适应Transformer模型的自注意力机制,来捕捉请求和响应之间的长距离依赖,结合BERT的编码向量,进行深层次的上下文分析包括,自注意力配置步骤如下所示:
a、构建自注意力层采用公式如下所示:
其中,(Q,K,V)分别是查询Query、键Key、值Value矩阵,d、k是键的维度,用于缩放点积;
b、添加位置编码:位置编码用于给模型提供单词在句子中位置的信息;
其中,pos是位置,i是维度;
所述通过不断训练模型以适应新出现的SQL注入攻击模式,实现模型的动态更新和学习包括以下步骤,
a、数据预处理:分词,转换为词向量;
b、应用自注意力:在模型中使用所述建立的自注意力层处理输入数据,注意机制通过对输入序列的每个部分进行加权平均,可以动态地选择与当前任务最相关的信息;
c、训练:使用带标签的数据,数据包括SQL注入和正常请求,进行监督学习;
d、特征提取:识别和提取关于SQL注入攻击的关键特征。
6.根据权利要求5所述的一种基于网络数据包上下文的SQL注入攻击检测方法,其特征在于:所述使用客户提供的数据集进行模型训练,同时,通过交叉验证和参数调整来优化模型性能包括以下步骤,
a、数据集选择:选择包含SQL查询和正常请求的数据集;
b、数据清洗:清理、标准化数据;
c、选择模型结构:确定模型架构,如层数、隐藏单元数;
d、应用交叉验证:划分数据集为训练集和验证集,进行多次训练和验证;
e、超参数优化:调整学习率、批大小等以优化性能;
应用Bert-base-uncased分词器,输入文本X被分割成单词或子词w1,w2,…,wn,添加特殊标记[CLS]和[SEP];
特殊标记用于表示分类任务和句子边界,将分词后的序列转换为一个整数序列,每个整数对应于BERT内部词表中的一个索引,同时,构造一个位置序列和一个段落序列,用于表示每个单词或子词在原始文本中的位置和所属的句子,将整数序列、位置序列和段落序列作为BERT模型的输入,经过一系列的Transformer编码器层,得到每个单词或子词的输出向量。
7.根据权利要求6所述的一种基于网络数据包上下文的SQL注入攻击检测方法,其特征在于:所述将自适应Transformer模型的输出与传统的异常检测方法结合,以提高检测的准确性和鲁棒性包括以下结合公式,
最终判定=g(模型输出,异常检测指标)
其中g是决策函数,具体模型融合步骤为:
a、确定融合策略:确定如何结合Transformer输出和传统方法,使用简单的加权平均方法融合Transformer和SVM模型;
b、分析和比较结果:比较两种方法的输出,找出不一致和异常;
所述将自适应Transformer模型的输出与其他异常检测方法(如基于规则的检测)结合,使用集成学习方法,结合多种模型的预测结果进行最终判断包括,
集成学习配置步骤为:
a、选择多个模型:包括Transformer、SVM、决策树等,
b、配置集成方法:例如投票机制、堆叠(stacking),
c、融合预测结果:
整合不同模型输出:结合不同模型的预测结果,集成模型公式:(Y=f(T(X),S(X),D(X)),
其中,(T,S,D)分别代表Transformer、SVM、决策树的输出,(f)是集成函数;
d、最终判断:综合分析结果:基于集成结果作出判断;
所述在上下文感知的异常检测过程中,考虑请求和响应之间的上下文信息,利用上下文分析提高检测的灵敏度和准确性包括以下步骤,
a、数据预处理:从HTTP请求和响应中提取关键特征,如请求参数、响应时间、状态码等;构建时间序列数据以捕获请求和响应之间的时序关系;
b、上下文分析模型构建:选择循环神经网络(RNN)作为主要模型,因为它能有效处理时间序列数据;
训练模型识别正常的请求-响应模式和异常模式;
c、异常检测实施:实时监控网络流量,使用训练好的RNN模型分析请求和响应之间的上下文,并标记出与正常模式显著不同的模式作为异常。
CN202410033224.6A 2024-01-09 2024-01-09 一种基于网络数据包上下文的sql注入攻击检测方法 Pending CN117879934A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410033224.6A CN117879934A (zh) 2024-01-09 2024-01-09 一种基于网络数据包上下文的sql注入攻击检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410033224.6A CN117879934A (zh) 2024-01-09 2024-01-09 一种基于网络数据包上下文的sql注入攻击检测方法

Publications (1)

Publication Number Publication Date
CN117879934A true CN117879934A (zh) 2024-04-12

Family

ID=90586259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410033224.6A Pending CN117879934A (zh) 2024-01-09 2024-01-09 一种基于网络数据包上下文的sql注入攻击检测方法

Country Status (1)

Country Link
CN (1) CN117879934A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118555140A (zh) * 2024-07-29 2024-08-27 上海斗象信息科技有限公司 攻击检测模型的构建方法及攻击检测方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118555140A (zh) * 2024-07-29 2024-08-27 上海斗象信息科技有限公司 攻击检测模型的构建方法及攻击检测方法

Similar Documents

Publication Publication Date Title
US20200304550A1 (en) Generic Event Stream Processing for Machine Learning
CN113596007B (zh) 一种基于深度学习的漏洞攻击检测方法和设备
CN111600919B (zh) 智能网络应用防护系统模型的构建方法和装置
US11954202B2 (en) Deep learning based detection of malicious shell scripts
CN111866004B (zh) 安全评估方法、装置、计算机系统和介质
CN117879934A (zh) 一种基于网络数据包上下文的sql注入攻击检测方法
CN112738014A (zh) 一种基于卷积时序网络的工控流量异常检测方法及系统
CN110362663A (zh) 自适应多感知相似度检测和解析
CN110011990A (zh) 内网安全威胁智能分析方法
CN117220920A (zh) 基于人工智能的防火墙策略管理方法
CN114900346B (zh) 基于知识图谱的网络安全测试方法及系统
CN116432184A (zh) 基于语义分析和双向编码表征的恶意软件检测方法
CN113723070A (zh) 文本相似度模型训练方法、文本相似度检测方法及装置
CN113918936A (zh) Sql注入攻击检测的方法以及装置
WO2022053163A1 (en) Distributed trace anomaly detection with self-attention based deep learning
CN116361788A (zh) 一种基于机器学习的二进制软件漏洞预测方法
CN117272142A (zh) 一种日志异常检测方法、系统及电子设备
CN117454387A (zh) 基于多维度的特征提取的漏洞代码检测方法
CN114528908A (zh) 网络请求数据分类模型训练方法、分类方法及存储介质
CN112698977A (zh) 服务器故障定位方法方法、装置、设备及介质
CN111562943A (zh) 一种基于事件嵌入树及gat网络的代码克隆检测方法和装置
CN111565192A (zh) 基于可信度的内网安全威胁多模型协同防御方法
CN118245982B (zh) 一种基于人工智能对伪装应用程序进行识别的方法及装置
CN117792737B (zh) 一种网络入侵检测方法、装置、电子设备及存储介质
CN117056209B (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