
摘要
随着网络安全威胁的日益复杂化,尤其是随着生成式AI技术的普及,攻击者获得了前所未有的攻击能力增强,能够自动生成数千种攻击变种快速绕过传统防火墙规则,导致基于规则匹配的防火墙在面对0day攻击时显得力不从心。本文提出了一种创新的嵌入式智能防御方法,该方法结合传统深度检测引擎,引入语义分析结合支持向量机(SVM)轻量化模型,实现了无规则的智能语义级SQL注入检测,以此形成一类嵌入式轻量化的防御方法,提供了一套具有普适性和可复制性的方法论框架:语义解构→特征工程→轻量学习,这一方法不局限于SQL注入攻击检测,可推广至XSS攻击、命令注入等多种安全场景。最终通过将机器学习模型直接内嵌在设备端,在边缘侧完成实时未知威胁检测。实验结果表明,该方案在保持高检测精度的同时,模型体积仅为传统深度学习方案的1/100,推理延迟为毫秒级,适合资源受限的嵌入式环境部署。
关键词
0day攻击;嵌入式安全;支持向量机;语义分析;设备级机器学习;SQL注入检测
1 引言
1.1 技术背景
防火墙面临的攻击类别数以千计,SQL注入攻击是典型的Web应用安全威胁,常年位于OWASP TOP10前三位的攻击类型。根据OWASP 2023年度报告,注入类漏洞仍然是最严重的安全风险之一,2024/2025 OWASP开始关注大模型安全,注入类攻击依然位列大模型安全TOP10之内。
1.2 现有有效检测技术
传统防火墙的防护模式采用深度包检测技术,采用DPI核心引擎解析流量,扫描载荷内容和已知攻击载荷的特征库进行模式匹配。该方法缺陷在于:
1)只能识别已知攻击,面对0day攻击很难衍生发现;
2)攻击者通过编码变换、注释插入、大小写混淆等技术容易绕过检测;
3)规则条数和规则书写日渐复杂,核心DPI引擎的复杂度和CPU处理耗时也日渐增加。
除了基于攻击载荷的字符串特征,业界也有基于语义的检查方式:解析SQL语句的语法树结构,判断是否符合预期模式。但想要识别恶意攻击,仍然寄希望于“规则驱动”,依赖于人工总结的特征已经难以为继。攻击技术的演进速度远超规则更新速度,导致持续的“道高一尺,魔高一丈”困境。
1.3 AI识别攻击技术
安全领域难题之一对已知攻击有高效的检出能力,但是对已知威胁的变种和新的威胁分类难以识别。AI for安全一直是较热门的话题,以SQL注入攻击防御为例,近年研究者尝试使用深度学习进行检测:将SQL语句甚至整个payload视为字符序列,使用卷积神经网络或循环神经网络提取特征训练并推理。主要问题:
模型体积大(20-100MB),难以嵌入式实时部署;
训练需要海量标注数据(>100万样本);
对输入长度敏感,长SQL语句检测效果差。
1.4 总结
传统的规则匹配引擎只懂字符串规则而不懂程序本身,就存在着误报、需要频繁更新规则、难以检测未知威胁等问题。而语义分析虽能理解程序语言,并在其基础上通过检测找到可疑流量,但同样难以有效识别未知威胁。
表1 传统检测方法对比

2 关键技术
本文针对嵌入式防火墙设备资源有限的特点,注重平衡性能和识别率,基于语义分析设计一套轻量化的智能检测系统,以SQL注入攻击防护为例,后续可以扩展XSS攻击防护等具备语义识别的特点的攻击类别的识别。其核心思想是:利用攻击载荷具备语义解析的特点,不关注SQL语句本身,而关注其语法结构,通过语义解构→特征工程→轻量学习,实现一套完整的方法论。
2.1 总体设计
在防火墙DPI处理中增加AI智能检测引擎,作为传统引擎的增强能力之一。依附于深度检测引擎提取已知特征的能力,当流量未被检出有攻击,并且符合“内置AI智能检测引擎”输入条件时,送至智能引擎检测以发现更多未知威胁。

图1 防火墙内置AI智能检测引擎架构
图1中流量进入防火墙转发流程,在DPI处理中进行流量解析、拆解、流特征匹配,若未检出有攻击,继续提取关键载荷送入“内置AI智能检测引擎”分析,最终得出黑/白流量。
2.2 语义解析
通过libinjection词法分析引擎将SQL语句解构为标准化token序列,针对token序列设计了27维判别特征向量,涵盖语法模式、结构异常,将SQL注入检测问题转化为高维空间的二分类问题。
(1)Token提取
针对sql语句,将其分解成27种token,举例如表2。
表2 Token提取举例

一条语句:$sql="SELECT*FROM users WHERE name='1' OR 1=1; -- AND pwd='asd’ ”;
转化为token指纹:Eoknknos&1o1;c
经过以SQL语法为核心进行词法解析,精准拆解出关键字、操作符等逻辑单元。再通过预定义的编码映射表,将这些单元压缩为紧凑的整数令牌(Token)。此过程将原始SQL语句转化为标准化的字符序列,从而剥离冗余格式,抽离出纯粹的语法骨架,为基于规则或机器学习的高效模型分析提供可继续处理的数值化特征素材。
(2)Token编码处理
简化后的特征素材,由27个指纹因子组成:kubetfn 1vso&ca( ) { }.,:;t?xF\
将简化后的特征素材,以指纹因子有无为条件,再映射为27位的位图;用于后续的模型分析。
例如,对于s这个单指纹素材,对应的编码就为[000000000100000000000000000];n1c这个多指纹素材,对应的编码就为[000000110000100000000000000]。
最终,素材都会被转化成一个27维的数据。
(3)语义筛选
为进行后续处理,避免有大量无效流量送至AI处理,通过语义分析能进行流量筛选,只有被libinjection语义解析筛选判断为正常的样本,且只有满足token提取条件的才会进入后续转发流程的推理处理,大大筛选掉无效流量。
为减少大流量下的模型压力,通过libinjection的语义解析,先做一次流量筛选。只有被libinjection有效解析,且能提取到足够素材的流量,才会参与到27维度的特征提取和模型检测。通过这层筛选,大量筛选掉无效流量。
2.3 AI算法实践
针对SQL注入攻击检测,AI算法的选择需要综合考虑多个关键因素,以确保模型的性能和实用性,针对如下考量,评估SVM表现。
高维空间表现优异:SVM在高维数据集(即特征数较多)中表现非常好。即使是维度非常高的特征,SVM也能够找到合适的分类超平面。
适用于小样本数据集:在样本数量较少但特征维度较高的情况下,SVM能够有效分类。这使得SVM非常适合那些样本较少但特征复杂的数据集。
防止过拟合:SVM只依赖于一小部分支持向量来构建模型,因此不会对特定数据点更敏感,在面对噪声数据时也具有良好的鲁棒性,模型也更加稳定。
在实践中算法选择上,挑选了随机森林、XGBoost、LightGBM、决策树、SVM等机器学习算法进行实验,平均下来综合交付件大小、度量指标(Accuracy、Precision、Recall、F1-Score、训练时间、推理时间)SVM综合表现最好,且libsvm正是一个提供了C接口的轻量级(so动态库大小仅为84K)的svm分类算法,且集成简单,依赖少,经测试其性能消耗也较小,因此最终选择此算法落地,基于以下样本情况,实际效果如表3。
◆样本组成:互联网搜集的流量、开源项目样本、安全积累样本、自己构造的样本。
◆训练样本数目:10W+。
◆测试样本数目:2k+。
表3 效果对比

2.4 和现有框架融合
在设备启动时直接加载训练好的模型,后续可以通过云端更新。检测流程如图2所示。

图2 融合引擎流程图
AI智能引擎检测预处理细节。
SQL注入所在位置:HTTP/HTTPS协议的URL参数、请求方向 body、http header(包括host、user-agent、cookie、referer、x-forwarded-for、client_ip等)。

图3 SQL注入攻击关心的载荷位置
提取出的数据传入的数据必须是解压缩(gzip、deflate解压缩)、解码(URL解码、base64解码等)正规化之后的,并且必须传入的是精确SQL注入的内容,否则会影响识别率。
最终二分类结果是通过风险评估出来的结果。
指纹编码后交给svm处理,去评估风险。由于前面已经被libinjection筛选过一次,这里判断是攻击的条件要提高,经测试,当评估出的概率大于95%时,认为是一个攻击是比较合理的。
当前使用的风险评级指标(可以调整)如表4。
表4 风险评级指标

2.5 成果展示
与语义分析检测区别,作为新的AI检测引擎,打开AI检测时默认打开语义分析检测功能。本次新增SQL注入检测,后续可增加XSS、SHELLCODE等。

图4 配置
命中AI检测攻击后日志展示如图5所示。

图5 检测结果展示
3 未来演进
本文采用的特征工程方式还有不足,后续可以增加时序概念,让语义的分析更加准确,整体体现出来的防御范式,可以继续运用在:第一,语义解析层可替换为针对不同攻击类型的解析器;第二,特征工程方法可迁移至其他结构化输入;第三,轻量级模型选择策略可复用于各类资源受限场景,提供了一个可参考、可模仿、可扩展的方法,具有重要的方法论意义和实践指导价值。



浙公网安备 33010802004375号