本技能面向无服务器计算的攻击面测试。无服务器没有 SSH 与持久 shell,攻击面从主机转向事件,而函数绑定的 IAM 角色或托管身份通常是真正的目标。适用于目标运行 AWS Lambda、Azure Functions、GCP Cloud Functions 或 Cloudflare Workers,或由 API Gateway 等前端暴露、由 S3/SQS/SNS/EventBridge/Pub/Sub 等事件驱动,需测试执行角色或托管身份的场景;纯 IAM 场景、后端为容器或虚拟机、仅做静态代码审计时不适用。
主要能力包括:侦察与枚举函数配置、运行时、处理程序、事件源映射与角色;事件注入测试(S3 对象键、SQS/SNS 消息体、API Gateway 参数、EventBridge 自定义事件、DynamoDB Streams、Workers 的完整 Request 对象);环境变量提取(如 /proc/self/environ、AWS 凭证变量、Lambda 运行时 API 与元数据端点);执行角色滥用与权限提升路径(iam:PassRole+lambda:CreateFunction+InvokeFunction、UpdateFunctionCode、AttachRolePolicy、sts:AssumeRole、ssm:GetParameter、secretsmanager:GetSecretValue 等);冷启动与 /tmp、Lambda Layers、容器复用带来的持久化;共享租户与隔离边界(Firecracker、V8 isolate、gVisor);触发器配置错误排查(API Gateway 缺授权、Function URL AuthType 为 NONE、函数级授权键、CORS 等);Step Functions、Durable Functions、Workflows 的输入操纵、步骤注入、活动任务劫持与回调令牌窃取。
必要用法示例(保持原样):aws lambda list-functions --query 'Functions[*].[FunctionName,Runtime,Role,Handler]' --output table;aws sts get-caller-identity;cat /proc/self/environ | tr '\0' '\n';curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next"。
限制与注意:跨函数逃逸属沙箱漏洞研究而非常规渗透发现,多数场景应聚焦 IAM 角色与应用逻辑;需逐事件源独立测试,因不同来源的字段清洗可能不同;应验证部署框架与权限范围,避免仅凭假设判断。防御核查清单与可拒绝的常见辩解亦在资料中列出,用于审查部署是否最小权限、是否配置授权与机密管理。