无服务器代码对 DDoS 攻击免疫吗?

信息安全 ddos aws 天蓝色
2021-08-23 22:08:24

在经典托管中,我们有一个虚拟机,其资源有限,由托管提供商分配用于运行我们的 Web 应用程序。但是对于 AWS Lambda 或 Azure Functions 等无服务器代码,我们的代码由托管服务提供商(亚马逊或微软)自己执行以响应事件。从理论上讲,分配给 Lambda 函数的资源没有限制,所以这是否意味着如果攻击者想要使用 DDoS 关闭无服务器应用程序,他必须首先关闭整个 AWS/Azure,而这是不可能的?

4个回答

总有一些东西会坏掉

虽然从理论上讲,无服务器系统可以将您的应用程序扩展到非常高的水平,但总会有一些东西会中断。可能的候选人:

  1. 你的数据库!
  2. 其他内部服务
  3. 您在响应请求时调用的第三方服务
  4. 您的银行账户

即使使用不使用数据库或外部服务的无状态端点,大规模的 DDoS 攻击仍然会从您的云提供商处产生如此大的账单,以至于您选择关闭服务直到 DDoS 攻击结束。这不是一个新概念。这是一个关于它的讨论:

https://summitroute.com/blog/2020/06/08/denial_of_wallet_attacks_on_aws/

从理论上讲,分配给 Lambda 函数的资源没有限制......

有 - 这是预算和配额。Lambda 函数不是自由执行的,因此导致大量执行 Lambda 函数的 DDoS 最终将耗尽给定的配额并导致限制 - 结果是减少甚至拒绝服务。虽然可能会增加其成本的配额,但在这种情况下,可用预算是一个新的限制。

简而言之:all-in-all serverless 不是针对任何攻击的保护措施

请注意,“无服务器”并不意味着不涉及服务器。这仅意味着您已将服务器管理委托给其他人(亚马逊、微软等),他们为您设置了服务器。

许多事情仍然可能发生。服务器仍然可以中断,服务提供商可以停止您的帐户,您的合同可能由于某些原因而无效,您可以超出您的配额,ecc。

假设底层软件会自动将您的代码移动到另一台服务器并为您扩展它。DDoS 攻击的目标是损害您的业务。鉴于所有这些 - 无服务器上的 DDoS 仍然是一个威胁。它可能会导致服务质量下降(即在底层软件对您的代码进行洗牌时出现间歇性错误),或者可能会使您的账单增加到正常使用量的 1000 倍。

总是有一些限制。例如,对于 AWS Lambda,单个 AWS 账户可以同时执行多少个(例如,几个 1000 个并发执行)是有限制的。使用 DDoS,您可以关闭一个 AWS 账户,而不是整个 AWS 基础设施。当然,在此过程中会为帐户所有者生成一大笔账单。