基于关键载荷截取的SQL注入攻击检测方法.docxVIP

  • 43
  • 0
  • 约6.79千字
  • 约 7页
  • 2021-07-30 发布于广东
  • 举报

基于关键载荷截取的SQL注入攻击检测方法.docx

基于关键载荷截取的SQL注入攻击检测方法 摘要:SQL注入攻击是黑客对数据库进行攻击的常用手段之一,对当前Web应用程序安全构成了重大威胁。针对由于SQL注入攻击语句与正常HTTP请求语句之间存在较多相同字符串而影响分类准确性的问题,文章在分析SQL注入攻击全过程中各阶段攻击语句和正常HTTP请求语句区别的基础上,提出了一种基于特征词对的关键载荷截取方法。该方法能够从SQL注入攻击语句中截取出区别于正常HTTP请求语句的关键载荷。结合自然语言处理技术、所截取的关键载荷、word2vec和分类算法,文章构建了一种基于关键载荷截取的SQL注入攻击检测方法并搭建Web系统对其进行了实验测试。实验结果表明,该方法在检测准确性和检测效率上均优于基于完整请求和word2vec的SQL注入攻击检测方法。 0 引言 随着Web应用的发展,以数据为主要资产的信息产业日益增多,针对该产业的网络攻击也层出不穷。据统计,2020年受漏洞影响的对象类型中应用程序漏洞占比48%,Web应用占比27.7%,位居前二。Web应用安全受到严重威胁,SQL注入作为对Web应用程序威胁严重的漏洞之一 SQL注入攻击是一种基于SQL注入漏洞的代码注入攻击 为应对SQL注入攻击带来的威胁,近年来研究者们对SQL注入攻击提出了一系列检测与防御方法,从SQL注入攻击语句中提取的关键词或特征是影响其检测方法有效性的关键。现有的检测方法大多使用从简单预处理后的完整攻击语句中提取的特征进行检测,忽略了完整攻击语句中存在着较多与正常HTTP请求相同部分会对检测结果造成影响,这导致检测方法的漏报率较高。 针对上述问题,本文从语句角度分析了SQL注入攻击全过程中各阶段攻击语句与正常HTTP请求的区别,提出了一种仅保留攻击语句中与正常HTTP请求有明显区别的关键载荷截取方法,并基于关键载荷结合word2vec和分类算法构建了一种基于关键载荷截取的SQL注入检测方法(SQL injection attacks Detection Method based on the Truncated Key Payloads,SDMTKP)。该方法重点关注从SQL注入攻击语句中区别于正常HTTP请求的关键载荷中提取的特征,这有助于提高对SQL注入攻击检测的准确率。 1 相关工作 本文按照是否使用了机器学习技术将SQL注入攻击检测方法归为传统SQL注入攻击检测技术和机器学习方法两大类。 1.1 传统SQL注入攻击检测方法 传统的SQL注入攻击检测方法使用静态分析和动态分析来判断正常与攻击语句 1.2 基于机器学习的SQL注入攻击检测方法 为提升SQL注入攻击的检测准确性并减少人工劳力,近年来机器学习方法在SQL注入攻击检测中的应用颇多 2 SQL注入攻击过程及其攻击语句分析 攻击者通过精心构造的SQL注入攻击语句对目标Web应用进行SQL注入攻击,因此对SQL注入攻击语句的分析是准确检测该攻击的重要基础。从攻击顺序看,完整的SQL注入攻击包括如图1所示的寻找注入点、判断注入点类型、获取数据库信息、操作数据库4个阶段,每个阶段的攻击语句有所关联但互不相同。 本文以字符型注入为示例,对SQL注入攻击各阶段给出示例语句描述。 1)寻找注入点。攻击者在该阶段的目的是探查目标Web应用是否存在SQL注入漏洞,通常会在正常HTTP请求中的特定参数(如查询字符参数、Cookie参数等)拼接上一些特殊的符号或字符串以判断是否存在注入点,如添加单引号“’”、“’and 1=1--+”等;并根据页面响应情况判断该页面是否存在注入点。从请求语句上看,本阶段的SQL攻击语句仅在正常HTTP请求上添加了少量的符号或字符串,两者在请求语句中存在着大量相同部分。如表1中“寻找注入点”阶段所给出的示例,两者仅相差“’”或“’and 1=1--+”等少量符号或字符串。 2)判断注入点类型。攻击者在该阶段的目的是进一步判断注入点的注入类型,如数字型、字符型等,为攻击者后续构造针对性的攻击载荷做准备。如表1中“判断注入点类型”阶段所给出的示例,通过在正常HTTP请求后分别添加“’and‘1’=’1”和“’and‘1’=’2”并观察其返回页面来判断注入点类型。本阶段的SQL注入攻击语句在语句层面上仍与正常HTTP请求有很多相同的部分。 3)获取数据库信息。在此阶段,攻击者通过在正常HTTP请求上构造SQL查询语句获取Web应用的数据库、表、字段等信息。例如,要获取当前用户和数据库名称,可以通过结合函数user()和database()构造SQL注入攻击语句。从表1的“获取数据库信息”阶段示例语句可看到,本阶段的SQL注入攻击语句与正常HTTP请求有39个字符的相同字符串。 4)操作数据库。当获取数据库

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档