CN116137908A - 动态确定端到端链路的信任级别 - Google Patents
动态确定端到端链路的信任级别 Download PDFInfo
- Publication number
- CN116137908A CN116137908A CN202180059714.8A CN202180059714A CN116137908A CN 116137908 A CN116137908 A CN 116137908A CN 202180059714 A CN202180059714 A CN 202180059714A CN 116137908 A CN116137908 A CN 116137908A
- Authority
- CN
- China
- Prior art keywords
- messages
- histogram
- message
- link
- trust level
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于动态确定计算机数据库的端到端链路的信任级别的系统和方法包括:在准备阶段中:捕获端到端链路的第一消息集合;压缩第一消息集合中的每个消息的框架以生成第一消息集合中的每个消息的构造,框架包括不具有值字段的消息;创建第一消息集合的构造的特征直方图;在操作阶段期间:捕获端到端链路的第二消息集合;压缩第二消息集合中的每个消息的框架以生成第二消息集合中的每个消息的构造;创建第二消息集合的构造的工作直方图;以及通过将工作直方图与特征直方图进行比较来确定端到端链路的信任级别。
Description
技术领域
本发明一般涉及动态白名单,尤其涉及动态确定从用户到计算机数据库的端到端链路的信任级别。
背景技术
数据防火墙通常实时捕获或嗅探对数据库的数据访问(例如,请求和响应),并根据策略规则来分析数据。数据防火墙可以包括数据活动监视器(DAM)和/或文件活动监视器(FAM)。由数据防火墙嗅探的请求和响应可以包括请求(例如,结构化查询语言(SQL)语句)或响应,以及相关联的报头信息。报头可以包括元数据,例如机器信息、网络信息、用户信息、客户端信息等。
DAM的规范解决方案是在数据源服务器(例如,数据库服务器)上安装代理。代理可以捕获、镜像或嗅探请求和响应,并且将请求和响应发送到安全服务器。安全服务器可以解析数据,实施策略执行,然后根据需要审计、分析、警告或阻止请求和响应。DAM的主要挑战之一是必须捕获和分析大量数据。例如,在典型的企业环境中,DAM可以每秒捕获或嗅探大约100百万个事务(例如,请求和响应)(TPS)。实时或接近实时地嗅探和分析如此大量的数据需要可能非常昂贵的适当的计算机基础设施。
因此,需要一种用于减少分析数据量的方法。
发明内容
根据本发明的实施例,一种用于动态确定计算机数据库的端到端链路的信任级别的系统和方法可以包括:在准备阶段中:捕获第一端到端链路的第一消息集合;压缩第一消息集合中的每个消息的框架(skeleton)框架以生成第一消息集合中的每个消息的构造(construct),其中,框架包括不具有值字段的消息;以及创建第一消息集合的构造的特征直方图;在操作阶段期间:捕获第一端到端链路的第二消息集合;压缩第二消息集合中的每个消息的框架以生成第二消息集合中的每个消息的构造;创建第二消息集合的构造的工作直方图;以及通过将工作直方图与特征直方图进行比较来确定第一端到端链路的信任级别。
根据本发明的实施例,可以根据端到端链路的参数来定义端到端链路,其中,参数选自:主机名称,服务名称,数据库名称,客户端主机名称、操作系统用户,以及数据库用户。
根据本发明的实施例,确定端到端链路的信任级别可以包括:如果第二消息集合的构造中的至少一个构造没有被包括在第一消息集合的构造的特征直方图中,则确定端到端链路的信任级别为不可信。
根据本发明的实施例,压缩框架可包括对框架进行散列以产生散列。
本发明的实施例可以包括:在准备阶段中将被划分为命令组的第一消息集合的命令添加到特征直方图;在操作阶段期间,将被划分为命令组的第二消息集合的命令添加到工作直方图。
本发明的实施例可以包括:在准备阶段中,获得多个消息集合,其中每个集合与端到端链路集合中的端到端链路有关;生成多个消息集合中的每个消息的构造;针对端到端链路集合中的每个端到端链路创建特征直方图,其中,每个特征直方图是从端到端链路集合中的端到端链路的消息集合的构造创建的;以及执行特征直方图的聚类以确定端到端链路的聚类;在操作期间,将工作直方图与第一端到端链路的聚类的每个特征直方图进行比较,以确定第一端到端链路的信任级别。
根据本发明的实施例,可以针对每个新会话和周期性地重复捕获第二消息集合。
根据本发明的实施例,信任级别可以选自可信和不可信,并且本发明的实施例可以包括:如果信任级别是可信,则对端到端链路的未来消息不执行综合安全性分析;以及如果信任级别是不可信,则将策略规则应用于端到端链路的未来消息。
本发明的实施例可包括:如果信任级别是可信,则将第二消息集合中的每个消息的构造添加到特征直方图。
根据本发明的实施例,可以通过将工作直方图的方差与特征直方图的方差进行比较,将工作直方图与特征直方图进行比较。
附图说明
在说明书的结论部分特别指出并清楚地要求保护本发明的主题。然而,当结合附图阅读时,通过参考以下详细描述,可以最好地理解本发明的实施例的组织和操作方法及其目的、特征和优点。本发明的实施例通过示例的方式进行说明,并且不限于附图中的图,在附图中,相同的附图标记表示相应的、类似的或相似的元件,并且其中:
图1描绘了根据本发明的实施例的云计算环境;
图2描绘了根据本发明实施例的抽象模型层;
图3描绘了根据本发明的实施例的系统;
图4A描绘了根据本发明实施例的包括数据库服务器的数据源机器的示例;
图4B描绘了根据本发明实施例的包括网关、网络网关或代理和数据库服务器的组合的数据源机器;
图5描绘了根据本发明的实施例的端到端链路的消息、框架、构造和特征直方图;
图6A描绘了根据本发明实施例的端到端链路的工作直方图与端到端链路的特征直方图的比较;
图6B描绘了根据本发明实施例的端到端链路的工作直方图与多个端到端链路的多个特征直方图的比较,每个特征直方图与端到端链路的聚类有关;
图6C描绘了根据本发明实施例的端到端链路的工作直方图与端到端链路的聚类的共同特征直方图的比较;
图7是根据本发明实施例的用于将消息与端到端链路相关联的方法的流程图;
图8是根据本发明实施例的用于生成特征直方图的方法的流程图
图9是根据本发明实施例的用于动态确定计算机数据库的端到端链路的信任级别的方法的流程图;以及
图10示出了根据本发明的实施例的示例计算设备。
应当理解,为了说明的简单和清楚,图中所示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被放大。此外,在认为适当的情况下,附图标记可以在附图中重复以指示对应或类似的元件。
具体实施方式
在以下描述中,将描述本发明的各个方面。为了解释的目的,阐述了具体的配置和细节以便提供对本发明的透彻理解。然而,对于本领域技术人员来说,显然,本发明可以在没有这里给出的特定细节的情况下实施。此外,为了不使本发明变得模糊,可以省略或简化公知的特征。
尽管本发明的一些实施例不限于此,但是利用诸如“处理”、“计算”、“运算”、“确定”、“建立”、“分析”、“检查”等术语的讨论可以是指计算机、计算平台、计算系统或其他电子计算设备的(一个或多个)操作和/或(一个或多个)过程,该其他电子计算设备将被表示为计算机的寄存器和/或存储器内的物理(例如,电子)量的数据操纵和/或变换成类似被表示为计算机的寄存器和/或存储器或可存储指令的其他信息瞬态或非瞬态或处理器可读存储介质内的物理量的其他数据,所述指令在由处理器执行时使处理器执行操作和/或过程。尽管本发明的实施例不限于此,但是如本文所使用的术语“多个”和“多个”可以包括例如“多个”或“两个或更多”。在整个说明书中可以使用术语“多个”或“多个”来描述两个或更多组件、设备、元件、单元、参数等。除非另有说明,否则术语“集合”当在本文中使用时可包括一个或多个项。除非明确说明,否则本文描述的方法实施例不限于特定顺序或序列。另外,一些所描述的方法实施例或其元素可以与所描述的顺序不同的顺序同时、在相同时间点或并发地发生或执行。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务交付模型,用于实现对共享的可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)池的方便、按需的网络访问,可配置计算资源可以以最小的管理成本或与服务提供商进行最少的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性可以是例如:
按需自助式服务:云的消费者可以单方面自动地按需提供计算能力(诸如服务器时间和网络存储),而无需与服务提供者进行人工交互。
广泛的网络接入:能力在网络上可用并通过促进异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用的标准机制来接入。
资源池:提供商的计算资源被归入资源池以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和再分配。一般情况下,消费者不能控制或不知道所提供的资源的确切位置,但是可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:可以迅速且有弹性地(在一些情况下自动地)提供能力以快速向外扩展并被迅速释放以快速缩小。对于消费者,可用于提供的能力通常看起来是无限的,并可以在任何时间以任何数量购买。
可测量的服务:云系统通过利用在适于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象程度的计量能力,自动地控制和优化资源使用。可以监视、控制和报告资源使用情况,为所利用的服务的提供者和消费者双方提供透明度。
服务模型可以是例如:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可通过诸如网络浏览器的瘦客户机接口(例如,基于网络的电子邮件)来从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置以外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、或甚至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用是使用由提供商支持的编程语言和工具创建的。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础设施即服务(IaaS):向消费者提供的能力是提供消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其它基础计算资源。消费者既不管理也不控制底层云基础架构,但对操作系统、存储、所部署的应用具有控制权,对所选择的网络组件(例如,主机防火墙)可能具有有限的控制权。
数据库即服务(DBaaS):提供给消费者的能力是在云基础设施上存储数据。DBaaS范例是用于在基于云的计算机化服务中存储数据的常见方法,其中,用户在不需要管理硬件或软件的情况下能够访问数据。
部署模型可以是例如:
私有云:云基础设施单独为某个组织运行。它可以由该组织或第三方管理,并且可以存在于该组织内部或外部。
共同体云:云基础设施被若干组织共享,并支持具有共同利害关系(例如,任务、安全要求、政策和合规考虑)的特定共同体。它可以由该组织或第三方管理,并且可以存在于该组织内部或外部。
公共云:云基础设施可用于一般公众或大型产业群,并由销售云服务的组织拥有。
混合云:云基础设施由两个或更多云(私有云、共同体云或公共云)组成,这些云依然是独特实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语义的互操作性。计算的核心是包括互连节点网络的基础架构。
本发明的实施例可以提供一种用于动态白名单或用于动态确定计算机数据库的连接的信任级别的系统和方法。根据本发明的实施例,与可信的端到端链路相关联的消息(例如,数据库请求和响应的主体或有效载荷)可以不经历综合安全性分析。
DAM和FAM产品的当前体系结构是基于两步过程。第一步由安装在数据源机器上的代理软件或应用程序实时地执行,第二步由安全服务器应用(也称为收集器)离线地执行。数据源机器可以包括数据库,例如数据库服务器、文件服务器等,或者数据库和数据库的代理或网关的组合。代理软件可以安装在数据库本身上或者安装在数据库的代理或网关上。在数据库的代理或网关上安装代理软件可以使得能够捕获基于云的数据库中的数据分组(也称为数据记录)(当使用DBaaS模型时),所述数据分组由不允许在其数据库上安装软件应用的第三方多次操作。
根据现有技术应用,代理应用可以捕获或接收包括所监视的数据库的请求和响应的所有数据分组,读取报头信息,对报头信息执行初始规则处理,然后将数据分组发送到收集器应用以用于离线的综合安全性分析。由收集器执行的综合安全性分析可以包括:从代理获得或接收数据分组,解析数据分组,构造数据,例如对数据分类并将元数据映射到数据,建立数据层级,对经分类的数据应用策略规则以识别敏感数据,以及根据规则匹配来检测数据破坏或数据篡改。此后,收集器可以发送数据以供其他组件进一步分析和审核。
由收集器执行的综合安全性分析的许多过程依赖于数据的映射和分类,由于海量数据(例如,每个数据源+100,000TPS或总共100百万TPS)的映射和分类的复杂性和性能要求,这通常离线运行。代理必须不延迟事务,并且必须避免等待时间。实时或接近实时地嗅探和分析如此大量的数据需要可能非常昂贵的适当的计算机基础设施。
一种用于减少分析数据量的方法是白名单。白名单可包括:确定针对可信的端到端链路的请求和响应不执行综合安全性分析的端到端链路的信任级别或其他评级,以及针对不可信的端到端链路的请求和响应执行综合安全性分析。
用于白名单的现有解决方案可以包括使用诸如用户行为分析应用(UBA)、风险评估、签名搜索和可信连接之类的技术来将端到端链路标记或标注为可信或不可信。然而,所有这些技术是静态的,例如,一旦连接被分类为可信的,则该连接中的整个通信量被认为是可信的。因此,这些技术易受诸如劫持之类的攻击,其中攻击者接管连接的一部分并充当参与者之一。
本发明的实施例可以通过提供一种用于白名单或者确定端到端链路的信任级别或评级的方法来改进安全性分析技术,该方法既是动态的(例如,在运行时周期性地执行),同时又需要较少的计算资源(与对通信的全面分析相比)。用于确定端到端链路的信任级别的方法的实施例可以周期性地、实时地或接近实时地执行,并且因此,可以使得能够检测在先前被确定为可信的端到端链路上的通信的异常行为。因此,假设劫持者的行为可能与端到端链路的正常用户不同,则可以检测到劫持攻击,其中攻击者接管了先前被分类为可信的端到端链路的一部分。
数据库连接可以是软件结构,其可以使客户端应用或软件能够与数据源机器通信,例如发送命令和接收应答。在许多应用中,连接被池化以便于连接重用。因此,多个用户可以协作地使用多个连接。根据本发明的实施例,端到端链路可以表示单个客户端与单个数据库之间的通信。链路可以被承载在一个或多个连接池中的多个连接上。
根据本发明的实施例,端到端链路可以由与被发送到数据库的请求或来自数据库的响应相关的参数的元组或组合来定义,该请求或响应指定端到端链路。元组可以包括将请求或响应与单个用户相关的参数。这些参数可以从请求或响应的报头中获得。理想地,端到端链路对于单个用户可以是唯一的,或者基于可用参数而至少尽可能接近单个用户。参数的元组可以包括用户信息、源程序信息和数据库信息。用户信息可以包括标识用户本身的参数。例如,用户信息参数可以包括数据库用户标识(DB用户)、操作系统用户标识(OS用户)、应用用户标识(App用户)和客户端主机地址(ClientHost)中的一个或多个。源程序信息可以包括识别用于将用户连接到数据库的应用或软件的参数,例如SQLplus、Java数据库连接(JDBC)等。数据库信息可以包括识别数据库的参数。例如,数据库信息可以包括数据库名称(DbName)或服务名称(ServiceName)之一,以及数据库服务器主机名称(ServerHostName)或数据库服务器IP之一。可以使用其他用户信息参数、源程序信息参数、数据库信息参数或其他参数。
使用元组而不仅仅是数据库用户标识(DB用户)来指定端到端链路可以使得能够定义单个用户所使用的单个端到端链路,例如,在其中多个用户共享相同连接或连接池的情况下可以检测到单个用户。多个用户使用或共享相同连接或连接池的情况在许多应用中是非常常见的,例如,多个银行出纳员可以使用单个连接来访问相同数据库。
根据本发明的实施例,可以生成端到端链路的签名。可以基于与端到端链路有关的消息来生成签名,该消息可以表示端到端链路的正常行为。在一些实施例中,签名可以包括或者可以从不具有值字段的消息的压缩或缩减大小的版本和/或从在端到端链路中使用的命令生成。根据本发明的一些实施例,例如,可以通过分类器或通过对签名执行聚类分析来将端到端链路划分成类似的端到端链路的组或聚类。每个聚类可以包括端到端链路组,其中聚类中的端到端链路的签名之间的距离小。一旦创建了签名,就可以通过将端到端链路上的通信与签名或者签名的聚类进行比较来周期性地检查与端到端链路有关的通信。可以基于该比较来确定端到端链路的信任级别。
在一些实施例中,可以通过创建端到端链路的消息集合的每个(没有值字段的)消息的构造,并且从构造中创建特征直方图来生成签名,其中签名可以是或可以包括特征直方图。例如,构造可以包括没有消息的值字段的消息的散列或其它压缩版本。在压缩消息之前移除消息的值字段可以增加经压缩的值的一致性。在一些实施例中,用于生成构造的操作可以减少位数,非常快速地计算并最小化冲突(当针对不同消息生成相同构造时,可能发生冲突)。为了从构造中生成特征直方图,构造可以被划分为多个仓(bin)。假设在端到端链路的正常操作期间,大多数(没有值字段的)消息是相似的,因此,对没有值字段的消息进行散列可以生成典型的特征直方图。
在一些实施例中,特征直方图还可以包括端到端链路的消息集合的命令。例如,可通过将命令分组为命令组的仓来产生特征直方图。例如,命令组可以包括数据定义语言命令(DDL)、数据操纵语言命令(DML)、数据查询语言命令(DQI)、数据控制语言命令(DCL)、事务控制语言命令(TCL)等。假设在端到端链路的正常操作期间,绝大多数的命令将重复自己,因此,对每个命令组中的命令的数目进行计数可以生成典型的命令直方图,这可以被包括在特征直方图中。因此,根据一些实施例,端到端链路的签名可以包括特征直方图,该特征直方图包括构造和/或命令区间。
在许多数据库应用中,相同的用户和相同角色的其他用户重复相同的操作。例如,作为零售银行家的所有用户可在一天中多次重复相同的操作。例如,他们可以执行像货币移动、贷款批准、检查许多客户的账户等商业交易,其中每个商业交易可以由数百条SQL语句来执行。因此,根据本发明的实施例,从消息中移除值可以检测重复和共同的活动。因此,只要相同的用户使用端到端链路用于相同的目的,特征直方图的一般形状就可以保持相同。相反,特征直方图的一般形状的大的偏差可以用作可能的安全问题的指示。
现在参考图1,描绘了说明性云计算环境50。如图所示,云计算环境50包括具有云消费者所使用的本地计算设备可以与其通信的一个或多个云计算节点10。这些本地计算设备的示例包括但不限于个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C、和/或汽车计算机系统54N。节点10可彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所描述的私有云、共同体云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施即服务、平台即服务和/或软件即服务,而云消费者不需要为其在本地计算设备上维护资源。应当理解,图1中所示的计算设备54A-N的类型仅仅是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参考图2,示出了由云计算环境50(图1)提供的一组功能抽象层。应当预先理解,图2中所示的组件、层和功能仅仅是说明性的,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件,例如图10中描述的硬件和软件组件。硬件组件的实例包括:处理器(例如,图10中描绘的处理器705),诸如大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63和刀片服务器64;存储设备65(例如,图10中描绘的存储设备730);以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用程序和操作系统74;以及虚拟客户端75。
根据一些实施例,被监控的数据库可以在虚拟存储72上实现,并且物理地位于存储设备65上。数据库可以由可包括根据本发明实施例的代理软件的数据库软件68管理。收集器或数据安全应用可以由在虚拟服务器71上运行的软件实现,然而,也可以使用其他体系结构和硬件。
在一个示例中,管理层80可以提供下面描述的示例功能。资源供应81功能提供用于在云计算环境内执行任务的计算资源和其他资源的动态获取。计量和定价82功能提供对在云计算环境中使用资源的成本跟踪,并为这些资源的消耗提供账单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云消费者和任务提供身份验证,并为数据和其他资源提供保护。用户门户83功能为消费者和系统管理员提供对云计算环境的访问。服务水平管理84功能提供云计算资源分配和管理,以满足所需的服务水平。服务水平协议(SLA)计划和履行85功能提供对根据SLA针对其预测未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。在该层中,可提供的工作负载和功能的示例包括但不限于:地图绘制和导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;以及事务处理95。
参考图3,描绘了根据本发明实施例的系统300。根据一些实施例,安全服务器330可以在虚拟服务器71上实现,并且数据源机器320可以在虚拟存储72上实现,然而,可以应用其他实现。应当预先理解,图3中所示的组件和功能旨在仅仅是说明性的,并且本发明的实施例不限于此。
网络340可以包括可用于支持数据库客户端310、数据源机器320和安全服务器330之间的通信的任何类型的网络或网络组合。网络340可以包括例如有线、无线、光纤或任何其它类型的连接、局域网(LAN)、广域网(WAN)、互联网和内联网等。附加地或可替换地,数据库客户端310、数据源机器320和安全服务器330中的任何一个可以直接彼此连接。
根据一些实施例,在数据库客户端310上运行的数据库客户端应用312可以与数据源机器320通信,例如,通过生成并向数据源机器320提交包括例如数据库查询的数据分组或数据记录350。数据分组可以与端到端链路360有关。
在一个示例中,从数据库客户端310传输到数据源机器320的查询可以是或可以被包括在一个或多个数据库协议分组中,该数据库协议分组也称为数据分组350,其包括报头352和有效载荷354。报头352可以包括元数据,例如机器信息、网络信息、用户信息、客户端信息等。例如,报头可以包括以下用于定义端到端链路360的参数,ServerHostName、ServiceName、DbName、ClientHost、OsUser、DbUser等。有效载荷354可以包括用于数据库查询的数据和/或语句,例如SQL请求或响应。虽然在图3中示出了单个数据库客户端310和单个数据源机器320,但是,一个或多个数据源机器320可以向一个或多个数据库客户端310或客户端应用312提供数据库服务。
在一个示例中,数据分组350的有效载荷354可以包括查询(例如,请求或SQL语句)或对查询的响应,在此统一称为消息510(在图5中示出)。查询可包括结构化查询语言(SQL)语句,用于访问由数据库管理应用(例如,数据库管理应用324和/或数据库软件68)管理的表中的数据。SQL表示用于定义和操纵关系数据库中的数据的标准化语言。例如,在关系数据库模型下,数据库可被感知为包括数据的一组表格,并且可通过使用SQL语句来指定可从一个或多个表格导出的结果表格来检索数据。查询可以用用于定义和操纵关系数据库或其它类型数据库中的数据的一种或多种附加或替换语言或协议来定义。
数据源机器320可以包括数据库326,例如数据库服务器、文件服务器等,或者数据库326和数据库326的代理或网关、数据库管理应用324和代理应用322的组合。图4A中描述了包括数据库服务器410的数据源机器的示例。数据库服务器410可以包括由数据库管理应用324管理的数据库326,其可以包括代理应用322或者可以与之通信。类似的体系结构可以应用于文件服务器。图4B描绘了包括网关、网络网关或代理422和数据库服务器(或文件服务器)420的组合的数据源机器。数据库服务器420可以包括由数据库管理应用324管理的数据库326。在该实施例中,代理应用322位于网关、网络网关或代理422处。
在一个示例中,响应于来自数据库客户端310的查询,数据库管理应用324可以处理该查询,并且生成针对该查询的响应,该响应在数据库服务器响应中被返回到数据库客户端310。
数据分组350可以在端到端链路360上在数据库客户端310与数据源机器320之间流动。代理322可以是计算机执行的过程,其可以沿着数据库客户端310与数据源机器320之间的通信流捕获、嗅探或拦截一个或多个数据分组350,而不干扰数据分组350到数据源机器320的通信。代理322可以在沿着数据库客户端应用312与数据源机器320之间的通信流的一个或多个点处实现,以监视和捕获或拦截数据分组350,而无需数据库管理应用432(或数据库软件68)的参与,并且不依赖于数据库管理应用324的任何形式的本地审计或本地日志。尽管被绘制为数据源机器320的一部分,但是,代理322可在其它位置(,诸如但不限于网络340内的数据库服务器410和420的数据库存储器)、在操作系统级别、或在数据库库级别拦截数据分组350。
端到端链路360可以由与数据分组350相关的参数的元组或组合(通常在报头352中找到)来定义。元组可以包括一个或多个用户信息参数(例如OsUser、DbUser、App User、ClientHost(例如,与数据库客户端310相关)等)、源程序信息、以及数据库信息(例如ServiceName或DbName和ServerHostName或数据库服务器IP(例如,与数据库326相关))。可能需要使用元组而不仅仅是用户名(DB用户)来指定端到端链路360,以便识别在连接或连接池内的端到端链路360,例如,多个用户使用或共享单个连接或连接池的情况。
根据本发明的实施例,代理322可捕获或拦截在数据源机器320与数据客户机310之间流动的多个数据分组350。代理322可以捕获包括从数据源机器320发送到数据客户端310的查询分组的数据分组350和包括从数据客户端310发送到数据源机器320的响应分组的数据分组350两者。数据分组350可以被基本上实时地捕获而不增加等待时间或延迟。
根据一些实施例,代理322可以对所捕获的数据分组350进行解密以获得每个数据分组350的报头352。代理322可以分析报头352以获得报头信息,并基于报头信息将分组与端到端链路360相关联。根据本发明的一些实施例,端到端链路360可以与信任级别、安全状态或安全等级或评级相关联。根据本发明的实施例,代理322可以将每个数据分组350与它所属的端到端链路360的安全状态或信任级别相关联。信任级别可以是分类参数,其可以例如是“可信的”或“不可信的”。可以使用其他信任级别或评级。
在一些实施例中,代理322可以将策略规则应用于不可信的端到端链路360的未来消息。根据本发明的实施例,代理322可以基于或者根据信任级别来确定数据分组350是否需要被发送到安全服务器330。可信的端到端链路360可以被置于白名单中,并且与可信的端到端链路360相关联的消息510可以被忽略,例如从进一步的安全分析中排除,并且具体地从由安全服务器330执行的综合安全性分析中排除。因此,代理322可以不向安全服务器330发送与可信的端到端链路360相关联的消息510。另一方面,如果端到端链路360被分类为不可信,则与端到端链路360(其是不可信的)相关联的消息510可以由代理322发送到安全服务器330以经历综合安全性分析。在一些实施例中,如果端到端链路360被分类为不可信,则代理322可以发出警报。根据本发明的实施例,在端到端链路360被分类为不可信的情况下,可以采取其它安全措施。应当容易理解,单个端到端链路360可以有时被分类为可信的,而在其它时间被分类为不可信的,如本文所公开的。
因此,当捕获数据分组350时,代理322可以对报头352解密以获得报头信息(也称为元数据),其包括例如机器信息、网络信息、用户信息、客户端信息等。代理322可以基于报头信息来确定与数据分组350相关联的端到端链路360。一旦知道了端到端链路360,代理322就可以验证与端到端链路360相关联的安全状态,并且相应地采取行动。代理322可基于安全状态确定与报头352相关联的消息510是否应被阻止、是否应被允许流动而无需进一步分析或者是否需要进一步的安全性分析。例如,报头安全规则可以定义:如果用户被已知是恶意实体,则来自特定端到端链路360的消息510应当被阻止;如果端到端链路360是可信的,则该消息应当被允许流动而无需进一步的分析(例如,忽略);或者如果端到端链路360的状态是不可信的,则该消息应当被进一步分析。可以使用其他报头安全规则或报头安全规则的组合。由于报头结构是已知的,因此,可以实时地执行报头352的解密和分析,而不会引入显著的延迟。
根据本发明的实施例,代理322可以对端到端链路360生成签名362。例如在如本文所公开的准备阶段中和在操作阶段期间,代理322可以基于通过端到端链路360发送的并且由代理322捕获的消息510来生成签名362。因此,签名362可以表示端到端链路360的正常行为。为了生成签名362,代理322可以在准备阶段(也称为训练阶段)的时间窗口上捕获消息510,或者直到捕获了足够数量的消息510。例如,在典型的应用中,可能需要大约150,000-400,000个消息510来生成签名362。在一些实施例中,准备阶段可以包括多个会话(会话可以是指从登录到注销的到数据库的连接的逻辑表示)。在一些实施例中,代理322可以在20-40个会话的前一或两分钟内捕获消息510以生成签名362。可以使用用于捕获消息以生成签名362的其他时间窗口。根据本发明的实施例,代理322可以用高容量或高速率的消息510来对端到端链路360生成签名362。例如,代理322可以不对其中消息速率低于阈值(例如,低于每秒100个消息)的会话生成签名。
在一些实施例中,用于生成签名362的所有消息510可以经历如本文所公开的综合安全性分析,或者以其他方式被检查以验证它们表示端到端链路360的正常行为。
签名362可以包括在准备阶段期间捕获的没有值字段的消息510的压缩或缩减大小的版本。一旦创建了签名362,代理322就可以通过将端到端链路360的消息510与签名362进行比较来周期性地检查端到端链路360上的通信。基于该比较,代理322可以计算或确定端到端链路360的信任级别。根据一些实施例,准备阶段和签名362的生成可以周期性地重复,例如,每周一次或每年一次。
根据一些实施例,签名362可以包括与在准备阶段期间通过端到端链路360发送的消息510相关的特征直方图。在准备阶段期间生成的直方图在这里可以被称为端到端链路360的特征直方图。在这种情况下,可通过如本文所公开的在操作阶段期间对在时间窗口上的消息510进行采样、生成工作直方图并将工作直方图与特征直方图进行比较来执行比较。
现在参考图5,描绘了根据本发明的实施例的端到端链路360的消息510、框架520、构造530和直方图540。直方图540可以表示特征直方图或工作直方图。例如,为了生成特征直方图(例如,签名362),代理322可以在训练或准备阶段期间捕获消息510,并且为了生成工作直方图,代理322可以在运行时间或操作阶段期间捕获消息510。
在一些实施例中,代理322可通过从用于生成直方图540的每个消息510生成框架520、从每个框架520生成构造530、以及从构造530生成直方图540来生成直方图540。直方图540可以是用于在准备阶段期间捕获的消息的端到端链路360的签名362(或者可以是其一部分),以及用于在运行时间或操作阶段期间捕获的消息的工作直方图。
代理322可通过从消息510中移除值来从消息510中生成框架520。这些值可以是或者可以是指被存储在数据库表中的特定数据元素。因此,框架520可包括没有值字段的消息510。提如下供SQL语句的示例:
示例1:从EMPLOYEE中选择NAME,其中DEPARTMENT=“SALE”并且BAND>8;
示例2:从CUSTOMER,PHONE中选择FULL_NAME,ADDRESS,其中,PHONE.PHONE_NO如“01230123012%”,并且CUSTOMER.CUSTOMER_ID=PHONE.CUSTOMER_ID;
示例1中的值是“SALE”和“8”,并且在示例2中,值是电话号码“01230123012”。这些示例是针对请求的。响应通常包括列标题和值。因此,为了从响应中生成框架520,可以移除值,并且框架520可以包括列标题。
代理322可通过对框架520进行散列或使用其它压缩方法来从框架520生成构造530。用于生成构造510的操作可减少消息510的位数,非常快地计算并且最小化冲突,例如,在一些情况下不应或很少应针对不同的框架520生成相同的构造350。在典型的应用中,对于复杂的语句,框架520的长度范围可以从数十个字符到数千个字符。框架520的散列可高达约15-25个字符。
为了生成特征直方图540,代理322可以将构造530的值划分为一系列间隔,通常,间隔是连续的、相邻的和不重叠的,每个间隔可以被称为仓或桶(bucket)。然后,代理322可以对多少个构造530落入每个仓内进行计数。仓可以具有相等的大小或不相等的大小。假设端到端链路360的消息510可以重复自己,或者可以彼此相似,尤其是当值被移除时。因此,基于消息510的框架520生成特征直方图540可以表示端到端链路360的共同行为。因此,可以预期,端到端链路360的消息510的分布将保持与特征直方图类似。
根据一些实施例,除了构造530之外或作为其替代,直方图540可包括在消息510中使用的命令。例如,代理322可将被包括在消息510中的命令550划分成命令组。例如,命令组可包括DDL、DML、DQI、DCL、TCL等。因此,每个命令组可以是直方图540中的仓,并且代理322可以基于命令的类型而将每个命令放置在适当的仓中。
根据本发明的实施例,在操作阶段期间,只要端到端链路360被标记或分类为可信的,代理322就可以不向安全服务器330发送与端到端链路360相关联的消息350以用于综合安全性分析。这可以显著地降低在安全服务器330处所需的计算能力。然而,为了检测劫持攻击,代理322可以不时地对与端到端链路360相关联的消息510采样,例如周期性地,例如每10-30分钟和/或对于每个新会话,并且检查签名的变化,例如特征直方图。根据本发明的实施例,代理322可对端到端链路360的消息510采样,并仅在具有高容量或高速率的消息510的会话中检查签名362的变化。例如,代理322可以不检查消息速率低于阈值(例如,低于每秒100个消息)的会话的签名消息。相反,那些会话的消息510可以经历综合安全性分析,因为它们不包含大量的数据,因此不会向系统引入高负载。
例如,代理322可以在采样时间窗口期间对与端到端链路360相关联的消息510进行采样。采样时间窗口可以是固定长度的(例如,1-2分钟),或者可以持续直到采样了足够数量的消息510(例如,100-400个消息)。根据本发明的实施例,代理322可以从采样的消息350生成工作直方图540,如本文所公开的。
现在参考图6A,描绘了根据本发明实施例的端到端链路360的工作直方图610与端到端链路360的特征直方图620的比较。在图6A中,如本文所公开的,在准备阶段中生成特征直方图620,并在操作阶段期间生成工作直方图610。根据本发明的实施例,代理322可以比较602工作直方图610和特征直方图620,以确定端到端链路360的信任级别604。在一些实施例中,代理322可以直接从比较602中确定信任级别604,并且在一些实施例中,代理322可以基于比较602来计算安全等级,并且可以通过将安全等级与阈值进行比较来确定信任级别604。可以使用任何适用的统计或其它方法来执行比较602。例如,代理322可以将工作直方图610的方差与特征直方图620的方差进行比较602。例如,代理322可以确定:如果例如以下是真,则端到端链路360可以保持可信,并且如果以下是非真,则端到端链路360可以被分类为不可信(可以使用其他规则):
work_histogram_varianc<2*characteristic_histogram_variance(等式1)
现在参考图6B,描绘了根据本发明的实施例的端到端链路360的工作直方图610与多个端到端链路360、362、364的多个特征直方图620、622、624的比较606,其中每个端到端链路属于端到端链路360、362、364的聚类630。虽然聚类630被描绘为包括三个端到端链路360、362、364,但是这仅是示例,并且聚类630可以包括任何数量的端到端链路。
代理322可以找到端到端链路360、362、364的聚类630,其中,用于聚类的特征可以包括例如端到端链路360、362、364的构造和/或在端到端链路360、362、364中使用的命令。例如,在端到端链路360、362、364中使用的命令可以被分组为命令组,诸如DDL、DML、DQI、DCL、TCL等。聚类算法可以用于找到其中每一个包括类似的端到端链路的聚类,例如具有共同的构造和命令的端到端链路。在一些实施例中,k均值聚类可以用于将端到端链路360分为k个聚类630,其中每个端到端链路360属于具有最接近均值的聚类630。可以使用其它聚类方法。
在一些实施例中,代理322可以(例如,使用等式1)将工作直方图610与端到端链路360的聚类630的每个特征直方图620、622和624进行比较606,以确定端到端链路360的信任级别604。例如,在一些实施例中,对于端到端链路360被认为是可信的所有特征直方图620、622和624,等式1应当是真,并且对于端到端链路360被认为是不可信的特征直方图620、622和624之一,等式1将非真就足够了。可以使用其他规则和条款来确定端到端链路360的信任级别。
现在参考图6C,描绘了根据本发明实施例的端到端链路360的工作直方图610与端到端链路360、362、364的聚类630的共同特征直方图640的比较608。在一些实施例中,可以生成对于聚类630的所有端到端链路共同的共同特征直方图640,并且可以将端到端链路360的工作直方图610与共同特征直方图540进行比较608(例如,类似于比较602),以确定端到端链路360的信任级别。
根据本发明的实施例,计算端到端链路360的信任级别应该是快速的,以便能够实现实时操作。根据本发明的实施例,这个要求通过本发明的实施例来实现,因为计算散列值和比较直方图需要较少的计算资源。根据本发明的实施例的动态白名单可以动态地降低执行综合安全性分析所需的计算能力。
返回图3,根据本发明的实施例,如果端到端链路360的信任级别从可信的改变为不可信的,则代理322可以将端到端链路360的数据分组350发送到安全服务器330。附加地或替换地,如果端到端链路360的信任级别从可信的改变为不可信的,则代理322可以发出安全警报。附加地或替换地,如果端到端链路360的信任级别从可信的改变为不可信的,则代理322可以阻止端到端链路360的数据分组350。
安全服务器330可以实现或执行数据安全应用332。数据安全应用332可以是或者可以包括防火墙、DAM和/或FAM、外部数据库非侵入安全机制(EDSM)、企业数据库审计、以及实时保护。数据安全应用332可以提供数据源机器320的数据库活动监视服务,其包括执行综合安全性分析。数据安全应用332可提供对数据源机器320的数据库活动的连续监视。数据安全应用332的示例可包括但不限于从国际商业机器公司可得的应用程序。
根据本发明的实施例,数据安全应用332可以接收或获得数据分组350。综合安全性分析可以包括:解析数据分组,将元数据映射到数据,建立数据的层级(例如,建立名称-值的层级树),以及处理策略规则。处理策略规则可能需要相关联的名称和值。例如,规则可以包括“如果名称(如%ID%)和值匹配特定的正则表达式(Regex)”,或者规则可以期望邮政编码加上街道名称。
根据一些实施例,数据安全应用332可以从拦截的消息510中提取数据库查询或对数据库查询的响应,解析所提取的数据库查询或响应,并且根据数据库协议规则创建安全结构。规则可以包括但不限于在查询中标识的操作或命令的类型、要由操作所操作的数据库对象、以及请求查询的用户的用户标识符、服务IP地址的标识符、客户端IP地址、客户端MAC、用于访问数据的网络协议、数据库类型、用于提供数据的服务的名称的服务名称、所访问的数据库的名称、用于数据访问的源应用、应用用户名称、以及操作系统用户、数据库相关字段、错误代码、异常类型、所访问的数据的位置的服务IP地址、以及附加或备选的规则。
根据一些实施例,数据安全应用332可对照由策略规则定义的安全策略来验证安全结构中的可能的数据库对象访问违规。在一个示例中,如果安全结构没有对照安全策略进行验证,则数据安全应用332可以向管理员或其他实体发出警报,指示拦截的数据分组350未能对照安全规则进行验证。在一个示例中,管理员或服务可以设置每个规则。根据一些实施例,安全规则可以包括一个或多个设置,例如但不限于,指定允许或不允许操作访问的类型的操作类型设置、指定由操作所作用的一个或多个特定数据库对象的对象设置、以及指定用于请求对数据库对象的操作的用户的一个或多个用户标识符的用户设置。例如,可以由安全规则限制的操作可以包括诸如但不限于创建、选择、更新和删除的操作。安全设置可以包括附加或替换的类型的设置。
数据库客户端310、安全服务器330和数据服务器420中的每一个可以是或可以包括诸如图6中描绘的计算设备700的计算设备。一个或多个数据库326可以是或可以包括诸如存储设备730的存储设备。
参考图7,其是根据本发明的实施例的用于将消息与端到端链路相关联的方法的流程图。可以通过例如图1、图2、图3、图4和图9所示的系统来执行用于将消息与端到端链路相关联的方法的实施例。可以针对在数据源机器与数据客户端之间流动的多个数据分组,重复将消息与端到端链路相关联的过程。
在操作742中,可捕获数据分组(例如数据分组350)。数据分组可以包括报头352和有效载荷354,该有效载荷包括由数据客户端发送到数据库的查询或数据库对查询的响应(例如,消息510)。例如,位于数据源机器(例如,数据库服务器、或者数据库服务器的代理或网络网关)处并在该数据源机器处执行的代理软件实例可以捕获数据分组。在操作744,代理322可以对数据分组解密以获得数据分组的报头和消息。代理322可以分析报头以获得端到端链路的参数,例如ServerHostName、ServiceName、DbName、ClientHost、OsUser、DbUser等。在操作746中,代理322可以如本文所公开地分析报头,以例如基于从报头提取的参数而将分组与端到端链路相关联。
参考图8,其是根据本发明的实施例的用于生成特征直方图的方法的流程图。生成特征直方图的方法的实施例可以例如由图1、图2、图3、图4和图9所示的系统执行。生成特征直方图的方法的实施例可以例如在训练阶段或准备阶段执行。根据一些实施例,生成特征直方图可以周期性地重复,例如,每周一次或每月一次,以保持特征直方图更新。用于生成特征直方图的方法的实施例可以在具有高容量或高速率的消息的端到端链路360上执行。例如超过每秒100个消息。
在操作750中,代理322可以获得单个端到端链路的消息集合。消息集合可以包括预定数量的消息或者在预定时间窗上获得的消息。例如,在典型的应用中,在操作750中,代理322可以捕获单个端到端链路的大约150,000-400,000个消息。在一些实施例中,代理322可以捕获单个端到端链路的多个会话中的消息。在一些实施例中,在操作750中,代理322可在单个端到端链路的20-40个会话的前一分钟或两分钟中捕获消息。可以使用用于捕获消息以生成签名的其他时间窗口。在操作752中,代理322可从每个消息中生成框架。框架可以包括除了值字段之外的消息文本。在操作754中,代理322可生成每个框架的构造或压缩形式。例如,代理322可对框架进行散列以获得构造。在操作755中,代理322可以从每个消息中提取命令。在操作756中,代理322可生成端到端链路的特征直方图。例如,代理322可以从构造中生成特征直方图,如本文所公开的。附加地或替换地,代理322可以通过将消息的命令划分成命令组来从这些命令生成特征直方图,如本文所公开的。可以针对多个端到端链路重复操作750-756,以使得可以针对多个端到端链路中的每个端到端链路生成特征直方图。在操作758中,代理322可对端到端链路进行聚类或分类,以获得端到端链路聚类。在一些实施例中,可以基于端到端链路的构造和命令来执行聚类或分类,如本文所公开的。在一些实施例中,代理322可以生成端到端链路的聚类的特征直方图。在一些实施例中,代理322可以针对聚类中的多个端到端链路中的每一个端到端链路生成特征直方图。
参考图9,其是根据本发明的实施例的用于动态确定计算机数据库的端到端链路的信任级别的方法的流程图。用于动态确定端到端链路的信任级别的方法的实施例可以例如由图1、图2、图3、图4和图9所示的系统来执行。用于确定计算机数据库的端到端链路的信任级别的过程可以周期性地和/或针对每个新会话重复。可以例如针对具有高容量或高速率的消息的端到端链路执行用于动态确定端到端链路的信任级别的方法的实施例。例如,代理322可以针对消息速率低于阈值的会话(例如,低于每秒100个消息)确定端到端链路的信任级别。相反,消息速率低于阈值的会话的消息可以全部经历综合安全性分析。
在操作760中,代理322可获得单个端到端链路的消息集合(也称为第二消息集合)。消息集合可以包括预定数量的消息(例如,100-400个消息)。在操作762中,代理322可从每个消息生成框架。框架可以包括除了值字段之外的消息文本。在操作764中,代理322可生成每个框架的构造或压缩形式。例如,代理322可对框架进行散列以获得构造。在操作765中,代理322可从第二消息集合中的每个消息中提取命令。在操作766中,代理322可生成端到端链路的工作直方图。例如,代理322可以从构造中生成工作直方图,如本文所公开的。附加地或替换地,代理322可以通过将命令划分成命令组来从消息的命令中生成工作直方图,如本文所公开的。
在操作768中,代理322可以将工作直方图与特征直方图进行比较。在一些实施例中,代理322可以将工作直方图与相同端到端链路的特征直方图进行比较。在一些实施例中,代理322可以将工作直方图与端到端链路所属的端到端链路的聚类的特征直方图进行比较。在一些实施例中,代理322可以将工作直方图与端到端链路所属的端到端链路的聚类的多个特征直方图中的每一个特征直方图进行比较。
在操作770中,代理322可以确定端到端链路的信任级别。例如,代理322可以基于比较来确定端到端链路的信任级别。在一些实施例中,代理322可以将工作直方图的方差与特征直方图的方差进行比较,并且如果工作直方图的方差比特征直方图大预定因子,例如二,则确定端到端链路的信任级别是不可信的。可以应用其它规则。附加地或替换地,如果第二消息集合的构造中的至少一个构造是新的,则代理322可以将端到端链路的信任级别确定为不可信。如果第二消息集合的构造不被包括在特征直方图中,则代理322可确定该构造是新的。因此,根据一些实施例,对于将被认为或分类为不可信的端到端链路,端到端链路的工作直方图不同于端到端链路的特征直方图,或者第二消息集合的构造中的至少一个构造是新的就足够了。否则,端到端链路可以被认为或分类为可信的。
根据一些实施例,如果确定端到端链路是可信的,则代理322可以不向安全服务器330发送端到端链路的消息以用于综合安全性分析。根据一些实施例,代理322可以将用于生成工作直方图的构造添加到特征直方图中以保持特征直方图被更新。根据一些实施例,如果在操作770中确定端到端链路是不可信的,则代理322可以将策略规则应用于端到端链路的未来消息,并且如果端到端链路是可信的,则代理322可以省略将策略规则应用于端到端链路的未来消息。例如,如果端到端链路是不可信的,则代理322可以向安全服务器330发送端到端链路的消息以用于综合安全性分析。在操作778中,如果端到端链路是不可信的,则代理322可以发出安全警报。
图10示出了根据本发明的实施例的示例计算设备。诸如数据库客户端310、安全服务器330、数据源机器320、数据库服务器410和420、网关或代理422、代理应用322和其他模块的各种组件可以是或包括计算设备700,或者由其执行,或者可以包括诸如图10中所示的组件。例如,根据本发明的实施例,具有第一处理器705的第一计算设备700可用于针对数据流传输而实时地对数据分类。
计算设备700可以包括处理器705(其可以是例如中央处理单元处理器(CPU)、芯片或任何合适的计算或计算设备)、操作系统715、存储器720、存储装置730、输入设备735和输出设备740。处理器705可以是或包括共同定位或分布的一个或多个处理器等。计算设备700可以是例如工作站或个人计算机,或者可以至少部分地由一个或多个远程服务器(例如,在“云”中)实现。例如,计算设备700可以被包括在图1和图2中描绘的云计算环境50中。
例如,操作系统715可以是或可以包括被设计和/或配置为执行涉及协调、调度、仲裁、监督、控制或以其他方式管理计算设备700的操作的任务的任何代码段。操作系统715可以是商业操作系统。操作系统715可以是或可以包括被设计和/或配置为提供虚拟机(例如,计算机系统的仿真)的任何代码段。存储器720可以是或可以包括例如随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步DRAM(SD-RAM)、双数据速率(DDR)存储器芯片、闪存、易失性存储器、非易失性存储器、高速缓冲存储器、缓冲器、短期存储器单元、长期存储器单元或其他合适的存储器单元或存储单元。存储器720可以是或可以包括多个可能不同的存储器单元。
可执行代码725可以是任何可执行代码,例如应用、程序、进程、任务或脚本。可执行代码725可以由处理器705在操作系统715的控制下执行。例如,根据本发明的实施例,可执行代码725可以是或包括用于动态确定计算机数据库的端到端链路的信任级别的软件。在一些实施例中,可以使用多于一个计算设备700。例如,包括与在计算设备700中所包括的组件类似的组件的多个计算设备可以被连接到网络并用作系统。
存储装置730可以是或可以包括例如硬盘驱动器、软盘驱动器、光盘(CD)驱动器、可记录CD(CD-R)驱动器、通用串行总线(USB)设备或其他合适的可移动和/或固定存储单元。存储装置730可以包括或者可以存储一个或多个数据库,包括数据库326。在一些实施例中,可以省略图10中所示的一些组件。例如,存储器720可以是具有存储装置730的存储容量的非易失性存储器。因此,尽管被示为单独的组件,但是存储装置730可以被嵌入或包括在存储器720中。
输入设备735可以是或可以包括鼠标、键盘、触摸屏或触摸板或任何合适的输入设备。将认识到,任何合适数量的输入设备可以操作地连接到计算设备700,如框735所示。输出设备740可包括一个或多个显示器、扬声器和/或任何其它合适的输出设备。将认识到,任何合适数量的输出设备可以操作地连接到计算设备700,如框740所示。任何适用的输入/输出(I/O)设备可被连接到计算设备700,如框735和740所示。例如,有线或无线网络接口卡(NIC)、调制解调器、打印机或传真机、通用串行总线(USB)设备或外部硬盘驱动器可以被包括在输入设备735和/或输出设备740中。网络接口750可以使设备700能够与一个或多个其他计算机或网络通信。例如,网络接口750可以包括Wi-Fi或蓝牙设备或连接、到内联网或互联网的连接、天线等。
本公开中描述的实施例可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机,如以下更详细讨论的。
本公开的范围内的实施例还包括用于携带或在其上存储的计算机可执行指令或数据结构的计算机可读介质或非瞬态计算机存储介质。当执行指令时,可以使处理器执行本发明的实施例。这样的计算机可读介质或计算机存储介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于携带或存储计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的任何其它介质。当信息通过网络或另一通信连接(硬连线、无线、或硬连线或无线的组合)传输或提供给计算机时,计算机适当地将该连接视为计算机可读介质。因此,任何这样的连接都被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围内。
计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令和数据。尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中定义的主题不必限于上述特定特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式来公开的。
如本文所使用的,术语“模块”或“组件”可以是指在计算系统上执行的软件对象或例程。这里描述的不同组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。虽然这里描述的系统和方法优选地以软件实现,但是以硬件或软件和硬件的组合实现也是可能的和预期的。在本说明书中,“计算机”可以是如本文先前定义的任何计算系统,或者在计算系统上运行的任何模块或模块组合。
对于所公开的过程和/或方法,在过程和方法中执行的功能可以如上下文所指示的以不同顺序来实现。此外,所概述的步骤和操作仅作为示例来提供,并且这些步骤和操作中的一些可以是可任选的、组合成更少的步骤和操作、或扩展成附加的步骤和操作。
本公开不应在本申请中描述的特定实施例方面受到限制,这些实施例旨在说明各个方面。在不背离本发明范围的情况下可以进行许多修改和变化。除了所列举的那些之外,在本公开的范围内的功能上等同的方法和装置对于本领域技术人员来说从前面的描述中将是显而易见的。这些修改和变化旨在落入所附权利要求的范围内。本公开仅由所附权利要求书的术语以及这些权利要求所授权的等效物的全部范围来限制。还应理解,本公开中使用的术语仅用于描述特定实施例的目的,而不旨在限制。
本公开有时可以示出包含在不同的其他组件内或与不同的其他组件连接的不同组件。所描述的这种体系结构仅仅是示例性的,并且可以实现许多其它的体系结构,其实现相同或相似的功能。
本公开的各方面可以以其他形式体现而不脱离其精神或本质特征。所描述的方面在所有方面都应被认为是说明性的而非限制性的。所要求保护的主题由所附权利要求书而非由前述描述来指示。在权利要求的等同含义和范围内的所有改变都将包含在其范围内。
Claims (20)
1.一种用于动态确定计算机数据库的端到端链路的信任级别的方法,所述方法包括:
在准备阶段中:
捕获第一端到端链路的第一消息集合;
压缩所述第一消息集合中的每个消息的框架以生成所述第一消息集合中的每个消息的构造,其中,所述框架包括不具有值字段的所述消息;以及
创建所述第一消息集合的所述构造的特征直方图;
在操作阶段期间:
捕获所述第一端到端链路的第二消息集合;
压缩所述第二消息集合中的每个消息的框架以生成所述第二消息集合中的每个消息的构造;
创建所述第二消息集合的所述构造的工作直方图;以及
通过将所述工作直方图与所述特征直方图进行比较来确定所述第一端到端链路的信任级别。
2.根据权利要求1所述的方法,其中,根据端到端链路的参数定义所述端到端链路,其中,所述参数选自包括以下项的列表:主机名称,服务名称,数据库名称,客户端主机名称,操作系统用户,以及数据库用户。
3.根据权利要求1所述的方法,其中,确定所述端到端链路的所述信任级别包括:如果所述第二消息集合的所述构造中的至少一个构造未被包括在所述第一消息集合的所述构造的所述特征直方图中,则将所述端到端链路的所述信任级别确定为不可信。
4.根据权利要求1所述的方法,其中,压缩框架包括:对所述框架进行散列。
5.根据权利要求1所述的方法,包括:
在所述准备阶段中:
方图;以及
在所述操作阶段期间:
将被划分成所述命令组的所述第二消息集合的命令添加到所述工作直方图。
6.根据权利要求1所述的方法,包括:
在所述准备阶段中:
获得多个消息集合,其中,每个集合与端到端链路集合中的端到端链路有关;
生成所述多个消息集合中的每个消息的构造;
针对所述端到端链路集合中的每个端到端链路创建特征直方图,其中,每个特征直方图是从所述端到端链路集合中的端到端链路的消息集合的所述构造创建的;以及
执行对所述特征直方图的聚类以确定端到端链路的聚类;以及在操作期间:
将所述工作直方图与所述第一端到端链路的聚类的所述特征直方图中的每个特征直方图进行比较,以确定所述第一端到端链路的所述信任级别。
7.根据权利要求1所述的方法,其中,针对每个新会话和周期性地重复捕获第二消息集合。
8.根据权利要求1所述的方法,其中,所述信任级别选自可信和不可信,所述方法包括:
如果信任级别是可信,则针对所述端到端链路的未来消息不执行综合安全性分析;以及
如果所述信任级别是不可信,则将策略规则应用于所述端到端链路的未来消息。
9.根据权利要求1所述的方法,包括:
如果信任级别是可信,则将所述第二消息集合中的每个消息的所述构造添加到所述特征直方图。
10.根据权利要求1所述的方法,其中,通过比较所述工作直方图的方差与所述特征直方图的方差来比较所述工作直方图与所述特征直方图。
11.一种用于动态确定端到端链路的信任级别的系统,所述系统包括:
存储器;以及
处理器,其被配置为:
在准备阶段中:
获得第一端到端链路的第一消息集合;
压缩所述第一消息集合中的每个消息的框架以生成所述第一消息集合中的每个消息的构造,其中,所述框架包括不具有值字段的所述消息;以及
创建所述第一消息集合的所述构造的特征直方图;以及
在操作阶段期间:
获得所述第一端到端链路的第二消息集合;
压缩所述第二消息集合中的每个消息的框架以生成所述第二消息集合中的每个消息的构造;
创建所述第二消息集合的所述构造的工作直方图;以及
通过将所述工作直方图与所述特征直方图进行比较来确定所述第一端到端链路的信任级别。
12.根据权利要求11所述的系统,其中,所述处理器被配置为根据端到端链路的参数定义所述端到端链路,其中,所述参数选自包括以下项的列表:主机名称,服务名称,数据库名称,客户端主机名称,操作系统用户,以及数据库用户。
13.根据权利要求11所述的系统,其中,所述处理器被配置为通过以下操作来确定所述端到端链路的所述信任级别:如果所述第二消息集合的所述构造中的至少一个构造未被包括在所述第一消息集合的所述构造的所述特征直方图中,则将所述端到端链路的所述信任级别确定为不可信。
14.根据权利要求11所述的系统,其中,所述处理器被配置为通过对框架进行散列来压缩所述框架。
15.根据权利要求11所述的系统,其中,所述处理器被配置为:
在所述准备阶段中:
将被划分成命令组的所述第一消息集合的命令添加到所述特征直方图;以及
在所述操作阶段期间:
将被划分成所述命令组的所述第二消息集合的命令添加到所述工作直方图。
16.根据权利要求11所述的系统,其中,所述处理器被配置为:
在所述准备阶段中:
获得多个消息集合,其中,每个集合与端到端链路集合中的端到端链路有关;
生成所述多个消息集合中的每个消息的构造;
针对所述端到端链路集合中的每个端到端链路创建特征直方图,其中,每个特征直方图是从所述端到端链路集合中的端到端链路的消息集合的所述构造创建的;以及
执行对所述特征直方图的聚类以确定端到端链路的聚类;
在操作期间:
将所述工作直方图与所述第一端到端链路的集群的所述特征直方图中的每一个特征直方图进行比较,以确定所述第一端到端链路的所述信任级别。
17.根据权利要求11所述的系统,其中,所述处理器被配置为针对每个新会话和周期性地重复捕获第二消息集合。
18.根据权利要求11所述的系统,其中,所述信任级别选自可信和不可信,其中,所述处理器被配置为:
如果所述信任级别是可信,则针对所述端到端链路的未来消息不执行综合安全性分析;以及
如果所述信任级别是不可信,则将策略规则应用于所述端到端链路的未来消息。
19.根据权利要求11所述的系统,其中,所述处理器被配置为:
如果所述信任级别是可信,则将所述第二消息集合中的每个消息的所述构造添加到所述特征直方图。
20.根据权利要求11所述的系统,其中,所述处理器被配置为通过比较所述工作直方图的方差与所述特征直方图的方差来比较所述工作直方图与所述特征直方图。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/935,278 US11297105B2 (en) | 2020-07-22 | 2020-07-22 | Dynamically determining a trust level of an end-to-end link |
US16/935,278 | 2020-07-22 | ||
PCT/IB2021/056128 WO2022018554A1 (en) | 2020-07-22 | 2021-07-08 | Dynamically determining trust level of end-to-end link |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116137908A true CN116137908A (zh) | 2023-05-19 |
Family
ID=79689536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180059714.8A Pending CN116137908A (zh) | 2020-07-22 | 2021-07-08 | 动态确定端到端链路的信任级别 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11297105B2 (zh) |
JP (1) | JP2023535896A (zh) |
CN (1) | CN116137908A (zh) |
GB (1) | GB2611992A (zh) |
WO (1) | WO2022018554A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3821817A3 (en) | 2008-11-12 | 2021-11-03 | Access Closure, Inc. | Apparatus for sealing a vascular puncture |
US11899807B2 (en) * | 2020-09-02 | 2024-02-13 | Jpmorgan Chase Bank, N.A. | Systems and methods for auto discovery of sensitive data in applications or databases using metadata via machine learning techniques |
US11720424B2 (en) * | 2021-03-12 | 2023-08-08 | Salesforce, Inc. | Single flow execution |
US11388493B1 (en) * | 2021-04-27 | 2022-07-12 | Dell Products L.P. | Secure and attested all-photonics network |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3414352B2 (ja) | 2000-02-03 | 2003-06-09 | 日本電気株式会社 | 無線端末、情報処理システムおよび外部処理端末 |
US20030172291A1 (en) | 2002-03-08 | 2003-09-11 | Paul Judge | Systems and methods for automated whitelisting in monitored communications |
US8881276B2 (en) | 2007-01-09 | 2014-11-04 | Cisco Technology, Inc. | Dynamically generated whitelist for high throughput intrusion prevention system (IPS) functionality |
WO2009059766A1 (en) * | 2007-11-06 | 2009-05-14 | Tele Atlas North America Inc. | Method and system for the use of probe data from multiple vehicles to detect real world changes for use in updating a map |
US8180803B2 (en) * | 2007-11-27 | 2012-05-15 | Cavium, Inc. | Deterministic finite automata (DFA) graph compression |
US7949683B2 (en) * | 2007-11-27 | 2011-05-24 | Cavium Networks, Inc. | Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph |
US8473523B2 (en) * | 2008-10-31 | 2013-06-25 | Cavium, Inc. | Deterministic finite automata graph traversal with nodal bit mapping |
JP4469910B1 (ja) | 2008-12-24 | 2010-06-02 | 株式会社東芝 | セキュリティ対策機能評価プログラム |
US20110238985A1 (en) * | 2010-03-24 | 2011-09-29 | Nokia Corporation | Method and apparatus for facilitating provision of content protected by identity-based encryption |
US9774604B2 (en) | 2015-01-16 | 2017-09-26 | Zingbox, Ltd. | Private cloud control |
CN109245993A (zh) | 2018-09-07 | 2019-01-18 | 中链科技有限公司 | 基于区块链的即时通讯方法及装置 |
CN110288477A (zh) | 2019-06-26 | 2019-09-27 | 深圳市元征科技股份有限公司 | 一种区块链交易数据处理方法及相关设备 |
-
2020
- 2020-07-22 US US16/935,278 patent/US11297105B2/en active Active
-
2021
- 2021-07-08 CN CN202180059714.8A patent/CN116137908A/zh active Pending
- 2021-07-08 JP JP2023502949A patent/JP2023535896A/ja active Pending
- 2021-07-08 WO PCT/IB2021/056128 patent/WO2022018554A1/en active Application Filing
- 2021-07-08 GB GB2301815.3A patent/GB2611992A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022018554A1 (en) | 2022-01-27 |
GB2611992A (en) | 2023-04-19 |
JP2023535896A (ja) | 2023-08-22 |
US11297105B2 (en) | 2022-04-05 |
US20220030030A1 (en) | 2022-01-27 |
GB202301815D0 (en) | 2023-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10560465B2 (en) | Real time anomaly detection for data streams | |
US11297105B2 (en) | Dynamically determining a trust level of an end-to-end link | |
US10140453B1 (en) | Vulnerability management using taxonomy-based normalization | |
US20180253339A1 (en) | Operation efficiency management with respect to application compile-time | |
CN112396521B (zh) | 用于降低区块链中智能合约的风险的方法和系统 | |
US9104706B2 (en) | Meta-directory control and evaluation of events | |
Jeong et al. | Anomaly teletraffic intrusion detection systems on hadoop-based platforms: A survey of some problems and solutions | |
US10282461B2 (en) | Structure-based entity analysis | |
US11330001B2 (en) | Platform for the extraction of operational technology data to drive risk management applications | |
US11362997B2 (en) | Real-time policy rule evaluation with multistage processing | |
US20230244812A1 (en) | Identifying Sensitive Data Risks in Cloud-Based Enterprise Deployments Based on Graph Analytics | |
US11416631B2 (en) | Dynamic monitoring of movement of data | |
US20230040635A1 (en) | Graph-based impact analysis of misconfigured or compromised cloud resources | |
US20220239681A1 (en) | Methods for public cloud database activity monitoring and devices thereof | |
US20190124107A1 (en) | Security management for data systems | |
US20210194930A1 (en) | Systems, methods, and devices for logging activity of a security platform | |
US20170344453A1 (en) | Determining dynamic statistics based on key value patterns | |
US11327969B2 (en) | Term vector modeling of database workloads | |
US20210250358A1 (en) | Data governance operations in highly distributed data platforms | |
US10277521B2 (en) | Authorizing an action request in a networked computing environment | |
US20230370426A1 (en) | Sensitive Data Identification In Real-Time for Data Streaming | |
US11960599B2 (en) | Classifying users of a database | |
US11882124B1 (en) | Account integration with an event-driven application programing interface call manager | |
US11223529B1 (en) | Methods for inventorying and securing public cloud databases and devices thereof | |
US11874946B2 (en) | Database map restructuring for data security |
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 |