# T1584.007 - Serverless ## Descrição **T1584.007 - Compromised Infrastructure: Serverless** é uma sub-técnica da fase de [[resource-development|Resource Development]] do [[mitre-attack|MITRE ATT&CK]]. Nela, adversários **comprometem funções serverless legítimas** - como AWS Lambda, Cloudflare Workers, Google Cloud Functions, Azure Functions ou Google Apps Script - para utilizá-las como infraestrutura de suporte a operações ofensivas. A principal vantagem tática é a **atribuição dificultada**: o tráfego gerado por essas funções aparece originando de subdomínios de grandes provedores de nuvem (`*.amazonaws.com`, `*.workers.dev`, `*.cloudfunctions.net`), tornando-o práticamente indistinguível de tráfego legítimo para soluções de filtragem baseadas em reputação de IP ou domínio. Isso permite ao adversário usar a infraestrutura comprometida como [[t1090-proxy|Proxy]] para tráfego de [[command-and-control|Command & Control]] ou como relay para comunicação com servidores C2 próprios, implementando o padrão conhecido como [[t1665-hide-infrastructure|Hide Infrastructure]]. Uma vez que uma conta de nuvem é comprometida (via credenciais vazadas, chaves de API expostas ou falha de configuração de IAM), o adversário pode implantar ou modificar funções existentes para interceptar ou reencaminhar requisições, sem interromper o serviço legítimo - operando de forma completamente transparente para o proprietário da conta. > **Contexto Brasil/LATAM:** O crescimento acelerado da adoção de cloud pública no Brasil (AWS São Paulo, Azure Brasil Sul, Google Cloud São Paulo) amplia significativamente a superfície de ataque desta técnica. Empresas brasileiras de fintech, varejo e saúde frequentemente expõem chaves de API de AWS/GCP em repositórios públicos do GitHub - vetor documentado pelo [[sources|CERT.br]] e por pesquisadores de segurança nacionais. Funções Lambda comprometidas em contas de empresas brasileiras foram identificadas em campanhas de distribuição de [[t1587-001-malware|malware]] bancário, atuando como proxies C2 para grupos de crime financeiro da região. **Técnica pai:** [[t1584-compromised-infrastructure|T1584 - Compromised Infrastructure]] --- ## Attack Flow ```mermaid graph TB A([Adversário]) --> B[Obter credenciais<br/>de nuvem vazadas] B --> C[Acessar conta cloud<br/>comprometida] C --> D{Ação sobre\nfunção serverless} D -->|Criar nova função| E[Implantar função<br/>maliciosa] D -->|Modificar existente| F[Injetar código<br/>em função legítima] E --> G(["T1584.007<br/>💀 Serverless Comprometido"]):::highlight F --> G G --> H[Proxy C2 via<br/>subdomínio de cloud] H --> I[Tráfego mascarado<br/>como *.amazonaws.com] I --> J([Beacon / C2 ativo<br/>na rede da vítima]) classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b,font-weight:bold ``` --- ## Como Funciona **Passo 1 - Comprometimento da Conta Cloud** O adversário obtém acesso a uma conta de nuvem por meio de credenciais expostas (chaves AWS/GCP encontradas em repositórios públicos, arquivos `.env` vazados, pacotes npm maliciosos), exploração de políticas IAM excessivamente permissivas ou reutilização de senha de contas comprometidas. Ferramentas como TruffleHog, GitLeaks e o próprio GitHub Code Search são usadas para coleta automatizada de chaves expostas. **Passo 2 - Implantação ou Modificação de Função Serverless** Com acesso à conta, o adversário cria uma nova função serverless ou modifica uma existente para adicionar funcionalidade de proxy reverso. A função recebe requisições HTTP do [[t1587-001-malware|malware]] implantado na rede da vítima e as encaminha para o servidor C2 real do adversário, retornando a resposta. Todo esse tráfego trafega sob o domínio do provedor de nuvem, passando despercebido por firewalls e proxies corporativos que permitem tráfego para AWS/GCP/Azure. **Passo 3 - Operação Persistente e Evasão** O adversário configura gatilhos automáticos (API Gateway, HTTP trigger) para que a função estejá sempre disponível. Logs de execução na conta comprometida podem ser desabilitados ou redirecionados para ocultar a atividade. A função atua como camada de indireção: mesmo que o C2 real sejá descoberto e bloqueado, o adversário simplesmente atualiza o endereço de destino na função sem precisar alterar o [[t1587-001-malware|malware]] já implantado - tornando o bloqueio por IoC ineficaz. --- ## Detecção ### Event IDs / Fontes de Log Relevantes | Fonte | Log / Métrica | Indicador de Comprometimento | |-------|--------------|------------------------------| | AWS CloudTrail | `CreateFunction`, `UpdateFunctionCode` | Criação ou modificação de Lambda por usuário/role incomum ou em horário atípico | | AWS CloudTrail | `PutFunctionEventInvokeConfig` | Configuração de invocação que pode indicar persistência | | GCP Audit Logs | `cloudfunctions.functions.creaté` / `updaté` | Novas funções ou atualizações por service account inesperada | | Cloudflare Audit | Worker deployment events | Deploy de Workers por usuário não reconhecido | | AWS GuardDuty | `UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration` | Uso de credenciais fora do ambiente esperado | | Sysmon | 3 (Network Connection) | Processo suspeito conectando-se a endpoints `*.lambda-url.*.on.aws` ou `*.workers.dev` | ### Regra Sigma - Suspicious Lambda Function Creation/Updaté ```yaml title: Suspicious AWS Lambda Function Creation or Code Updaté id: b8c2e941-7d3f-4a1b-9e05-f6d4a7c2e8d1 status: experimental description: > Detecta criação ou atualização de código de funções AWS Lambda por identidades incomuns, indicando possível comprometimento de conta para uso como infraestrutura serverless maliciosa (T1584.007). author: RunkIntel daté: 2026-03-24 tags: - attack.resource_development - attack.t1584.007 logsource: service: cloudtrail product: aws detection: selection: eventSource: lambda.amazonaws.com eventName: - CreateFunction - UpdateFunctionCode - UpdateFunctionConfiguration filter_expected: userIdentity.arn|contains: - 'arn:aws:iam::123456789012:role/expected-cicd-role' # ajustar para ambiente condition: selection and not filter_expected falsepositives: - Deploys legítimos de CI/CD pipelines - Automações de IaC (Terraform, CDK, SAM) level: medium fields: - userIdentity.arn - userIdentity.type - sourceIPAddress - requestParameters.functionName - requestParameters.runtime ``` --- ## Mitigação | Controle | Descrição | Aplicação para Organizações Brasileiras | |----------|-----------|----------------------------------------| | [[m1056-pre-compromise\|M1056 - Pre-compromise]] | Monitorar exposição de credenciais cloud em repositórios públicos e leaks | Integrar serviços como GitGuardian, TruffleHog Enterprise ou GitHub Secret Scanning nos pipelines de desenvolvimento | | IAM Least Privilege | Aplicar permissões mínimas necessárias para cada role/usuário cloud | Revisar policies IAM regularmente; bloquear criação de Lambda functions para roles não-DevOps por padrão | | MFA e Chaves Rotativas | Habilitar MFA em todas as contas cloud e rotacionar chaves de acesso periodicamente | Política obrigatória para contas AWS/GCP/Azure - rotação automática via AWS Secrets Manager ou GCP Secret Manager | | CloudTrail / Audit Logging | Habilitar logs de auditoria completos em todas as contas cloud com retenção mínima de 90 dias | Crítico para compliance LGPD e resposta a incidentes; integrar com SIEM (Splunk, Elastic, Microsoft Sentinel) | | SCPs / Org Policies | Usar Service Control Policies (AWS) ou Organization Policies (GCP) para restringir criação de recursos em regiões não usadas | Bloquear criação de funções em regiões fora de us-east-1, sa-east-1 (São Paulo) se não aplicável ao negócio | | Detecção de Secrets em Código | Escanear repositórios e imagens de container em busca de credenciais hardcoded | Parte do pipeline de segurança de aplicação - integrar com SonarQube, Checkov ou Semgrep | --- ## Threat Actors que Usam Até a versão 16.2 do [[mitre-attack|MITRE ATT&CK]], não há grupos APT formalmente documentados com uso confirmado desta sub-técnica. No entanto, o padrão é amplamente observado em campanhas de crime financeiro e em operações de grupos que já utilizam [[t1584-compromised-infrastructure|infraestrutura comprometida]] genericamente: > **Nota analítica:** A ausência de atribuição formal não significa baixa prevalência - indica que a técnica é frequentemente subutilizada nos relatórios públicos de incidentes. Grupos que usam [[t1090-proxy|Proxy]] baseado em nuvem para C2 são fortemente suspeitos de empregar esta variante, especialmente aqueles com histórico de uso de [[t1665-hide-infrastructure|Hide Infrastructure]]. Grupos com capacidade técnica e motivação documentada para uso desta técnica no contexto LATAM incluem atores de crime financeiro que operam malware bancário brasileiro, utilizando funções Lambda como relay para [[command-and-control|C2]] de famílias como [[s0531-grandoreiro|Grandoreiro]] e variantes de [[ trojan|trojans bancários]] regionais. --- *Fonte: [MITRE ATT&CK - T1584.007](https://attack.mitre.org/techniques/T1584/007)*