CN109992989A - 使用抽象语法树的用于查询注入检测的系统 - Google Patents

使用抽象语法树的用于查询注入检测的系统 Download PDF

Info

Publication number
CN109992989A
CN109992989A CN201811150820.3A CN201811150820A CN109992989A CN 109992989 A CN109992989 A CN 109992989A CN 201811150820 A CN201811150820 A CN 201811150820A CN 109992989 A CN109992989 A CN 109992989A
Authority
CN
China
Prior art keywords
syntax tree
abstract syntax
inquiry
list
equipment
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.)
Granted
Application number
CN201811150820.3A
Other languages
English (en)
Other versions
CN109992989B (zh
Inventor
F·贾斯
F·宫
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.)
Cp Holt Co
Original Assignee
Cp Holt Co
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 Cp Holt Co filed Critical Cp Holt Co
Publication of CN109992989A publication Critical patent/CN109992989A/zh
Application granted granted Critical
Publication of CN109992989B publication Critical patent/CN109992989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24565Triggers; Constraints

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种设备可以包括:一个或多个存储器;以及一个或多个处理器,通信地耦合到一个或多个存储器,用于接收针对由数据库存储的数据的查询;基于查询来生成抽象语法树;确定抽象语法树是否与列表相匹配,其中列表标识与查询或查询类型相对应的一个或多个抽象语法树;以及基于抽象语法树是否与列表的条目相匹配,来选择性地执行动作。

Description

