基于网络攻击检测和启发式算法的路面结构优化设计系统
2024-02-08张玖玖时欣利曹进德
摘要:为满足当今时代沥青路面结构设计的实际需求,基于深度学习和启发式算法设计了一个保证数据安全,可以有效防范网络攻击且足够智能化的路面结构优化设计系统。首先,针对日益复杂的网络攻击问题,提出了BERT-BiLSTM-CNN深度学习模型,对SQL注入攻击问题进行检测。通过与现有的深度学习分类模型进行对比实验,结果表明,BERT-BiLSTM-CNN模型相对于其他模型具有更好的检测效果,准确率和F分别达到了96.69%和95.43%。然后,针对当前系统对工程设计人员的专业水平过于依赖的问题,提出了一个改进的遗传算法,分别对遗传算子、交叉算子和变异算子进行改进,与现有的启发式算法相比,该算法的平均运行时间和收敛到最优解的平均迭代次数都有明显优势。最后,开发了沥青路面结构设计系统,该系统可根据输入的环境、交通等参数自动对设计方案进行优化,智能生成工程意义上的路面结构优化设计方案。
关键词:路面结构;优化设计;SQL注入检测;深度学习;启发式算法
中图分类号: TP181" " " " " " " " " " " " " "文献标志码: A文章编号: 1673-2340(2024)04-0023-13
Pavement structure optimization design system
based on network attack detection and heuristic algorithm
ZHANG Jiujiu1, SHI Xinli1, 2*, CAO Jinde2, 3
(1. School of Cyber Science and Engineering, Southeast University, Nanjing 211189, China;
2. Key Laboratory of Transport Industry of Comprehensive Transportation Theory
(Nanjing Modern Multimodal Transportation Laboratory), Nanjing 211135, China;
3. School of Mathematics, Southeast University, Nanjing 211189, China)
Abstract: To address the practical requirements of asphalt pavement structural design in the current era, a pavement structure optimization design system is designed leveraging deep learning and heuristic algorithms. The system ensures data security, effectively mitigates network attacks, and demonstrates advanced intelligence. Initially, to tackle the escalating complexity of network attacks, a BERT-BiLSTM-CNN deep learning model is proposed for detecting SQL injection attacks. Comparative experiments conducted with existing deep learning classification models demonstrate that the BERT-BiLSTM-CNN model exhibits superior detection performance, achieving an accuracy rate of 96.69% and an F score of 95.43%. Subsequently, to mitigate the over-reliance of current systems on the professional expertise of engineering designers, an enhanced genetic algorithm is introduced. This algorithm refines the genetic operator, crossover operator, and mutation operator. When compared with existing heuristic algorithms, the refined algorithm demonstrates notable advantages in terms of average runtime and average number of iterations required to converge to the optimal solution. Ultimately, an asphalt pavement structural design system is developed. This system automatically optimizes design schemes based on input parameters such as environmental and traffic conditions, intelligently genera-ting optimized pavement structure designs that are meaningful from an engineering perspective.
Key words: pavement structure; optimization design; SQL injection detection; deep learning; heuristic algorithm
随着互联网的快速发展和普及,网络安全问题日益受到重视。为了满足新时代对路面结构设计系统安全性的需求,保护用户的数据不被侵犯,对一些网络攻击的防范和检测变得十分必要。根据开放式Web应用程序安全项目OWASP[1],SQL注入攻击是网站面临的十大安全风险之一。它可以通过构造恶意的SQL语句来绕过应用程序的安全控制,进而访问或篡改数据库中的数据。因此,如何应对SQL注入攻击问题不容忽视。近年来,深度学习在SQL注入攻击检测问题上应用广泛,Fang等[2]提出了一个基于长短期记忆(long short-term memory,LSTM)神经网络和SQL标记的词向量的工具。根据SQL查询的句法功能,每个查询被转换为标记序列,以建立一个SQL词向量模型。然后,对LSTM神经网络进行训练。实验结果表明,所提出的工具达到了98.60%的准确性。Wahaibi等[3]开发了SQIRL,这是一种基于深度强化学习的新型SQL注入漏洞检测方法,使用多个工作代理和灰盒反馈。每个工作代理都会对自动爬行组件发现的输入字段进行智能模糊处理。与现有的扫描程序相比,这种方法生成的有效载荷更多样,能发现更多漏洞。此外,因为它们是有针对性地生成的,所以SQIRL尝试的有效载荷更少。Zhang等[4]提出了一种基于深度学习的方法来检测网络流量中的SQL注入攻击。所提出的方法只选择了模型所需的目标特征,使用深度信念网络(deep belief network,DBN)模型进行训练。文献中还采用测试数据来测试不同模型的性能,根据实验结果,DBN的准确率达到了96%。解银朋等[5]提出了一种基于自训练的半监督SQL注入检测方法,即S4ID。实验结果表明,在有限的有标记样本情况下,S4ID能够利用未标记样本,取得比监督学习方法更好的SQL注入检测效果。赵伟等[6]提出了一种基于少量异常标签的SQL注入攻击检测方法。通过在真实SQL语句构建的数据集上进行一系列实验,研究者证明了该方法在数据标签不平衡时具有优异的检测效果,并且对于新型SQL注入攻击有一定的检测能力。程希等[7]提出了一种名为SQLIA-IC的SQL注入攻击检测方法。该方法基于机器学习技术,同时增加了标记器和内容匹配模块。为了提高检测效率,该方法简化了机器学习和标记器的检测结果,并根据样本携带的信息值动态匹配内容匹配模块。仿真实验结果表明,相对于传统的机器学习方法,SQLIA-IC方法的准确率平均提高了2.62%,精确率平均提高了4.35%,召回率平均提高了0.96%,而仅增加了约5 ms的时间成本,能够快速、有效地检测SQL注入攻击。
结合当前社会公路交通的快速发展和沥青路面在我国道路研究中的重要地位,针对当前的沥青路面结构设计系统无法满足时代要求的问题,本文首先提出一种机器学习融合模型BERT-BiLSTM-CNN,该模型可以检测出正常和恶意的SQL语句;然后提出一个改进的遗传算法(improved genetic algorithm,IGA),并将其应用于路面结构设计领域;最后设计并实现了路面结构安全设计优化系统。
1" "系统概述
沥青路面结构设计系统依据《公路沥青路面设计规范》[8](JTG D50—2017)的沥青路面结构设计流程,通过用户在前端页面所输入的环境、交通结构、材料等参数,计算交通量和当量轴载累计作用次数,根据弹性层状体系理论进行应力应变计算;然后对路面进行结构验算,如果验算结果不满足要求,则通过提出的启发式算法优化模型进行结构优化;最后给出最优方案并且生成计算书。同时为了有效防范网络攻击,系统增加了SQL注入检测模块,通过提出的基于机器学习的SQL注入检测框架进行检测,提高用户数据的安全性。系统的流程及主要模块如图1所示。
2" "基于BERT-BiLSTM-CNN模型的SQL注入检测框架
2.1" "框架设计
本框架包括数据采集、数据预处理、数据集分割、模型训练和模型评估5个模块,如图2所示。该框架首先通过数据采集和数据预处理模块构建用于模型训练和测试的高质量数据集;然后通过模型训练模块获取性能最优的模型;最后使用该模型对测试样本进行检测。
2.2" "数据采集
数据采集模块是SQL注入攻击检测框架的基础,它通过不同的方式和途径采集正常、异常样本,构建用于模型训练的原始数据集。本文采用Kaggle公布的公开数据集[9]。共有30 919条SQL语句,其中正常的SQL语句有19 537条,标签为0,恶意的SQL注入语句有11 382条,标签为1。
2.3" "数据预处理
获取的初始数据集样本为文本数据,属于非结构化数据,不能直接用于后续的分类模型训练,因此,需要进行特征建模将非结构化数据转换为结构化数据。TF-IDF、Word2Vec[10]和BERT[11]预训练模型是目前常用的3种文本数据向量化方法。本文采用的是BERT预训练模型。
2.4" "机器学习模型
2.4.1" "双向长短期记忆层
在这一层中,双向长短期记忆(bidirectional long short-term memory,BiLSTM)将用于处理由BERT模型得到的向量,进行正向和反向学习。BiLSTM模型用LSTM层取代了传统的隐藏层,可以从前一刻获得单元状态和隐藏层状态两种信息,并采用控制门机制。LSTM由存储单元i、输入门c、输出门o和遗忘门f组成,其计算过程可以概括为:在单元状态下跨过遗忘门f和记忆门i,过滤并传输有用信息用于后续计算,丢弃无用信息,在每个时间步长输出隐层状态h。LSTM单元和双向LSTM结构如图3所示。
LSTM的数学模型描述为
i = σ(w[h,x] + b),(1)
f = σ(w[h,x] + b),(2)
o = σ(w[h,x] + b),(3)
其中,i、 f、o、h、b和w分别表示输入门、遗忘门、输出门、前一个LSTM块的输出、各门的偏置和各门神经元的权重。此外,输出可表示为
= tanh(w[h,x] + b),(4)
c = f × c + i × ,(5)
h = o × tanh(c),(6)
其中c和是时间t上的细胞状态和时间t上的细胞状态候选。
最后可以用前向和后向来计算BiLSTM的输出,隐藏层可表示为
b = [·]。(7)
2.4.2" "TextCNN层
文本卷积神经网络(text convolutional neural net-work,TextCNN)是由Kim[12]提出的一种非常实用和有效的深度学习算法,用于短文分类任务。由于其良好的性能,TextCNN已经成为文本分类的基线模型[13-15]。在这里,首先需要对TextCNN的输入做一个说明。最初,一个给定的语料库中的所有单词都需要被转化为低维密集向量。特别是,首先需要创建一个由语料库中出现的词组成的词汇表。这些词的词嵌入可以用随机值初始化,也可以用Word2Vec或GloVe[16]模型学习的预训练向量。一般来说,词汇表中的每个词都可以表示为一个向量e∈R,其中l是嵌入的大小。如果这些词向量在训练过程中是固定的,它就被称为CNN-static;否则,相应的模型被称为CNN-non-static,因为在训练过程中,词嵌入是通过类似反向传播的算法来更新的。对于一个长度为k的句子s = (s,…,s)(必要时进行填充或截断),s的词嵌入可以堆叠成一个矩阵E = (e,…,e)∈R,其中e是单词s的嵌入。这样一来,E就像一个图像,然后被输入到CNN进行分类。
以矩阵E作为CNN的输入,执行卷积操作。在卷积层中,许多具有不同窗口大小的过滤器(这里只有高度不同)在E的整行上滑动,即过滤器的宽度通常与E的宽度相同。每个过滤器都对E进行卷积,并生成不同的特征图。对于定位在同一特征图中的元素,应用Max-over-time pooling来提取最重要的特征。值得注意的是,在特征提取步骤中通常会加入一个非线性激活。最后,这些来自不同特征图的特征被连接起来作为倒数第2层,并传递给全连接的Softmax层来预测类标签的概率分布。一般来说,可以对倒数第2层和权重向量施加一些正则化技术,如Dropout[17]和Batch normalization[18],以防止模型过度拟合。模型结构示例如图4所示。
2.4.3" "BERT-BiLSTM-CNN模型
构建机器学习模型是SQL注入检测框架的关键。本文提出了一个机器学习融合模型BERT-BiLSTM-CNN,具体模型结构如图5所示。
在进行SQL语句分析时,首先将自然语言数字化,以方便后续处理。由于不同的映射方法会对结果产生巨大的影响,因此,如何选择词嵌入方法并将自然语言映射成更好的词向量是至关重要的一步。BERT采用双向预训练,解决了生成式预训练(generative pre-training,GPT)模型在预测时只能依赖之前的文本信息,而无法看到后面的文本信息的局限性。因此,本文在词嵌入(Word embedding)层选择了BERT,将文本转化为词向量。
因为BiLSTM可以同时从正向和反向2个方向捕获文本信息;TextCNN使用多个不同大小的卷积核来提取句子中的关键信息(类似于具有多种窗口大小的n-grams),可以更好地捕获局部相关性,所以,本文结合这2种模型进行研究。首先,将得到的词向量输入BiLSTM层进行双向学习;然后,将得到的结果输入卷积层,进行特征提取;之后,在它们保持主要特征的情况下通过池化层,大大减少了参数数量和过拟合;最后,将结果拼接并放入全连接层输出,得到检测结果。具体模块可分为以下3个部分:
1)将收集到的数据进行清洗,转换为特定的格式,然后输入到BERT词嵌入层。在这一层中,每条数据被处理成句子维度为100、词向量维度为768的数据,之后将这些数据送入BiLSTM层。
2)数据被输入到BiLSTM层以提取文本的上下文特征。该层使用整流线性单元(rectified linear unit,ReLU)函数激活。前后方向的LSTM输出向量维度都是128,由于是双向LSTM拼接,所以这一层的输出向量维度是256。
3)提取上下文特征后,输入到TextCNN层进一步提取文本的重要特征。CNN部分由3个滤波器区域大小组成:2、3和4,共有128个滤波器。CNN部分首先对句子矩阵进行卷积生成特征图(Feature maps),然后最大池化层(1-max pooling layer)记录每个特征图中的最大数,从所有128个特征图中生成一个单一的可变特征向量,将128个特征连接起来形成一个倒数第2层的特征向量。最后一个Softmax层接收此特征向量作为输入并使用它来确定不同语句的分布概率。为了防止过度拟合,还增加了Dropout操作。
3" "验证实验
3.1" "实验平台
本节搭建了SQL注入攻击检测模型的实验环境,具体配置如表1所示。
3.2" "评价指标
本文采用准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F分数指标来评估所提出的方法,计算公式为
Accuracy = (TP + TN)/(TP + TN + FP + FN),(8)
Precision = TP/(TP + FP),(9)
Recall = TP/(TP + FN),(10)
F = 2 × Precision × Recall /(Precision + Recall),
(11)
其中,TP、FP、TN和FN分别表示真阳性、假阳性、真阴性和假阴性。
3.3" "实验结果与分析
本次实验采用2.2节所描述的数据集,其中训练数据集和测试数据集按8∶2的比例划分,训练数据共24 735条,测试数据共6 184条。本文模型的超参数设置如下:在BiLSTM层,学习率设置为0.001;由于语句数量较多,BatchSize设置为300;使用Adam作为优化函数加速收敛;损失函数采用交叉熵。在TextCNN层,由于语料库较短,使用较小的卷积核,找到最好的单个卷积核后,尝试在这个值周围寻找其他合适的值来组合结果,选择卷积核的组合为(2,3,4),总共有128个卷积核;为了降低过度拟合的风险,Dropout设置为0.5;激活函数使用ReLU函数;1-max pooling策略表现更好;L2正则化设置为3。
研究共进行两组对比实验:第1组实验统一采用预训练模型BERT作为词向量模型,为了突出对比,在后续的实验结果中将BERT省略不写。第2 组实验对目前常用的3种词向量模型TF-IDF、Word2Vec和BERT进行性能对比,分别组成TF-IDF-BiLSTM-CNN、Word2Vec-BiLSTM-CNN和BERT-BiLSTM-CNN 3种模型。
3.3.1" "SQL注入检测对比
近年来,许多学者使用深度学习算法来解决SQL注入攻击检测问题。Falor等[19]提出了使用卷积神经网络检测SQL注入攻击的深度学习方法,以准确度、精确度、召回率和AUC作为评价指标,对比了朴素贝叶斯、决策树、支持向量机和K最近邻等机器学习算法,实验结果表明,CNN在这几种指标上优于其他算法,而且准确率高达94.84%。Fang等[2]使用Word Vector和LSTM检测SQL注入行为,开发了一个名为WOVSQLI的工具,它实现了所提出的技术,并使用多个来源的数据集对其进行了评估。Farea等[20]开发了一种使用深度学习检测SQL注入和XSS攻击的新方法,模型使用BiLSTM自动特征提取、训练和测试有效负载数据集,实验结果表明BiLSTM表现出高性能,准确率达到99.26%。Wen等[21]提出了一种基于BiLSTM-Attention的SQL注入检测技术,实验结果表明,在实际数据集上,该模型的准确率为99.3%,召回率为98.2%。这些最新提出的算法在SQL注入攻击检测方面都有着不俗的能力,本文采用它们作为对比模型,实验结果如表2所示。
从表2可以看出,目前的深度学习算法对SQL注入检测性能优良,准确率几乎都能达到90%。其中表现最差的是LSTM模型,4个指标都未能达到90%。CNN和BiLSTM各具优势,CNN的准确率和召回率均低于BiLSTM,但精确率和F分数却高于BiLSTM,不过两者数值相差不大。加入注意力机制的BiLSTM性能有明显提升,F分数增长接近4个百分点,甚至在精确率上超过了本文提出的模型。综合4项评价指标,本文模型对比现有工作仍然具有优势。
3.3.2" "词向量模型对比
第1组实验统一使用预训练模型BERT来进行词向量化,实验结果证明了BiLSTM-CNN模型相比于其他模型的优越性,但无法证明使用BERT的优势。因此,第2组实验对目前常用的3种词向量模型TF-IDF、Word2Vec和BERT进行对比,结果如表3所示。
从表3可以看出,BERT词向量模型对比TF-IDF和Word2Vec模型有着绝对的优势,4个评价指标都有着不同程度的提升,充分证明了本文选择BERT模型作为词向量模型的正确性。
以上2组实验分别证明了BiLSTM-CNN模型和BERT模型各自的优势。本文提出的模型有着更佳的检测性能,证明了本文模型的优越性。
4" "改进的遗传算法
本节提出了一种改进的遗传算法(improved genetic algorithm,IGA),它由排名分组选择(ranking group selection,RGS)、两方向交叉(two-direction crossover,TDX)和组合变异(combinational mutation,CM)3种改进的遗传算子组成。IGA算法见表4,具体流程如图6所示。
4.1" "排序分组选择算子
遗传算法中,选择算子负责决定哪些个体可以被选中作为这些算子的输入,从而对整个遗传算法的执行效果产生重要影响。常见的遗传选择是轮盘赌和锦标赛选择,它们因适应机制而受欢迎。它们的运行机制虽然简单,但过程复杂,需要反复比较适应度,影响了算法的性能。本文提出的IGA使用RGS算子[22],详细过程见下文。
作出如下假设:寻求目标函数的最小值,种群规模n为偶数,种群中的个体根据其目标函数值f(x)升序排列。如果求目标函数的最大值,则对目标函数f(x)取反,仍然求最小值。排序前的种群为x(k) = (x(k),x(k),…,x(k)),排序后变成x(k) = (x′(k),x′(k),…,x′(k)),满足f(x′(k))≥f(x′(k))≥……≥f(x′(k))。
种群中的染色体被分为2组:第1组包括前n/2条染色体;第2组包括后n/2条染色体。第1组中的第1个个体与第2组中的第1个个体匹配,第1组中的第2个个体与第2组中的第2个个体匹配,以此类推,这样就可以得到n/2对个体。
与轮盘赌选择法和锦标赛选择法相比,RGS方法可以扩大每一对亲代个体的距离,放大匹配下亲代个体之间的差异;此外,RGS是一种基于目标函数值排序的直接操作,无需计算个体的适配值。在选择用于交叉的染色体时,计算简单而快速。
4.2" "两方向交叉算子
交叉的机制通过重组父母的基因来产生优质个体。作为遗传算法的核心运算,它对算法的搜索能力有着直接而重要的影响。为了更好地与RGS组合,本文重点关注基于方向的交叉[23]这一类型。两方向交叉通常使用从较差父代到较好父代的信息。然而,由于神经网络优化问题往往是非线性的,这个方向通常不是最优的搜索方向。本文采用TDX算子[24],两方向交叉寻找与该方向成45°的方向作为新的搜索方向,沿2个搜索方向分别在2个亲本中搜索1个个体,保留2个最优个体。这种额外的搜索方向使两方向交叉具有更好的搜索能力。TDX算法如表5所示。
4.3" "组合突变算子
在现有的文献中,针对不同的优化问题,变异算子的局部搜索能力[25]和全局搜索能力[26]各有千秋。单一的变异算子很难同时具备强局部搜索能力和强全局搜索能力。为了解决这个问题,本文使用了双变异算子的组合变异方法。其中,第1种变异算子的局部搜索能力较强;第2种变异算子则具有强大的全局搜索能力。具体而言,组合变异的方法如下:将迭代次数除以2,当余数为1时,使用第1个变异算子;当余数为0时,使用第2个变异算子。
为了表达方便,设k为迭代次数,在第k次迭代中, x(k)是变异前的第i个个体, 是变异后的第i个个体, x(k)是最优个体。组合突变的情况如下:
第1个突变算子服从于Lévy飞行,被称为Lévy突变(Lévy mutation,LM)。它具有很强的局部扰动能力,在大多数情况下进行局部搜索,偶尔也进行全局搜索,但有陷入局部最优的风险。LM的计算表达式为
= x(k) + α·L(β),(12)
式中:α是比例因子,一般取值为0.01;L(β)是服从Lévy飞行的步长因子,可表示为
L~(λΓ(β)sin(πλ/2)/π) × (1/s),(13)
其中:β = 1.5,Γ(β)是伽马函数。由于Lévy分布的复杂性,一般采用Mantegna算法来模拟Lévy飞行。相关参数的计算公式为
s = u/v;u ~ N(0,σ),v ~ N(0,1),(14)
σ = Γ(1 + β)/βΓ((1 + β)/2) ×sin(βπ/2)/2。
(15)
第2个突变算子是服从标准柯西分布(Cauchy distribution)的算子,被称为柯西突变(Cauchy mutation,CaM)。与LM相比,CaM具有更大的全局搜索能力,可表示为
= x(k) + x(k) × c。(16)
由于标准Cauchy分布的累积分布函数为
F(c;0,1) = arctan(c)/π + 1/2,(17)
随机变量c可表示为
c = tan(π(F - 1/2)),(18)
因此,CaM的更新方法为
= x(k) + x(k) × tan(π(F - 1/2))。(19)
4.4" "算法测试与分析
为了验证提出算法的可行性,将其与鲸鱼优化算法[27](whale optimization algorithm,WOA)和山瞪羚优化器[28](mountain gazelle optimizer,MGO)算法进行比较。
4.4.1" "迭代终止条件
实验迭代的终止条件定义为
f - f ≤ε,i = 1,2,…,m,(20)
其中: f 是第i个测试函数在理论上的全局最优值;f是由算法得到的第i个测试函数的最优值;ε是第i个测试函数的精度;m是测试函数的总个数。
4.4.2" "测试函数
为了验证改进算法的有效性和可行性,选择5个经常使用的具有一定复杂性的测试函数。具体如下:
1)f
f(x) = 100(x - x) + (x - 1),
-10 lt; x,x lt; 10,(21)
最优解位于x = (1,1),且f(x) = 0。
2)f
f(x) = sin(2πx)sin(2πx)/(x(x + x)),
-10 lt; x,x lt; 10,(22)
s.t.x - x≥1x - (x - 4)≥1,
最优解位于x = (1.227 972 3,4.245 373 3),且
f(x) = -0.095 825。
3)f
f(x) = (4 - 2.1x + x/3)x + xx + (-4 + 4x)x,
-10 lt; x,x lt; 10,(23)
最优解位于x = (-0.089 8,0.712 6)和(0.089 8,-0.712 6),且f(x) = -1.031 628。
4)f
f(x) = (x + x - 11) + (x + x - 7),
0 lt; x,x lt; 6,(24)
s.t.(x - 0.05) + (x - 2.5) - 4.84≤04.84 - x - (x - 2.5)≤0,
最优解位于x = (2.246 826,2.381 865),且f(x) = 13.590 84。
5)f
f(x) = x - 10cos(2πx) + x - 10cos(2πx) + 20,
0 lt; x,x lt; π,(25)
最优解位于x = (0,0),且f(x) = 0。
4.4.3" "参数设置
为了获得公平的性能比较,参数设置如下:各个测试函数的计算精度ε均设置为10-4;群体规模n为100;惩罚函数中的惩罚系数m和m均为108;在改进的遗传算法RGS-TDX-CM-GA中,交叉概率p = 1,变异概率p = 1/d,d为决策变量的维数。
4.4.4" "测试结果
为了获得公平的性能比较,以5个测试函数为例,每个测试函数在同一台计算机上运行500次。以平均运行时间t和收敛到最优解的平均迭代次数iter作为评价指标,表达式为
t = (∑ t(i))/k,(26)
iter = (∑ iter(i))/k,(27)
其中k为每个实验的运行次数。
WOA、MGO、RGS-TDX-CM-GA(IGA)的测试结果如表6所示。
从表6中不难看出,无论是平均运行时间还是收敛到最优解的平均迭代次数,IGA都要优于WOA和MGO,实验结果充分证明了本文提出的算法IGA的可行性和优越性。
4.5" "优化算法在路面结构设计中的应用
本节应用改进的遗传算法进行典型路面结构优化实际案例的计算,并针对得出的结果进行分析。
4.5.1" "路面基本信息
该道路位于西南地区,属于二级公路,设计时速为40 km/h,12 m双车道公路,设计使用年限为12年,根据交通量OD调查分析,断面大型客车和货车交通量为1 849辆/d,交通量年增长率为8.2%,方向系数取55.0%,车道系数取70.0%。经计算,本公路设计年限内设计车道累计大型客车和货车交通量为4 989 710辆,交通等级属于中等交通。路面结构及各层材料参数如表7所示。
4.5.2" "案例优化
该案例可以抽象为式(28)所示的约束优化问题。
min Z = 19.512 22h + 17.184 00h + 12.855 84h +
7.153 00h + 6.440 00h,
s.t.4≤h≤104≤h≤104≤h≤1015≤h≤4015≤h≤40R≤20N≤N。(28)
本节同样采用上文中的3种算法,分别是鲸鱼优化算法WOA、山瞪羚优化器MGO和本文提出的改进的遗传算法RGS-TDX-CM-GA(IGA)进行求解。由于该实例函数无等式约束,故设置惩罚系数m为0,m增大到1010,其余实验超参数与4.4.3节保持一致。实验结果如表8所示。
3种算法都能在最大迭代次数内生成满足验算指标的方案,充分证明了采用启发式算法进行沥青路面结构优化的可行性,同时从实验结果可以看出,改进的遗传算法每平方米建设成本比鲸鱼优化算法节约22.82元,比山瞪羚优化器节约11.87元,体现了本文提出的改进遗传算法IGA在解决沥青路面优化问题上的优越性。
5" "系统实现
本节给出该系统中每个模块具体功能的实现。由系统流程图可知,系统可分为输入、SQL注入检测、综合评价、智能优化、方案展示5个大模块。在实现过程中,可以继续细分为11个小模块,分别为注册登录模块、项目管理模块、项目基本信息模块、交通参数模块、轴重及当量轴载换算系数模块、环境参数模块、结构与材料参数模块、应力应变计算模块、分析与计算模块、结构优化模块和SQL注入检测模块。本文仅对核心模块(项目管理模块、结构优化模块和SQL注入检测模块)进行介绍,对注册登录等通用模块不作说明。本系统建立了asphalt数据库,建立了9张数据表,如表9所示。
5.1" "项目管理模块
该模块展示了用户创建的所有项目,包括每个项目的项目名称、项目文件名、路面设计类型、新建时间,以及最近修改时间。
用户可以在该模块新建项目,同时可对项目进行修改和删除。图7是项目管理页面,也是用户登录成功之后进入的主页面,页面展示了该用户创建的所有项目。界面主要由3部分构成:顶部容器显示了用户的头像和用户名;左侧是导航菜单;右侧是页面的主体区域,点击导航菜单右侧显示相应子页面。后续页面同理,因此后续仅对右侧主体区域进行说明。
进入页面,Vue对象初始化完成后自动执行钩子函数mounted,前端页面通过axios发送异步请求,经过中间层SQL注入检测后发送给服务器后端,后端经过表现层、业务层、数据层执行SQL查询语句,然后再通过数据层、业务层、表现层将查询到的数据响应给前端页面,进行回显。若点击新建按钮则会跳转至项目基本信息页面,进行相应数据输入,然后对数据表进行新增操作;编辑和删除按钮分别对数据表进行修改和删除操作,流程类似。项目管理模块的执行流程如图8所示。为了更直观显示前后端之间的逻辑联系,图中隐去了中间层的SQL注入检测过程。后续模块的执行流程与项目管理模块类似,不展开说明。
5.2" "路面结构优化模块
该模块没有前端页面,仅在后台运行,用户点击分析和计算模块的生成计算书按钮,如果验算结果没有达到设计要求,系统就会自动在后台执行该模块。该模块根据用户在其他模块的输入,使用第4节中改进的遗传优化算法,就可以对路面结构进行优化设计。
5.3" "SQL注入检测模块
该模块是为了防范网络攻击中最常见的SQL注入攻击,以保障用户数据的安全性。防止SQL注入的过程在输入方面需要更多检测,需检查SQL查询的语法,此检查可以在客户端或服务器端完成,但必须在一侧进行更改。然而,所需的修改会导致额外的成本和解决方案的复杂性,因此,本系统在客户端和数据库服务器之间添加一个代理服务器作为中间层,它可以在不更改客户端或服务器端的情况下执行检查过程。本文所提出的解决方案按以下场景工作:客户端连接到代理服务器,代理服务器首先验证专用用户,并通过使用用户名和密码的哈希值来检查其是否通过验证,如果成功,代理服务器开始过滤查询的内容。代理服务器对输入的查询进行过滤,并检查是否有SQL注入。此外,输入检查过程使用了正则表达式,这是一个指定搜索模式的字符序列。图9给出了简单流程。详细的工作流程如下:
1)客户端向代理服务器发出请求;
2)如果客户端是一个新的用户,需要注册它的证书(用户名,密码),然后代理应该有一个证书的哈希值的副本;
3)代理检查专用用户的哈希值,看它是否被认证,如果它不存在,连接将被中止,否则过程继续;
4)认证过程成功后,代理服务器将开始输入过滤过程,它使用正则表达式来检查输入;
5)使用第2节提出的机器学习模型对输入语句进行SQL注入攻击检测,如果模型输出结果为存在SQL注入,该请求将被中止,否则该请求将被转发到存储有数据库的网络服务器;
6)网络服务器将把查询结果发送到代理服务器,再由代理服务器转发给客户。
为了证明该系统集成SQL注入攻击检测模块后的安全性,本文采用Web开源渗透测试工具SQLMap进行SQL注入攻击测试,检测结果见表10。
从结果可以看出,集成了本文基于机器学习的SQL注入检测框架后,系统数据的安全性得到提高,对防范SQL注入攻击十分有效。
6" "结论
本文从沥青路面结构设计出发,基于机器学习技术、启发式优化算法和软件设计,开发了集成SQL注入攻击检测和路面结构优化的沥青路面结构设计系统。该系统可以帮助工程技术人员更加高效地进行路面结构设计,降低了对路面结构专业知识的依赖性,可以根据用户需求自动生成最优方案,同时系统提供了防范网络攻击的功能,保证了用户数据的安全性。
参考文献:
[ 1 ] OWASP Foundation. OWASP top ten[EB/OL]. (2023-06-25)[2024-01-20]. https://owasp.org/www-project-top-ten/.
[ 2 ] FANG Y, PENG J Y, LIU L, et al. WOVSQLI:detection of SQL injection behaviors using word vector and LSTM[C]// Proceedings of the 2nd International Conference on Cryptography, Security and Privacy, March 16-19, 2018, Gui-yang, China. New York:Association for Computing Machinery, 2018:170-174.
[ 3 ] WAHAIBI S A, FOLEY M, MAFFEIS S. SQIRL:grey-box detection of SQL injection vulnerabilities using reinforcement learning[C]// Proceedings of the 32nd USENIX Security Symposium, August 9-11, 2023, Anaheim, CA, USA. Anaheim:USENIX Association, 2023:6097-6114.
[ 4 ] ZHANG H F, ZHAO B, YUAN H, et al. SQL injection detection based on deep belief network[C]// Proceedings of the 3rd International Conference on Computer Science and Application Engineering, October 22-24, 2019, Sanya China. New York:Association for Computing Machinery, 2019:1-6.
[ 5 ] 解银朋, 周庆博, 何金栋, 等. 基于自训练的半监督SQL注入检测算法[J]. 陕西师范大学学报(自然科学版), 2021, 49(1):37-43.
XIE Y P, ZHOU Q B, HE J D, et al. Semi-supervised SQL injection detection based on self-training[J]. Journal of Shaanxi Normal University (Natural Science Edition), 2021, 49(1):37-43. (in Chinese)
[ 6 ] 赵伟, 周颖杰, 李政辉, 等. 一种基于少量异常标签的SQL注入攻击检测方法[J]. 四川大学学报(自然科学版), 2022, 59(6):39-47.
ZHAO W, ZHOU Y J, LI Z H, et al. A SQL injection attack detection method based on a few abnormal labels[J]. Journal of Sichuan University (Natural Science Edition), 2022, 59(6):39-47. (in Chinese)
[ 7 ] 程希, 曹晓梅. 基于信息携带的SQL注入攻击检测方法[J]. 计算机科学, 2021, 48(7):70-76.
CHENG X, CAO X M. SQL injection attack detection method based on information carrying[J]. Computer Science, 2021, 48(7):70-76. (in Chinese)
[ 8 ] 中华人民共和国交通运输部. 公路沥青路面设计规范:JTG D50—2017[S]. 北京:人民交通出版社, 2017.
[ 9 ] SQL injection dataset[EB/OL]. (2022-06-20)[2024-01-20]. https://www.kaggle.com/datasets/sajid576/sql-injection-dataset.
[10] MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space[EB/OL]. (2013-09-07)[2024-01-20]. https://arxiv.org/abs/1301. 3781v3.
[11] DEVLIN J, CHANG M W, LEE K, et al. BERT:pre-training of deep bidirectional transformers for language understanding[EB/OL]. (2019-05-24)[2024-01-20]. https://arxiv.org/abs/1810.04805v2.
[12] KIM Y. Convolutional neural networks for sentence classification[C]// Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), October 25-29, 2014, Doha, Qatar. Kerrville:Association for Computational Linguistics, 2014:1746-1751.
[13] CONNEAU A, SCHWENK H, BARRAULT L, et al. Very deep convolutional networks for text classification[EB/OL]. (2017-01-27)[2024-01-20]. https://arxiv.org/abs/1606. 01781v2.
[14] ZHANG Y B, ZHANG Z F, MIAO D Q, et al. Three-way enhanced convolutional neural networks for sentence-level sentiment classification[J]. Information Sciences, 2019, 477:55-64.
[15] LIU T F, YU S Y, XU B M, et al. Recurrent networks with attention and convolutional networks for sentence representation and classification[J]. Applied Intelligence, 2018, 48(10):3797-3806.
[16] PENNINGTON J, SOCHER R, MANNING C. Glove:glo-bal vectors for word representation[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), October 25-29, 2014, Doha, Qatar. Kerrville:Association for Computational Linguistics, 2014:1532-1543.
[17] SRIVASTAVA N, HINTON G, KRIZHEVSKY A, et al. Dropout:a simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15:1929-1958.
[18] IOFFE S, SZEGEDY C. Batch normalization:accelerating deep network training by reducing internal covariate shift[C]//Proceedings of the 32nd International Conference on Machine Learning, ICML 2015, July 6-11, 2015. Cambridge, Massachusetts:MIT Press. 2015:448-456.
[19] FALOR A, HIRANI M, VEDANT H, et al. A deep lear-ning approach for detection of SQL injection attacks using convolutional neural networks[M]// GUPTA D, POLKOWSKI Z, KHANNA A, et al. Lecture Notes on Data Engineering and Communications Technologies. Singapore:Springer, 2021:293-304.
[20] FAREA A A R, WANG C L, FAREA E, et al. Cross-site scripting (XSS) and SQL injection attacks multi-classification using bidirectional LSTM recurrent neural network[C]//Proceedings of the 2021 IEEE International Confe-rence on Progress in Informatics and Computing (PIC), December 17-19, 2021, Shanghai, China. New York:IEEE Xplore, 2021:358-363.
[21] WEN P C, HE C W, XIONG W, et al. SQL injection detection technology based on BiLSTM-attention[C]//Procee-dings of the 2021 4th International Conference on Robotics, Control and Automation Engineering (RCAE), November 4-6, 2021, Wuhan, China. New York:IEEE Xplore, 2021:165-170.
[22] SONG Y Y, WANG F L, CHEN X X. An improved gene-tic algorithm for numerical function optimization[J]. Applied Intelligence, 2019, 49(5):1880-1902.
[23] CHUANG Y C, CHEN C T, HWANG C. A simple and efficient real-coded genetic algorithm for constrained optimization[J]. Applied Soft Computing, 2016, 38:87-105.
[24] WANG F L, XU G, WANG M. An improved genetic algorithm for constrained optimization problems[J]. IEEE Access, 2023, 11:10032-10044.
[25] 王晓慧, 刘雪英, 白梅花. 引入高斯变异和最速下降算子的人口迁移算法[J]. 计算机工程与应用, 2009, 45(20):57-60.
WANG X H, LIU X Y, BAI M H. Population migration algorithm with Gaussian mutation and the steepest descent operator[J]. Computer Engineering and Applications, 2009, 45(20):57-60. (in Chinese)
[26] 李晶晶, 戴月明. 自适应混合变异的蛙跳算法[J]. 计算机工程与应用, 2013, 49(10):58-61.
LI J J, DAI Y M. Adaptive shuffled frog leaping algorithm adopting mixed mutation[J]. Computer Engineering and Applications, 2013, 49(10):58-61. (in Chinese)
[27] MIRJALILI S, LEWIS A. The whale optimization algorithm[J]. Advances in Engineering Software, 2016, 95:51-67.
[28] ABDOLLAHZADEH B, GHAREHCHOPOGH F S, KHODADADI N, et al. Mountain gazelle optimizer:a new nature-inspired metaheuristic algorithm for global optimization problems[J]. Advances in Engineering Software, 2022, 174:103282.
(责任编辑:仇慧)