CN103238308B - 传播源标识信息的方法和系统 - Google Patents

传播源标识信息的方法和系统 Download PDF

Info

Publication number
CN103238308B
CN103238308B CN201180057965.9A CN201180057965A CN103238308B CN 103238308 B CN103238308 B CN 103238308B CN 201180057965 A CN201180057965 A CN 201180057965A CN 103238308 B CN103238308 B CN 103238308B
Authority
CN
China
Prior art keywords
user
request
statement
import
pattern
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.)
Active
Application number
CN201180057965.9A
Other languages
English (en)
Other versions
CN103238308A (zh
Inventor
R·本-纳坦
L·罗德尼安斯基
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103238308A publication Critical patent/CN103238308A/zh
Application granted granted Critical
Publication of CN103238308B publication Critical patent/CN103238308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供用于从应用层中的应用前端系统向与后端系统相关联的数据层检验系统传播源标识信息的机制。在数据层检验系统处从与应用前端系统相关联的网关系统接收传入用户请求。在数据层检验系统处接收目标为后端系统的一个或者多个传出语句。数据层检验系统基于该一个或者多个传出语句来访问映射数据结构,从而将该一个或者多个传出语句与传入用户请求进行关联。数据层检验系统基于该一个或者多个传出语句与传入用户请求的关联来获取与传入用户请求相关联的源标识信息。数据层检验系统基于源标识信息来执行数据层检验操作。

Description

传播源标识信息的方法和系统
技术领域
本申请通常涉及改善的数据处理装置和方法,并且更加具体地涉及用于使用上下文映射和植入值的通过应用层的身份传播的机制。
背景技术
现代信息处理环境正在经历从传统的客户端-服务器模型到应用-服务器模型的趋势。尽管客户端-服务器模型将信息资源分类为到客户端的服务,但是基于应用的架构也允许每个应用在将事务或者数据流切换到连续处理级之前执行处理的特定部分和/或专门部分。应用-服务器模型可以表现出所谓的多级布置或者架构。在多级布置中,每一级负责执行处理的特定方面。各级通过通常根据预定的协议或者数据结构的传递或者传输数据而进行通信。因此业务在可以是处理流中的连续层或者节点的诸级之间传递。因而,每一个级或者“层”从前一层接收事务。
每一个级/层可以执行特定功能,诸如数据库查询、XML解析、隧道传输、协议映射、网络运输或者GUI(图形用户界面)操作。在每一级处,将事务或者数据流的属性传递到下一级。然而,如果在连续级中认为某些属性不必要,则可能抑制或者省去这些属性。因而,在多层布置中,在改善缩放、信息范围以及功能巩固的同时,可能不像传统客户端服务器布置中那样容易传播事务或者信息流的某些属性。期望在特定层处可获得的某些属性的操作或者功能会遇到困难(即,不可获得),如果这些操作或者功能依赖于该属性的话。
在基于应用-服务器模型的系统的不同级/层处执行的操作之间丢失信息的一组示例是例如审计跟踪等等的安全功能。几乎所有安全功能都基于证书。审计跟踪关键在于用户或者客户端机器(例如产生示出由用户或者客户端机器执行的所有活动的报告)的身份,访问控制也关键在于该身份(例如不应该允许用户X访问数据Y)等等。
在一些情况下,通过提供身份层的相同层来提供安全功能。例如,在用户直接连接到数据库时,存在用于登录到该数据库的用户名称。该相同的用户名称也用于定义数据库系统中的特权并且相同的名称出现在由审计安全机制生成的审计跟踪中。这与数据库本身是实施访问控制规则并且执行审计的系统还是执行这些功能的外部安全系统无关。由于用于安全功能的用户名称由数据库安全级管理,因此这对于定义特权或者浏览审计跟踪的安全操作员是有意义的。
然而,存在在某一级处提供安全功能而由另一级提供身份的情况。一个非常普遍的情况涉及使用数据库作为其后端的应用服务器。在这样的情况下,应用是负责管理身份的层。用户登录到应用并且提供例如用户名称和密码。该应用将典型地利用后端上的数据库来存储和管理经由该应用使用或者访问的数据。应用服务器使用到数据库的连接。
在客户端/服务器架构中,通常存在针对每一个用户的到数据库的连接并且也经常使用用于登录到应用的证书以生成到数据库的连接,即,针对应用的每一个用户,也存在数据库级别上的用户。然而,在更为普遍的基于应用-服务器的架构中,不是这样。取而代之的是,应用服务器维持到数据库的连接池。这些连接全部在应用服务器首次启动时创建并且它们都使用单个功能账户,即,该连接全部与用于应用前端的单个功能标识符相关联,而不在应用前端的用户之间进行区分。这些连接被所有用户会话重新使用,即,使用复用技术。也即,在用户登录到应用前端时,利用应用前端创建会话并且应用前端从数据库的连接池获得连接并将其分配给会话。在会话结束时,将连接释放回到池中并且可以由应用前端重新使用于另一会话。这样做以增加性能并降低开销。
然而,从安全角度考虑,该连接池机制产生严重的问题。从数据库层的观点看丢失了用户身份,即,用户身份没有被传递到数据库后端,而仅存在于应用层处,即存在于应用前端处。例如,如果某人要查看由在数据库层处运行的审计机制产生的审计跟踪,该审计机制例如是数据库本身的审计机制或者数据库活动监控(DAM)系统的审计机制,则所有活动被示出为已通过登录到数据库的实体执行,即,通过功能标识符标识的应用的功能账户。然而,人类审计师或者自动安全机制希望能够在审计跟踪中看到的是应用层的哪一个终端用户使得发出特定的数据库查询并且因此哪一个用户能够访问某些敏感数据。从安全的角度考虑,审计跟踪很少提供有用的信息,这是由于不通过应用层传播终端用户的“真实身份”。尽管可以使用应用层审计跟踪,但是特定安全机制经常要求数据级别的审计跟踪并且这仅能够在数据库层处执行。
发明内容
在一个示意性实施例中,提供一种用于在数据处理系统中从应用层中的应用前端系统向与后端系统相关联的数据层检验系统传播源标识信息的方法。该方法包括在数据层检验系统处从应用层中的与应用前端系统相关联的网关系统接收传入用户请求。该方法进一步包括在数据层检验系统处接收目标为后端系统并且由应用前端系统基于所接收的传入用户请求生成的一个或者多个传出语句。而且,该方法包括由数据层检验系统基于该一个或者多个传出语句来访问映射数据结构,从而将该一个或者多个传出语句与传入用户请求关联。此外,该方法包括由数据层检验系统基于该一个或者多个传出语句与传入用户请求的关联来获取与传入用户请求相关联的源标识信息。此外,该方法包括由数据层检验系统基于源标识信息来执行数据层检验操作。
在其他说明性实施例中,提供一种包括具有计算机可读程序的计算机可用或可读介质的计算机程序产品。当在计算设备上执行该计算机可读程序时,计算机可读程序使计算设备执行上面关于方法示意性实施例概述的各种操作或者操作组合。
在再一示意性实施例中,提供一种系统/装置。该系统/装置可以包括一个或者多个处理器以及耦合到该一个或者多个处理器的存储器。存储器可以包括在通过该一个或者多个处理器执行时使该一个或者多个处理器执行上面关于方法示意性实施例概述的各种操作或者操作组合的指令。
本发明的这些和其他特征以及优点将在本发明示例实施例的下面详细描述中进行描述,或者鉴于下面的详细描述,本发明的这些和其他特征和优点对于本领域的普通技术人员来说将变得明显。
附图说明
通过参照结合附图对示意性实施例的下面详细描述,将最好地理解本发明、优选使用模式及其进一步的目的和优点,在附图中:
图1描绘了其中可以实现示意性实施例的诸方面的示例分布式数据处理系统的图形表示;
图2是其中可以实现示意性实施例的诸方面的示例数据处理系统的示例方框图;
图3是根据一个示意性实施例用于生成用于将前端传入用户请求映射到传出后端请求的映射规范的系统的示例方框图;
图4是根据一个示意性实施例用于使用在学习操作模式期间生成的映射信息对到后端系统的访问进行审计的系统的示例方框图;
图5是概述根据一个示意性实施例的网关系统在学习操作模式期间的示例操作的流程图;
图6是概述根据一个示意性实施例的检验系统在学习操作模式期间的示例操作的流程图;
图7是概述根据一个示意性实施例的网关系统在运行时操作模式期间的示例操作的流程图;以及
图8是概述根据一个示意性实施例的检验系统在运行时操作模式期间的示例操作的流程图。
具体实施方式
示意性实施例提供了用于使用情景映射和植入值通过应用层的身份传播的机制。示意性实施例的机制通过提供用于身份传播的非入侵匹配机制解决了上述问题,即,不要求对应用前端代码做出改变的匹配机制。而且,由于示意性实施例的匹配机制使用可容易识别的插入或者植入唯一值而不是会从多个数据库查询中出现的值,因此这种匹配机制是精确的。
示意性实施例在如下基本假设上工作,即其有可能操控到应用层的传入的基于用户的请求、向这些请求中植入可唯一识别的值以及监控对传出的数据库请求的影响,传出的数据库请求例如是由应用层生成并且发送到数据库层的SQL语句。在学习操作模式中,示意性实施例的机制利用到应用级/层的传入的用户请求中的唯一值与传出的数据库请求中的相同唯一值的匹配,作为学习传入的用户请求和所产生的传出的数据库请求的某些类型或者模式之间关系的一种方式。一旦完成了该学习,学习的结果被用于在运行时期间执行映射以生成数据库层审计跟踪,即,由在数据库层而非应用层处操作的审计机制生成的审计跟踪,其具有用户身份信息。即,在运行时操作期间,不使用唯一值植入机制而是使用传入的用户请求到一个或者多个传出的数据库请求/语句的学习的映射以将传入的用户请求与随后的一个或者多个传出的数据库请求/语句关联,并且生成具有针对发出原始传入用户请求的用户的用户标识符的相对应的审计跟踪。该审计跟踪继而可以由审计员使用以识别哪一个用户能够访问数据库系统上的敏感数据。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等等)或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JavaTM、SmalltalkTM、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(articleofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
将意识到的是,可以在包括分布式数据处理环境、单数据处理设备等等的许多不同类型的数据处理环境中利用示意性实施例。为了提供用于描述示意性实施例的特定元件和功能性的上下文,以下提供图1和图2作为其中可以实现示意性实施例的各个方面的示例环境。应该意识到,图1-2仅是示例并且并不意在断言或者暗含关于其中可以实现本发明各个方面或者实施例的环境的任何限制。可以在不偏离本发明的精神和范围的情况下对所描绘的环境做出许多修改。
现在参照附图,图1描绘了其中可以实现示意性实施例的各个方面的示例分布式数据处理系统的图形表示。分布式数据处理系统100可以包括其中可以实现示意性实施例的各个方面的计算机网络。分布式数据处理系统100包含至少一个网络102,其是用于在分布式数据处理系统100内连接到一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或者光缆的连接。
在所描绘的示例中,服务器104和服务器106连同存储单元108连接到网络102。此外,客户端110、112和114也连接到网络102。这些客户端110、112和114可以例如是个人计算机、网络计算机等等。在所描绘的示例中,服务器104向客户端110、112和114提供诸如引导文件、操作系统镜像和应用之类的数据。在所描绘的示例中,客户端110、112和114是到服务器104的客户端。分布式数据处理系统100可以包括未示出的附加服务器、客户端和其他设备。
在所描绘的示例中,分布式数据处理系统100是具有网络102的互联网,其中网络102具有代表使用传输控制协议/互联网协议(TCP/IP)协议族以相互通信的网络和网关的万维集合。互联网的核心是位于由路由数据和消息的成千上万个商业、政府、教育和其他计算机系统构成的主要节点或主机之间的高速数据通信链路的骨干。当然,分布式数据处理系统100也可以实现为包括多个不同类型的网络,例如内联网、局域网(LAN)、广域网(WAN)等等。如上面阐述的,图1意在作为示例,而不是作为本发明不同实施例的架构限制,并且因此,图1所示的特定元件不应该被认为是关于其中可以实现本发明示意性实施例的环境的限制。
现在参照图2,示出了其中可以实现示意性实施例的各个方面的示例数据处理系统的方框图。数据处理系统200是诸如图1中的客户端110的计算机的示例,其中可以放置实现用于本发明示意性实施例的处理的计算机可用代码或者指令。
在所描绘的示例中,数据处理系统200采用包括北桥和存储控制中心(NB/MCH)202以及南桥和输入/输出(I/O)控制中心(SB/ICH)204的中心架构。处理单元206、主存储器208以及图形处理器210连接到NB/MCH202。图形处理器210可以通过加速图形端口(AGP)连接到NB/MCH202。
在所描绘的示例中,局域网(LAN)适配器212连接到SB/ICH204。音频适配器、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬驱(HDD)226、CD-ROM驱动230、通用串行总线(USB)端口和其他通信端口232、以及PCI/PCIe设备234通过总线238和总线240连接到SB/ICH204。PCI/PCIe设备可以例如包括以太网适配器、插入卡、以及用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM224可以例如是闪速基本输入/输出系统(BIOS)。
HDD226和CD-ROM驱动230通过总线240连接到SB/ICH204。HDD226和CD-ROM驱动230可以使用例如集成驱动电子设备(IDE)或者串行先进技术附接(SATA)接口。超级I/O(SIO)设备236可以连接到SB/ICH204。
操作系统在处理单元206上运行。操作系统协调图2中的数据处理系统200内的各种部件并且对各种部件提供控制。作为客户端,操作系统可以是诸如7(Microsoft和Windows是Microsoft公司在美国、其他国家或者二者中的注册商标)。诸如JavaTM编程系统的面向对象的编程系统可以结合操作系统运行并且从JavaTM程序或者在数据处理系统200上执行的应用提供到操作系统的调用(Java是SunMicrosystems公司在美国、其他国家或者二者中的注册商标)。
作为服务器,数据处理系统200可以例如是eServerTMSystem计算机系统,运行先进的交互执行操作系统或者操作系统(eServer、Systemp和AIX是国际商业机器公司在美国、其他国家或者二者中的注册商标,而LINUX是LinusTorvalds在美国、其他国家或者二者中的注册商标)。数据处理系统200可以是在处理单元206中包括多个处理器的对称多处理器(SMP)系统。可选地,可以采用单处理器系统。
用于操作系统、面向对象的编程系统、以及应用或者程序的指令位于存储设备上,诸如HDD226,并且可以被加载到主存储器208中以供处理单元206执行。用于本发明示意性实施例的处理可以通过处理206使用计算机可用程序代码来执行,该计算机可用程序代码可以位于例如主存储器208、ROM224之类的存储器中,或者位于例如一个或者多个外围设备226和230中。
诸如如图2中示出的总线238或者总线240的总线系统可以由一条或者多条总线构成。当然,可以使用提供在附接到通信结构或者架构的不同部件或者设备之间的数据传输的任何类型的通信结构或者架构来实现总线系统。诸如图2的调制解调器222或者网络适配器212的通信单元可以包括用于发射和接收数据的一个或者多个设备。存储器可以例如是主存储器208、ROM224或者诸如在图2中的NB/MCH202中出现的高速缓存。
本领域的普通技术人员将意识到,图1-2中的硬件可以取决于实现而变化。除了在图1-2中描绘的硬件或者代替该硬件,可以使用诸如闪存、等效的非易失性存储器或者光驱等等的其他内部硬件或者外围设备。而且,在不偏离本发明精神和范围的情况下,除了先前提及的SMP系统,示意性实施例的处理可以应用于多处理器数据处理系统。
而且,数据处理系统200可以采取包括客户端计算设备、服务器计算设备、平板电脑、膝上型计算机、电话或者其他通信设备、个人数字助理(PDA)等等的多个不同数据处理系统中的任意一种的形式。在一些示意性示例中,数据处理系统200可以是配置有闪存以提供非易失性存储器以用于存储例如操作系统文件和/或用户生成的数据的便携式计算设备。基本上,数据处理系统200可以是任何已知或者随后开发的数据处理系统而没有架构限制。
再次参照图1,诸如客户端110的客户端机器的用户可以通过访问应用-服务器系统的应用前端而登录到该应用前端,该应用前端可以寄宿在例如服务器104或者106的服务器上。用户可以使用在客户端机器110上提供的网络浏览器、小程序等等访问该应用前端并且通过提供例如用户名称和密码之类的用户标识符和相对应的安全信息而登陆到应用前端。应用前端然后可以执行操作以生成要与用户与应用前端的交互相关联的会话,例如生成要与用户的客户端机器110和服务器104上的应用前端之间的连接相关联的会话令牌。
响应于用户请求,例如针对存储在与应用前端相关联的后端数据库上的数据的访问的超文本传输协议(HTTP)请求,其中后端数据库例如网络附接的存储器108或者与应用前端服务器104相关联的其他数据库,应用前端从数据库的连接池,例如出于该示例目的的图1中的数据库108,获得连接并且使用所获得的连接向数据库108发送所产生的数据库查询请求/语句并且从数据库108接收回响应。如上面讨论的,这些连接仅与应用前端的功能标识符相关联并且由应用前端使用的例如用户名称之类的用户身份信息不被一起传递到数据库108。
示意性实施例提供一种关联机制,其允许在数据层处,例如在数据库后端处,执行审计,同时仍然能够使通过审计机制获得的审计信息与在应用层处维持并且通常在访问数据层时丢失的用户身份信息进行关联。示意性实施例的机制包括用于拦截传入用户请求、向拦截的传入用户请求中插入唯一值、以及在发送到数据层——例如数据库后端系统——的传出请求/语句中跟踪这些唯一值的机制。对传入请求到传出请求/语句的跟踪和关联允许生成映射,该映射继而能够由在运行时用于在数据层处收集审计信息的附加机制所使用。即,该映射可以用于将发送到数据库后端系统的请求与由应用层接收的请求关联,继而与用户证书关联。按照这种方式,可以将与存储在数据库后端系统中的信息的访问相对应的应用层用户证书信息通知给在数据层处运行的审计机制。
示意性实施例的机制具有两种操作模式(或者阶段)。在第一操作模式(或者阶段)中,即学习操作模式中,示意性实施例的机制运行以学习传入用户请求以及发送到数据库后端系统的相对应的传出请求/语句的模式。这些模式的映射用于生成可以在第二操作模式中,即运行时操作模式中,使用的规范或者规范集。在运行时操作模式期间,一个或者多个规范用于识别发送到数据库后端系统的传出请求并且将这些传出请求与通过应用层前端系统接收的传入用户请求关联。传入用户请求包括继而可以用于将传入用户请求与特定的用户标识符关联的会话标识符。用户标识符因而可以与发送到数据库后端系统的传出请求关联以用于审计或者其他跟踪目的。
图3是根据一个示意性实施例用于生成将前端传入用户请求映射到传出后端请求的映射规范的系统的示例方框图。可以将图3中示出的操作元件以及之后的其他方框图实现为软件、硬件、或者软件和硬件的任意组合。在一个示意性实施例中,将图3中的操作元件实现为在一个或者多个计算设备上执行的软件指令。可以将图3中示出的数据结构等等存储在位于这些一个或者多个计算设备内或者与这些一个或者多个计算设备相关联的数据存储设备中。网络的描绘意在代表可以具有相同或者不同类型的数据通信网络并且可以包括多于一个数据通信网络。该数据通信网络可以是局域网、广域网、互联网或者任何其他已知或者随后开发的数据通信网络类型。
下面的描述将假设示意性实施例的机制应用于对后端数据库系统的访问。然而,应该意识到的是,示意性实施例的机制并不局限于此。而是,示意性实施例可以与其中处理到前端应用的请求以生成被发送到后端系统的请求/语句的任何系统一起使用,并且因而,传入请求到传出请求/语句的映射是期望的。
此外,应该意识到的是,尽管下面的描述将假设由前端应用基于传入用户请求(可以是HTTP请求等等)生成结构化查询语言(SQL)语句,示意性实施例并不局限于此。相反,其中处理传入请求以生成一组传出请求的任何系统都可以实现示意性实施例的机制,而与所使用的语言或者协议无关。
如图3所示,示意性实施例的机制进一步包括用于拦截从客户端计算设备305到应用前端320的传入用户请求315的网关系统310,以及用于检验从应用前端320向数据库后端340发送的传出数据库请求/语句325的检验机制。网关系统310在学习操作模式期间拦截传入用户请求315并且使用解析器312来解析传入用户请求315的协议。然后处理该解析的传入用户请求315以识别应用值存在于何处,例如账户号码、名称等等。例如,网关系统310可以具有标识例如可变名称、数据格式位置等等的感兴趣的应用值的应用值规则数据结构314等等,并且网关系统310可以向解析的传入用户请求315应用这些规则314以识别来自客户端计算设备305的传入用户请求中的应用值。
网关机制310的唯一值插入逻辑316通过向传入用户请求插入或者“植入”唯一可识别的值(例如随机生成的大字符串、SHA-1值等等)以更换账户号码、名称等等来修改这些值。在学习操作模式期间,请求的内容并不重要,重要的只是将传入用户请求与由应用前端320生成的传出请求/语句匹配的能力。因而,可以使用解析器312和应用值规则数据结构314来识别通常将通过应用前端320传递到数据库后端系统340的值,并且这些值可以利用唯一可识别的值所替换。
生成这些唯一可识别的值以使得在预定的时间段内(可以选择以使得该时间段相比于与应用前端320建立的典型会话的时间量相对较大)将不重复该唯一可识别的值。每一个传入用户请求将具有其自己的一个或者多个唯一可识别的值以使得其能够与由应用前端320在该预定时间段内处理的其他请求唯一地区分开。
将应用值修改为唯一可识别的值是示意性实施例的机制的学习操作模式的关键方面。应该意识到的是,存在执行传入用户请求和传出数据库请求/语句之间的匹配的多种系统,例如可从Oracle公司获得的OracleSecerno或者可从Imperva获得的SecureSphere。这些系统从传入用户请求中提取时间戳和值并且将它们与传出数据库请求/语句中的类似值相匹配。如果在传入用户请求和传出数据库请求/语句上都发现了值,则可以得到匹配并且系统能够推断该特定的传入用户请求导致生成一个或者多个数据库请求/语句。
OracleSecerno和ImpervaSecureSphere系统等等非常不精确,因为在传入用户请求中接收的值由于应用层处理而经常与传出数据库请求/语句中的值不匹配。而且,由于这些值不是唯一的并且不止一个传入用户请求可能会具有可以被包括在传出数据库请求/语句中的相同值,因此时序会是个问题。即,传入用户请求中的值经常不被包括在一个或者多个传出数据库请求/语句中或者按照一些方式被改变以使得它们不能够被正确地匹配。而且,关于时序存在假设,例如,第一到达的传入用户请求将匹配到具有匹配值的第一传出数据库请求/语句。然而,如果不止一个传入用户请求正在被应用层处理,这是常见情况,则有可能传出数据库请求/语句在时序方面会混合在一起并且可能会具有共同值,这导致实际与第一传入用户请求相关联的传出数据库请求/语句被错误地匹配到第二传入用户请求的误匹配。
因而,利用示意性实施例的机制,生成唯一可识别的值并且在通过由应用前端系统320执行的应用层处理传递之前将它们插入或者“植入”到传入用户请求315中。这些唯一可识别的值以及包括会话标识符的相对应的传入用户请求的记录通过网关系统310向检验系统330传送。按照这种方式,如果应用层处理输出相对应的传出数据库请求/语句325,则将在这些传出数据库请求/语句325中包括唯一可识别的值,以使得即使应用层正在处理来自相同或者不同客户端计算设备305的多个传入用户请求,这些唯一可识别的值也可被唯一地匹配。换句话说,通过示意性实施例的机制消除了与已知OracleSecerno、ImpervaSecureSphere和类似的已知匹配机制的假设相关联的问题。例如,如果存在都访问相同项目号码的多个请求,则使用示意性实施例的机制,在每个请求中项目号码被唯一可识别的值所替换,以使得每一个请求可单独被识别并且能够与其发送到数据库后端系统340的特定的传出请求/语句相关联。
网关系统310向检验系统发送传入用户请求315连同与该传入用户请求315相对应的唯一值。向检验系统330提供传入用户请求315以在生成从该传入用户请求315到所产生的传出请求/语句325的映射中使用。检验系统330在映射规范数据结构336中存储传入用户请求,或者至少该用户请求的标识符,以及根据该用户请求获得的其相关联的唯一值等等。
检验系统330检验由应用前端320基于该应用前端320接收的传入用户请求315生成的传出请求/语句325,例如SQL语句。通过解析器332解析这些传出请求/语句325,并且映射逻辑334分析已解析的传出请求/语句325以专门查找被插入在传入用户请求315中的唯一值,这些传入用户请求315在通过应用层应用前端320处理请求之前被网关机制310所拦截。即,映射逻辑334从已解析的传出请求/语句325中提取值并且将其与通过网关系统310传送到检验系统330并且被存储在映射规范数据结构336中的唯一值的列表进行比较。如果在映射规范数据结构336中存在匹配的唯一值,则映射逻辑334向用于特定的传入用户请求315的映射规范数据结构336中的传出请求/语句的列表添加该传出请求/语句325,或者至少该传出请求/语句325的标识符。此列表可以利用具有通过检验系统330检测到的匹配的唯一值的每一个随后的传出请求/语句来构建。结果是传入用户请求315到具有相同唯一值的一个或者多个传出请求/语句325的映射。
被发送到后端数据库系统340的传出请求/语句325中的这些唯一值的检测与传入用户请求315中的唯一值关联。该关联导致生成传入用户请求315和所产生的传出请求/语句325之间的映射。即,该映射基于所插入或者“植入”的唯一值来识别传入用户请求315的输入模式以及输出请求/语句325的相对应模式。最终结果是关于传入的用户请求315的序列如何与传出请求/语句325相关联的规范或者规范集。例如,可以将传入用户请求序列A、B、C映射到或者引起生成传出请求/语句的序列X1、X2、X3、X4、X5、X6和X7,并且因而,能够建立并且存储从A、B、C到X1、X2、X3、X4、X5、X6和X7的映射以供后续在分析到数据库后端的访问中使用。
使用分阶段或者测试环境,可以针对应用前端320的大多数或者甚至全部代码路径执行网关310和检验机制330的映射过程。例如,存在用于测试应用代码的各种代码路径以用于验证、跟踪等等目的的已知机制。这些机制可以利用示意性实施例的机制来加强或者以其他方式加以利用以生成传入用户请求315到目标为数据库后端系统340的传出请求/语句325的映射。
应该注意的是,可以在同一数据处理系统或者多个不同的数据处理系统上实现图3以及之后的图中示出的各种系统和设备。例如,客户端计算设备305可以是与网关系统310分离的计算设备,网关系统310可以位于与应用前端系统320、检验系统330和数据库后端系统340不同的系统上。可选地,可以在相同的数据处理系统上实现网关系统310和应用前端系统320,可以将检验系统330和数据库后端系统340一起提供在分离的数据处理系统上,并且客户端计算设备305可以是另一数据处理系统。在不偏离示意性实施例的精神和范围的情况下,可以在相同或者不同的数据处理系统上提供图3中所示元件的任意组合。
上面映射处理的输出是定义应用前端如何作为一种“黑匣子”工作的规范或者规范集。即,该规范(集)指定,在给定的一组输入下,“黑匣子”生成特定输出集。继而可以在运行时使用该规范或者规范集以用于审计对后端数据库系统340的访问。换句话说,可以将在学习操作模式期间生成的规范或者规范集输入到审计机制以供在对到后端数据库系统340的访问执行审计操作时使用。审计机制可以在数据库层而非应用层操作。审计机制可以使用规范(集)中的映射并且可以进一步从前端应用320获得信息从而识别正在访问后端数据库系统340中的敏感信息的特定用户或者客户端设备。
图4是根据一个示意性实施例用于使用在学习操作模式期间生成的映射信息来审计对后端系统的访问的系统的示例方框图。可以配置网关系统310和检验系统330以在运行时操作模式中运行,从而在图4中示出了新配置的网关系统410和检验系统430,其与图3中的元件310和330相对应但是被重新配置用于运行时操作。如图4所示,检验系统430包括附加的运行时部件,包括审计逻辑432和访问控制逻辑434。这些元件可以利用可以与图3中的映射规范数据结构336相对应的映射规范数据结构436。
在运行时期间,网关系统410按照在学习操作模式期间的类似方式向检验系统430中继传入的用户请求。此外,前端应用420在用户证书数据结构422中存储终端用户证书以及相对应的会话标识符,并且因而知晓与传入用户请求415相关联的用户证书。即,由于已经按照已知方式建立了与应用前端420的连接,因此会话标识符被包括在传入用户请求415中,该会话标识符可以被用作用于识别存储在此用户证书数据结构422中的相对应的用户证书的基础。应该意识到的是,在学习操作模式和运行时操作模式二者中,不改变应用前端420的实际功能性并且不需要修改应用前端420的代码以实现本发明的功能性。因而,会话id/用户id数据结构422中的会话标识符和用户标识符的维护不构成应用前端420的操作相比于已知的应用前端系统的操作的变化。然而,示意性实施例在运行时期间按照新的不同方式利用该信息。
在运行时操作模式期间通过网关系统410中继到检验系统430的传入用户请求415在结构上与在学习操作模式期间中继的传入用户请求315相同。这些请求315和415之间的区别在于请求315和415内的值。在学习操作模式期间中继的请求315出于映射目的将其应用值替换为唯一值。在运行时操作模式期间中继的请求415不被修改,并且因而具有原始应用值。
检验系统430不仅接收由网关系统410中继的原始传入用户请求415,而且还接收由应用前端420对传入用户请求415的处理而生成的所产生的传出请求/语句425。通过审计逻辑432或者访问控制逻辑434,可以将在检验系统430中接收的传出请求/语句425的模式匹配到映射规范数据结构436中的条目以识别传入用户请求415的类型,或者在一些示意性实施例中,识别一个或者多个传入用户请求415的模式,匹配传出请求/语句425的模式。继而可以将这种类型的传入用户请求或者一个或者多个传入用户请求的模式匹配到被中继到检验系统430的实际传入用户请求415。可以使用会话标识符/用户标识符数据结构422将所识别的实际传入用户请求415中的会话标识符与用户标识符进行关联,其中该会话标识符/用户标识符数据结构422可以由检验系统430访问或者通过应用前端420被提供给检验系统430。
然后可以由审计逻辑432或者访问控制逻辑434使用用户标识符以在数据层中执行合适的操作。例如,审计逻辑432可以在审计记录数据结构(未示出)中生成审计记录,这些审计记录识别哪些用户访问了数据库后端系统440的哪些部分以及从数据层角度考虑与这些访问相对应的请求/语句。访问控制逻辑434可以基于所识别的用户来控制对数据库后端系统440的访问。在一个示例中,如果数据库后端系统440检测到数据泄露情况,则访问控制逻辑434可以使用映射规范数据结构436信息和上面描述的关联机制以指示应用前端420基于会话标识符来终止用户会话。
例如,假设在检验数据库访问层的同时,检验系统430的机制注意到SQL注入攻击,该SQL注入攻击引起从数据库后端系统440提取大量记录集以作为该SQL注入攻击创建的查询的结果集。在这种情况下,数据库后端系统440可能不想终止与应用前端系统420的数据库连接,由于其由应用前端服务器使用。然而,利用示意性实施例的机制,检验系统430使用上述机制知晓哪一个用户请求生成了导致SQL注入攻击的查询。因而,检验系统430的访问控制逻辑434可以操作以通过指示网关系统410拆毁客户端计算设备405与应用前端系统420之间的连接而防止向攻击者返回大量记录作为该SQL注入攻击袭击的一部分。
重要的是要注意到,在这种情况下,攻击发生的识别位于一个层上(在SQL注入攻击中或者大数据提取中,该层将被视为数据层),但是需要发生终止的层位于不同的层(在这种情况下为应用层)。已知机制试图在相同的层中识别攻击并且终止这些攻击,这导致错误并且通常是有故障的。在一个层中识别攻击但是具有到另一层的确定而精确的映射以使得能够很好地影响攻击的终止的能力是通过示意性实施例的机制提供的明显优点。
因而,示意性实施例提供了用于从应用层中的应用前端系统向在数据层中操作的数据层机制,例如审计和/或访问控制机制,传播用户身份信息的机制。按照这种方式,数据层机制可以将对后端系统的访问与特定的用户身份而不是应用前端系统的功能标识符进行关联。结果,能够在数据层处执行精确的审计并且能够基于用于连接的用户身份信息而不是应用前端系统的功能标识符来执行访问控制功能。
图5是根据一个示意性实施例概述网关系统在学习操作模式期间的示例操作的流程图。如图5所示,网关系统从客户端计算设备接收传入用户请求(步骤510)。网关系统然后解析该请求并且识别该请求中可能被通过应用前端系统在传出请求/语句中传递到后端系统的任何应用值(步骤520)。然后利用唯一可识别的值更换所识别的应用值(步骤530)。将所产生的修改的请求转发到应用前端和检验系统(步骤540)。然后结束网关系统关于该接收的传入用户请求的操作。应用意识到的是,在学习操作模式期间可以针对每一个随后接收的传入用户请求重复该过程。尽管图5中未示出,但是应用前端接收该修改的请求并且按照常规方式处理该请求以生成目标为例如后端数据库系统等等的后端系统的一个或者多个传出请求/语句。
图6是概述根据一个示意性实施例的检验系统在学习操作模式期间的示例操作的流程图。如图6所示,操作开始于检验系统接收由前端应用系统生成的一个或者多个传出请求/语句(步骤610)以及由网关系统转发的修改的传入用户请求(步骤620)。针对唯一值解析该一个或者多个传出请求/语句(步骤630)并且将任何发现的唯一值与存储在映射数据结构中的值进行比较(步骤640)。如果基于唯一值发现在映射数据结构640中存在匹配条目(步骤650),则将这一个或者多个传出请求/语句添加到用于特定的相对应的传入用户请求的匹配条目(步骤660)。如果不存在匹配,则操作终止。应该意识到的是,针对由检验系统接收的每一个新的传出请求/语句或者一组请求/语句可以重复该过程。
上面的过程生成将传入用户请求模式映射到传出请求/语句模式的映射数据结构,这继而可以在运行时期间使用以向后端审计、访问控制和其他后端处理传播用户身份信息。可以将网关系统和检验系统重新配置到运行时操作模式以执行这样的模式匹配。
图7是概述根据一个示意性实施例的网关系统在运行时操作模式期间的示例操作的流程图。如图7所示,网关系统接收传入用户请求(步骤710)并且继而向应用前端系统和检验系统简单地转发该传入用户请求(步骤720)。因而,在运行时操作模式中,网关系统主要作为流转实体操作,除了网关系统向检验系统以及应用前端系统转发传入用户请求。
图8是概述根据一个示意性实施例的检验系统在运行时操作期间的示例操作的流程图。如图8所示,检验系统从应用前端系统接收一个或者多个传出请求/语句(步骤810)并且从网关系统接收原始传入用户请求(步骤820)。检验系统将这一个或者多个传出请求/语句的模式与映射数据结构中的条目进行比较以识别匹配(步骤830)。该匹配可以不必是精确的匹配但是可以是在给定容限内的匹配。即,条目中的模式可以与所接收的传出请求的模式相差预定的可接受量,即,容限,并且仍然被认为是匹配。
如果不存在匹配的条目,则操作终止。然而,应该意识到,针对每一个随后接收的传出请求/语句或者一组传出请求/语句可以重复该过程。
如果存在发现的匹配条目(步骤840),则识别与所匹配的条目具有一个或者多个传入用户请求的相同类型或者模式的传入的用户请求(步骤850)。基于所匹配的传入用户请求的会话标识符来执行查找操作,以识别与所匹配的传入用户请求相对应的用户标识符(步骤860)。然后基于所传播的用户身份信息执行数据层操作(步骤870)。例如,该数据层操作可以包括使用利用示意性实施例的机制传播的用户身份信息来生成审计记录的审计机制。作为另一示例,访问控制机制可以基于该用户身份信息控制对后端系统中的数据的访问或者可以基于该用户身份信息指示应用前端修改连接。在不偏离适应性实施例的精神和范围的情况下可以执行其他类型的数据层操作。
因而,示意性实施例的机制允许用户身份信息从应用层传播到数据层,以使得能够在该用户身份信息的上下文内执行对数据层操作的分析。如先前提及的,利用已知机制,该用户身份信息在数据层丢失并且不可精确获得。示意性实施例的机制利用基于唯一值的学习过程以生成模式匹配规范,该模式匹配规范能够在不修改应用前端和后端系统的操作或者代码的情况下将传出请求/语句的模式与传入用户请求进行精确关联。
应该意识到,尽管在传播用户身份信息方面描述了示意性实施例,但是示意性实施例并不局限于此。而是可以使用示意性实施例的机制传播在一个处理层上可获得并且可能对另一个处理层感兴趣的任何信息。例如,关于安全,可以使用示意性实施例的机制传播的其他类型的信息包括客户端IP地址、主机名称、登录在客户端处的操作系统用户名称,或者能够辅助识别谁并且从哪里进行请求的任何其他信息。
如上所述,应该意识到,示意性实施例可以采取全部硬件实施例、全部软件实施例或者包含硬件和软件元件二者的实施例的形式。在一个示例实施例中,示意性实施例实现为软件或程序代码,软件或程序代码包括但不局限于固件、驻留软件、微代码等等。
适合于存储和/或执行程序代码的数据处理系统将包括直接或者通过系统总线间接耦合到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储器和提供至少一些程序代码的临时存储以降低在执行期间必须从大容量存储器中获取代码的次数的高速缓冲存储器。
输入/输出或者I/O设备(包括但不局限于键盘、显示器、指点设备等等)可以直接或者通过介于之间的I/O控制器耦接到系统。网络适配器也可以耦接到系统以使得数据处理系统能够变为通过介于之间的私人或者公共网络耦接到其他数据处理系统或者远程打印机或者存储设备。调制解调器、线缆调制解调器和以太网卡只是当前可获得的网络适配器类型中的一些。
出于示意和描述目的呈现了本发明的描述,其并非意在具有排它性或者将本发明局限于所公开的形式。许多变型和变化对于本领域的普通技术人员来说将变得明显。选择和描述这些实施例以最佳解释本发明的原理、实际应用,并且使本领域的其他技术人员理解具有适合于期望的特定用途的各种变型的本发明各种实施例。

Claims (15)

1.一种用于在数据处理系统中从应用层中的应用前端系统向与后端系统相关联的数据层检验系统传播源标识信息的方法,包括:
在所述数据层检验系统处从所述应用层中的与所述应用前端系统相关联的网关系统接收传入用户请求;
在所述数据层检验系统处接收目标为所述后端系统并且由所述应用前端系统基于所接收的传入用户请求而生成的一个或者多个传出语句;
由所述数据层检验系统基于所述一个或者多个传出语句来访问映射数据结构,从而将所述一个或者多个传出语句与所述传入用户请求进行关联;
由所述数据层检验系统基于所述一个或者多个传出语句与所述传入用户请求的所述关联来获取与所述传入用户请求相关联的源标识信息;以及
由所述数据层检验系统基于所述源标识信息来执行数据层检验操作。
2.如权利要求1的方法,其中所述映射数据结构将一个或者多个传出语句的模式映射到一个或者多个传入用户请求的类型或者模式。
3.如权利要求2的方法,其中访问所述映射数据结构包括执行在所述映射数据结构中查找具有与所接收的一个或者多个传出语句的模式匹配的传出语句的模式的条目。
4.如权利要求3的方法,其中访问所述映射数据结构进一步包括:
获取在所述条目中指定的一个或者多个传入用户请求的类型或者模式;以及
识别具有与在所述条目中指定的类型或者模式相同的类型或者模式的所接收的一个或者多个传入用户请求。
5.如权利要求4的方法,其中获取源标识信息包括基于与具有与在所述条目中指定的类型或者模式相同的类型或者模式的所接收的一个或者多个传入用户请求相关联的连接信息来获取所述源标识信息。
6.如权利要求1的方法,进一步包括:
创建所述映射数据结构,其中通过如下来创建所述映射数据结构:
处理多个测试传入用户请求;以及
针对所述多个测试传入用户请求的每一个测试传入用户请求,在所述映射数据结构的条目中记录由所述前端应用系统生成的、目标为所述后端系统的传出语句的模式。
7.如权利要求6的方法,其中处理所述多个测试传入用户请求包括,针对每一个测试传入用户请求:
解析所述测试传入用户请求以在所述测试传入用户请求中识别至少一个应用值;
利用唯一可识别的值更换所述测试传入用户请求中的所述至少一个应用值以生成修改的测试传入用户请求;
通过所述应用前端系统处理所述修改的测试传入用户请求;以及
针对所述唯一可识别的值监视由所述应用前端系统生成的传出语句。
8.如权利要求7的方法,其中将具有所述唯一可识别的值的传出语句添加到所述映射数据结构中与所述测试传入用户请求相对应的条目,并且其中存储在对应于所述测试传入用户请求的所述条目中的一系列传出语句构成传出语句的模式。
9.如权利要求1的方法,其中所述数据层检验操作是生成对所述后端系统的访问的审计日志的数据层审计操作,并且其中所述审计日志包括所述源标识信息。
10.如权利要求1的方法,其中:
所述后端系统是数据库系统,
所述传入用户请求是目标为所述应用前端系统的超文本传输协议HTTP请求,并且
所述传出语句是由所述应用前端系统基于所述HTTP请求生成的结构化查询语言SQL语句。
11.一种传播源标识信息的装置,包括:
处理器;以及
耦接到所述处理器的存储器,其中所述存储器包括在通过所述处理器执行时使所述处理器进行如下的指令:
从与应用前端系统相关联的网关系统接收传入用户请求;
接收目标为后端系统并且由所述应用前端系统基于所接收的传入用户请求生成的一个或者多个传出语句;
基于所述一个或者多个传出语句来访问映射数据结构,从而将所述一个或者多个传出语句与所述传入用户请求进行关联;
基于所述一个或者多个传出语句与所述传入用户请求的所述关联来获取与所述传入用户请求相关联的源标识信息;以及
基于所述源标识信息来执行数据层检验操作。
12.如权利要求11的装置,其中所述映射数据结构将一个或者多个传出语句的模式映射到一个或者多个传入用户请求的类型或者模式,并且其中所述指令使所述处理器通过如下来访问所述映射数据结构:执行在所述映射数据结构中查找具有与所接收的一个或者多个传出语句的模式匹配的传出语句的模式的条目。
13.如权利要求12的装置,其中所述指令进一步使所述处理器通过如下来访问所述映射数据结构:
获取与所述条目相对应的所述一个或者多个传入用户请求的类型或者模式;以及
识别具有与在所述条目中指定的类型或者模式相同的类型或者模式的一个或者多个所接收的传入用户请求,并且其中所述指令使所述处理器通过如下来获取源标识信息:基于具有与在所述条目中指定的类型或者模式相同的类型或者模式的一个或者多个所接收的传入用户请求相关联的连接信息来获取所述源标识信息。
14.如权利要求11的装置,其中所述指令进一步使所述处理器:
创建所述映射数据结构,其中通过如下来创建所述映射数据结构:
处理多个测试传入用户请求;以及
针对所述多个测试传入用户请求中的每一个测试传入用户请求,在所述映射数据结构的条目中记录目标为所述后端系统的由所述前端应用系统生成的传出语句的模式。
15.如权利要求14的装置,其中所述指令使所述处理器通过如下来处理所述多个测试传入用户请求,其中针对每一个测试传入用户请求:
解析所述测试传入用户请求以在所述测试传入用户请求中识别至少一个应用值;
利用唯一可识别的值更换所述测试传入用户请求中的所述至少一个应用值,以生成修改的测试传入用户请求;
通过所述应用前端系统处理所述修改的测试传入用户请求;以及
针对所述唯一可识别的值监视由所述应用前端系统生成的传出语句,其中将具有所述唯一可识别的值的传出语句添加到所述映射数据结构中与所述测试传入用户请求相对应的条目,并且其中存储对应于所述测试传入用户请求的所述条目中的一系列传出语句构成传出语句的模式。
CN201180057965.9A 2010-12-08 2011-10-27 传播源标识信息的方法和系统 Active CN103238308B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/962,745 US8583666B2 (en) 2010-12-08 2010-12-08 Identity propagation through application layers using contextual mapping and planted values
US12/962,745 2010-12-08
PCT/EP2011/068887 WO2012076249A1 (en) 2010-12-08 2011-10-27 Identity propagation through application layers using contextual mapping and planted values

Publications (2)

Publication Number Publication Date
CN103238308A CN103238308A (zh) 2013-08-07
CN103238308B true CN103238308B (zh) 2016-01-20

Family

ID=44883247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180057965.9A Active CN103238308B (zh) 2010-12-08 2011-10-27 传播源标识信息的方法和系统

Country Status (5)

Country Link
US (5) US8583666B2 (zh)
CN (1) CN103238308B (zh)
DE (1) DE112011103273B4 (zh)
GB (1) GB2499959B (zh)
WO (1) WO2012076249A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583666B2 (en) 2010-12-08 2013-11-12 International Business Machines Corporation Identity propagation through application layers using contextual mapping and planted values
CN103024056B (zh) * 2012-12-17 2016-01-20 山东中创软件商用中间件股份有限公司 数据处理方法、负载均衡器及云系统
US9043593B2 (en) 2013-03-11 2015-05-26 International Business Machines Corporation Session attribute propagation through secure database server tiers
CN105630819B (zh) * 2014-11-03 2019-06-11 阿里巴巴集团控股有限公司 一种缓存数据的刷新方法和装置
US9703845B2 (en) * 2015-01-26 2017-07-11 International Business Machines Corporation Representing identity data relationships using graphs
US9826100B2 (en) * 2015-06-10 2017-11-21 Flexera Software Llc Usage tracking for software as a service (SaaS) applications
US10778525B2 (en) * 2016-04-14 2020-09-15 International Business Machines Corporation Measuring the performance of computing resources
US10417441B2 (en) 2016-04-29 2019-09-17 International Business Machines Corporation Effectively validating dynamic database queries through database activity monitoring
US10445220B2 (en) * 2017-01-25 2019-10-15 Verizon Patent And Licensing Inc. System and methods for application activity capture, error identification, and error correction
US10467117B2 (en) * 2017-01-31 2019-11-05 Salesforce.Com, Inc. Techniques for providing application contextual information
IT201800005547A1 (it) * 2018-05-21 2019-11-21 Metodo per la memorizzazione di programmi per l’interfaccia operatore e di gestione di macchine e/o impianti per l’automazione
CN113111119B (zh) * 2020-01-13 2024-04-12 北京京东振世信息技术有限公司 一种操作数据的方法和装置
US11657159B2 (en) 2020-10-16 2023-05-23 International Business Machines Corporation Identifying security vulnerabilities using modeled attribute propagation
CN112818049B (zh) * 2021-01-28 2024-04-16 中国人寿保险股份有限公司上海数据中心 一种信息系统性能全链路分析系统及其方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005503A (zh) * 2006-01-16 2007-07-25 国际商业机器公司 用于侦听客户端和服务之间的通信的方法和数据处理系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987611A (en) * 1996-12-31 1999-11-16 Zone Labs, Inc. System and methodology for managing internet access on a per application basis for client computers connected to the internet
US20020068582A1 (en) * 2000-12-01 2002-06-06 Telefonaktiebolaget L M Ericsson Method, system and mediation device for reporting information to a Law Enforcement Agency
EP1328102A1 (en) * 2002-01-14 2003-07-16 Alcatel Method and system for managing the access to a communication network based on authentication data
US20040044607A1 (en) * 2002-09-03 2004-03-04 Hedrick, Thomas W. Intermediary computing to handle debt management plan requests
WO2004032562A1 (en) 2002-10-04 2004-04-15 Nortel Netowrks Limited Apparatus, method and program for network topology discovery utilizing data link layer services
US7249375B2 (en) 2003-08-05 2007-07-24 Oracle International Corp Method and apparatus for end-to-end identity propagation
US20060026286A1 (en) 2004-07-06 2006-02-02 Oracle International Corporation System and method for managing user session meta-data in a reverse proxy
US7788497B2 (en) 2005-01-13 2010-08-31 Bea Systems, Inc. Credential mapping of WebLogic and database user ids
US20070118534A1 (en) * 2005-11-18 2007-05-24 Database-Brothers, Inc. Auditing database end user activity in one to multi-tier web application and local environments
US20080016062A1 (en) * 2006-06-30 2008-01-17 Drescher Keith A Request-response trigger generation in link-connected computing systems
US8141100B2 (en) 2006-12-20 2012-03-20 International Business Machines Corporation Identifying attribute propagation for multi-tier processing
US20080175222A1 (en) 2007-01-23 2008-07-24 International Business Machines Corporation Url patterns for multi tenant systems
US8583666B2 (en) 2010-12-08 2013-11-12 International Business Machines Corporation Identity propagation through application layers using contextual mapping and planted values

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005503A (zh) * 2006-01-16 2007-07-25 国际商业机器公司 用于侦听客户端和服务之间的通信的方法和数据处理系统

Also Published As

Publication number Publication date
US11138095B2 (en) 2021-10-05
GB2499959A (en) 2013-09-04
US20130151542A1 (en) 2013-06-13
US20160239406A1 (en) 2016-08-18
US20140222842A1 (en) 2014-08-07
CN103238308A (zh) 2013-08-07
GB2499959B (en) 2014-05-14
US10180895B2 (en) 2019-01-15
DE112011103273B4 (de) 2020-06-18
US8589422B2 (en) 2013-11-19
WO2012076249A1 (en) 2012-06-14
GB201311304D0 (en) 2013-08-14
DE112011103273T5 (de) 2013-07-18
US8583666B2 (en) 2013-11-12
US20190121721A1 (en) 2019-04-25
US9390083B2 (en) 2016-07-12
US20120150880A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
CN103238308B (zh) 传播源标识信息的方法和系统
US10530799B1 (en) Non-harmful insertion of data mimicking computer network attacks
CN109428886B (zh) 用于经由区块链进行评论验证和可信度评分的方法和系统
US8903815B2 (en) Enterprise architecture system and method
CN109063138B (zh) 用于在区块链即服务平台搜索数据的方法、设备及存储介质
CN101883024A (zh) 一种跨站点伪造请求的动态检测方法
CN103150647A (zh) 报表文件处理方法、服务器和系统
US12033144B2 (en) Systems and methods for improved indexing of non-standardized, custom smart contracts
CN111064725A (zh) 一种代码零入侵接口校验方法和校验装置
CN115016978A (zh) 数据校验方法及装置、计算机存储介质、电子设备
CN110598007B (zh) 账单文件处理方法、装置、介质及电子设备
CN114168149A (zh) 一种数据转换方法及装置
US20210209596A1 (en) Object Oriented Smart Contracts For UTXO-Based Blockchains
CN112015826B (zh) 基于区块链的智能合约安全性检测方法及相关设备
CN111125066B (zh) 检测数据库审计设备功能的方法及装置
CN115412358B (zh) 网络安全风险评估方法、装置、电子设备及存储介质
CN110858211B (zh) 数据存储方法、装置及系统、存储介质
CN114037523A (zh) 函证业务测试方法、装置、设备、介质及程序产品
CN112965993B (zh) 一种数据处理系统、方法、装置及存储介质
US12126581B2 (en) Multichannel messaging systems and methods
US20240281562A1 (en) Maintaining confidentiality of personal data in documents required to be filed by governmental requirements
KR101442973B1 (ko) 웹 어플리케이션 프레임워크 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 매체
CN118797696A (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
Kaur Generalization of a Constraint Based Intrusion Detection System
CN116128518A (zh) 电子档案管理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant