0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

科技云报道:Serverless或许没有你想象中的安全

科技云报到 来源:jf_60444065 作者:jf_60444065 2023-05-12 13:12 次阅读

科技云报道原创

随着云计算技术的进一步成熟,Serverless已成为引领云计算下一个十年的技术热点。

Serverless能够帮助开发者无需关注服务器、按照实际使用付费且可以享受服务自动弹性伸缩,将更多的精力放到业务逻辑本身。据Gartner预测,2025年将有50%以上的全球企业采用Serverless架构。

尽管采用Serverless已成为大势所趋,但Serverless框架是否真的安全?有人认为,使用Serverless云服务相当于把基础架构托管给了云服务商,一切云服务安全都由云服务商来负责,采用Serverless甚至会比现有的基础云服务更安全。

事实真的如此吗?

Serverless面临的安全风险

Serverless面临的主要挑战是云服务商只负责云的安全性,而不是云中的安全性。这意味着Serverless应用程序不仅仍然面临传统应用程序面临的风险和漏洞,例如:跨站点脚本、访问控制中断、数据库注入、敏感数据泄露、不安全的反序列化等,而且还面临着Serverless架构特有的安全挑战。

风险一:增加攻击面

Serverless函数使用来自各种事件源的输入数据,包括 HTTP API、云存储、IoT设备连接和队列。这大大增加了攻击面,因为其中一些部分可能包含不受信任的消息格式,标准应用程序层保护可能无法正确检查这些格式。如果暴露了用于获取输入数据(例如协议、向量和函数)的连接链接,则可以将其用作攻击点。

风险二:安全配置错误

由于云服务提供商提供的设置和功能配置不安全,Serverless应用程序容易受到网络攻击。

例如,DoS攻击经常发生在Serverless应用程序中,这是由于函数和主机之间的超时设置配置错误,其中低并发限制用作对应用程序的攻击点。攻击者还可以通过插入函数调用来利用函数链接,其中他们延长函数事件的执行时间比预期更长,从而允许DoW攻击并增加Serverless函数的成本。

此外,使用公共存储库(如GitHub和S3存储桶)中未受保护的功能也会由于敏感数据泄露而造成DoW攻击。这是因为攻击者利用公开的函数,其中包含代码中硬编码的未受保护的机密和密钥。

风险三:身份验证中断

Serverless应用程序是无状态的,在其体系结构中使用微服务会使独立函数的移动部分面临身份验证失败的风险。

例如,如果在具有数百个Serverless函数的应用程序中仅对一个函数的身份验证处理不当,则会影响应用程序的其余部分。攻击者可以专注于一个功能,通过不同的方法访问系统,如自动暴力破解等。

风险四:特权过大功能的威胁

Serverless生态系统依赖于许多独立的函数,每个函数都有自己的角色和权限。职能之间的大量交互有时可能导致职能在其权利上享有过多的特权。例如,不断访问数据库并更新其他函数的功能可能是一个巨大的风险,因为它对参与者可见。

风险五:使用已知漏洞的组件

Serverless应用程序通常使用JavaScript(或TypeScript)或Python语言。Python或 JavaScript的开发人员通常使用大量第三方组件来完成不同的任务。这些组件可能存在漏洞,使用它们会使Serverless应用程序容易受到攻击。

保护Serverless安全性的最佳实践

当然,面对Serverless面临的安全风险,企业可以采用多种Serverless应用程序安全最佳实践,其中包括:

不要仅仅依赖WAF保护

拥有WAF很重要,但它不应该是保护Serverless应用程序的唯一防线。如果仅依靠WAF保护,安全性可能会有很大的漏洞。

