无服务器计算近些年取得了长足发展,其增长伴随着丰富多彩的新解决方案生态系统的繁荣,这些新解决方案能提供可见性、实时跟踪、部署框架和应用安全。

随着无服务器安全风险意识的上升,愤世嫉俗者又开始重复那老掉牙的“恐惧、不确定和怀疑(FUD)”论调,力证无服务器模式虽能快速部署软件和大幅降低总拥有成本(TCO),却引入了新的安全问题。

不断进化的无服务器生态系统

成熟技术的主要标志之一就是围绕其不断发展的生态系统。拥有生机勃勃的社区、广泛的文档、最佳实践指南和各种工具,是驱动公司企业信任新技术并采用之的原动力。

无服务器架构安全责任模型

最近,云安全联盟( Cloud Security Alliance )联合PureSec推出了涵盖广泛的无服务器安全指南,在去年的基础上新增两大风险类型。

该指南题为《无服务器应用12大关键性风险》,适用于安全团队和处理无服务器应用的开发人员,但该指南不仅仅点出这些风险,还提供针对所有平台的最佳实践。指南中定义的风险类型如下:

风险1:功能事件-数据注入

无服务器功能可消费来自不同类型事件源的输入,每个事件源都有其独特的消息格式和编码体系。这些事件消息的各个部分可能包含攻击者控制的输入或不可信输入,应受到仔细检查。

风险2:验证出错

因为无服务器模式提倡面向微服务的系统设计,应用可能包含数十乃至数百个功能函数。一旦执行不谨慎,很容易在健壮验证的应用上出错。

风险3:不安全的无服务器部署配置

云提供商有多套配置设置可供根据特定需求调整服务。现成的设置未必总是最安全的。随着越来越多的公司企业迁移到云端,云配置漏洞也会变得更加普遍。

风险4:过高的功能权限和角色

管理功能权限及角色是公司企业将应用部署到云端时面临的最艰巨的任务。开发人员走捷径应用“通用”权限模型的情况很常见。

风险5:功能监视与日志记录不足

尽管大多数云供应商提供非常强大的日志功能,这些日志却未必总是适合在应用层执行全面安全事件审计跟踪。

风险6:不安全第三方依赖

虽然不安全第三方库不是无服务器特有的问题,但在无服务器环境中检测恶意包却更为复杂——因为无法应用网络和行为安全控制。

风险7:不安全应用秘密存储

与应用秘密存储相关的最常见错误之一,是将这些秘密简单地存储在作为软件工程一部分的明文配置文件中。另一个常见错误是将秘密存成了明文的环境变量。

风险8:拒绝服务和金融资源耗尽

无服务器架构具备自动化扩展和高可用性的前景;然而,与其他任一应用类型相同,只有应用最佳实践和良好设计才可以避免瓶颈。

风险9:无服务器业务逻辑篡改

业务逻辑篡改是很多软件的常见问题。不过,无服务器应用很特别,因为它们常遵从微服务设计,包含太多链接在一起以实现整体逻辑的功能函数。如果没有恰当执行,攻击者可能会篡改既定逻辑。

风险10:不恰当的异常处理和详细错误信息

与标准应用的调试功能相比,无服务器应用的逐行调试选项非常有限(而且更加复杂)。因此,开发人员常会使用详细错误信息,这就有可能泄露敏感数据了。

风险11:遗留/未使用功能&云资源

随时间推移,无服务器功能和相关云资源可能过时,理应停止使用。移除过时组件是为了减少不必要的开支和消除可避免的攻击界面。过时无服务器应用组件可能含有老版本功能函数、未使用的云资源、不必要的事件源、未使用的角色或身份,以及未使用的依赖。

风险12:跨执行数据保留

无服务器平台为应用开发者提供本地磁盘存储、环境变量和内存以执行其任务。为使无服务器平台能高效处理新调用,云提供商可能会重用执行环境处理后续调用。如果无服务器执行环境被重用于属于不同用户或会话的后续调用,其留下的敏感数据可能面临被暴露的风险。

需要指出的是,该指南旨在提升安全意识和帮助公司企业安全应用无服务器架构,并非是要散布恐惧。任何类型的平台都存在安全风险,无服务器平台也不例外。云安全联盟提出这些问题的目的是要鼓励公司企业在采纳新技术的同时规避风险和常见错误。

《无服务器应用12大关键性风险》:

https://www.puresec.io/serverless-security-top-12-csa-puresec

声明:本文来自安全牛,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。