SuperAPI AI 工具集

detecting-serverless-function-injection

部署与运维

查看项目

更新于 10-16 06:49

技能介绍

用途:审计无服务器函数是否存在代码注入漏洞,排查函数代码或层被篡改后的持久化与数据外泄,识别借助 lambda:UpdateFunctionCode 与 iam:PassRole 的提权路径,分析 S3、SQS、DynamoDB Stream、API Gateway 等事件源投毒,并为 SOC 构建检测规则。不适用于对无服务器函数做负载测试或拒绝服务模拟,也不应在未获明确授权时测试生产函数或改动共享账户 IAM 策略。

主要能力:枚举函数、事件源映射、API Gateway 触发器、S3 通知、环境变量与执行角色权限;下载部署包后使用 semgrep、bandit 做静态分析,定位 eval、exec、os.system、subprocess shell=True、pickle.loads、yaml.load,以及 Node.js 的 eval、new Function、child_process.exec、vm.runInNewContext 等危险汇聚点;通过 CloudWatch Logs Insights 查询执行日志中的注入痕迹;审计 Lambda 层附件与 UpdateFunctionConfiguration 事件,检查层内可疑的网络、编码与子进程调用;用 CloudTrail 事件检测 UpdateFunctionCode、PassRole 与凭证外泄类调用,并可用 EventBridge 规则触发实时告警。

使用方式:需具备 Lambda、CloudTrail、IAM、CloudWatch Logs、EventBridge 的读取权限,AWS CLI v2 配置凭证与区域,CloudTrail 开启 Lambda 数据事件与管理事件,Python 3.9+ 与 boto3、bandit、semgrep,以及函数源码或部署包和 CloudWatch Logs Insights 访问权限。关键命令包括 aws lambda list-functions、aws lambda list-event-source-mappings、aws lambda get-function、semgrep --config "p/owasp-top-ten" 等。

防护措施:在 handler 入口做白名单输入校验;确认函数 URL 的 AuthType 为 AWS_IAM;为执行角色配置最小权限;用 SCP 限制非 CI/CD 的代码与配置更新;结合 AWS Lambda Powertools 输出结构化安全日志供 SIEM 采集。

限制:具体检测规则命中率、性能影响与定价资料暂未提供。