Algorithmic complexity vulnerabilities are a class of security problems that enables attackers to trigger the worst-case complexity of certain algorithms. Such vulnerabilities can be leveraged to deploy low-volume, asymmetric, CPU-based denial-of-service (DoS) attacks. Previous work speculates that these vulnerabilities are more dangerous in certain web servers, like Node.js, than in traditional ones, like Apache. We believe it is of utmost importance to understand if this is indeed the case or if there are ways to compensate against such problems using various deployment strategies. To this end, we study the resilience of popular web servers against CPU-based DoS attacks in four major cloud platforms under realistic deployment conditions. We find that there are indeed significant differences in how various web servers react to an attack. However, our results suggest a more nuanced landscape than previously believed: while event-based systems tend to recover faster from DoS in certain scenarios, they also suffer the worst performance degradation overall. Nevertheless, in some setups, Apache performs worse than event-based systems, and there are cloud platforms in which all the considered servers are seriously exposed to the attack. We also find that developers can harden their servers against CPU-based DoS attacks by increasing the number of server instances running in parallel. This, in turn, can lead to an increased cost of operation or a slight degradation of performance in non-DoS conditions.
翻译:解析复杂性脆弱性是一组安全问题,使攻击者能够触发某些算法的最复杂情况。 这种脆弱性可以被用来部署低容量、不对称、基于CPU的拒绝服务(DoS)攻击。 先前的工作推测,某些网络服务器,如Node.js,比传统服务器,如阿帕奇,这些脆弱性比传统服务器更危险。 我们认为,最重要的是要了解,如果确实如此,或者有办法利用各种部署战略来弥补这类问题,那么就一定的安全问题。为此,我们研究了在现实部署条件下在四个主要云平台对基于CPU的DoS攻击的流行网络服务器的抗御能力。我们发现,在各种网络服务器对攻击的反应方面确实存在重大差异。然而,我们的结果表明,这些弱点比以前所相信的更加微妙:虽然基于事件的系统在某些情景下往往从DoS恢复得更快,但它们的性能也遭受了最严重的退化。 然而,在某些设置中,Apache的表现比基于事件的系统要差得多,而且有云台平台,所有被认为的服务器都严重暴露在攻击中。 我们还发现,在服务器的运行中,一个稳定的运行中, 使C级服务器的运行成本会增加。