使用抽象语法树的用于查询注入检测的系统
背景技术
随着计算机网络增长以及由这些网络互连的计算机和数据库上 存储的数据量增长,因此具有获取对这些计算机和数据库的未授权 访问的尝试。针对关系数据库(诸如结构化查询语言(SQL)数据 库)的一种类别的攻击是注入攻击。在注入攻击中,攻击者将恶意的SQL查询序列注入到数据库服务器中,以在数据库服务器上实现 代码注入或恶意动作。攻击可以通过被危害的web应用服务器来发 起。注入攻击是关系数据库的显著漏洞,因为一些当前的系统可能 无法检测到在序列中的数据库查询,该序列导致意外的或未授权的数据库访问。
附图说明
图1是本文描述的示例实施方式的概览的示图;
图2是本文描述的系统和/或方法可以实施在其中的示例环境的 示图;
图3是图2的一个或多个设备的示例组件的示图;
图4是用于基于抽象语法树来处理关系数据库查询的示例过程 的流程图;以及
图5图示了分析设备的示例实施例。
具体实施方式
示例实施方式的以下详细描述参考附图。不同附图中的相同参 考标号可以标识相同或相似的元素。
关系数据库服务器(诸如SQL服务器)可能易受恶意攻击(诸 如注入攻击)的危害。在注入攻击中,实体可能获取对数据库的访 问,然后可以向数据库查询大量记录以期获得客户信息,诸如联系 信息、财务信息、密码信息、和/或类似物。检测注入攻击以便防止 敏感信息被盗可能是有益的。然而,归因于用来执行注入攻击的查 询的结构、语法和内容上的细微差异,可能难以先验地定义用于检 测注入攻击的有用规则。例如,这些细微差异可能使得有必要创建 过于繁重的数目的规则,并且应用如此大量的规则可能创建显著的 负荷。
本文描述的一些实施方式可以基于抽象语法树来提供对(例如, 与注入攻击相关联的)恶意查询的检测。例如,本文描述的一些实 施方式可以基于查询来生成抽象语法树,可以对照抽象语法树白名 单来检查抽象语法树,并且当抽象语法树未由白名单标识时,可以 执行动作。当确定查询不是恶意的时,查询可以被添加到白名单。 以这种方式,抽象语法树被用来检测异常查询,其可以比用于检测 异常查询的其他方法(诸如统计方法和/或类似物)更灵活且计算更 有效率。此外,抽象语法树使得能够使用查询与白名单条目之间的 基于阈值的相似性比较、查询与白名单条目之间的加权比较、和/或 类似物,由此增加本文描述的实施方式的多功能性和有效性,并且 基于与白名单的不精确匹配而减少误报(false positive)。
图1是本文描述的示例实施方式100的概览的示图。如所示出的, 实施方式100包括分析设备110(例如,关于图2和图5更详细描述 的分析设备220)和安全服务器120(例如,关于图2更详细描述的 安全服务器210)。
如参考标号130示出的,分析设备110可以从客户端设备接收 查询。例如,该查询可以包括SQL查询,但是该查询可以包括任何 查询(例如,针对关系数据库的查询或另外类型的查询)。如参考 标号140示出的,如本文其他地方更详细描述的,分析设备110可 以生成抽象语法树。如参考标号150示出的,分析设备110可以将 抽象语法树与白名单相比较。例如,白名单可以标识用于如下的查 询的抽象语法树,这些查询被认为可允许用于存储设备的处理。在 一些实施方式中,如下面更详细描述的,白名单可以在遇到可允许 的查询时被填充。
如参考标号160示出的,如本文其他地方更详细描述的,分析 设备110可以确定抽象语法树与白名单不匹配。如参考标号170示 出的,基于抽象语法树与白名单不匹配,分析设备110可以执行一 个或多个动作。例如,分析设备110可以通知与安全服务器120相 关联的管理员。作为另一示例,分析设备110可以阻挡查询的源(例 如,客户端设备240)。在一些实施方式中,如本文其他地方更详细 描述的,分析设备110可以执行另外的动作。
以这种方式,分析设备110使用抽象语法树来检测异常查询, 其可以比用于检测异常查询的其他方法(诸如统计方法和/或类似物) 更灵活且计算更有效率。此外,抽象语法树使得能够使用查询与白 名单条目之间的基于阈值的相似性比较、查询与白名单条目之间的 加权比较、和/或类似物,由此增加本文描述的实施方式的多功能性 和有效性,并且基于与白名单的不精确匹配而减少误报。
如上面指出的,图1被提供仅作为示例。其他示例是可能的并 且可以不同于关于图1描述的示例。
图2是本文描述的系统和/或方法可以实施在其中的示例环境 200的示图。如图2中示出的,环境200可以包括安全服务器210、 分析设备220、存储设备230、客户端设备240和网络250。环境200 的设备可以经由有线连接、无线连接、或者有线连接和无线连接的 组合而互连。
安全服务器210包括一个或多个设备,该一个或多个设备能够 接收、生成、存储、处理、和/或提供查询和与查询相关联的信息, 诸如描述查询的抽象语法树、与查询相关联的抽象语法树的白名单、 和/或类似信息。例如,安全服务器210可以包括网络设备(例如,防火墙、路由器、网关、交换机、集线器、网桥、反向代理、服务 器(例如,代理服务器)、安全设备、入侵检测设备、负载平衡器、 或类似设备)、服务器设备、和/或类似物。在一些实施方式中,安 全服务器210可以包括与存储设备230的管理员相关联的一个或多 个设备和/或与存储设备230相关联的数据库。例如,安全服务器210 可以包括用户设备(例如,智能电话、膝上型计算机、平板计算机、 手持式计算机、和/或类似物)或类似设备。
分析设备220包括一个或多个设备,该一个或多个设备能够收 集、接收和/或分析在去往存储设备230途中的查询。例如,分析设 备220可以包括网络设备(例如,防火墙、路由器、网关、交换机、 集线器、网桥、反向代理、服务器(例如,代理服务器)、安全设 备、入侵检测设备、负载平衡器、或类似设备)。在一些实施方式 中,环境200可以包括多个不同的分析设备220。在一些实施方式中, 分析设备220可以被包括在安全服务器210中,或安全服务器210 可以被包括在分析设备220中。在一些实施方式中,如本文其他地 方更详细描述的,分析设备220可以包括一个或多个收集器。
存储设备230包括存储设备,诸如服务器设备、用户设备(例 如,个人计算机、膝上型计算机、和/或类似物)、或能够存储数据 库(诸如关系数据库)的另外的设备。存储设备230可以存储数据 库,并且可以基于从另一设备(例如,客户端设备240、安全服务器 210等)接收的查询而从数据库提供数据。在一些实施方式中,环境 200可以包括多个不同的存储设备230。
客户端设备240包括能够提交查询(诸如关系数据库查询)的 一个或多个设备。例如,客户端设备240可以包括网络设备、用户 设备(例如,智能电话、膝上型计算机、平板计算机、手持式计算 机、和/或类似物)、服务器设备、僵尸网络、被劫持的设备、和/ 或类似物。
网络250包括一个或多个有线网络和/或无线网络。例如,网络 250可以包括蜂窝网络(例如,长期演进(LTE)网络、码分多址 (CDMA)网络、3G网络、4G网络、5G网络、另一类型的下一代 网络等)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网 (WAN)、城域网(MAN)、电话网络(例如,公共交换电话网络(PSTN))、私有网络、自组织网络、内联网、互联网、基于光纤 的网络、云计算网络、或类似物、和/或这些或其他类型的网络的组 合。
图2中示出的设备和网络的数目和布置被提供作为示例。在实 践中,与图2中示出的那些相比,可以存在另外的设备和/或网络、 更少的设备和/或网络、不同的设备和/或网络、或者不同地布置的设 备和/或网络。此外,图2中示出的两个或更多个设备可以被实施在 单个设备中,或者图2中示出的单个设备可以被实施为多个分布式 设备。另外地或替换地,环境200的设备集合(例如,一个或多个 设备)可以执行被描述为由环境设备200的另一设备集合执行的一 个或多个功能。
图3是设备300的示例组件的示图。设备300可以对应于安全 服务器210、分析设备220、存储设备230和客户端设备240。在一 些实施方式中,安全服务器210、分析设备220、存储设备230和/ 或客户端设备240可以包括一个或多个设备300和/或设备300的一 个或多个组件。如图3中示出的,设备300可以包括总线310、处理 器320、存储器330、存储组件340、输入组件350、输出组件360 和通信接口370。
总线310包括允许设备300的组件之间的通信的组件。处理器 320以硬件、固件、或硬件和软件的组合来实施。处理器320是中央 处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、 微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列 (FPGA)、专用集成电路(ASIC)、或另外类型的处理组件。在一 些实施方式中,处理器320包括能够被编程为执行功能的一个或多 个处理器。存储器330包括随机访问存储器(RAM)、只读存储器(ROM)、和/或存储用于由处理器320使用的信息和/或指令的另外 类型的动态或静态存储设备(例如,闪存、磁存储器、和/或光存储 器)。
存储组件340存储与设备300的操作和使用有关的信息和/或软 件。例如,存储组件340可以包括硬盘(例如,磁盘、光盘、磁光 盘、和/或固态盘)、紧致盘(CD)、数字多功能盘(DVD)、软盘、 盒式磁带、磁带、和/或另外类型的非暂态计算机可读介质、以及对 应的驱动器。
输入组件350包括允许设备300接收信息的组件,诸如经由用 户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关、 和/或麦克风)。另外地或替换地,输入组件350可以包括用于感测 信息的传感器(例如,全球定位系统(GPS)组件、加速度计、陀螺 仪、和/或致动器)。输出组件360包括从设备300提供输出信息的 组件(例如,显示器、扬声器、和/或一个或多个发光二极管(LED))。
通信接口370包括类似收发器的组件(例如,收发器和/或分离 的接收器和发射器),其使得设备300能够与其他设备通信,诸如 经由有线连接、无线连接、或有线连接和无线连接的组合。通信接 口370可以允许设备300从另一设备接收信息,和/或向另一设备提供信息。例如,通信接口370可以包括以太网接口、光学接口、同 轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、 Wi-Fi接口、蜂窝网络接口、或类似物。
设备300可以执行本文描述的一个或多个过程。设备300可以 基于处理器320执行由非暂态计算机可读介质(诸如存储器330和/ 或存储组件340)存储的软件指令来执行这些过程。计算机可读介质 在本文中被定义为非暂态存储器设备。存储器设备包括单个物理存 储设备内的存储器空间或跨多个物理存储设备散布的存储器空间。
软件指令可以经由通信接口370从另一计算机可读介质或从另 一设备被读取到存储器330和/或存储组件340中。当被执行时,存 储器330和/或存储组件340中存储的软件指令可以使得处理器320 执行本文描述的一个或多个过程。另外地或替换地,可以使用硬连 线电路代替软件指令或与之组合,以执行本文描述的一个或多个过 程。因此,本文描述的实施方式不限于硬件电路和软件的任何特定 组合。
图3中示出的组件的数目和布置被提供作为示例。在实践中, 设备300可以包括与图3中示出的那些相比另外的组件、更少的组 件、不同的组件、或不同地布置的组件。另外地或替换地,设备300 的组件集合(例如,一个或多个组件)可以执行被描述为由设备300的另一组件集合执行的一个或多个功能。
图4是用于基于抽象语法树来处理关系数据库查询的示例过程 400的流程图。在一些实施方式中,图4的一个或多个过程框可以由 分析设备220来执行。在一些实施方式中,图4的一个或多个过程 框可以由与分析设备220分离或包括分析设备220的另一设备或一 组设备(诸如安全服务器210、存储设备230、和/或客户端设备240) 来执行。
如图4中示出的,过程400可以包括:接收针对由数据库存储 的数据的查询(框410)。例如,分析设备220可以接收去往存储数 据库的存储设备230途中的查询。在一些实施方式中,分析设备220 可以从客户端设备240接收查询。例如,分析设备220可以接收(例如,拦截、检测等)在从客户端设备240到存储设备230途中的查 询。
在一些实施方式中,查询可以包括关系数据库查询,诸如SQL 查询或针对另一关系数据库语言的查询。然而,本文描述的实施方 式不必然限于涉及针对关系数据库的查询的那些实施方式,并且可 以被实施用于任何类型的查询。如下面更详细描述的,分析设备220 可以接收查询以确定查询是否异常。例如,在一些情况下,恶意实 体可以穿透一个或多个安全层以获取对存储设备230的访问。在这 种情况下,恶意实体可能想要访问由存储设备230存储的记录。例 如,恶意实体可能想要访问大量敏感信息、特定类型的信息(例如,联系信息、密码、密码哈希、银行信息、财务信息、医疗信息、选 民记录等)、或由数据库存储的某种其他类型的信息。恶意实体可 以提供查询以访问该信息。
如图4中进一步示出的,过程400可以包括:基于查询来生成 抽象语法树(框420)。例如,分析设备220可以基于查询来生成抽 象语法树。抽象语法树(有时缩写为AST)是代码的抽象语法结构 的树表示。抽象语法树的每个节点可以标示在代码中出现的构造。 这里,代码是由分析设备220接收的查询。在一些实施方式中,分 析设备220可以能够有效地生成抽象语法树,因为生成抽象语法树 已经是分析设备220可以针对查询执行的处理过程的一部分。因此, 与检测异常查询的其他技术(诸如统计方法和/或类似物)相比,本 文描述的实施方式可以不是计算繁重的。
在一些实施方式中,分析设备220可以确定是否要针对查询生 成抽象语法树。例如,分析设备220可以基于查询的源来确定是否 要生成抽象语法树(例如,可以基于查询来自特定源来确定要生成 抽象语法树,或者可以基于查询来自特定源来确定不生成抽象语法 树)。作为另一示例,分析设备220可以基于(例如,来自特定源 或源集合的)特定数目的查询在阈值时间量中被接收,来确定是否 要生成抽象语法树。例如,当特定数目的查询已经在阈值时间量中 从特定源或源集合被接收时,分析设备220可以针对一个或多个查 询生成抽象语法树。
由于各种原因,生成抽象语法树对于分析设备220可能是有益 的。例如,并且如上面描述的,分析设备220在生成抽象语法树时 可以是有效率的,因为分析设备220在处理查询时可能已经使用抽 象语法树。这也意味着,不需要定义用于生成数据结构以标识异常查询的新过程或技术,这节省了分析设备220的开发时间和资源。 此外,并且如下面更详细描述的,抽象语法树允许分析设备220在 查询之间进行基于阈值的比较,从而与列入白名单的查询具有阈值 相似性的查询可以容易地被标识。更进一步地,抽象语法树可以计 入查询之间的细微差异,这些细微差异可能挫败(foil)基于规则的 先验定义的异常查询检测系统。
如图4中进一步示出的,过程400可以包括:确定抽象语法树 是否与列表相匹配(框430)。例如,分析设备220可以确定抽象语 法树是否与列表的条目相匹配。列表可以标识抽象语法树。例如, 列表可以是与可允许的查询相对应的抽象语法树的白名单。尽管本文描述的实施方式有时关于列表来描述,但是任何数据结构可以用 来存储或标识与查询相对应的抽象语法树(例如,图形数据结构、 关系数据结构等)。
在一些实施方式中,分析设备220可以存储列表。这可以节省 网络资源,并且减少与检查由另一设备存储的列表相关联的时延。 在一些实施方式中,另一设备(例如,安全服务器210、存储设备 230等)可以存储列表。这可以节省分析设备220的本地存储资源。 在一些实施方式中,安全服务器210可以存储列表,并且可以向分 析设备220提供关于列表的定期更新。以这种方式,列表的中央存 储库可以被维护,而使得能够添加与从许多不同的分析设备220接 收的查询有关的列表条目。
在一些实施方式中,列表可以标识与白名单相关联的抽象语法 树(例如,与可允许的查询相关联的抽象语法树)。使用白名单来 标识抽象语法树查询可以允许随着遇到更多可允许的查询(例如, 基于管理员批准查询)的对白名单的适应性更新。这可能比尝试使用先验规则来定义黑名单更有效率,因为语法中的变化可能会使黑 名单失效。在一些实施方式中,列表可以标识与将被拒绝或标记用 于通知的查询相关联的抽象语法树(例如,与黑名单或灰名单相关 联的抽象语法树)。例如,黑名单可以标识如下的抽象语法树:对 于该抽象语法树,客户端设备240(从其接收到列入黑名单的查询) 应当被阻挡。在一些实施方式中,列表可以标识列入白名单的抽象 语法树和列入黑名单或列入灰名单的抽象语法树。
在一些实施方式中,分析设备220可以基于阈值来确定抽象语 法树是否与列表相匹配。例如,分析设备220可以将抽象语法树与 列表的一个或多个抽象语法树相比较。当抽象语法树与一个或多个 抽象语法树之间的相似性得分满足阈值时,分析设备220可以确定抽象语法树与列表相匹配。当相似性得分不满足阈值时,分析设备220可以确定抽象语法树与列表不匹配。使用阈值可以进一步改善异 常查询的标识的鲁棒性,并且可以基于标识与白名单不精确匹配的 查询而减少否则可能引发的处理器使用。
如图4中进一步示出的,过程400可以包括:基于抽象语法树 是否与列表相匹配来选择性地执行动作(框440)。例如,分析设备 220可以基于抽象语法树是否与列表(例如,列表的任何条目)相匹 配来执行动作。作为示例,假定列表是白名单。在该情况下,当抽 象语法树与列表相匹配时,分析设备220可以将查询转发到存储设 备230,用于提供与查询相关联的数据。此外,当抽象语法树与列表 不匹配时,分析设备220可以执行另一动作,诸如通知管理员,将 查询提供给安全服务器210,标记查询用于(例如,由管理员)审核, 阻挡从其接收到查询的客户端设备240,隔离存储设备230,和/或类 似物。作为另一示例,假定列表是黑名单。当抽象语法树与列表相 匹配时,分析设备220可以执行动作,诸如通知管理员,标记查询 用于(例如,由管理员)审核,阻挡从其接收到查询的客户端设备 240,隔离存储设备230,和/或类似物。在一些实施方式中,安全服 务器210可以执行该动作。例如,分析设备220可以确定查询与白 名单不匹配,并且可以将查询提供给安全服务器210用于确定要执 行的动作。
在一些实施方式中,分析设备220可以更新列表和/或用于确定 抽象语法树是否与列表相匹配的标准。例如,当列表是白名单时, 并且当用于该查询的抽象语法树与列表不匹配且稍后(例如,由管 理员)被批准为可允许时,分析设备220可以将用于该查询的抽象 语法树添加到列表。另外地或替换地,分析设备220可以更新用来 确定抽象语法树是否与列表相匹配的阈值。例如,如果基于特定查 询(例如,抽象语法树)不满足阈值,特定查询(例如,抽象语法 树)被确定为与白名单不匹配,并且稍后被确定为可允许,则分析 设备220可以调整阈值。
在一些实施方式中,分析设备220可以基于使用机器学习技术 确定的模型,来确定抽象语法树是否与列表相匹配,和/或可以确定 要执行的动作。例如,分析设备220可以基于抽象语法树(例如, 查询)和对应的分类(例如,可允许的或不可允许的)的训练集合,来确定和/或训练模型。在一些实施方式中,分析设备220可以基于 抽象语法树(例如,查询)和关于抽象语法树要执行的对应动作, 来训练模型。分析设备220可以使用模型来确定查询是否为可允许 的,和/或关于查询要执行的动作。在一些实施方式中,分析设备220 可以更新模型。例如,分析设备220可以接收反馈,该反馈有关于 查询是否被正确分类和/或动作是否被正确标识。分析设备220可以 基于反馈,使用机器学习技术来更新用来确定分类和/或动作的参数。 以这种方式,机器学习技术可以用来确定分类和/或动作,这改善了分析设备220的鲁棒性,并且随着时间的推移提高了查询的分类的 准确性。
在一些实施方式中,安全服务器210可以被配置为检测对数据 库服务器的未授权访问。对于一种实施例,安全服务器210从一个 或多个数据收集器(例如,分析设备220)接收被寻址到一个或多个 数据库服务器的查询。数据收集器可以驻留在网络设备内或与网络 设备处于通信中,网络设备诸如入侵防御系统(IPS)收集器、防火 墙、互联网内容适配协议(ICAP)/Web缓存通信协议(WCCP)收 集器、milter邮件插件收集器、交换机收集器、和/或接入点。在一 些实施方式中,收集器和网络设备可以是两个单独的数字设备(例 如,参见F/W收集器和IDS收集器)。对于各种实施例,如关于图 2更详细描述的,数据收集器可以驻留在数据库服务器内。
对于一种实施例,数据收集器可以在通信网络内的一个或多个 点处。数据收集器,其例如可以包括tap端口或span端口(例如, 交换机处的span端口IDS收集器),被配置为拦截来自网络的网络 数据。数据收集器可以被配置为检测去往数据库服务器的一个或多 个查询。例如,数据收集器被配置为基于数据分组中的目的地地址、 头部信息、或其他信息来检测一个或多个查询。对于一种实施例, 数据收集器被配置为标记去往数据库服务器的一个或多个查询用于 进一步处理。
根据一种实施例,数据收集器(例如,分析设备220)被配置为: 在将一个或多个查询标记为可疑和/或将一个或多个查询提供给安全 服务器之前,对一个或多个查询进行过滤。数据收集器被配置为: 通过针对在注册阶段期间接收的每个查询生成抽象语法树,来对一 个或多个查询进行过滤。数据收集器被配置为基于在注册阶段期间 接收的每个查询来生成AST白名单。AST白名单包括AST集合,该 AST集合包括针对在注册阶段期间接收的每个查询生成的AST。对 于各种实施例,在注册阶段期间接收的所有请求被认为是合法请求。对于其他实施例,安全服务器被配置为:基于在注册阶段期间从一 个或多个数据收集器接收的一个或多个查询,来生成AST白名单。
数据收集器可以被配置为在检测阶段中操作。在检测阶段期间, 数据收集器被配置为对照AST白名单来分析查询。对于各种实施例, 数据收集器被配置为:通过针对每个查询生成AST,并且将生成的 AST与AST白名单中包括的AST进行匹配,来分析查询。如果用于该查询的AST与白名单中包括的AST中的至少一个AST不匹配, 则查询被标记(例如,标记为可疑或异常)。对于各种实施例,由 数据收集器标记的查询被传输到安全服务器用于分析。对于一些实 施例,数据收集器隔离每个被标记的查询,直到从安全服务器508 发送更新。
数据收集器可以被配置为:通过比较AST以找到AST的每个子 树与AST白名单中包括的一个AST的精确匹配,来将所接收的查询 的所生成的AST匹配到与AST白名单中的AST。对于一些实施例, 数据收集器可以被配置为:通过比较所生成的AST以找到所生成的 AST与AST白名单中包括的一个AST的部分匹配,来将所接收的查 询的所生成的AST匹配到AST白名单中的AST。例如,如果AST 的一个或多个子树完全匹配,而AST的其他子树可能要求部分匹配 或者可以被忽略,则可以确定匹配。在一个示例中,如果生成的AST 的子树的至少一部分与AST白名单中的AST匹配,则可以确定匹配。
对于各种实施例,数据收集器可以被配置为将查询划分为一个 或多个类别,每个类别具有对应的AST白名单。部分匹配和类别的 使用提供了跨不同应用检测更多具体异常的益处,这导致更好的异 常检测。
查询类别的示例是SELECT查询。除了各种行选择条件之外, SELECT查询还包含要检索的列的列表。从安全性视角来看,列的列 表中的改变可能是相关的,而行选择条件中的改变可能不相关,因 为前者反映对查询的定性改变,而后者反映定量改变。因此,数据收集器可以被配置为,针对SELECT查询,匹配与列改变相对应的 所生成的AST的部分。如果SELECT查询的一部分与SELECT查询 类别中的AST白名单中的所生成的AST的一部分不匹配,则数据收 集器可以被配置为标记查询和/或生成警报。然而,给出匹配的列集 合的行选择条件中的不匹配可能不会导致数据收集器标记查询并且 生成警报。
查询类别的另一示例是web应用查询。由于web应用包含固定 数目的查询模式,所以AST白名单被生成以覆盖用于web应用的查 询模式。该方法具有如下的益处:提供了检测在注册阶段期间未看 到的定性地不同的查询的能力。该方法的另一益处是,不像用于确定异常的统计方法,如果查询仅导致定量差异(例如,查询中相同 种类的数据的更多或更少的行),则该方法将不会生成误报。
对于各种实施例,数据收集器(或与数据收集器相关联的代理) 可以被配置为从安全服务器508接收对AST白名单的更新。安全服 务器508可以被配置为分析由数据收集器标记的一个或多个查询。 如果由数据收集器标记的一个或多个查询被确定是值得信任的,也 即,不是恶意的,则安全服务器被配置为向网络中的一个或多个数 据收集器传输对AST白名单的更新。
网络设备包括被配置为通过网络来接收和提供数据的任何设 备。网络设备的示例包括但不限于路由器、网桥、安全器具、防火 墙、web服务器、邮件服务器、无线接入点(例如,热点)、以及 交换机。
尽管图4示出了过程400的示例框,但是在一些实施方式中, 过程400可以包括与图4中描绘的那些相比另外的框、更少的框、 不同的框、或者不同地布置的框。另外地或替换地,过程400的框 中的两个或更多个框可以并行执行。
图5图示了分析设备220的示例实施例。根据一种实施例,该 系统包括一个或多个处理单元(处理器)504、一个或多个通信接口 506、存储器508、以及用于互连这些组件的一个或多个通信总线510。 系统502可以可选地包括用户接口或报告模块526,用户接口或报告 模块526包括显示设备528、键盘530、触摸屏532、和/或其他输入 /输出设备。存储器508可以包括高速随机访问存储器,并且还可以 包括非易失性存储器,诸如一个或多个磁或光存储盘。存储器508 可以包括远离处理器504定位的大容量存储装置。此外,存储器508 或者替换地是存储器508内的一个或多个存储设备(例如,一个或 多个非易失性存储设备)包括计算机可读存储介质。存储器508可 以存储以下元件或这样的元件的子集或超集:操作系统512、网络通 信模块514、收集模块516、数据标记模块518和报告模块520。操 作系统512包括用于处理各种基本系统服务和用于执行硬件相关任 务的过程。网络通信模块514(或指令)用于经由一个或多个通信接 口506和一个或多个通信网络(诸如互联网、其他广域网、局域网、 城域网、以及其他类型的网络)将系统连接到其他计算机、客户端、 对等端、系统、数据库或设备。
收集模块516(或指令)使用包括本文描述的那些技术在内的技 术,来检测对数据库的一个或多个查询、网络流量模式、实时观测、 受危害实体的指示符、以及其他可疑数据。此外,收集模块516被 配置为从一个或多个源接收网络数据(例如,潜在的可疑数据)。网络数据是在网络上从一个数字设备提供给另一数字设备的数据或 网络流量。收集模块516可以使用包括本文描述的那些技术在内的 技术,基于例如白名单、黑名单、启发式分析、统计分析、规则、 或其他确定,来将查询标记为可疑数据。在一些实施例中,源包括 被配置为接收网络数据(诸如对数据库的查询)的数据收集器。例 如,防火墙、IPS、服务器、路由器、交换机、接入点和类似物可以, 个体地或共同地,用作或包括数据收集器。数据收集器可以向收集 模块516转发网络数据,诸如对数据库的查询。
对于一种实施例,数据收集器使用包括本文描述的那些技术在 内的技术,在向收集模块516提供一个或多个查询之前,对一个或 多个查询进行过滤。例如,数据收集器可以被配置为使用包括本文 描述的那些技术在内的技术,来收集或拦截一个或多个查询。在一些实施例中,数据收集器可以被配置为遵循所配置的规则。例如, 如果查询中的一个或多个查询被定向在两个已知且值得信任的源之 间(例如,数据在白名单上的两个设备之间被传送),则数据收集 器可以不收集该一个或多个查询。在各种实施例中,规则可以用来 定义要分析的一个或多个查询类别。在一些实施例中,规则可以被 配置为以攻击或有效载荷的类别为目标。在一些实施例中,该系统 可以作出推荐(例如,经由报告模块526)和/或配置用于收集模块 516和/或数据收集器的规则。本领域的技术人员将明白,数据收集 器可以包括与何时收集数据或收集什么数据有关的任何数目的规 则。
对于一种实施例,位于网络中的各种位置的数据收集器可以不 执行与所收集的数据是可疑的还是值得信任的有关的任何评估或确 定。例如,数据收集器可以收集所有接收到的查询,并且将收集的 查询提供给收集模块516,收集模块516可以使用包括本文描述的那 些技术在内的技术来执行分析和/或过滤。
数据标记模块518(或指令)可以使用包括本文描述的那些技术 在内的技术来分析数据,和/或对由收集模块516和/或数据收集器接 收到的所收集的一个或多个查询执行一个或多个评估,以确定拦截 的一个或多个查询是否为对数据库的未授权访问。数据标记模块518 可以使用包括本文描述的那些技术在内的技术、规则和其他分析技 术来应用匹配抽象语法树,以确定所收集的一个或多个查询是否应 当被标记为对数据库的未授权访问。
对于一种实施例,收集的查询可以初始地被标识为对数据库的 未授权访问,直到以其他方式确定(例如,与白名单相关联)或启 发法找不到一个或多个查询应当被标记的原因。数据标记模块518 可以使用包括本文描述的那些技术在内的技术来执行分组分析,以 查找头部、脚部(footer)、目的地IP、源IP、有效载荷、以及类似 物中的可疑特性。本领域的技术人员将明白,数据标记模块518可 以执行启发式分析、统计分析、和/或签名标识(例如,基于签名的 检测涉及在所收集的数据的代码内搜索可疑数据的已知模式),以 确定收集的一个或多个查询是否为对数据库的未授权访问。基于机 器学习的分类模型也可以被应用于该确定。
数据标记模块518可以驻留在数据收集器处、在系统处、部分 在数据收集器处、部分在安全服务器处、或者在网络设备上。例如, 路由器可以包括数据收集器和数据标记模块518,其被配置为对收集 的查询执行一个或多个启发式评估。软件定义网络(“SDN”)交换机是被配置为实施数据标记和对功能进行过滤的网络设备的示 例。如果所收集的一个或多个查询被确定为是对数据库的未授权访 问,则路由器可以将所收集的查询定向到安全服务器。
对于一种实施例,数据标记模块518可以被更新。在一个示例 中,安全服务器可以提供用于抽象语法树白名单的条目、用于黑名 单的条目、启发式算法、统计算法、更新的规则、和/或新签名,以 帮助数据标记模块518确定查询是否为对数据库的未授权访问。抽 象语法树白名单、用于白名单的条目、黑名单、用于黑名单的条目、 启发式算法、统计算法、和/或新签名可以由一个或多个安全服务器 生成(例如,经由报告模块520)。
报告模块520(或指令)被配置为基于例如从数据收集器接收的 一个或多个警报,来生成抽象语法树白名单。此外,报告模块520 被配置为生成如本文描述的对抽象语法树白名单的更新。
如上面指出的,图5被提供作为示例。其他示例是可能的并且 可以不同于关于图5描述的示例。
以这种方式,分析设备220使用抽象语法树来检测异常查询, 其可以比用于检测异常查询的其他方法(诸如统计方法和/或类似物) 更灵活且计算更有效率。此外,抽象语法树使得能够使用查询与白 名单条目之间的基于阈值的相似性比较、查询与白名单条目之间的 加权比较、和/或类似物,由此增加本文描述的实施方式的多功能性 和有效性,并且基于与白名单的不精确匹配而减少误报。
根据一些实施例,提供了一种设备,所述设备包括:一个或多 个存储器;以及一个或多个处理器,通信地耦合到所述一个或多个 存储器,用于:接收针对由数据库存储的数据的查询;基于所述查 询来生成抽象语法树;确定所述抽象语法树是否与列表相匹配,其中所述列表标识与查询或查询类型相对应的一个或多个抽象语法 树;以及基于所述抽象语法树是否与所述列表相匹配,来选择性地 执行动作。
在一些实施例中,所述列表标识可允许的查询或查询类型。
在一些实施例中,所述一个或多个处理器在执行所述动作时用 于:基于确定所述抽象语法树与所述列表相匹配,来提供所述查询 用于与所述数据库一起使用。
在一些实施例中,所述一个或多个处理器在执行所述动作时用 于:基于所述抽象语法树与所述列表不匹配,来通知管理员或阻挡 从其接收到所述查询的客户端设备。
在一些实施例中,所述一个或多个处理器用于:接收关于所述 查询的反馈;以及基于所述反馈来更新所述列表。
在一些实施例中,所述一个或多个处理器在确定所述抽象语法 树是否与所述列表相匹配时用于:基于阈值来确定所述抽象语法树 是否与所述列表相匹配,所述阈值基于所述抽象语法树与所述列表 的一个或多个条目的比较。
在一些实施例中,所述一个或多个处理器进一步用于:确定所 述抽象语法树是否将针对所述查询被生成;以及其中所述一个或多 个处理器在基于所述查询来生成所述抽象语法树时用于:基于确定 所述抽象语法树将针对所述查询被生成,来生成所述抽象语法树。
根据一些实施例,提供了一种存储指令的非暂态计算机可读介 质,所述指令包括:一个或多个指令,所述一个或多个指令在由一 个或多个处理器执行时,使得所述一个或多个处理器:接收针对由 数据库存储的数据的查询;基于所述查询来生成抽象语法树;确定 所述抽象语法树是否与列表相匹配,其中所述列表标识与可允许的 查询或查询类型相对应的一个或多个抽象语法树;以及基于确定所 述抽象语法树与所述列表相匹配来执行动作。
在一些实施例中,所述确定基于所述抽象语法树与所述列表的 条目之间的部分匹配。
在一些实施例中,所述动作包括阻挡所述查询的源。
在一些实施例中,所述动作包括向设备提供通知。
在一些实施例中,所述通知包括所述查询。
在一些实施例中,所述一个或多个指令在由所述一个或多个处 理器执行时,使得所述一个或多个处理器:接收标识所述列表的信 息,其中所述列表定期被更新。
在一些实施例中,所述动作包括使得存储所述数据库的设备被 隔离。
根据一些实施例一种方法,所述方法包括:由设备接收针对由 数据库存储的数据的查询;由所述设备基于所述查询来生成抽象语 法树;由所述设备确定所述抽象语法树是否与列表相匹配,其中所 述列表标识与查询或查询类型相对应的一个或多个抽象语法树;以 及选择性地:当所述抽象语法树与所述列表相匹配时,提供所述查 询用于所述数据的提供,或者当所述抽象语法树与所述列表不匹配 时,通知另外的设备。
在一些实施例中,所述确定基于所述抽象语法树与所述一个或 多个抽象语法树的相似性是否满足阈值。
在一些实施例中,所述方法进一步包括:基于反馈来调整所述 阈值,所述反馈与所述抽象语法树是否与所述列表相匹配的所述确 定有关。
在一些实施例中,所述查询包括结构化查询语言(SQL)查询。
在一些实施例中,所述方法进一步包括:基于确定所述抽象语 法树与所述列表不匹配,来存储或阻挡一个或多个其他查询。
在一些实施例中,所述方法进一步包括:基于接收到指示所述 查询是可允许的信息,来将所述抽象语法树添加到所述列表。
前述公开内容提供说明和描述,但并非旨在穷举或将实施方式 限于所公开的精确形式。修改和变化鉴于上述公开内容而是可能的, 或者可以从实施方式的实践中获取。
如本文使用的,术语“组件”旨在宽泛地解释为硬件、固件、 或硬件和软件的组合。
本文关于阈值描述了一些实施方式。如本文使用的,满足阈值 可以是指值大于阈值、多于阈值、高于阈值、大于或等于阈值、小 于阈值、少于阈值、低于阈值、小于或等于阈值、等于阈值、或类 似物。
将明显的是,本文描述的系统和/或方法可以被实施在不同形式 的硬件、固件、或硬件和软件的组合中。用来实施这些系统和/或方 法的实际专用的控制硬件或软件代码不是对实施方式的限制。因此, 本文没有参考特定软件代码来描述系统和/或方法的操作和行为—被 理解的是,软件和硬件可以被设计以基于本文的描述来实施系统和/ 或方法。
即使特定的特征组合在权利要求中记载和/或在说明书中公开, 但是这些组合并不旨在限制可能的实施方式的公开。实际上,这些 特征中的许多特征可以按照未在权利要求中具体记载和/或在说明书 中公开的方式来组合。尽管下面列出的每个从属权利要求可能直接 仅从属于一个权利要求,但是可能的实施方式的公开包括每个从属 权利要求与权利要求集合中的每个其他权利要的组合。
本文使用的元件、动作或指令不应当被解释为是关键的或必要 的,除非明确地如此描述。此外,如本文使用的,冠词“一种”和 “一”旨在包括一个或多个项目,并且可以与“一个或多个”可互 换地使用。再者,如本文使用的,术语“集合”旨在包括一个或多 个项目(例如,相关项目、不相关项目、相关项目和不相关项目的 组合等),并且可以与“一个或多个”可互换地使用。在意图为仅 一个项目的场合,使用术语“一个”或类似语言。此外,如本文使 用的,术语“具有”、“带有”、“拥有”或类似物意图是开放式 术语。进一步地,短语“基于”旨在意指“至少部分地基于”,除 非另有明确陈述。

Claims (20)

1.一种设备,包括:
用于接收针对由数据库存储的数据的查询的部件;
用于基于所述查询来生成抽象语法树的部件;
用于确定所述抽象语法树是否与列表相匹配的部件,
其中所述列表标识与查询或查询类型相对应的一个或多个抽象语法树;以及
用于基于所述抽象语法树是否与所述列表相匹配来选择性地执行动作的部件。
2.根据权利要求1所述的设备,其中所述列表标识可允许的查询或查询类型。
3.根据权利要求1所述的设备,进一步包括:
用于基于确定所述抽象语法树与所述列表相匹配来提供所述查询用于与所述数据库一起使用的部件。
4.根据权利要求1所述的设备,进一步包括:
用于基于所述抽象语法树与所述列表不匹配来通知管理员或阻挡从其接收到所述查询的客户端设备的部件。
5.根据权利要求1所述的设备,进一步包括:
用于接收关于所述查询的反馈的部件;以及
用于基于所述反馈来更新所述列表的部件。
6.根据权利要求1所述的设备,进一步包括:
用于基于阈值来确定所述抽象语法树是否与所述列表相匹配的部件,所述阈值基于所述抽象语法树与所述列表的一个或多个条目的比较。
7.根据权利要求1所述的设备,进一步包括:
用于确定所述抽象语法树是否将针对所述查询被生成的部件;以及
其中用于生成所述抽象语法树的所述部件进一步包括:
用于基于确定所述抽象语法树将针对所述查询被生成来生成所述抽象语法树的部件。
8.一种存储指令的非暂态计算机可读介质,所述指令包括:
一个或多个指令,所述一个或多个指令在由一个或多个处理器执行时,使得所述一个或多个处理器:
接收针对由数据库存储的数据的查询;
基于所述查询来生成抽象语法树;
确定所述抽象语法树是否与列表相匹配,
其中所述列表标识与可允许的查询或查询类型相对应的一个或多个抽象语法树;以及
基于确定所述抽象语法树与所述列表相匹配来执行动作。
9.根据权利要求8所述的非暂态计算机可读介质,其中所述确定基于所述抽象语法树与所述列表的条目之间的部分匹配。
10.根据权利要求8所述的非暂态计算机可读介质,其中所述动作包括阻挡所述查询的源。
11.根据权利要求8所述的非暂态计算机可读介质,其中所述动作包括向设备提供通知。
12.根据权利要求11所述的非暂态计算机可读介质,其中所述通知包括所述查询。
13.根据权利要求8所述的非暂态计算机可读介质,其中所述一个或多个指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器:
接收标识所述列表的信息,其中所述列表定期被更新。
14.根据权利要求8所述的非暂态计算机可读介质,其中所述动作包括使得存储所述数据库的设备被隔离。
15.一种方法,包括:
由设备接收针对由数据库存储的数据的查询;
由所述设备基于所述查询来生成抽象语法树;
由所述设备确定所述抽象语法树是否与列表相匹配,
其中所述列表标识与查询或查询类型相对应的一个或多个抽象语法树;以及
选择性地:
当所述抽象语法树与所述列表相匹配时,提供所述查询用于所述数据的提供,或者
当所述抽象语法树与所述列表不匹配时,通知另外的设备。
16.根据权利要求15所述的方法,其中所述确定基于所述抽象语法树与所述一个或多个抽象语法树的相似性是否满足阈值。
17.根据权利要求16所述的方法,进一步包括:
基于反馈来调整所述阈值,所述反馈与所述抽象语法树是否与所述列表相匹配的所述确定有关。
18.根据权利要求15所述的方法,其中所述查询包括结构化查询语言(SQL)查询。
19.根据权利要求15所述的方法,进一步包括:
基于确定所述抽象语法树与所述列表不匹配,来存储或阻挡一个或多个其他查询。
20.根据权利要求15所述的方法,进一步包括:
基于接收到指示所述查询是可允许的信息,来将所述抽象语法树添加到所述列表。
CN201811150820.3A 2017-12-29 2018-09-29 使用抽象语法树的用于查询注入检测的系统 Active CN109992989B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/858,710 US10637887B2 (en) 2017-12-29 2017-12-29 System for query injection detection using abstract syntax trees
US15/858,710 2017-12-29

