CN113886812A - 检测防护方法、系统、计算机设备及可读存储介质 - Google Patents

检测防护方法、系统、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN113886812A
CN113886812A CN202111127555.9A CN202111127555A CN113886812A CN 113886812 A CN113886812 A CN 113886812A CN 202111127555 A CN202111127555 A CN 202111127555A CN 113886812 A CN113886812 A CN 113886812A
Authority
CN
China
Prior art keywords
blocking
sql
matching
operation type
detection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111127555.9A
Other languages
English (en)
Inventor
周昌剑
范渊
刘博�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202111127555.9A priority Critical patent/CN113886812A/zh
Publication of CN113886812A publication Critical patent/CN113886812A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种检测防护方法、系统、计算机设备及可读存储介质,其中,该检测防护方法包括:提取请求数据中的SQL语句;对SQL语句进行词法分析,得到单词集合;根据单词集合建立抽象语法树;将抽象语法树的各个叶子节点与预设的多条阻断规则进行匹配,当任意一个叶子节点匹配上一条阻断规则时,查询匹配中的阻断规则对应的操作类型,并对SQL语句执行操作类型中对应的操作。通过本申请的检测防护方法,解决了在网页的应用程序和后台数据库中的数据进行交互时存有SQL注入漏洞,也不便于从程序代码层进行防护修改的问题,实现了对待检测系统的SQL注入攻击进行准确判定,独立于待检测系统运行,针对陈旧应用系统,无需开发人员排查及修改代码。

Description

