这里的元问题是,我试图理解小工具链对多租户java应用程序的风险。
例如,我们都熟悉反序列化小工具,它允许创建可导致RCE的任意java对象。
但是,假设您的json反序列化器(或其他什么)是安全配置的。是否有可能创建小工具链,在运行时将jackson重新配置为不安全配置?
更普遍地说,是否有可能采取任何特定的漏洞,已经修补,但开发一个小工具链,以启用它?
例如,假设您存在X ->导致Y的漏洞(例如,RCE)。
如果你能找到一条导致X的小工具链(比如X1 -> X2 -> X),那么你就会发现X1 -> X2 -> X -> Y。
为了好玩,假设X2是不可用的,那么尝试建立一个像XA2 -> XB2 -> XC2 -> X2这样的连锁店是否合理?
因此,您的路径将是X1 -> XA2 -> XB2 -> XC2 -> X2 -> X -> Y?
这是否一个合理的方法来看待这个问题?
我问的原因是,我们建立的系统,我们认为我们是安全的,因为X不是一个立即的风险。甚至因为X1 -> X2 -> X都是正确的修补程序,而实际上,如果可以将任何漏洞分解成一系列的小工具,那么我们总是处于危险之中,因此我们的大部分安全将成为通过安全边界(逃离VM、容器等)的困难。
考虑到java和java第三方库中的静力学数量,在我看来,它可能容易受到一大类小工具链的攻击。换句话说,您不必只在一个请求中进行攻击,而是可以通过一系列请求来完成攻击。
这个分析正确吗?
发布于 2019-06-10 18:35:35
但是,假设您的json反序列化器(或其他什么)是安全配置的。是否有可能创建小工具链,在运行时将jackson重新配置为不安全配置?
您在这里提出的假设是,Jackson (或其他什么)中的漏洞仅仅是配置不良的问题。通常,这些漏洞并不是配置的结果,而是因为代码做错了事情。通常,这涉及到修补代码,这样它就不会做错误的事情。
当我们记住这一点时,你的一般问题显然是自相矛盾的:
更普遍地说,是否有可能采取任何特定的漏洞,已经修补,但开发一个小工具链,以启用它?
如果可以在某种程度上启用该漏洞,那么这仅仅表明它一开始就没有得到正确的修补。
https://security.stackexchange.com/questions/211624
复制相似问题