根据PureSec的数据显示,超过20%的开源无服务器应用程序存在严重的安全漏洞。
对1000个开源无服务器项目的评估显示,其中21%包含一个或多个严重漏洞或错误配置,这些漏洞可能允许攻击者操纵应用程序并执行各种恶意操作。大约6%的项目甚至将应用程序的秘密(例如应用程序编程接口(API)密钥或凭证)发布到其可公开访问的代码存储库中。
据了解,大多数漏洞和错误是由于开发实践不良,缺乏无服务器安全教育以及将不安全的示例代码复制并粘贴到实际项目中所致。
PureSec首席技术官兼联合创始人Ory Segal表示:“随着企业适应无服务器应用程序安全性的独特挑战,PureSec的审核结果令人震惊,但并不令人意外。应用程序安全和云工作负载保护解决方案的传统模式对于无服务器体系结构无效。”
对无服务器基础设施(如物理安全、网络安全或操作系统补丁)安全性的责任落在了服务器提供者上。然而,应用程序所有者仍然对应用程序逻辑、代码、数据和应用程序层配置负全部责任,确保它们安全,稳固并能够抵御攻击。
发现的漏洞百分比在运行时语言是一致的。在选择排除运行时间因素的情况下,人为错误仍然是导致漏洞的原因。DotNet运行时是例外。这些项目的漏洞水平明显较高。
“功能即服务(FaaS)或无服务器功能的核心概念是为消费定义一个API,”Black Duck的技术宣传人员Tim Mackey解释说。这些API可以提供用于集成到更大应用程序中的基本服务。通过将API从核心业务逻辑中解锁出来,现在需要在API函数中实现通常适用于更高级别离散应用程序的安全范例。
例如,离散且面向用户的应用程序通常会在用户输入点执行输入清理例程。然后在应用程序内自由处理已清理过的数据,以将结果返回给最终用户。如果这些内部数据操作例程被分解成离散的API服务,那么当重构API时可以容易地省略输入清理规则。
Mackey补充说:“最终的结果是,意外的数据可能会被呈现给这个函数——相应地会产生意想不到的结果。如果该API功能对其他人有价值,那么这些新的消费者可能不会意识到缺乏相关处理和相关的安全风险。”
此外,任何API都存在潜在的风险,不管它是否被认为是无服务器的。
Mackey说:“应用程序所有者应该注意他们所使用的任何API,并且假定没有独立的验证,可能会存在任何数量的安全问题。除了API执行的安全特性之外,最近媒体对数据泄露的报道也表明,任何使用API的人都应该知道如何使用和存储所呈现的任何数据。”