检测防护方法、系统、计算机设备及可读存储介质
技术领域
本申请涉及通信安全防护技术领域,特别是涉及一种检测防护方法、系统、计算机设备和可读存储介质。
背景技术
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。而SQL注入是将web页面的原URL(Uniform Resource Locator,统一资源定位符)、表单域或数据包输入的参数,修改拼接成SQL语句,传递给web服务器,进而传给数据库服务器以执行数据库命令,发生SQL注入攻击。但凡使用数据库开发的应用系统,就可能存在SQL注入攻击的媒介,自1999年起,SQL注入漏洞就成了常见安全漏洞之一。
在Web应用开发中,由于开发人员没有按照规范在代码层面对SQL注入进行防护,或者是一时疏忽没有对用户输入的拼接到SQL中的一些查询条件等做严格校验,就会导致程序存在SQL注入漏洞;并且有的项目由于开发时间比较早,由于历史的原因,程序代码经过了大量人员的维护修改,变得臃肿、杂乱,也可能导致程序存在SQL注入漏洞,并且对于这样的项目,如果从代码层面进行防护修改则代价非常之大。
发明内容
本申请实施例提供了一种检测防护方法、系统、计算机设备及可读存储介质,以至少解决相关技术中在网页的应用程序和后台数据库中的数据进行交互时存有SQL注入漏洞,且不便于从程序代码层进行防护修改的问题。
第一方面,本申请实施例提供了一种检测防护方法,包括:
获取待检测应用将访问数据库的请求数据,并提取所述请求数据中的SQL语句;
对所述SQL语句进行词法分析,得到单词集合;
根据所述单词集合建立抽象语法树;
将所述抽象语法树的各个叶子节点与预设的多条阻断规则进行匹配,每个所述阻断规则配置有对应的操作类型的信息,所述操作类型包括阻断操作和告警操作中的其中一种;
当任意一个所述叶子节点匹配上一条所述阻断规则时,查询匹配中的所述阻断规则对应的操作类型,并对所述SQL语句执行所述操作类型对应的操作。
在其中一些实施例中,所述当任意一个所述叶子节点与所述阻断规则匹配时,则根据预设的配置信息对所述SQL语句的执行进行阻断的步骤之后,所述方法还包括:所述对所述SQL语句执行所述操作类型对应的操作的步骤具体包括:
当匹配中的所述阻断规则配置的操作类型为阻断操作时,则对所述SQL语句进行阻断;
当匹配中的所述阻断规则配置的操作类型为告警操作时,则对所述SQL语句进行告警。
在其中一些实施例中,所述对所述SQL语句进行告警的步骤包括:
将执行告警操作的所述SQL语句确定为可疑SQL语句;
发送所述请求数据至数据库进行处理,返回查询结果。
在其中一些实施例中,所述对所述SQL语句执行所述操作类型中对应的操作之后,所述方法还包括:
记录并存储执行阻断操作或告警操作的所述SQL语句,并制成报表以展现。
在其中一些实施例中,所述将所述抽象语法树的各个叶子节点与预设的多个阻断规则进行匹配之后,所述方法还包括:
当所有所述叶子节点与各条所述阻断规则均不匹配时,则直接将所述请求数据发送至数据库进行处理,并返回查询结果。
第二方面,本申请实施例提供了一种检测防护系统,包括:
提取模块,用于获取待检测应用将访问数据库的请求数据,并提取所述请求数据中的SQL语句;
获取模块,用于对所述SQL语句进行词法分析,得到单词集合;
建立模块,用于根据所述单词集合建立抽象语法树;
匹配模块,用于将所述抽象语法树的各个叶子节点与预设的多条阻断规则进行匹配;
第一执行模块,用于当任意一个所述叶子节点匹配上一条所述阻断规则时,查询匹配中的所述阻断规则对应的操作类型,并对所述SQL语句执行所述操作类型对应的操作。
在其中一些实施例中,所述判断模块之后,所述第一执行模块包括:
阻断单元,用于当匹配中的所述阻断规则配置的操作类型为阻断操作时,则对所述SQL语句进行阻断;
告警单元,用于当匹配中的所述阻断规则配置的操作类型为告警操作时,则对所述SQL语句进行告警。
在其中一些实施例中,所述第一执行模块之后,所述系统还包括:
记录模块,用于记录并存储执行阻断操作或告警操作的所述SQL语句,并制成报表以展现。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的检测防护方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的检测防护方法。
相比于相关技术,本申请实施例提供的检测防护方法,通过从请求数据中提取到SQL语句,对SQL语句进行词法分析和语法分析生成抽象语法树,然后遍历抽象语法树,通过自定义设置多条阻断规则,将抽象语法树中的各个叶子节点与每条抽象语法树进行匹配,当任意一个叶子节点与其中一条阻断规则匹配时,则根据阻断规则配置的操作类型来进行执行,通过遍历抽象语法树来准确得到SQL的每一部分的具体含义,使得能够更加精准地判断出SQL注入攻击所在的位置,并执行相对应的操作类型,解决了在网页的应用程序和后台数据库中的数据进行交互时存有SQL注入漏洞,且不便于从程序代码层进行防护修改的问题,实现了对待检测系统零入侵、零修改,独立于待检测系统运行,极具灵活性,且针对陈旧应用系统,不仅无需开发人员排查及修改代码,可以开箱即用,同时对于已经存在SQL注入漏洞的系统进行防护还可节省非常可观的代码修改成本。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请第一实施例的检测防护方法的流程图;
图2是根据本申请第二实施例的检测防护方法的流程图;
图3是根据本申请第三实施例的检测防护系统的结构框图;
图4是根据本申请第四实施例的检测防护系统的结构框图;
图5是根据本申请第五实施例的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本发明第一实施例提供了一种检测防护方法。图1是根据本申请实施例的检测防护方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取待检测应用将访问数据库的请求数据,并提取所述请求数据中的SQL语句;
其中,所述SQL语句是从网站中的待检测应用程序向后台数据库进行访问时所发送的请求数据中所提取出来的,SQL语句,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存储数据以及查询、更新和管理关系数据库系统,一般而言,攻击者可以在web应用程序中事先定义好的SQL语句的结尾上添加额外的SQL语句,造成SQL注入攻击。
步骤S102,对所述SQL语句进行词法分析,得到单词集合;
其中,基于ANTLR生成相应的词法分析器和语法分析器,通过词法分析器对所述SQL语句进行词性分析,得到所述单词集合,单词集合包括了多个词法单词,每个词法单词都是通过词法分析将所述SQL语句中的某一相应的关键信息所转换的,得到的所述单词集合为语法分析提供了基础,需要说明的是,若含有非法字符无法成功进行词法分析,则说明所述SQL语句语法错误,此时直接返回相应的错误信息至应用程序,停止待检测应用向数据库进行访问的请求。
步骤S103,根据所述单词集合建立抽象语法树;
其中,读取上一步骤中所得到的所述单词集合,通过语法分析将所述单词集合作为节点建立所述抽象语法树,所述抽象语法树的每个叶子节点都代表一个词法单词,所述词法单词都是通过上述步骤中词法分析将所述SQL语句的关键信息所转换的。其中,抽象语法树简称语法树,是源代码语法结构的一种抽象表示,它以树状的形式表现编程语言的语法结构,且书上的每个节点都表示源代码中的一种结构,需要说明的是,如果本申请中,无法建立所述抽象语法树,则说明所述SQL语句语法错误,此时返回相应的错误信息至应用程序,并停止待检测应用向数据库进行访问的请求。
步骤S104,将所述抽象语法树的各个叶子节点与预设的多条阻断规则进行匹配,每个所述阻断规则配置有对应的操作类型的信息,所述操作类型包括阻断操作和告警操作中的其中一种;
其中,遍历所述抽象语法树,准确得出所述SQL语句每一个部分的具体含义,再根据用户预先定义的多条所述阻断规则来分析所述SQL语句中是否存有SQL注入风险,所述阻断规则中的对应的操作类型可以根据具体需要进行配置,所述操作类型包括阻断操作和告警操作。
步骤S105,当任意一个所述叶子节点匹配上一条所述阻断规则时,查询匹配中的所述阻断规则对应的操作类型,并对所述SQL语句执行所述操作类型对应的操作。
其中,拼接了攻击载荷的SQL语句和正常的SQL语句在结构上是有所差异的,比如树节点的增加、丢失或者树节点类型的变化等,通过将所述抽象语法树的叶子节点与多条所述阻断规则进行匹配处理,当任意一个叶子节点与其中一条阻断规则匹配时,则说明该SQL语句存有SQL注入风险,之后再根据匹配上的所述阻断规则中对应配置的操作类型对所述SQL语句执行相应的操作类型,从而实现对SQL注入的精准防护。
在本实施例中,从请求数据中提取到所述SQL语句,对所述SQL语句进行词法分析和语法分析生成所述抽象语法树,然后遍历所述抽象语法树,通过自定义设置多条所述阻断规则,将所述抽象语法树中的各个叶子节点与每条所述阻断规则进行匹配,当任意一个所述叶子节点与其中一条所述阻断规则匹配时,则根据所述阻断规则配置的操作类型来进行执行,通过遍历所述抽象语法树来准确得到SQL的每一部分的具体含义,使得能够更加精准地判断出SQL注入攻击所在的位置,并执行相对应的操作类型,解决了在网页的应用程序和后台数据库中的数据进行交互时存有SQL注入漏洞,且不便于从程序代码层进行防护修改的问题,实现了对待检测系统零入侵、零修改,独立于待检测系统运行,极具灵活性,且针对陈旧应用系统,不仅无需开发人员排查及修改代码,可以开箱即用,同时对于已经存在SQL注入漏洞的系统进行防护还可节省非常可观的代码修改成本。
在其他一些实施例中,所述将所述抽象语法树的各个叶子节点与预设的多个阻断规则进行匹配之后,所述方法还包括:
当所有所述叶子节点与各条所述阻断规则均不匹配时,则直接将所述请求数据发送至数据库进行处理,并返回查询结果。
其中,当所述抽象语法树的所有叶子节点与阻断规则不匹配时,则说明所述SQL语句中并没有拼接的额外的SQL语句,也就是说,并没有SQL注入风险,因此,应用程序将访问后台数据库所发送的所述请求数据可以执行,并返回结果至应用程序,完成查询操作。
在其他一些实施例中,所述对所述SQL语句执行所述操作类型对应的操作的步骤具体包括:
当匹配中的所述阻断规则配置的操作类型为阻断操作时,则对所述SQL语句进行阻断;
当匹配中的所述阻断规则配置的操作类型为告警操作时,则对所述SQL语句进行告警。
其中,所述阻断规则中配置的操作类型包括阻断操作和告警操作,当对所述SQL语句执行阻断操作时,则说明该SQL语句存有严重的注入攻击,当对所述SQL语句进行告警时,则说明该SQL语句所存有的注入攻击威胁系数不大,注入攻击较为轻微,当对所述SQL语句进行阻断时,则说明该SQL语句所存有的注入攻击威胁系数较大,且较为严重,通过精准判断存有SQL注入风险的所述SQL语句的威胁系数,并针对性地执行相应的操作类型,实现精准防护。
图2是根据本申请第二实施例的另一种检测防护方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取待检测应用将访问数据库的请求数据,并提取所述请求数据中的SQL语句;
步骤S202,对所述SQL语句进行词法分析,得到单词集合;
步骤S203,根据所述单词集合建立抽象语法树;
步骤S204,将所述抽象语法树的各个叶子节点与预设的多条阻断规则进行匹配,每个所述阻断规则配置有对应的操作类型的信息,所述操作类型包括阻断操作和告警操作中的其中一种;
步骤S205,当任意一个所述叶子节点匹配上一条所述阻断规则时,查询匹配中的所述阻断规则对应的操作类型,并对所述SQL语句执行所述操作类型对应的操作;
步骤S206,记录并存储执行阻断操作或告警操作的所述SQL语句,并制成报表以展现。
其中,对于每一次的执行告警操作以及阻断操作的所述SQL语句,都会被记录下来,再将记录下来的所述SQL语句制成报表进行展现,以方便运维人员查看。
在其中一些实施例中,所述对所述SQL语句进行告警的步骤包括:
将执行告警操作的所述SQL语句确定为可疑SQL语句;
发送所述请求数据至数据库进行处理,返回查询结果。
其中,在步骤S206中,所记录的执行告警操作的所述SQL语句即为所述可疑SQL语句。
本发明第三实施例还提供了一种检测防护系统,该系统用于实现上述第一实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请实施例的检测防护系统的结构框图,如图3所示,该系统包括:
提取模块10,用于获取待检测应用将访问数据库的请求数据,并提取所述请求数据中的SQL语句;
获取模块20,用于对所述SQL语句进行词法分析,得到单词集合;
建立模块30,用于根据所述单词集合建立抽象语法树;
匹配模块40,用于将所述抽象语法树的各个叶子节点与预设的多个阻断规则进行匹配;
第一执行模块50,用于当任意一个所述叶子节点匹配上一条所述阻断规则时,查询匹配中的所述阻断规则对应的操作类型,并对所述SQL语句执行所述操作类型对应的操作。
在本实施例中,从请求数据中提取到所述SQL语句,对所述SQL语句进行词法分析和语法分析生成所述抽象语法树,然后遍历所述抽象语法树,通过自定义设置多条所述阻断规则,将所述抽象语法树中的各个叶子节点与每条所述阻断规则进行匹配,当任意一个所述叶子节点与其中一条所述阻断规则匹配时,则根据所述阻断规则配置的操作类型来进行执行,通过遍历所述抽象语法树来准确得到SQL的每一部分的具体含义,使得能够更加精准地判断出SQL注入攻击所在的位置,并执行相对应的操作类型,解决了在网页的应用程序和后台数据库中的数据进行交互时存有SQL注入漏洞,且不便于从程序代码层进行防护修改的问题,实现了对待检测系统零入侵、零修改,独立于待检测系统运行,极具灵活性,且针对陈旧应用系统,不仅无需开发人员排查及修改代码,可以开箱即用,同时对于已经存在SQL注入漏洞的系统进行防护还可节省非常可观的代码修改成本。
在其他一些实施例中,所述第一执行模块50包括:
阻断单元,用于当匹配中的所述阻断规则配置的操作类型为阻断操作时,则对所述SQL语句进行阻断;
告警单元,用于当匹配中的所述阻断规则配置的操作类型为告警操作时,则对所述SQL语句进行告警。
在其他一些实施例中,所述匹配模块40之后,所述系统还包括:
第二执行模块,用于当所有所述叶子节点与各条所述阻断规则均不匹配时,则直接将所述请求数据发送至数据库进行处理,并返回查询结果。
本发明第四实施例还提供了一种检测防护系统,该系统用于实现上述第二实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的
图4是根据本申请实施例的检测防护系统的优选结构框图,如图4所示,该系统包括:
提取模块100,用于获取待检测应用将访问数据库的请求数据,并提取所述请求数据中的SQL语句;
获取模块200,用于对所述SQL语句进行词法分析,得到单词集合;
建立模块300,用于根据所述单词集合建立抽象语法树;
匹配模块400,用于将所述抽象语法树的各个叶子节点与预设的多个阻断规则进行匹配;
第一执行模块500,用于当任意一个所述叶子节点匹配上一条所述阻断规则时,查询匹配中的所述阻断规则对应的操作类型,并对所述SQL语句执行所述操作类型对应的操作;
记录模块600,用于记录并存储执行阻断操作或告警操作的所述SQL语句,并制成报表以展现。
在其他一些实施例中,所述对所述SQL语句进行告警的步骤包括:
将执行告警操作的所述SQL语句确定为可疑SQL语句;
发送所述请求数据至数据库进行处理,返回查询结果。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合图1描述的本申请实施例检测防护方法可以由计算机设备来实现。图5为根据本申请实施例的计算机设备的硬件结构示意图。
计算机设备可以包括处理器52以及存储有计算机程序指令的存储器53。
具体地,上述处理器52可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器53可以包括用于数据或指令的大容量存储器53。举例来说而非限制,存储器53可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(Solid State Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerial Bus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器53可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器53可在数据处理系统的内部或外部。在特定实施例中,存储器53是非易失性(Non-Volatile)存储器。在特定实施例中,存储器53包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random Access Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(ErasableProgrammable Read-Only Memory,简称为EPROM)、电可擦除PROM(Electrically ErasableProgrammable Read-Only Memory,简称为EEPROM)、电可改写ROM(ElectricallyAlterable Read-Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-AccessMemory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode DynamicRandom Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDate Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器53可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器52所执行的可能的计算机程序指令。
处理器52通过读取并执行存储器53中存储的计算机程序指令,以实现上述实施例中的任意一种检测防护方法。
在其中一些实施例中,计算机设备还可包括通信接口54和总线51。其中,如图5所示,处理器52、存储器53、通信接口54通过总线51连接并完成相互间的通信。
通信接口54用于实现本申请实施例中各模块、系统、单元和/或设备之间的通信。通信接口54还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线51包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线51包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线51可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线51或者两个或更多个以上这些的组合。在合适的情况下,总线51可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线51,但本申请考虑任何合适的总线51或互连。
该计算机设备可以基于获取到的计算机程序,执行本申请实施例中的检测防护方法,从而实现结合图1描述的检测防护方法。
另外,结合上述实施例中的检测防护方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种检测防护方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种检测防护方法,其特征在于,包括:
获取待检测应用将访问数据库的请求数据,并提取所述请求数据中的SQL语句;
对所述SQL语句进行词法分析,得到单词集合;
根据所述单词集合建立抽象语法树;
将所述抽象语法树的各个叶子节点与预设的多条阻断规则进行匹配,每个所述阻断规则配置有对应的操作类型的信息,所述操作类型包括阻断操作和告警操作中的其中一种;
当任意一个所述叶子节点匹配上一条所述阻断规则时,查询匹配中的所述阻断规则对应的操作类型,并对所述SQL语句执行所述操作类型对应的操作。
2.根据权利要求1所述的检测防护方法,其特征在于,所述对所述SQL语句执行所述操作类型对应的操作的步骤具体包括:
当匹配中的所述阻断规则配置的操作类型为阻断操作时,则对所述SQL语句进行阻断;
当匹配中的所述阻断规则配置的操作类型为告警操作时,则对所述SQL语句进行告警。
3.根据权利要求2所述的检测防护方法,其特征在于,所述对所述SQL语句进行告警的步骤包括:
将执行告警操作的所述SQL语句确定为可疑SQL语句;
发送所述请求数据至数据库进行处理,返回查询结果。
4.根据权利要求1所述的检测防护方法,其特征在于,所述对所述SQL语句执行所述操作类型对应的操作之后,所述方法还包括:
记录并存储执行阻断操作或告警操作的所述SQL语句,并制成报表以展现。
5.根据权利要求1所述的检测防护方法,其特征在于,所述将所述抽象语法树的各个叶子节点与预设的多个阻断规则进行匹配之后,所述方法还包括:
当所有所述叶子节点与各条所述阻断规则均不匹配时,则直接将所述请求数据发送至数据库进行处理,并返回查询结果。
6.一种检测防护系统,其特征在于,包括:
提取模块,用于获取待检测应用将访问数据库的请求数据,并提取所述请求数据中的SQL语句;
获取模块,用于对所述SQL语句进行词法分析,得到单词集合;
建立模块,用于根据所述单词集合建立抽象语法树;
匹配模块,用于将所述抽象语法树的各个叶子节点与预设的多条阻断规则进行匹配;
第一执行模块,用于当任意一个所述叶子节点匹配上一条所述阻断规则时,查询匹配中的所述阻断规则对应的操作类型,并对所述SQL语句执行所述操作类型对应的操作。
7.根据权利要求6所述的检测防护系统,其特征在于,所述第一执行模块包括:
阻断单元,用于当匹配中的所述阻断规则配置的操作类型为阻断操作时,则对所述SQL语句进行阻断;
告警单元,用于当匹配中的所述阻断规则配置的操作类型为告警操作时,则对所述SQL语句进行告警。
8.根据权利要求6所述的检测防护系统,其特征在于,所述第一执行模块之后,所述系统还包括:
记录模块,用于记录并存储执行阻断操作或告警操作的所述SQL语句,并制成报表以展现。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的检测防护方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的检测防护方法。
CN202111127555.9A 2021-09-26 2021-09-26 检测防护方法、系统、计算机设备及可读存储介质 Pending CN113886812A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111127555.9A CN113886812A (zh) 2021-09-26 2021-09-26 检测防护方法、系统、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111127555.9A CN113886812A (zh) 2021-09-26 2021-09-26 检测防护方法、系统、计算机设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN113886812A true CN113886812A (zh) 2022-01-04

Family

ID=79006731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111127555.9A Pending CN113886812A (zh) 2021-09-26 2021-09-26 检测防护方法、系统、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113886812A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115051873A (zh) * 2022-07-27 2022-09-13 深信服科技股份有限公司 网络攻击结果检测方法、装置和计算可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115051873A (zh) * 2022-07-27 2022-09-13 深信服科技股份有限公司 网络攻击结果检测方法、装置和计算可读存储介质
CN115051873B (zh) * 2022-07-27 2024-02-23 深信服科技股份有限公司 网络攻击结果检测方法、装置和计算可读存储介质

Similar Documents

Publication Publication Date Title
CN108763928B (zh) 一种开源软件漏洞分析方法、装置和存储介质
US11848913B2 (en) Pattern-based malicious URL detection
KR101724307B1 (ko) 악성코드를 검출하는 방법 및 시스템
US8635602B2 (en) Verification of information-flow downgraders
US10104063B2 (en) Android-based mobile equipment security protection method, and device
CN113489713B (zh) 网络攻击的检测方法、装置、设备及存储介质
CN109698831B (zh) 数据防护方法和装置
US10482240B2 (en) Anti-malware device, anti-malware system, anti-malware method, and recording medium in which anti-malware program is stored
Yu et al. Revisiting the description-to-behavior fidelity in android applications
US10621345B1 (en) File security using file format validation
WO2019144548A1 (zh) 安全测试方法、装置、计算机设备和存储介质
CN113055399A (zh) 注入攻击的攻击成功检测方法、系统及相关装置
CN113961930A (zh) Sql注入漏洞检测方法、装置及电子设备
CN113886812A (zh) 检测防护方法、系统、计算机设备及可读存储介质
US9398041B2 (en) Identifying stored vulnerabilities in a web service
CN111125714A (zh) 一种安全检测方法、装置及电子设备
CN115310087A (zh) 一种基于抽象语法树的网站后门检测方法和系统
CN113032836B (zh) 数据脱敏方法和装置
CN114978646A (zh) 一种访问权限确定方法、装置、设备和存储介质
CN114662097A (zh) Csv文件注入攻击的检测方法和装置、电子设备和存储介质
US10789067B2 (en) System and method for identifying open source usage
CN109413506B (zh) 一种弹幕数据的校验方法、装置、终端及存储介质
CN104462966B (zh) Pdf中触发漏洞威胁的检测方法及装置
CN104239800B (zh) Pdf中触发漏洞威胁的检测方法及装置
CN113852638B (zh) 一种攻击检测方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination