利用来源检查通过请求和响应容器化防止多租户服务中的数据泄露的制作方法

文档序号:40850594发布日期:2025-02-06 17:26阅读:5来源:国知局
利用来源检查通过请求和响应容器化防止多租户服务中的数据泄露的制作方法


背景技术:

1、基于云的服务使用计算资源池处理来自不同租户的请求。在租户之间共享资源比向每个租户分配专用资源更高效地利用资源。然而,使用共享资源来处理来自不同租户的请求会带来数据泄露的可能性,即无意中将一个租户的数据暴露给不同的租户。例如,服务可能缓存与租户相关的标识符,然后在处理来自不同租户的请求时重新使用该标识符。使用缓存的标识符执行的任何数据访问将检索针对错误租户的数据,导致数据泄露。这些错误难以在代码审查中或甚至在应用静态代码分析时被手动发现。

2、数据泄露的后果可能是严重的,会暴露敏感的金融信息、商业秘密或其他机密数据。一旦发现数据泄露,云服务提供商也可能遭受重大信誉损失。

3、关于这些和其他考虑,本文提出了本公开。


技术实现思路

1、本文中公开的技术利用来源检查通过请求和响应容器化防止多租户服务中的数据泄露。当代表租户接收到web请求时,利用从请求中提取的标识信息来创建和初始化请求容器。可以被验证为与租户相关联的派生标识符可以被添加到请求容器中。然后创建用于积累在处理请求时获取的数据的响应容器。请求容器和响应容器在处理请求的整个调用路径中被传递。从请求容器获取传递到数据访问操作的标识信息,同时将数据访问操作的结果存储在响应容器中。在使用来自响应容器的数据生成web响应之前,响应容器被验证以包含与适当请求相关联的数据。

2、上述问题的技术方案由能够检测和防止跨租户数据泄露的各种机制组成。一种机制确保用于处理请求的标识信息是准确的,例如处理web请求的调用路径不会意外地使用过时或损坏的标识信息。始终使用适当的标识信息防止来自一个租户的数据被意外地返回到不同的租户。

3、具体地,从web请求提取的数据被容器化,即存储在不可变对象中,该不可变对象在处理请求时不能被篡改。提取的数据包括标识信息,诸如标识符、令牌和其他用户供应的数据。标识符是标识云服务中的实体的唯一字符序列。标识符的示例包括租户标识符、用户标识符和组织标识符。令牌的一个示例是确认用户的身份的用户认证令牌。提取的标识信息被视为基准事实的源,因为其源自请求。将提取的标识信息存储在不可变对象中确保了它在被使用之前不被替换、覆盖、损坏或以其他方式更改。

4、请求容器在处理web请求的整个调用路径中是可用的,并且在调用数据访问api时用作标识信息的源。例如,当生成数据库查询时,从请求容器获取租户标识符参数。因为租户标识符被不可变地存储在请求容器中,所以当调用数据库查询时,使用替换、缓存、损坏的或其他不适当的标识符的可能性被显著降低。

5、第二种机制允许将派生标识符(包括派生令牌)添加到请求容器中。派生标识符是指不是从web请求中提取的标识符或令牌。例如,从认证服务获取的“代表”(on-behalf-of,obo)令牌可以被添加到请求容器。在被添加到请求容器之前,首先确认派生标识符与请求的租户相关联。这确保了存储在请求容器中的任何标识符是直接从web请求获取的,或者以其他方式与租户可证明地相关联。在一些配置中,通过以加密方式验证派生标识符包含与正在处理的请求相关联的租户标识符,来确认派生标识符与租户相关联。在派生标识符被存储在请求容器中之后,在处理web请求时调用云服务时可以将派生标识符用作参数。

6、第三种机制将用于生成对web请求的响应的数据容器化。在一些配置中,响应容器利用请求容器或唯一地指向请求容器的请求标识符被初始化。贯穿本文,当提到存储请求容器或对请求容器进行比较时,同样预期存储请求容器的请求标识符或对请求容器的请求标识符进行比较。请求容器被存储在响应容器中,并且用于验证添加到响应容器的任何数据与适当的请求相关联。具体地,向响应容器分配数据的数据访问器方法也接受请求容器作为参数。在允许数据被添加到响应容器之前,响应容器首先验证请求容器参数与存储在响应容器中的请求容器匹配。这确保了仅针对适当的请求的数据被添加到响应容器中。

7、第四种机制在生成web响应之前对响应容器应用来源检查。具体地,当生成对web请求的web响应时,响应容器被验证以存储针对web请求生成的请求容器。这确保了仅与web请求的租户相关联的数据被用于生成响应-即确保不会意外地使用不当的响应容器将跨租户数据泄漏到响应中。

8、第五种机制确保在调用用户数据api时始终应用请求和响应容器化。用户数据api是指基于标识符检索数据的函数。通常,用户数据api是用户生成的代码,其调用由云服务提供的数据访问api。在一些配置中,用户数据api的静态源代码分析验证仅提供从请求容器检索的标识符作为数据访问api的标识符自变量。使用未从请求容器检索的标识符的数据访问api的调用被标记为潜在的跨租户数据泄露漏洞。

9、例如,可以分析数据访问api的源代码以标识具有“用户输入”注释的参数。该注释表示传入这些参数中的值应当可证明地与请求的租户相关联。静态源代码分析可以标识对该数据访问api的所有调用,并确保在每个调用站点处,所有传入被注释为“用户输入”的参数的值源自请求容器。利用不是源自请求容器的“用户输入”参数调用数据访问api可能使用与当前web请求不相关联的过时值。

10、类似地,静态源代码分析可以验证从云服务数据访问api返回的数据被直接存储在响应容器中。被存储在别处的数据被标记为潜在的跨租户数据泄露漏洞,因为未存储在响应容器中的数据可能泄漏到发送给不同租户的响应中。

11、通过阅读以下详细描述和回顾相关附图,除了上面明确描述的特征和技术优势之外的特征和技术优势将是显而易见的。本
技术实现要素:
用以提供以简化的形式介绍一些概念,这将在以下具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键或基本特征,也不旨在用作辅助确定所要求保护的主题的范围。例如,术语“技术”可以指的是由上述内容和整个文档所允许的(多个)系统、(多个)方法、计算机可读指令、(多个)模块、算法、硬件逻辑和/或(多个)操作。



技术特征:

1.一种方法,包括:

2.根据权利要求1所述的方法,还包括:

3.根据权利要求2所述的方法,其中所述派生令牌与所述租户之间的所述关联通过将所述标识符与存储在所述派生令牌中的单独标识符相比较来验证。

4.根据权利要求1所述的方法,其中所述原始用户数据通过调用所述原始用户数据和用于调用所述数据访问api的请求容器的函数被存储在所述响应容器中,并且其中所述原始用户数据与所述租户之间的所述关联是通过将来自用于调用所述数据访问api的所述请求容器的租户标识符和与所述响应容器相关联的所述请求容器相比较来验证的。

5.根据权利要求4所述的方法,还包括:

6.根据权利要求1所述的方法,还包括:

7.一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在由处理设备执行时,使所述处理设备:

8.根据权利要求7所述的计算机可读存储介质,其中所述计算机可执行指令还使所述处理设备:

9.根据权利要求8所述的计算机可读存储介质,其中所述请求包括用户令牌,并且其中所述派生令牌包括利用所述用户令牌获取的基于角色的访问控制凭证。

10.根据权利要求9所述的计算机可读存储介质,其中所述计算机可执行指令还使所述处理设备:

11.根据权利要求7所述的计算机可读存储介质,其中所述请求包括web请求,其中所述标识符是从处理所述web请求时生成的http上下文获取的,并且其中所述请求容器是在执行用户代码之前创建的。

12.一种计算设备,包括:

13.根据权利要求12所述的计算设备,其中所述计算机可执行指令还使所述处理设备:

14.根据权利要求12所述的计算设备,其中所述计算机可执行指令还使所述处理设备:

15.根据权利要求12所述的计算设备,其中所述计算机可执行指令还使所述处理设备:


技术总结
本文中公开的技术利用来源检查通过请求和响应容器化防止多租户服务中的数据泄露。当代表租户接收到web请求时,利用从该请求中提取的标识信息创建和初始化请求容器。可以被验证为与租户相关联的派生标识符可以被添加到请求容器中。然后创建用于积累在处理请求时获取的数据的响应容器。请求容器和响应容器在处理请求的整个调用路径中被传递。从请求容器中获取传递到数据访问操作的标识信息,而数据访问操作的结果被存储在响应容器中。在使用来自响应容器的数据生成web响应之前,响应容器被验证为包含与适当请求相关联的数据。

技术研发人员:R·马卢,V·罗伊,M·R·塔吉维迪
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:
技术公布日:2025/2/5
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1