近年来,无服务器计算技术以及蓬勃发展的新解决方案生态系统取得了显着增长。这些新解决方案提供可观察性,实时跟踪,部署框架和应用程序安全性。
无服务器安全性
由于无服务器安全的风险逐渐引起了人们的注意,那些荒谬和愤世嫉俗的人称之为“FUD”——恐惧,不确定,并怀疑——的习惯。他们指出,尽管软件中无服务器技术的快速部署和软件在降低TCO方面具有巨大价值,但它也带来了新的安全挑战。
不断发展的无服务器生态系
衡量成熟技术的关键指标之一是该技术的生态系统。无论您是拥有繁荣的社区,广泛的文档,最佳实践指南和工具,都将决定您的组织是否信任并采用新技术。
最近,云安全联盟(CSA)与PureSec合作编写了一个无服务器安全指南,该指南收录了去年发布的大部分内容,并增加了两个重要的风险级别。
指南《无服务器应用12个最严重的风险》是为处理无服务器应用程序的安全和开发受众编写的,但内容不仅限于指出这些风险的存在,而且还为所有主要平台提供了最佳实践。我们对风险类别的定义如下:
风险1:功能事件 - 数据注入
无服务器技术可以使用来自不同事件源的数据输入,并且每个事件源都有其自己独特的消息格式和编码机制。这些事件消息可能包含由攻击者控制的数据或不受信任的数据,这需要进行严格的审查。
风险2:身份验证失败
由于没有服务器改进面向微服务的系统的设计,因此应用程序可以包含数十个甚至数百个功能。如果不仔细执行,则在身份验证过程中很容易出错。
风险3:不安全的无服务器部署配置
云提供商提供了许多可根据特定需求量身定制的设置选项。开箱即用的设置不一定是最安全的选择。随着越来越多的企业组织迁移到云,云配置中的漏洞变得越来越普遍。
风险4:过多的权限功能权限和角色
管理功能权限和角色是组织在将应用程序部署到云时面临的最严峻的安全挑战之一。有时开发人员希望采用快捷方式并采用“pass-all”权限模型,这种模式很常见。风险5:功能监控和记录不足
虽然大多数云供应商提供非常强大的日志记录功能,但这些日志不一定适合在应用程序层提供完整的安全事件审计跟踪功能。
风险6:取决于不安全的第三方
虽然第三方库的不安全性不仅是无服务器技术的缺点,缺乏应用网络和行为安全控制能力,在无服务器环境中检测恶意软件包也更加复杂。
风险7:不安全的应用程序秘密存储
应用程序秘密存储最常见的问题之一是将秘密信息保存为软件项目中的纯文本文件,或将秘密信息保存为纯文本文件作为环境变量。
风险8:拒绝服务和财务资源枯竭
无服务器架构的特点是自动可扩展性和高可用性,但与任何其他类型的应用程序一样,无服务器需要最佳实践和良好的设计以避免瓶颈。
风险9:无服务器业务逻辑操作
业务逻辑操作是许多软件中的常见问题。但是,无服务器应用程序有些特殊。它们通常在设计时考虑到微服务,并且所涉及的各种功能被链接在一起以形成逻辑整体。如果执行不当,攻击者可能会篡改预期的逻辑。
风险10:不恰当的异常处理和详细的错误消息
无服务器应用程序的逐行调试是有限的,并且比标准应用程序的调试功能更复杂。结果,经常发生非常冗长的错误消息,这可能导致敏感数据的泄漏。
风险11:遗留/未使用的功能和云资源
随着时间的推移,无服务器功能和相关的云资源可能已过时,应予以淘汰。处理过时的组件以减少不必要的成本并消除可以避免的攻击面。过时的无服务器应用程序组件,可能是糟糕的无服务器功能版本,未使用的云资源,不必要的事件源,未使用的角色或身份,未使用的依赖项。
风险12:数据持久性的交叉执行
无服务器平台为应用程序开发人员提供本地磁盘存储,环境变量和用于执行任务的内存。为了使无服务器平台有效地处理新呼叫,云提供商可以在后续呼叫中重用该执行环境。如果对后续调用重复使用无服务器执行环境,属于不同用户或不同会话,则可能遗留敏感数据并且敏感数据泄漏。
本指南的目的是提高认识,帮助组织组织安全的无服务器创新,而不是引起恐慌。任何平台都存在安全风险,没有服务器也不例外。 CSA提出的这些问题的目的是鼓励组织采用新技术,同时避免风险和常见错误。