Mar*_*rcG 8 logging amazon-web-services aws-lambda
请看这个:
http://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html
日志类型
仅当您使用值RequestResponse指定InvocationType参数时,才可以在请求中将此可选参数设置为Tail.在这种情况下,AWS Lambda会在x-amz-log-result标头中返回由Lambda函数生成的base64编码的最后4 KB日志数据.
有效值:无| 尾巴
所以这意味着任何具有调用函数的有效凭据的用户也可以读取此函数发出的日志?
如果是这样,这是一个明显的漏洞,可以为攻击者提供有关处理无效输入的有用信息.
如何配置Amazon AWS Lambda函数以防止在响应中拖尾?
更新1
1)关于评论:" 如果黑客可以调用你的Lambda函数,你会遇到比查看日志文件更多的问题. "
不正确:Lambda函数也可以使用SDK直接从客户端代码调用.
例如,请参阅"AWS Lambda in Action"一书中的下图:
2)关于评论:" 这是一个什么样的漏洞?只有您提供AWS IAM凭证的人才能调用Lambda函数. "
当然,客户确实拥有一些凭据,大部分时间(例如,通过Amazon Cognito登录到您的Facebook帐户的移动应用程序).我应该相信我的所有用户吗?
3)关于评论:" 只有你已经记录了一些安全信息. "
日志可能包含合理的信息.我不是在谈论密码之类的安全信息,而只是帮助开发团队调试的信息,或安全团队发现攻击的信息.应用程序可能会记录所有类型的信息,包括为什么某些无效输入失败,这可以帮助攻击者了解什么是有效输入.此外,攻击者可以查看安全团队记录其攻击的所有信息.不好.根据您记录的内容,即使隐私也可能存在风险.
更新2
如果我能以某种方式检测Tail
Lambda代码中的参数,它也将解决我的问题.然后,我只会失败并显示"Tail now allowed"消息.不幸的是,该Context
对象似乎不包含此信息.
我认为您无法配置 AWS Lambda 来防止在响应中拖尾日志。但是,您可以使用自己的日志记录组件,而不是使用 Amazon Lambda 提供的日志组件,以避免通过参数公开它们的可能性LogType
。
否则,我明白您关于增加复杂性的观点,但使用 API Gateway 是最常见的解决方案,可以为您不信任的客户端应用程序调用 Lambda。
归档时间: |
|
查看次数: |
414 次 |
最近记录: |