【问题标题】:Security risks of running raw user input (code) in an AWS Lambda?在 AWS Lambda 中运行原始用户输入(代码)的安全风险?
【发布时间】:2020-12-12 07:09:18
【问题描述】:

假设我们从表单字段中获取用户输入。为了论证的缘故,说一些python代码;像2 * 2 这样简单的东西,将其存储为字符串,然后从 AWS Lambda 执行该 python 代码。

我们知道2 * 2 是无害代码,但如果用户输入恶意代码会怎样。

允许用户输入在 AWS Lambda 中运行可能发生的最坏情况是什么?

两个明显的风险是

  1. 他们能否访问 lambda 之外的东西(例如 AWS 密钥/IAM)?
  2. 他们能做的比删除 lambda 本身上的文件系统更糟糕吗(这可能无关紧要,因为它是短暂的)
  3. 可能编写会消耗 lambda 资源的代码。
  4. 以类似蠕虫的方式启动其他 lambda

上述三个风险是否合理,或者存在哪些风险?

我要回答的基本问题是,接受用户 (python) 输入并在 lambda 中运行它而无需人工审核是否相当安全?

【问题讨论】:

    标签: amazon-web-services aws-lambda


    【解决方案1】:

    获取用户 (python) 输入并在 lambda 中运行它而无需人工手动检查是否相当安全?

    遗憾的是,它并非如此,而且它的安全风险。 lambda 代码将通过其执行角色拥有与您的函数相同的权限。因此,无论 lambda 执行允许什么,您的用户都可以通过运行他们的脚本来完成。

    即使您现在使用基本权限或没有权限执行该函数,但随着时间的推移,您或其他人可能会错误地为其添加一些权限,并且您可能最终会运行您的函数拥有管理员权限,您帐户中的所有资源都对每个操作开放。

    【讨论】:

      猜你喜欢
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多