用于跨租户数据泄漏隔离的方法和设备技术

技术编号:38593062 阅读:13 留言:0更新日期:2023-08-26 23:31
本公开涉及用于跨租户数据泄漏隔离的方法和设备。提供了一种用于多租户数据库中的跨租户数据泄漏隔离的方法和代理设备。该方法包括由代理设备监测执行至少一个基于云的应用的服务器与多租户数据库之间的业务流,其中代理设备通信地连接在服务器与多租户数据库之间;由代理设备至少捕获访问多租户数据库的请求,其中请求使用数据库特定协议来传送;分析请求以确定请求是否合法;在确定请求不合法时,修改请求以指向全局租户表并且指定唯一租户标识符,其中唯一租户标识符对应于在全局租户表中指定的租户特定表名称;并且使用数据库特定协议向多租户数据库发送经修改的请求。特定协议向多租户数据库发送经修改的请求。特定协议向多租户数据库发送经修改的请求。

【技术实现步骤摘要】
用于跨租户数据泄漏隔离的方法和设备
[0001]本申请是国际申请日为2017年8月22日、国际申请号PCT/US2017/047874、于2019年2月18进入中国国家阶段、中国国家申请号201780050843.4、专利技术名称为“跨租户数据泄漏隔离”的专利技术专利申请的分案申请。

技术介绍

[0002]近年来,越来越多的提供商提供了在云中创建计算环境的能力。例如,在2006年,Amazon Web Services
TM
(也称为AWS)推出了向用户提供配置针对在云计算平台上执行的应用而定制的整个环境的能力的服务。通常,这种服务允许开发可缩放的应用,在这种应用中利用计算资源来支持应用的有效执行。
[0003]开发、提供或以其他方式维护基于云的应用的组织和企业已经变得习惯于依赖于这些服务并且实现各种类型的环境,从复杂的网站到经由软件即服务(SaaS)交付模式提供的应用和服务。这些服务和应用统称为“基于云的应用”。基于云的应用通常由用户使用客户端设备经由web浏览器访问。
[0004]基于云的应用通常被编程为支持多租户访问或资源共享。多租户是一种其中软件应用(例如,云应用)的单个实例服务于多个客户的架构。客户是租客。租户可以自定义应用的一些资源,诸如用户界面(UI)的颜色或业务规则,但是他们无法自定义应用的代码。
[0005]这样,共享基于云的应用的一些资源。经常共享的一种资源是数据库。也就是说,内部数据库表使用由应用提供的服务跨所有或一些租户被共享。
[0006]由基于云的应用使用的多租户架构易受攻击,因为可以在租户之间意外地或恶意地共享跨租户信息。也就是说,可以授权一个租户的客户端访问存储在属于不同租户的共享数据库中的信息。因此,与这种架构相关联的常见漏洞之一是数据泄漏。
[0007]随着对基于云的应用的更大依赖,必须完全保护从web浏览器对这些应用的访问。例如,应当保护银行应用以防止租户之间的任何数据泄漏。
[0008]用于防御基于云的应用的资源的现有解决方案限于保护基础设施。例如,诸如入侵检测、访问控制和网络防火墙等安全解决方案可以阻止从不属于允许访问数据库的任何租户的客户端对共享资源(例如,数据库)的访问。但是,这种解决方案无法阻止跨租户访问,因为允许所有租户访问共享资源。
[0009]用于在访问数据库时的跨租户隔离的一种解决方案基于存储在数据库中的数据的物理或逻辑分离。物理分离需要使用不同的物理数据库(托管在不同的服务器或虚拟机上),每个物理数据库被分配给特定租户。逻辑分离需要在数据库内的不同表中维护不同租户的数据。
[0010]物理和逻辑分离解决方案都不是可扩展且高效的,因为随着租户数目的增长,需要更多的计算资源。具体地,对于某些租户,存储数据量是最小的,而维护单独的表或数据库的开销太高。因此,这种解决方案未被优化以提供良好性能,特别是对于更多数目的租户。此外,物理和逻辑分离解决方案也易受攻击,因为访问控制通常不是由租户严格执行的。例如,来自第一租户的用户可以简单地通过指定第二租户的表的名称来访问第二租户
的表。这可以通过例如SQL注入来实现。使用这种类型的攻击,用户(或黑客)可以注入代码以覆盖用于逻辑分离的任何标识符(例如,表ID或租户ID),并且从而访问数据库中的任何租户的数据。
[0011]因此,有利的是,提供一种通过防止支持多租户的基于云的应用中的数据泄漏漏洞来克服上述缺陷的解决方案。

技术实现思路

