我们使用了一个自动渗透测试服务提供商来扫描我们的Rails Web应用程序,并提出了一些我们可以最大程度解决的漏洞。现在,在进行了另一轮测试之后,我们最终获得了一个漏洞,指出会话强度很差,这意味着会话令牌是可预测的,并且随机性较低,这会使应用程序遭受会话预测攻击。我们正在使用ruby 2.5.3p105,Rails 5.2.2,Devise 4.5.0,并通过Heroku提供该应用程序。我们使用CookieStore进行会话存储。这真的是由ruby使用的CSPRNG(由OpenSSL或WebSettings webSettings = appView.getSettings();
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
提供的CSPRNG)在测试运行期间未提供足够的熵引起的吗?为了使失败的测试通过,我们可以采取什么措施来增加生成的会话密钥的随机性?
答案 0 :(得分:2)
使用CookieStore时,该值不是随机会话密钥,而是一个可预测形状的值,其中包含服务器加密(和签名)的会话内容。
如果某个工具(或人类)将其误认为是随机的秘密,则它的外观可能看起来不完全是随机的。不应该这样但是,如果不破坏AES256,也是无法预料的。