无服务器基础设施与函数计算的安全盲点与新型攻击面
字数 1873
更新时间 2026-02-01 15:10:39

无服务器基础设施与函数计算的安全盲点与新型攻击面

  1. 基础概念:什么是无服务器计算?

    • 无服务器计算是一种云计算执行模型,云服务商动态管理机器资源的分配。开发者无需关心底层服务器(如虚拟机、容器)的配置、维护和扩展,只需将代码以“函数”的形式部署到平台上。
    • 核心组件是 FaaS 。开发者编写的函数在特定事件(如HTTP请求、文件上传、数据库变更)触发时被平台自动实例化并运行,执行完毕后资源通常会被释放。这是一种更细粒度的“按实际使用计费”模式。
  2. 与传统架构的安全模型差异

    • 责任共担模型偏移:在传统IaaS/PaaS中,用户需负责操作系统、运行时等安全。在无服务器模型中,云服务商负责底层基础设施、操作系统、运行时的安全,而用户的责任上移,聚焦于函数代码本身、函数配置、依赖库以及其身份与权限的安全。
    • 攻击面变化:传统攻击面(如开放端口、SSH服务、未修补的OS漏洞)大幅减少甚至消失。攻击者无法直接攻击一个长期运行的服务器,转而针对应用层和FaaS特有的配置与运行环境
  3. 核心安全盲点与漏洞类别

    • 不安全的函数配置与过度权限
      • 最常见的威胁。每个函数在执行时都被赋予一个执行角色(IAM角色),其关联的权限策略若过于宽泛(如*通配符权限),一旦函数代码存在漏洞,攻击者即可利用该函数的权限访问其他云服务(如S3存储桶、DynamoDB数据库、其他函数)。
      • 事件源(如API网关、消息队列)的访问控制配置错误,可能导致函数被未授权触发。
    • 注入类攻击
      • 事件数据注入:函数由结构化事件(如HTTP请求参数、JSON、NoSQL查询)触发。未对输入进行严格验证和清理,可能导致代码注入、OS命令注入(通过依赖库)、NoSQL注入等。
      • 由于函数环境通常是临时的,传统持久化Web Shell难以驻留,但攻击者仍可在单次执行中窃取数据或进行横向移动。
    • 不安全的第三方依赖
      • 函数代码通常依赖众多外部开源库。这些依赖若包含已知漏洞或被植入恶意代码,将直接引入风险。由于函数部署快速频繁,依赖管理容易被忽视。
    • 敏感信息泄露
      • 硬编码在函数代码中的密钥、API令牌、数据库凭证。环境变量配置不当导致泄露。函数日志(由云平台自动记录)可能意外包含敏感数据,并被未授权访问。
    • 拒绝服务与资源耗尽
      • 攻击者通过持续触发函数,导致产生高额费用(“账单DoS”)。尽管云平台可自动扩展,但函数并发执行数、执行超时时间等配额限制可能被耗尽,导致正常服务不可用。
  4. 新型攻击面与威胁情报趋势

    • 横向移动链的构建:攻击者不再寻找服务器IP,而是通过初始突破一个低权限函数 -> 利用其凭证/权限访问云元数据服务、密钥管理系统或配置存储 -> 窃取更高权限角色令牌或敏感数据 -> 触发或修改其他高权限函数/资源,在云环境内部实现横向移动。
    • 持久化驻留技术演进
      • “无服务器僵尸网络”:被入侵的函数可被攻击者远程控制,在每次被事件触发时执行恶意负载(如加密挖矿、发起DDoS),执行完毕后痕迹消失,难以追踪。
      • 污染事件源:攻击者将恶意事件注入到函数监听的消息队列或数据流中,实现持久化触发恶意代码。
      • 篡改函数层或容器镜像:针对云服务商构建函数运行环境的基础镜像进行污染(虽然难度高,但属于高级威胁范畴)。
    • 供应链攻击的新载体:恶意第三方库可直接注入到无服务器函数的部署包中。攻击者还可能入侵CI/CD流水线,在函数部署阶段植入后门。
    • 监控与检测的挑战:函数生命周期短暂,传统基于主机的安全监控代理难以部署。安全依赖云服务商提供的日志(如AWS CloudTrail, Azure Monitor)和专注于应用层的运行时安全方案,对日志进行异常行为分析(如异常的函数触发频率、来源地理区域、出站网络连接、权限调用序列)。
  5. 缓解与最佳实践

    • 遵循最小权限原则:为每个函数分配仅完成其任务所需的最严格IAM权限。
    • 强化函数代码安全:对输入进行严格的验证和清理。定期扫描并更新第三方依赖。
    • 安全配置管理:避免在代码中硬编码机密,使用云服务商提供的密钥管理服务。保护函数的环境变量和触发器配置。
    • 全面日志与监控:启用所有相关服务的操作日志,并建立针对无服务器工作负载的异常检测规则(如费用激增警报、非常规的API调用)。
    • 安全测试左移:在CI/CD流程中集成针对无服务器架构的SAST、SCA和配置检查工具。
    • 采用专门的无服务器安全工具:使用能够理解函数上下文、依赖关系、事件流和权限模型的专业安全平台进行漏洞管理和运行时保护。
 全屏