因为WAF只能检查HTTP流量,这意味着WAF只会保护API网关触发的函数,它不会针对其他事件触发器类型提供保护。如果函数从不同的事件源触发,比如:通知(物联网、短信和电子邮件;代码修改;数据库更改;流数据处理;云存储事件等,则WAF无济于事。

使用自定义函数权限

事实上,Serverless应用程序中超过90%的权限已被过度许可。尽管在考虑Serverless应用功能级别时,设置权限可能会令人望而生畏,但不应使用一刀切的方法。一个常见的Serverless安全错误是设置更宽松且功能更大的策略,未能最小化单个权限和功能角色会使攻击面大于应有的范围。

DevSecOps团队必须与编写函数的开发人员坐下来,查看每个函数的用途并创建适当的函数级别权限。确定每个函数的用途后,可以为每个函数创建合适的权限策略和唯一角色。庆幸的是,整个过程可以使用各种自动化工具来助力。

进行代码审核

Black Duck Software调查了企业中常用的1000个应用程序,发现其中96%都使用了开源软件。研究人员还发现,60%的软件都包含安全漏洞,其中一些漏洞已经存在了四年以上。这使得代码所有权和真实性成为一项严重的安全风险。

随着开源软件的盛行,单个Serverless函数可能包含来自不同外部源的数千行代码。因此,想要提高Serverless的安全性,执行代码安全审计至关重要。

保持对CI/CD的控制

代码漏洞可以通过严格的CI/CD来缓解,即使它听起来很难。

攻击者可能会通过各种方式溜进来,甚至会在不被发现的情况下潜入企业内部造成严重破坏。若要确保不会发生这种情况,必须创建一个策略和策略,以便在生成期间执行代码分析,然后再上线,并确保每个函数都已通过CI/CD。

通过AI密切关注所有攻击指标

每天只有几百个函数都可以在日志中生成数十亿个事件,因此很难确定哪些事件是重要的。即使熟悉Serverless应用特有的攻击模式,也不可能扫描所有攻击模式,这就是为什么必须使用AI工具来增加Serverless的安全性、效率和可见性。

使函数超时

所有函数都应具有严格的运行时配置文件,但通常不直观地创建适当的Serverless函数超时。函数的最长持续时间可以特定于该函数。DevSecOps 团队需要考虑配置的超时与实际超时。大多数开发人员将超时设置为允许的最大值,因为未使用的时间不会产生额外的费用。

但是,这种方法可能会产生巨大的安全风险,因为如果攻击者成功注入代码,他们就有更多的时间来造成损害。较短的超时意味着它们可以更频繁地攻击,这被称为“土拨鼠日”攻击,但它也使攻击更加明显。因此,作为Serverless安全性最佳做法,是必须使函数超时。

减少对第三方的依赖

开发人员通常从第三方派生组件,最好检查其来源是否可靠以及它们所引用的链接是否安全,采取此预防措施可避免意外漏洞,务必检查开源平台中使用的组件的最新版本。

大多数开发人员更喜欢在现代应用中使用开源组件,这使得检测任何问题或跟踪代码中的漏洞变得更加困难。最好使用最新版本并及时获得更新,并提前做好准备。

为此,可以定期检查开发论坛上的更新,使用自动依赖项工具,并避免使用依赖项过多的第三方软件。

处理凭证

建议将敏感数据存储在安全的位置,并使其可访问性极其有限,必须特别注意API密钥等凭据。同时,应将环境变量设置为运行时间评估设置,然后在配置文件中部署时间。

最好的方法是定期轮换密钥,即使被黑客入侵,可以确保切断对黑客的访问。每个组件、开发人员和项目都必须具有单独的密钥,并加密敏感数据和环境变量。

保护软件开发生命周期

软件开发生命周期定义了构建应用程序、在整个生命周期中对其进行管理以及简化开发过程。但是,不安全的应用程序可能会带来巨大的业务风险。易受攻击的应用程序可能会导致个人数据丢失,并对企业业务声誉造成无法弥补的损害。

在开发阶段集成安全性可确保授权并确保Serverless应用程序的正常工作,它还涉及不断审查弱点条件,并确保应用程序与安全实践集成。

地理考虑

开发人员应记住,在部署应用模块时,某些地理注意事项可能会对Serverless安全性产生负面影响。从不同地理位置部署的代码可能会产生与代码相关的问题。例如,纽约的开发人员将使用US-East-1时区,而来自亚洲的开发人员将在部署设置中使用完全不同的时区。

结语

毫无疑问,新机遇伴随着独特的挑战。Serverless架构引入了一种新的应用程序开发范例,但是企业在处理应用程序基础结构时,也必须承担额外的安全责任。

因此,在采用Serverless时,需要更谨慎和明智地尝试安全应用程序最佳实践。

【关于科技云报道】

专注于原创的企业级内容行家——科技云报道。成立于2015年,是前沿企业级IT领域Top10媒体。获工信部权威认可,可信云、全球云计算大会官方指定传播媒体之一。深入原创报道云计算、大数据、人工智能区块链等领域。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云计算
    +关注

    关注

    38

    文章

    7351

    浏览量

    135723
  • AI
    AI
    +关注

    关注

    87

    文章

    26459

    浏览量

    264080
  • serverless
    +关注

    关注

    0

    文章

    61

    浏览量

    4440
收藏 人收藏

    评论

    相关推荐

    鸿蒙原生应用元服务实战-Serverless华为账户认证登录需尽快适配

    一、ArkTS\\\\API9,服务器端基于serverless开发的应用与元服务华为账号注册登录功能暂时是不支持的 二、3月1日后的审核要求 3月1日的时间是快到了。 三、会导致的结果
    发表于 02-20 10:14

    鸿蒙应用/元服务开发实战-Serverless存储没法创建处理方式

    新账户,Serverless存储没法创建 ,没法进行下一步。 解决方式 请按照这个方式修改一下就能正常创建了,浏览器打开控制台输入 window.top.cfpConfig.cloudStorageSwitch=‘off’
    发表于 02-19 11:21

    鸿蒙原生应用/元服务开发-Serverless账户验证码的问题

    在应用/元服务早期使用过程,-Serverless账户验证码的格式是[AGC][应用/元服务名称],如下图。 但是,在最近,[应用/元服务]名称直接变成了【default】,用户收到这种验证码后,心里存有疑虑的,这是哪里配置或者设置的问题吗?大家有遇到同样的问题吗?如何
    发表于 12-27 15:55

    过孔温度,没有我们想象那么高

    过孔温度,没有我们想象那么高
    的头像 发表于 12-07 16:55 216次阅读
    过孔温度,<b class='flag-5'>没有</b>我们<b class='flag-5'>想象</b>那么高

    鸿蒙原生应用/元服务开发-新版本端一体化模板体验反馈

    一、前言 云端一体化模板是基于Serverless服务构建的一套模板,提供了应用生态常见场景需求的代码实现,开发者可将所需能力快速部署和集成到自己的应用。 二、准备 体验最新的远端一体化模板,需要
    发表于 12-05 14:57

    华为云全新上线 Serverless 应用中心,支持一键构建文生图应用

    近日,华为云全新上线 Serverless 应用中心,提供大量应用模板,帮助用户实现一键部署函数和周边依赖资源,节省部署时间,快速上手将应用部署到华为云函数工作流 FunctionGraph,并一键
    的头像 发表于 11-13 09:36 317次阅读
    华为云全新上线 <b class='flag-5'>Serverless</b> 应用中心,支持一键构建文生图应用

    全域 Serverless+AI,华为云加速大模型应用开发

    日前,华为全联接大会 2023 在上海召开。华为云 CTO 张宇昕在大会上发布了基于 Serverless 技术的大模型应用开发框架,框架以面向 AI 领域全新升级的 FunctionGraph
    的头像 发表于 10-25 21:30 209次阅读
    全域 <b class='flag-5'>Serverless</b>+AI,华为云加速大模型应用开发

    HarmonyOS/OpenHarmony原生应用开发-华为Serverless服务支持情况(四)

    文档的TS作者认为就是ArkTS之意。 一、存储 AppGallery Connect(简称AGC)存储是一种可伸缩、免维护的云端存储服务,可用于存储图片、音频、视频或其他由用户生成的内容
    发表于 10-16 14:20

    HarmonyOS/OpenHarmony原生应用开发-华为Serverless认证服务说明(二)

    工作,以实现如下目的: 让认证服务来提供您的自有认证系统所不具备的认证方式; 让您自有认证系统的用户以安全的方式访问其他Serverless服务(比如云数据库、存储等)。
    发表于 10-10 14:59

    HarmonyOS/OpenHarmony原生应用开发-华为Serverless云端服务支持说明(一)

    、华为Serverless服务框架 提供了多种云端服务: 认证服务:助力应用快速构建安全可靠的用户认证系统。 函数:提供Serverless化的代码开发与运行平台。
    发表于 10-08 10:22

    全域 Serverless 化,华为云引领下一代云计算新范式

    近日,华为开发者大会 2023(Cloud)在东莞成功举办,期间“全域 Serverless 化,引领下一代云计算新范式”专题论坛人气满满。华为云首席产品官方国伟携手业界专家、客户、伙伴,面向广大
    的头像 发表于 09-06 23:05 380次阅读
    全域 <b class='flag-5'>Serverless</b> 化,华为云引领下一代云计算新范式

    Serverless冷启动:如何让函数计算更快更强?

    Serverless 计算的无状态函数编程在带来高度弹性和灵活性的同时,也导致了不可避免的冷启动问题。由于函数通常在执行完请求后被释放,当请求到达时,如果没有可用实例则需要从零开始启动新的实例处理请求(即冷启动)。
    的头像 发表于 09-03 09:33 326次阅读
    <b class='flag-5'>Serverless</b>冷启动:如何让函数计算更快更强?

    Serverless计算产品为什么采用并发度作为扩缩容?

    2019 年 Berkeley 预测 Serverless 将取代 Serverful 计算 [1 ] ,成为云计算的计算新范式。Serverless 为应用程序开发提供了一种全新的系统架构,其凭借
    的头像 发表于 07-30 15:52 799次阅读
    <b class='flag-5'>Serverless</b>计算产品为什么采用并发度作为扩缩容?

    C语言的include没你想的那么简单

    C语言中的include很简单,但不是你想象中的简单。 你对#include的认识是不是只停留在包含头文件的认知中,好像也没有别的用处,小小东西也翻不起什么风浪?
    发表于 07-06 09:30 185次阅读

    RISC-V入!赛昉科技联合中国电信完成首个RISC-V云原生轻量级虚拟机验证

    RISC-V指令集及计算技术创新。 据介绍,TeleVM针对传统QEMU+KVM的虚拟化方案QEMU代码臃肿、资源消耗高、攻击面大的问题,基于Rust安全语言重写了虚拟机并进行了RISC-V架构
    发表于 05-11 14:08