分类筛选
分类筛选:

自动化检测相关本科毕业论文范文 跟基于爬虫的SQL注入自动化检测系统设计方面在职研究生论文范文

版权:原创标记原创 主题:自动化检测范文 类别:发表论文 2024-01-31

《基于爬虫的SQL注入自动化检测系统设计》

该文是自动化检测类有关在职研究生论文范文与爬虫和自动化和系统设计有关学士学位论文范文。

[摘 要] 针对Web 应用的相关安全现状,在现有的SQL 注入攻击方法研究的基础上,利用网络爬虫技术高效准确地搜集所需要检测的Web 站点中可能存在SQL 注入风险的Web 应用,并结合源自黑盒测试的Fuzzing 技术,用静态分析和动态调试等方法对Web 应用的安全性进行自动化检测分析,达到简要分析检测结果和评估Web 应用安全等级的目的,针对分析结果,提出有效的安全防御措施及建议,并及时反馈给网站管理者,以便实行相应的防御方案,提高Web 站点的安全等级,降低企业资产受损的风险.

[关键词] SQL 注入;网络爬虫;Fuzzing 技术;自动化检测系统;安全防御

中图分类号:TP393 文献标志码:A 文章编号:1008-1739(2017)23-70-3

1 引言

信息时代改变了现代人的生活方式和理念,互联网作为信息时代的产物,已融入日常生活.与此同时,网络安全问题日益突出.在2017 年OWASP[1]发布的Web 应用安全十大漏洞中,以SQL 注入为代表的注入类攻击位列第一.为了防范各类SQL 注入攻击,降低人工检测成本,充分利用现有技术,结合其优势,已有人提出利用Fuzzing 技术和网络爬虫技术相结合去挖掘互联网中存在的漏洞,网络爬虫在数据挖掘方面广泛使用可高效搜集Web 应用的各类信息,而Fuzzing可利用大量随机数据对软件缺陷进行自动化检测分析,本文在此基础上,提出并实现了基于网络爬虫SQL 注入的自动化检测系统的模型.

2 原理与测试

2.1 原理

SQL 注入攻击就是利用应用程序中已存在的SQL 注入漏洞而触发的恶意攻击方式,利用这种方式,攻击者可以把SQL 恶意代码通过提交至后台服务端,并欺骗服务器执行恶意的SQL 命令,来对后台数据库进行非法操作,从而获取敏感信息、破坏存储数据,甚至使整个软件系统瘫痪[2].

网络爬虫是根据一定规则编写,对万维网的既定目标进行自动提取和下载的程序或脚本,从网站的某一个页面开始读取网页的内容,找到在网页中的其他的链接地址,通过这些链接地址来寻找下一个网页,这样一直循环下去,直到把整个网站所有的网页都抓取完或到达预定目标为止[3],其常见的抓取策略有深度优先遍历、广度优先遍历、反向链接数、PartialPage Rank、OPIC 及大站优先等.

Fuzzing 技术是一种基于缺陷注入的自动化软件测试技术,源于黑盒测试[4],其核心思想是生成合适的测试样例并分析测试结果,测试重点在于发现安全性相关的错误,在Web 应用中,能够有效地找出漏洞.其架构由引擎和监视2 个模块[5]组成,引擎模块产生所需要的测试数据(随机构造提交的参数),并将其发送至目标服务器,使之运行;而监视模块监视目标程序,若出现异常状态,则进行记录和分析,并具备向上级递交的功能.

SQL 注入攻击过程简单,具有广泛性、隐蔽性、语句组合多和变化大的特点,增加了服务器过滤识别的防范难度.网络爬虫具有高性能的数据结构模式,采用分布式和多线程的抓取方式,可自行恢复处理异常情况,这使它能高效地采集处理用户所需要的网站信息,减少人工处理时间,Fuzzing 用于进行模糊测试,可避免产生大量无效的测试数据,减轻测试用例构造的复杂度.

结合上述三者原理及特点,提出基于网络爬虫的SQL 注入的自动化检测系统,实现自动化的工作方式.该系统的工作流程如图1 所示,基本思想是选取一部分含有关键字的种子URL 放入初始URL 队列,依次抓取URL,通过解析DNS 获取主机IP,将对应网页下载存储,分析网页中是否存在其他URL,并将新的URL 放入到初始URL 队列,同时将抓取过的URL 放入已抓取的URL 队列,完成一个循环.Fuzzing 依次提取已抓取的URL 队列中的URL,进行自动化源码审计,判断其中是否存在SQL 注入点,若存在则记录上交,进行下一步的SQL 注入工具测试分析,若不存在则丢弃该URL.

2.2 测试步骤

① 输入的URL 关键字为"www.testWeb.com";② 网络爬虫根据关键字抓取所有网站及网站内超链接相关页面的链接;③ Fuzzing 对爬虫采集的数据进行模糊测试,测试项目包括判断SQL 注入是否存在以及存在的SQL 注入的类型,如报错型注入、布尔型注入、基于时间延迟注入及可联合查询注入等;④ 对存在注入的页面进行测试,并将测试数据记录保存.

2.3 测试部分核心代码

要实现基于网络爬虫的SQL 注入的自动化检测系统,必须保证爬虫能自动抓取网站链接,使得Fuzzing 对网站链接能进行是否存在注入点的判断.

为此,编写的爬虫模块的核心代码如下:

3 防御措施

基于网络爬虫的SQL 注入的自动化检测体系中,最重要的部分还是对SQL 注入的测试,因此,防御也应当从SQL 注入重点入手,主要从开发者和管理者2 个角度进行.

① 从开发者角度入手:过滤预先定义好的敏感字符,使用参数化查询使得执行代码和数据分开,限制输入的字符长度,在服务器处理提交数据前对其进行合法化检查,避免使用字串联结方式组合SQL 指令等;

② 从管理者角度入手:设立Web 应用防火墙和数据库防火墙,插入截断过滤器,屏蔽错误回显,对于易受攻击但不易改动内容的页面在保证服务器端和客户端的通信正常的前提下,利用页面覆写技术进行替换页面,限制使用权限过大的账户等.

4 结束语

本文主要提出了一个基于网络爬虫的SQL 注入的自动化检测系统,通过网络爬虫和Fuzzing 技术的结合,加之对SQL注入原理的运用,从而使SQL 注入检测实现自动化与智能化,通过实验测试验证该系统的基本可行性.同时本文提出的系统概念中,实现了模块化,拓展模块的进一步完善,网络爬虫可采用分布式,考虑初始URL 种子集的自动构建[6],提高效率,存储的URL 可进行定期更新,保证数据的及时性;

对于模糊检测中检测手段,可增加网站容器的类型、机器系统和Web 防火墙指纹;测试工具应集成数据采集分析模块,对数据结构、数据采集和数据分析建立统计数据库,提高其自身测试效率;用户可以根据自身需要增删或修改规则针对特定的需求进行扫描检测,为提高用户友好性,可针对检测出来的SQL 注入点提供解决方案.

自动化检测论文参考资料:

paperfree论文检测

论文抄袭率检测

论文检测

论文字数检测

电气自动化论文

机械制造和自动化论文

该文评论,本文是一篇关于经典自动化检测专业范文可作为爬虫和自动化和系统设计方面的大学硕士与本科毕业论文自动化检测论文开题报告范文和职称论文论文写作参考文献。

和你相关的