首页> 中文学位 >二阶SQL注入漏洞检测技术和防御方法研究
【6h】

二阶SQL注入漏洞检测技术和防御方法研究

代理获取

目录

声明

第1章 绪 论

1.1 研究背景与意义

1.2 国内外研究现状

1.2.1 基于网络爬虫方法

1.2.2 基于静态分析方法

1.2.3 基于动态检测方法

1.2.4 基于动静结合分析方法

1.3 论文主要工作

1.4 论文组织架构

第2章 相关技术

2.1 普通SQL注入

2.1.1 注入过程

2.1.2 注入类别

2.1.3 注入防御

2.2 二阶SQL注入

2.2.1 注入过程

2.2.2 注入类别

2.2.3 注入防御

2.3 污点分析技术

2.4 渗透测试技术

2.5 机器学习算法

2.5.1 KNN算法

2.5.2 Naive Bayes算法

2.5.3 Decision Tree算法

2.6 本章小结

第3章 基于静态和动态相结合的注入检测

3.1 检测总体框架

3.2 静态分析部分

3.2.1 词法语法分析

3.2.2 抽象语法树AST

3.2.3 控制流图CFG

3.2.4 二阶可疑项

3.3 动态测试部分

3.3.1 元数据

3.3.2 漏洞验证

3.4 实验和分析

3.4.1 实验环境和对象

3.4.2结果及分析

3.5 本章小结

第4章 基于机器学习的注入防御

4.1 防御总体框架

4.2 存储阶段防御模块

4.2.1 样本预处理

4.2.2 词法分析

4.2.3 防御实现

4.3 触发阶段防御模块

4.3.1 特殊字符

4.3.2 防御实现

4.4 实验和分析

1.算法模型选取

2.存储阶段防御实验

3.触发阶段防御实验

4.5 本章小结

结论

参考文献

附录

致谢

展开▼

摘要

互联网的发展日新月异,从WEB1.0到盛行的WEB2.0,再到以人工智能为代表的WEB3.0,人们的生活因为各种WEB应用变得更加丰富便利。然而,事物都有两面性,WEB服务的出现同时也伴随着一系列安全隐患。国际网络安全形势依旧十分严峻,数据泄露、勒索攻击、黑客活动等各种网络安全事件层出不穷。OWASP总结了WEB应用程序最常见、最危险的十大漏洞,其中,SQL注入连续几年都稳居第一。SQL注入就是攻击者构造能够改变SQL语义的恶意输入并发送给服务器,应用服务器未经安全过滤就利用攻击者提交的恶意输入构造SQL语句,最终将一些敏感信息返回给攻击者。SQL注入包括普通注入和多阶段注入,目前,已知的检测方法和工具基本都只能检测出普通SQL注入,对更加复杂的多阶段注入研究相对较少,且检测效果均不太令人满意。  本文参考当前存在的普通SQL注入检测技术,分别从二阶SQL注入的产生过程和特点两方面出发,对二阶SQL注入的检测和防御展开研究。如下描述了本文的主要研究内容。  提出一种采用双向污点分析指导渗透测试的检测方法,该方法包括静态分析寻找二阶可疑项和动态分析验证漏洞两部分。静态分析过程包括双向污点分析找出源代码中的二阶可疑项以及结合约束求解判断可疑路径是否可达。动态分析过程采用渗透测试验证查找的二阶可疑项。实验表明,和现有的检测方法相比,本文提出的方法在可接受时间花费内能有效检测漏洞,且漏报率更低。  提出一种基于机器学习的防御模型。该模型从两个方面出发,一方面减少恶意载荷存入数据库,另一方面使恶意载荷失效。存储阶段防御中,以分类准确率和运算效率为基准,选取K近邻算法、决策树算法和朴素贝叶斯算法中分类效果最好的算法来校验用户输入。触发阶段防御中,参考编程语言中安全函数处理特殊字符的方式,对数据库响应结果集进行检测,判断其是否包含特殊字符。如果包含,则对特殊字符进行转义。实验表明,提出的模型能有效过滤恶意输入,防止注入发生。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号