A machine learning based SQL injection detection method and database security system. The invention belongs to the field of network security technology, and discloses a machine learning-based SQL injection detection method. The machine learning-based SQL injection detection method extracts parameters from HTTP requests, generates syntax trees of samples through lexical analysis and syntax analysis, extracts syntax trees and URL features, and adopts support vector. Machine learning algorithms are trained; the trained classification model is deployed between Web services and clients to classify HTTP requests in the production environment. When the HTTP request is judged to contain SQL injection attack, an alarm is issued and the request is blocked. Finally, the request is stored in the SQL injection attack sample library. The invention has low dependence on background information and only needs to obtain HTTP requests received by Web services; the invention has low deployment difficulty and can be deployed between Web services and clients as a flow filter; the invention has good accuracy; the invention has the ability of continuous learning; and the invention has good expansion. Sex.
【技术实现步骤摘要】
一种基于机器学习的SQL注入检测方法、数据库安全系统
本专利技术属于数据网络安全
,尤其涉及一种基于机器学习的SQL注入检测方法、数据库安全系统。
技术介绍
目前,业内常用的现有技术是这样的:SQL是结构化查询语言(StructuredQueryLanguage)的简称,是一种用于操作数据库的语言。SQL注入是指通过把特定SQL命令插入到HTTP请求中,达到欺骗服务器以执行恶意SQL命令目的,从而窃取、篡改或者恶意删除数据。传统上,防护SQL注入主要在两个阶段进行。第一是在Web服务源码编写阶段进行防护,开发人员在编写源码时遵循防范SQL注入的经验性指导原则,使用“检查参数格式”,“过滤特殊字符”,“绑定参数”等方式使得SQL注入失效。但是这种方式的有效性取决于开发人员的安全防范知识水平的高低,往往容易留下不易察觉的漏洞。第二是在Web服务运行阶段进行防护,也就是部署入侵检测系统。传统的入侵检测系统有两种:基于程序分析的SQL注入检测系统。对Web服务程序进行分析,包括静态分析和动态分析两种策略。静态分析是分析源代码,找出潜在的安全漏洞。动态分析是在程序运行时完成,通过编写特定的测试用例来测试程序。缺点是必须获知Web应用的源代码,而且分析覆盖率不能得到保障,容易出现漏测。基于特征匹配的SQL注入方法。建立当前数据库服务的特征语法树,从中提取出合法的SQL语句语法树,然后进行模式匹配,如果被检测的SQL语句不符合合法模式就产生警告。但是这种方法需要预先知道源代码,并且进行大量人工工作来分析出合法SQL模式。或者通过分析大量SQL注入实例,生成非法SQ ...
【技术保护点】
1.一种基于机器学习的SQL注入检测方法,其特征在于,所述基于机器学习的SQL注入检测方法从HTTP请求中提取参数,通过词法分析,语法分析生成样本的语法树,提取出语法树以及URL的特征,采用支持向量机的机器学习算法进行训练;将训练好的分类模型部署在Web服务与客户端之间,对生产环境中的HTTP请求进行分类,当判断出HTTP请求中含有SQL注入攻击时发出告警并阻断该请求。
【技术特征摘要】
1.一种基于机器学习的SQL注入检测方法,其特征在于,所述基于机器学习的SQL注入检测方法从HTTP请求中提取参数,通过词法分析,语法分析生成样本的语法树,提取出语法树以及URL的特征,采用支持向量机的机器学习算法进行训练;将训练好的分类模型部署在Web服务与客户端之间,对生产环境中的HTTP请求进行分类,当判断出HTTP请求中含有SQL注入攻击时发出告警并阻断该请求。2.如权利要求1所述的基于机器学习的SQL注入检测方法,其特征在于,所述基于机器学习的SQL注入检测方法包括:步骤一,获取机器学习的训练数据集;步骤二,对原始HTTP请求进行去噪和解码,得到请求字符串;步骤三,使用词法分析工具对步骤二中得到的请求字符串进行自动词法分析,记录下分析出的SQL关键词;步骤四,使用语法分析工具对步骤二中得到的解码后的字符串进行自动语法分析,形成语法树;步骤五,特征提取,统计原始HTTP请求的特征,词法分析结果的特征以及步骤四中语法树的特征,并组合这三种类型的特征作为样本的特征向量;步骤六,使用支持向量机算法对步骤五提取出的特征向量进行训练;生成一个SVM二分类器;步骤七,将训练好的SVM二分类器以及预处理和特征提取模块部署在Web服务器与客户端之间,对HTTP请求进行特征提取和分类;当判定HTTP请求含有SQL注入攻击行为时,发出告警,阻断该请求;并将可疑请求存入SQL注入攻击样例库。3.如权利要求2所述的基于机器学习的SQL注入检测方法,其特征在于,所述步骤一中构建SQL注入样例库,收集含有SQL注入攻击的HTTP请求样例以及正常HTTP请求样例,进行标记,作为机器学习的训练素材。4.如权利要求1所述的基于机器学习的SQL注入检测方法,其特征在于,所述基于机器学习的SQL注入检测方法包括:训练阶段和检测阶段;所述训练阶段具体包括:(1)对训练数据集的每条HTTP请求提取参数;并利用词法分析和语法分析生...
【专利技术属性】
技术研发人员:刘亚,黄刚,李洪超,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。