01 · 隔离模型与租户边界
函数平台的多租户隔离是分层工程:平台以微虚机/沙箱隔离不同客户的执行环境(第4页隔离谱系),但在客户组织内部,"租户"的边界完全由账户、项目与配置策略人为划定——隔离强度取决于治理而非平台默认值。
| 隔离层级 | 机制 | 适用场景 | 残余风险 |
|---|---|---|---|
| 平台级 | Firecracker microVM / gVisor / V8 isolates实例级隔离(云厂商维护) | 不同云客户之间的默认边界 | 侧信道类风险属公开学术研究主题,尚无证据构成函数场景主要风险路径 |
| 账户/项目级 | AWS账户+Organizations SCP、Azure管理组、GCP组织策略;环境(dev/stg/prod)分账户 | 生产与测试强隔离;受限团队的独立爆炸半径 | 跨账户凭证管理成本;SCP过宽会削弱防护意义 |
| 应用级 | 函数资源策略、预留并发上限、API Usage Plan、标签与成本分摊、敏感函数独立角色 | 同账户内不同业务线与敏感度的软隔离 | 配置漂移与人为失误——必须持续审计(第8页) |
环境分账户是函数安全性价比最高的架构决策:测试函数天然带有调试端口与宽松权限,与生产同账户时一次测试凭证泄露即等于生产凭证泄露。AWS Organizations服务控制策略(SCP)可在组织级限制区域、禁止创建公网函数类高危API——把"禁止性控制"从流程搬到策略层。
02 · 遥测体系与检测场景库
2.1 数据源组合与开启基线
| 数据源 | 覆盖内容 | 开启基线 |
|---|---|---|
| CloudTrail管理事件 | 函数/角色/规则的全部控制面变更 | 默认开启;所有区域启用;集中到审计账户 |
| CloudTrail数据事件 | Lambda Invoke与S3对象级访问 | 需显式开启(默认不记录)—— Invoke审计的盲区必须补齐 |
| GuardDuty | 函数异常网络行为、凭证滥用类发现 | 全区域开启;发现级联至Security Hub |
| VPC Flow / DNS日志 | 函数出站连接与域名解析 | 入VPC函数开启Flow Logs;Resolver查询日志接入SIEM |
| CloudWatch日志/指标 | 函数运行日志、错误率、并发、时长 | 保留期≥6个月(合规基线);敏感字段脱敏入库 |
| 账单与用量遥测 | Cost Anomaly Detection、Budgets告警 | 所有函数相关账户开启;异常通知直达安全值班 |
2.2 十大检测场景(含MITRE ATT&CK映射)
| 编号 | 场景 | 检测信号 | MITRE映射 |
|---|---|---|---|
| S1 | 非部署窗口函数创建/代码更新 | CreateFunction、UpdateFunctionCode事件时间戳偏离发布日历 | T1098 账户操纵 |
| S2 | 新增持久化触发器 | CreateEventSourceMapping、EventBridge PutRule/CreateSchedule | T1546 事件触发执行 |
| S3 | 函数公开面变更 | AddPermission出现Principal:*、函数URL AuthType变更 | T1190 漏洞利用入口面 |
| S4 | 权限提升 | AttachRolePolicy/PutRolePolicy为函数角色附加高权限策略 | T1098 / T1548 |
| S5 | 凭证泄露迹象 | GuardDuty凭证类发现;新区域/新主体AssumeRole模式 | T1078 有效账户 |
| S6 | 挖矿行为 | 矿池域名/IP连接、/tmp ELF执行、CPU持续打满、DoH直连 | T1496 资源劫持 |
| S7 | 数据外泄 | 出站目的地偏离基线、S3数据事件批量读取 | T1567 外泄至外部 |
| S8 | 重试风暴/资源耗尽 | 429节流突增、并发打满、下游错误率级联 | T1499 端点拒绝服务 |
| S9 | 检测规避 | DeleteLogGroup/StopLogging、GuardDuty检测器删除尝试 | T1562.001 削弱防御 |
| S10 | 账单异常 | Cost Anomaly Detection告警、单函数费用突增数倍 | SAS-08财务耗尽 |
03 · 事件响应流程
| 阶段 | 关键动作 | 工具与依据 |
|---|---|---|
| 准备 | 响应联系单;预留并发熔断操作预授权;凭证吊销runbook;GuardDuty发现路由至值班 | Organizations+SCP预先限制危险API;演练验证 |
| 遏制 | ①函数预留并发置0(官方文档支持的熔断手段,调用立即节流);②删除可疑事件源映射/规则;③资源策略临时Deny;④吊销涉事凭证 | PutFunctionConcurrency(置0)、DeleteEventSourceMapping |
| 取证 | 函数代码与配置快照;版本历史导出(published versions不可变,利于完整性校验);CloudTrail事件历史;日志导出归档 | Lambda版本不可变性(官方文档);AWS Config配置快照 |
| 根除 | 轮换全部可能暴露凭证(含环境变量内第三方密钥);修复IAM策略;依赖漏洞清除 | Secrets Manager轮换;第3、6页基线 |
| 恢复 | 经签名与扫描的修复版本部署;别名灰度切换;观察期监控 | 别名路由(官方机制);GuardDuty+账单双观察 |
响应时效的硬性约束:函数即基础设施——攻击者的挖矿收益以分钟计。遏制动作必须脚本化、预授权、可无人值守执行;"预留并发置0+删除触发器+吊销凭证"的三连操作应能在10分钟内完成。响应流程每季度随演练科目(第05节)验证一次。
04 · 滥用与计费面治理
| 滥用类型 | 手法与事实 | 治理组合 |
|---|---|---|
| 加密货币挖矿 | Denonia(2023年,Cado Security):凭证泄露后部署,XMRig挖矿,DoH规避DNS检测——函数成为直接目标 | 凭证治理+出站基线+GuardDuty+预留并发上限+账单异常 |
| 钓鱼托管/跳转 | 公开报告多次披露利用函数URL、网关与对象存储托管钓鱼页,借云域名信誉绕过邮件网关 | 公网函数清零审计;与主课题反钓鱼联动:厂商滥用举报通道分钟级下架 |
| 垃圾邮件中继 | 函数调用SES类发信服务中继垃圾邮件(云发信服务默认处于沙箱模式并有配额,官方文档可查) | 发信服务配额管理;内容审计;调用源鉴权 |
| 流量刷量 | 公开端点被刷产生账单(SAS-08) | Usage Plan+方法级节流+预留并发+预算告警四件套 |
- 预算护栏:AWS Budgets与Cost Anomaly Detection覆盖全部函数账户;告警直达安全值班而非仅财务。
- SCP限制面:Organizations SCP限制可用区域、禁止高危API(如公开匿名授权类操作);区域锁定同时压缩跨境合规风险。
- 密钥使用审计:KMS客户管理密钥对密钥读取生成CloudTrail记录——高价值密钥的读取即应视为敏感事件。
05 · 演练科目设计(防守视角)
所有科目仅在自有或获书面授权的环境执行,并须预置费用护栏(预算告警+预留并发上限):
| 编号 | 科目 | 验证目标 | 度量指标 |
|---|---|---|---|
| E1 | 凭证泄露→挖矿模拟 | GuardDuty/出站基线发现时效与遏制流程 | MTTD、遏制耗时、预留并发熔断正确性 |
| E2 | 事件注入→数据访问 | Schema校验与最小权限的纵深有效性 | 注入拦截率、角色权限收敛验证 |
| E3 | 持久化触发器植入 | CloudTrail检测场景S1—S2的告警时效 | 告警时延、误报率 |
| E4 | 流量型账单攻击(受限额度内) | 节流/配额/预算护栏触发正确性 | 护栏触发时延、告警完整性 |
本节参考来源(第7页)
以下均为真实可查的权威来源,用于支撑本页事实性表述。
AWS CloudTrail官方文档(管理事件默认开启;Lambda Invoke等数据事件需显式开启):AWS CloudTrail User Guide。
Amazon GuardDuty官方文档(函数保护能力):Amazon GuardDuty。
AWS Lambda官方文档(预留并发,含置0熔断):Configuring reserved concurrency;Lambda版本不可变性:Lambda function versions。
AWS Organizations官方文档(服务控制策略SCP):Service control policies。
AWS成本管理官方页面(Budgets / Cost Anomaly Detection):AWS Cloud Financial Management。
Cado Security:Denonia恶意软件分析(2023年1月):Cado Security官方博客。
MITRE ATT&CK(云技术矩阵,T1078/T1098/T1496/T1499/T1546/T1562.001等):attack.mitre.org。
AWS滥用举报官方渠道:Report AWS abuse。