应用服务器没有开 无服务器应用程序的12个最严重风险

自2018年以来,无服务器应用程序取得了巨大进步,提供了更多关于组织如何利用无服务器应用程序、其无服务器开发方法以及与无服务器应用程序的安全性和隐私相关的最常见错误的数据。

应用服务器没有开 无服务器应用程序的12个最严重风险


文章图片

2018年1月,PureSec发布了全球首个无服务器安全十大风险指南,受到无服务器行业主要参与者的好评。该报告基于无服务器技术传播者和行业领先制造商的思想领袖的初步数据和反馈。
自2018年以来,无服务器应用程序取得了巨大进步,提供了更多关于组织如何利用无服务器应用程序、其无服务器开发方法以及与无服务器应用程序的安全性和隐私相关的最常见错误的数据。
此外,在过去的一年里,新的缓解方法已经出现并变得越来越标准化,例如无服务器安全平台和云计算提供商提供的新功能,这将有助于改善无服务器安全状况。
2019年2月,云计算安全联盟(CSA)与PureSec合作发布了一份名为《无服务器应用的12大最严重风险》的新指南,其中包含了无服务器行业数十位思想领袖的建议和反馈,是迄今为止对在无服务器架构上构建应用的潜在风险进行分类的最全面的努力。该报告是为处理无服务器应用程序的安全和开发人员编写的,远远超出了指出风险的范围。它提供了解决方案、最佳实践以及传统应用程序和无服务器应用程序之间的比较。
下面列出了文档中描述的12种最严重的风险,每种风险都有一个简短的描述:
1.函数事件数据注入
无服务器函数可以使用来自每种事件源的输入(AWS提供47个不同的事件源,可以触发一个AWS lambda函数),这样的事件输入可能包含不同的消息格式(取决于事件类型及其源)。这些事件消息的不同部分可能包含攻击者控制的或其他危险的输入。这一组丰富的事件源增加了潜在的攻击面,并在试图保护无服务器功能免受事件数据注入时引入了复杂性。这一点尤其正确,因为在Web环境中,无服务器架构很难理解为开发人员知道哪些消息部分不应该被信任(例如,GET/POST参数、HTTP头等)。).
2.认证中断
因为无服务器架构促进了面向微服务系统的设计,所以为这种架构构建的应用程序可能包含几十个(甚至几百个)不同的无服务器功能,每个功能都有特定的用途。这些功能交织协调,形成整个系统逻辑。有些无服务器函数可能会公开公共的网络应用编程接口,而另一些函数可能会在进程或其他函数之间充当“内部粘合剂”。此外,一些功能可能会消耗不同来源类型的事件,如云存储事件、NoSQL数据库事件、物联网设备遥测信号,甚至短信通知。应用可靠的身份验证方案,为所有相关功能、事件类型和触发器提供访问控制和保护是一项复杂的任务,如果执行不小心,很容易出错。
3.不安全的无服务器部署配置
通用云服务(尤其是无服务器架构)提供许多定制选项和配置设置,以适应特定需求、任务或周围环境。一些配置参数对应用的整体安全状态有很大的意义,应该引起重视。无服务器架构供应商提供的设置可能不适合开发人员的需求。错误配置的身份验证/授权是影响使用基于云计算的存储的应用程序的一个常见弱点。由于无服务器架构的推荐最佳实践设计之一是使功能无状态化,因此许多为无服务器架构构建的应用程序依赖云计算存储基础架构来存储和保存执行之间的数据。
4.职能权限和超级权限的作用
无服务器函数应该只拥有执行预期逻辑所需的特权。这个原则叫做“最低特权”。因为无服务器函数通常遵循微服务的概念,所以许多无服务器应用程序包含几十个、几百个甚至几千个函数。因此,管理功能权限和角色很快成为一项乏味的任务。在这种情况下,组织可能被迫对所有复杂情况使用单一权限模型或安全角色,这实质上授予了对所有其他系统组件的完全访问权限。当所有功能共享同一组超级权限时,单个功能中的漏洞最终将升级为系统范围的安全灾难。

推荐阅读