Publications (2)

Publication Number Publication Date
CN109992989A true CN109992989A (zh) 2019-07-09
CN109992989B CN109992989B (zh) 2023-10-13

Family

ID=63722153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811150820.3A Active CN109992989B (zh) 2017-12-29 2018-09-29 使用抽象语法树的用于查询注入检测的系统

Country Status (3)

Country Link
US (2) US10637887B2 (zh)
EP (1) EP3506141B1 (zh)
CN (1) CN109992989B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221804A (zh) * 2019-12-27 2020-06-02 北京健康之家科技有限公司 基于抽象语法树的防数据越权方法、装置及存储介质
CN113139183A (zh) * 2020-01-17 2021-07-20 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10637887B2 (en) 2017-12-29 2020-04-28 Cyphort Inc. System for query injection detection using abstract syntax trees
US11409897B2 (en) * 2019-04-18 2022-08-09 Microsoft Technology Licensing, Llc Constraint querying for collaborative intelligence and constraint computing
US11356456B2 (en) 2019-04-18 2022-06-07 Microsoft Technology Licensing, Llc Multi-participant and cross-environment pipelines
US11455410B2 (en) 2019-04-18 2022-09-27 Microsoft Technology Licensing, Llc Data privacy pipeline providing collaborative intelligence and constraint computing
US11403299B2 (en) * 2019-04-18 2022-08-02 Microsoft Technology Licensing, Llc Constraint manager for collaborative intelligence and constraint computing
US11409904B2 (en) 2019-04-18 2022-08-09 Microsoft Technology Licensing, Llc User interface for building a data privacy pipeline and contractual agreement to share data
US10897397B2 (en) * 2019-05-22 2021-01-19 Hewlett Packard Enterprise Development Lp Grammar for configuration validation
CN110580170B (zh) * 2019-09-12 2023-07-21 中国工商银行股份有限公司 软件性能风险的识别方法及装置
CN110581864B (zh) * 2019-11-11 2020-02-21 北京安博通科技股份有限公司 一种sql注入攻击的检测方法及装置
WO2021149119A1 (ja) 2020-01-20 2021-07-29 日本電信電話株式会社 推定システム及び推定プログラム
US11334569B2 (en) * 2020-01-21 2022-05-17 International Business Machines Corporation Unique SQL query transfer for anomaly detection
US11632380B2 (en) * 2020-03-17 2023-04-18 International Business Machines Corporation Identifying large database transactions
US11361106B2 (en) 2020-09-01 2022-06-14 Microsoft Technology Licensing, Llc Chaining, triggering, and enforcing entitlements
US11775681B2 (en) 2020-09-01 2023-10-03 Microsoft Technology Licensing, Llc Enforcement flow for pipelines that include entitlements
CN113553587B (zh) * 2021-06-21 2024-02-23 深信服科技股份有限公司 一种文件检测方法、装置、设备及可读存储介质
US20230153420A1 (en) * 2021-11-16 2023-05-18 Saudi Arabian Oil Company Sql proxy analyzer to detect and prevent unauthorized sql queries
US20230185899A1 (en) * 2021-12-15 2023-06-15 Microsoft Technology Licensing, Llc Code injection detection using syntactic deviation
US11922145B2 (en) 2022-03-01 2024-03-05 Microsoft Technology Licensing, Llc Initiating data privacy pipelines using reusable templates

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215626A1 (en) * 2003-04-09 2004-10-28 International Business Machines Corporation Method, system, and program for improving performance of database queries
CN101609493A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于自学习的数据库sql注入防护方法
CN101667190A (zh) * 2009-09-29 2010-03-10 天津大学 基于XQuery的查询引擎系统
CN102682047A (zh) * 2011-10-18 2012-09-19 国网电力科学研究院 一种混合的sql注入防护方法
EP2521049A1 (en) * 2011-05-05 2012-11-07 The Boeing Company Methods and systems for validating input data
US20130097114A1 (en) * 2011-10-18 2013-04-18 International Business Machines Corporation Query metadata engine
CN103761080A (zh) * 2013-12-25 2014-04-30 中国农业大学 一种基于SQL的MapReduce作业生成方法及系统
US20140282444A1 (en) * 2013-03-15 2014-09-18 ArtinSoft Corporation Programming language transformations with abstract syntax tree extensions
CN105447021A (zh) * 2014-08-22 2016-03-30 国际商业机器公司 用于数据库查询的方法和系统
CN105808746A (zh) * 2016-03-14 2016-07-27 中国科学院计算技术研究所 一种基于Hadoop体系的关系型大数据无缝接入方法及系统
US20170024572A1 (en) * 2015-07-20 2017-01-26 Usa, As Represented By The Secretary Of Commerce National Institute Of Standards And Technology Next generation access control system and process for controlling database access
CN106991322A (zh) * 2016-01-21 2017-07-28 北京启明星辰信息安全技术有限公司 一种结构化查询语言sql注入攻击的检测方法和装置
US20170265076A1 (en) * 2013-09-13 2017-09-14 Network Kinetix, LLC System and method for an automated system for continuous observation, audit and control of user activities as they occur within a mobile network
CN107239710A (zh) * 2016-03-29 2017-10-10 北京明略软件系统有限公司 一种数据库权限实现方法和系统
CN107292167A (zh) * 2017-06-27 2017-10-24 北京计算机技术及应用研究所 基于精简语法树的sql语句安全检测方法
CN107403104A (zh) * 2017-06-22 2017-11-28 努比亚技术有限公司 一种实现数据表查询限制的装置和方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635242B2 (en) * 2006-10-11 2014-01-21 International Business Machines Corporation Processing queries on hierarchical markup data using shared hierarchical markup trees
US7895192B2 (en) * 2007-07-19 2011-02-22 Hewlett-Packard Development Company, L.P. Estimating the loaded execution runtime of a database query
US8595369B2 (en) * 2007-11-13 2013-11-26 Vmware, Inc. Method and system for correlating front-end and back-end transactions in a data center
US20120084423A1 (en) * 2010-10-04 2012-04-05 Openwave Systems Inc. Method and system for domain based dynamic traffic steering
US9258321B2 (en) * 2012-08-23 2016-02-09 Raytheon Foreground Security, Inc. Automated internet threat detection and mitigation system and associated methods
US10482263B2 (en) * 2015-04-01 2019-11-19 Microsoft Technology Licensing, Llc Computing on encrypted data using deferred evaluation
US9736185B1 (en) * 2015-04-21 2017-08-15 Infoblox Inc. DNS or network metadata policy for network control
US9911001B2 (en) * 2015-06-12 2018-03-06 Pearson Education, Inc. Automatic SQL query modification for data restriction
US9838422B2 (en) * 2015-09-15 2017-12-05 International Business Machines Corporation Detecting denial-of-service attacks on graph databases
US9940479B2 (en) * 2015-10-20 2018-04-10 International Business Machines Corporation Identifying and tracking sensitive data
US9916448B1 (en) * 2016-01-21 2018-03-13 Trend Micro Incorporated Detection of malicious mobile apps
JP6503141B2 (ja) * 2016-06-17 2019-04-17 日本電信電話株式会社 アクセス分類装置、アクセス分類方法及びアクセス分類プログラム
US11281770B2 (en) * 2016-08-11 2022-03-22 Salesforce.Com, Inc. Detection of structured query language (SQL) injection events using simple statistical analysis
US10637887B2 (en) 2017-12-29 2020-04-28 Cyphort Inc. System for query injection detection using abstract syntax trees

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215626A1 (en) * 2003-04-09 2004-10-28 International Business Machines Corporation Method, system, and program for improving performance of database queries
CN101609493A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于自学习的数据库sql注入防护方法
CN101667190A (zh) * 2009-09-29 2010-03-10 天津大学 基于XQuery的查询引擎系统
EP2521049A1 (en) * 2011-05-05 2012-11-07 The Boeing Company Methods and systems for validating input data
CN102682047A (zh) * 2011-10-18 2012-09-19 国网电力科学研究院 一种混合的sql注入防护方法
US20130097114A1 (en) * 2011-10-18 2013-04-18 International Business Machines Corporation Query metadata engine
US20140282444A1 (en) * 2013-03-15 2014-09-18 ArtinSoft Corporation Programming language transformations with abstract syntax tree extensions
US20170265076A1 (en) * 2013-09-13 2017-09-14 Network Kinetix, LLC System and method for an automated system for continuous observation, audit and control of user activities as they occur within a mobile network
CN103761080A (zh) * 2013-12-25 2014-04-30 中国农业大学 一种基于SQL的MapReduce作业生成方法及系统
CN105447021A (zh) * 2014-08-22 2016-03-30 国际商业机器公司 用于数据库查询的方法和系统
US20170024572A1 (en) * 2015-07-20 2017-01-26 Usa, As Represented By The Secretary Of Commerce National Institute Of Standards And Technology Next generation access control system and process for controlling database access
CN106991322A (zh) * 2016-01-21 2017-07-28 北京启明星辰信息安全技术有限公司 一种结构化查询语言sql注入攻击的检测方法和装置
CN105808746A (zh) * 2016-03-14 2016-07-27 中国科学院计算技术研究所 一种基于Hadoop体系的关系型大数据无缝接入方法及系统
CN107239710A (zh) * 2016-03-29 2017-10-10 北京明略软件系统有限公司 一种数据库权限实现方法和系统
CN107403104A (zh) * 2017-06-22 2017-11-28 努比亚技术有限公司 一种实现数据表查询限制的装置和方法
CN107292167A (zh) * 2017-06-27 2017-10-24 北京计算机技术及应用研究所 基于精简语法树的sql语句安全检测方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
WANG LU 等: "Design of code security detection system based on rule inspection", 《2010 INTERNATIONAL CONFERENCE ON INFORMATION, NETWORKING AND AUTOMATION (ICINA)》 *
WANG LU 等: "Design of code security detection system based on rule inspection", 《2010 INTERNATIONAL CONFERENCE ON INFORMATION, NETWORKING AND AUTOMATION (ICINA)》, vol. 2, 15 November 2010 (2010-11-15), pages 2 - 346 *
崔娜: "面向数据库性能的SQL语句解析与翻译", 《现代电子技术》 *
崔娜: "面向数据库性能的SQL语句解析与翻译", 《现代电子技术》, vol. 39, no. 11, 1 June 2016 (2016-06-01), pages 99 - 102 *
韩宸望 等: "基于SQL语法树的SQL注入过滤方法研究", 《网络与信息安全学报》 *
韩宸望 等: "基于SQL语法树的SQL注入过滤方法研究", 《网络与信息安全学报》, vol. 2, no. 11, 15 November 2016 (2016-11-15), pages 70 - 77 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221804A (zh) * 2019-12-27 2020-06-02 北京健康之家科技有限公司 基于抽象语法树的防数据越权方法、装置及存储介质
CN113139183A (zh) * 2020-01-17 2021-07-20 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质
CN113139183B (zh) * 2020-01-17 2023-12-29 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20190207974A1 (en) 2019-07-04
US11558418B2 (en) 2023-01-17
CN109992989B (zh) 2023-10-13
US20200252427A1 (en) 2020-08-06
US10637887B2 (en) 2020-04-28
EP3506141A1 (en) 2019-07-03
EP3506141B1 (en) 2021-02-17

Similar Documents

Publication Publication Date Title
CN109992989A (zh) 使用抽象语法树的用于查询注入检测的系统
JP7167240B2 (ja) コンピュータネットワーク及びシステムのプロテクションのためのリアクティブ及びプリエンプティブセキュリティシステム
US10728264B2 (en) Characterizing behavior anomaly analysis performance based on threat intelligence
CN106022113B (zh) 经由沙盒检测恶意文件感染
US9894088B2 (en) Data mining to identify malicious activity
CN104509034B (zh) 模式合并以识别恶意行为
US10084806B2 (en) Traffic simulation to identify malicious activity
US9166994B2 (en) Automation discovery to identify malicious activity
US9680861B2 (en) Historical analysis to identify malicious activity
US20140310808A1 (en) Detection of Stealthy Malware Activities with Traffic Causality and Scalable Triggering Relation Discovery
US10642906B2 (en) Detection of coordinated cyber-attacks
US20220300659A1 (en) Data breach prevention and remediation
CN109074454A (zh) 基于赝象对恶意软件自动分组
US20230095415A1 (en) Helper agent and system
CN111756702A (zh) 数据安全防护方法、装置、设备和存储介质
Anumol Use of machine learning algorithms with SIEM for attack prediction
Lah et al. Proposed framework for network lateral movement detection based on user risk scoring in siem
EP4111660B1 (en) Cyberattack identification in a network environment
Kaushik et al. Network Security with Network Intrusion Detection System using Machine Learning Deployed in a Cloud Infrastructure
Karbab et al. Automatic investigation framework for android malware cyber-infrastructures
Sreelatha et al. Ensuring Anomaly-Aware Security Model for Dynamic Cloud Environment using Transfer Learning
Yao et al. Anomaly Detection on Network Traffic
Priya et al. Network Attack Detection using Machine Learning
Soni et al. A Review of System for Detecting Intruders Using Convolutional Neural Networks
Ramu et al. Hough Transform based Deep Belief Network and Improved Homomorphic Encryption for Cloud Security based Intrusion Discovery

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
GR01 Patent grant
GR01 Patent grant