[0012]提供本“
技术实现思路
”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“
技术实现思路
”不旨在标识所要求保护的实施例的关键特征或必要特征,也不旨在用于限制各种要求保护的实施例的范围。此外,本“
技术实现思路
”的唯一目的是以简化形式呈现一个或多个实施例的一些概念,作为稍后呈现的更详细描述的序言。为方便起见,本文中可以使用术语“一些实施例”或“各种实施例”来指代本公开的单个实施例或多个实施例。
[0013]本文中公开的一些实施例包括一种用于多租户数据库中的跨租户数据泄漏隔离的方法。该方法包括由代理设备监测执行至少一个基于云的应用的服务器与多租户数据库之间的业务流,其中代理设备通信地连接在服务器与多租户数据库之间;由代理设备至少捕获访问多租户数据库的请求,其中请求使用数据库特定协议来传送;分析请求以确定请求是否合法;在确定请求不合法时,修改请求以指向全局租户表并且指定唯一租户标识符,其中唯一租户标识符对应于在全局租户表中指定的租户特定表名称;并且使用数据库特定协议向多租户数据库发送经修改的请求。
[0014]本文中公开的一些实施例还包括一种其上存储有用于引起一个或多个处理单元执行以下过程的指令的非暂态计算机可读介质:由代理设备监测执行至少一个基于云的应用的服务器与多租户数据库之间的业务流,其中代理设备通信地连接在服务器与多租户数据库之间;由代理设备至少捕获访问多租户数据库的请求,其中请求使用数据库特定协议来传送;分析请求以确定请求是否合法;在确定请求不合法时,修改请求以指向全局租户表并且指定唯一租户标识符,其中唯一租户标识符对应于在全局租户表中指定的租户特定表名称;并且使用数据库特定协议向多租户数据库发送经修改的请求。
[0015]本文中公开的一些实施例还包括一种用于多租户数据库中的跨租户数据泄漏隔离的代理设备,该代理设备通信地连接在执行基于云的应用的服务器与多租户数据库之间。代理设备包括处理电路;以及存储器,该存储器包含指令,这些指令在由处理电路执行时将代理设备配置为:监测服务器与多租户数据库之间的业务流;至少捕获访问多租户数据库的请求,其中请求使用数据库特定协议来传送;分析请求以确定请求是否合法;在确定请求不合法时,修改请求以指向全局租户表并且指定唯一租户标识符,其中唯一租户标识符对应于在全局租户表中指定的租户特定表名称;并且使用数据库特定协议向多租户数据库发送经修改的请求。
附图说明
[0016]本文中公开的主题在说明书所附的权利要求中特别指出并且清楚地要求保护。通过以下结合附图给出的详细描述,所公开的实施例的前述和其他目的、特征和优点将很清
楚。
[0017]图1是用于描述所公开的实施例的网络图。
[0018]图2A和2B是示出根据一个实施例的全局租户表的创建的示例表。
[0019]图3是示出根据实施例的用于在由基于云的应用访问的数据库中实施跨租户数据泄漏隔离的方法的流程图。
[0020]图4是示出根据实施例的用于处理由维护全局租户表的数据库生成的响应的方法的流程图。
[0021]图5是根据一个实施例而构建的代理的框图。
具体实施方式
[0022]重要的是要注意,本文中公开的实施例仅是本文中的创新教导的很多有利用途的示例。通常,在本申请的说明书中做出的陈述不一定限制各种权利要求中的任一个。此外,一些陈述可能适用于某些专利技术特征而不适用于其他特征。通常,除非另有说明,否则单数元素可以是复数,反之亦然,而不失一般性。在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于多租户数据库中的跨租户数据泄漏隔离的方法,包括:由代理设备监测执行至少一个基于云的应用的服务器与所述多租户数据库之间的业务流,其中所述代理设备被连接在所述服务器与所述多租户数据库之间;由所述代理设备至少捕获来自所述多租户数据库的响应,其中所述响应包括返回数据;分析所述响应以确定所述返回数据是否与全局租户表相关;在确定所述返回数据与所述全局租户表相关时,修改所述响应以指定所述返回数据所属的至少一个租户特定表名称,其中所述响应基于标识的命令类型被修改;以及向所述服务器发送经修改的所述响应。2.根据权利要求1所述的方法,其中分析所述响应还包括:至少确定嵌入在与所述响应对应的请求中的查询;标识嵌入在所述对应的请求中的所述查询的所述命令的类型;以及确定所述命令是否与所述全局租户表相关。3.根据权利要求1所述的方法,还包括:检查所述命令的所述类型是否需要所述响应的修改,其中所述检查基于预定的命令类型列表。4.根据权利要求2所述的方法,其中所述全局租户表是针对由所述基于云的应用支持的所有租户维护的所有表的连结。5.根据权利要求2所述的方法,其中所述全局租户表包括所述多租户数据库中的租户的个体数据库表的记录,其中每个个体数据库租户表的所述记录与相应租户的唯一租户标识符相关联。6.根据权利要求2所述的方法,还包括:创建所述全局租户表。7.根据权利要求6所述的方法,还包括:将唯一租户标识符与每个个体数据库表相关联,其中每个唯一租户标识符是所述多租户数据库的多个租户中的租户的;连结所述租户的所有的所述个体数据库表以创建所述全局租户表;以及向所述全局租户表添加指定与每个个体数据库表相关联的所述租户的租户标识符的列。8.根据权利要求1所述的方法,还包括:执行至少一个优化过程以优化访问和维护所述全局租户表的性能。9.根据权利要求1所述的方法,其中与所述多租户数据库的通信使用数据库特定协议,其中所述数据库特定协议包括以下中的至少一项:有线协议和超文本传输协议。10.一种非暂态计算机可读介质,其上存储有指令,所述指令使得一个或多个处理单元执行用于在多租户数据库中跨租户数据泄漏隔离的处理,所述处理包括:由代理设备,监测执行至少一个基于云的应用的服务器与所述多租户数据库之间的业务流,其中所述代理设备被连接在所述服务器与所述多租户数据库之间;由所述代理设备至少捕获来自所述多租户数据库的响应,其中所述响应包括返回数据;
分析所述响应以确定所述返回数据是否与全局租户表相关;在确定所述返回数据与所述全局租户表相关联时,修改所...

【专利技术属性】
技术研发人员:L
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1