基于TADK的SQLI检测

本文介绍了基于TADK的SQL注入(SQLI)检测方法,对比了传统黑名单过滤机制和基于机器学习的检测方法。TADK通过优化的词法分析库,利用确定有穷自动机(DFA)提升SQLI检测速度,同时结合特征提取和随机森林模型,实现了高检出率、低误报率和低延迟的检测效果。
摘要由CSDN通过智能技术生成

基于TADK的SQLI检测

根据开放web应用安全项目(OWASP)的统计,SQL注入(SQL injection, SQLI) 是web应用程序排名第一的威胁。攻击者通过将恶意SQL查询插入用户输入框来从后端数据库窃取关键信息从而危害web应用程序。传统检测SQLI是利用黑名单过滤机制,使用正则表达式将某些关键字列入黑名单或非法语句。

但这种方法只能检测到已知的攻击,对新的攻击没有效果。此外,规则库的维护和更新也需要专业的知识,门槛相对较高。并且通常情况下用户需要花费一定的费用来获得商业版的规则库。近年来,基于机器学习的检测方法逐渐流行起来,但是对于切词(tokenization),特征提取 (feature extraction) 还没有比较高效的解决方案。

再加上业界一般多采用较为复杂的神经网络来训练模型,导致推理速度难以达到实际部署的要求。目前,比较主流的SQLI检测产品比如Modsecurity都是基于Libinjection库实现的。Libinjection定义了SQLI的28个token 类型,如图1所示。

Libinjection将输入的数据依据图1的定义逐个字符进行分析转换,之后就会得到SQLI的识别特征,或者说指纹 (fingerprint),然后通过二分查找算法,在特征库中进行匹配,匹配到则报SQLI攻击。为了降低特征库的规模以提升二分查找的效率,Libinjection会对原始生成的fingerprint进行压缩,最终库的规模维持在8000+条fingerprint。整个处理流程如图2所示。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值