# DC0027 - Instance Creation
> [!info] Monitora a criação de novas instâncias de computação em ambientes cloud (EC2, Azure VM, GCP). Adversários criam instâncias não autorizadas para cryptomining, infraestrutura C2 ou exfiltração de dados em regiões geográficas diferentes.
## Descrição
Instance Creation monitora a criação de novas instâncias de computação em ambientes cloud (EC2, Azure VM, GCP Compute Engine) e ambientes virtualizados. Adversários criam instâncias não autorizadas para mineração de criptomoedas (cryptojacking), como infraestrutura C2, para exfiltração de dados via instâncias em regiões geográficas diferentes, ou para persistência após comprometimento de conta cloud. A criação de instâncias em regiões ou tipos incomuns é um forte indicador de atividade maliciosa.
## Fonte de Dados
Parent: [[ds0030-instance|DS0030 - Instance]]
## Pipeline de Detecção
```mermaid
graph TB
A["☁️ CloudTrail RunInstances<br/>Nova Instância"] --> B["🔍 Identidade +<br/>Tipo + Região"]
B --> C{"👤 Identidade<br/>Autorizada?"}
C -->|Não autorizada| D["🚨 Alerta P1<br/>Conta Comprometida"]
C -->|Autorizada| E{"🌎 Região<br/>Aprovada?"}
E -->|Região incomum| F["🚨 Alerta P1<br/>Região Não Operacional"]
E -->|Tipo CPU Alto| G["🟧 Alerta P2<br/>Possível Cryptomining"]
E -->|Normal| H["✔️ Instância<br/>Aprovada"]
classDef p1 fill:#e74c3c,color:#ecf0f1
classDef p2 fill:#e67e22,color:#ecf0f1
classDef ok fill:#2ecc71,color:#2c3e50
classDef proc fill:#2c3e50,color:#ecf0f1
class D,F p1
class G p2
class H ok
class A,B,C,E proc
```
## O Que Monitorar
- AWS CloudTrail: `RunInstances` em regiões não utilizadas
- AWS: instâncias com tipos de alta CPU (c5.18xlarge, p3.16xlarge) - cryptomining
- Azure Activity Log: `Microsoft.Compute/virtualMachines/write`
- GCP Audit Log: `compute.instances.insert`
- Instâncias criadas por usuários/roles que não têm histórico de criação
- Instâncias criadas em regiões geográficas não operacionais
- Criação de instâncias com user-data/custom-data contendo scripts suspeitos
- Pico incomum de consumo de compute correlacionado com nova instância
## Técnicas Detectadas
| Técnica | ID | Como Detectar |
|---------|-----|---------------|
| Create Cloud Instance | [[t1578-modify-cloud-compute-infrastructure\|T1578.002]] | Nova instância criada por identidade comprometida |
| Resource Hijacking | [[t1496-resource-hijacking\|T1496]] | Instâncias de alta CPU criadas para cryptomining |
| Transfer Data to Cloud Account | [[t1537-transfer-data-to-cloud-account\|T1537]] | Instâncias criadas em contas externas para exfiltração |
## Implementação
**AWS - detectar RunInstances suspeito:**
```json
{
"source": ["aws.ec2"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventName": ["RunInstances"],
"requestParameters": {
"instanceType": ["c5.18xlarge", "p3.16xlarge", "p4d.24xlarge"]
}
}
}
```
**AWS Cost Anomaly Detection:** Habilitar AWS Cost Anomaly Detection para alertar sobre picos de custo causados por instâncias não autorizadas.
**Política preventiva:** Usar AWS SCP (Service Control Policies) ou Azure Policy para restringir criação de instâncias a regiões e tipos aprovados.
**Ferramentas:** AWS Security Hub, AWS GuardDuty, Microsoft Defender for Cloud, GCP Security Command Center, Lacework, Wiz.
## Consultas KQL — Microsoft Sentinel / Defender
### Criação de Instância EC2 em Região Não Operacional
```kql
// DC0027 - Instância AWS criada em região não aprovada (adaptar lista de regiões)
AWSCloudTrail
| where TimeGenerated > ago(1d)
| where EventName == "RunInstances"
| where AwsRegion !in~ (
"sa-east-1", // São Paulo - região LATAM principal
"us-east-1", // Virginia - comum como fallback
"us-west-2" // Oregon - adicionar regiões aprovadas
)
| extend
InstanceType = tostring(RequestParameters.instanceType),
UserIdentity = tostring(UserIdentityArn)
| project
TimeGenerated,
AwsRegion,
InstanceType,
UserIdentity,
SourceIpAddress,
UserAgent
| order by TimeGenerated desc
```
### Instâncias de Alta CPU - Detecção de Cryptomining
```kql
// DC0027 - Instâncias com tipos de alto compute criadas (possível cryptojacking)
let gpu_compute_types = dynamic([
"c5.18xlarge", "c5.24xlarge", "c5n.18xlarge",
"p3.8xlarge", "p3.16xlarge", "p3.24xlarge",
"p4d.24xlarge", "g4dn.12xlarge", "g4dn.metal",
"Standard_NC12", "Standard_NC24", // Azure GPU
"n1-standard-32", "n1-standard-64" // GCP
]);
AWSCloudTrail
| where TimeGenerated > ago(7d)
| where EventName == "RunInstances"
| extend InstanceType = tostring(RequestParameters.instanceType)
| where InstanceType in~ (gpu_compute_types)
| project
TimeGenerated,
AwsRegion,
InstanceType,
UserIdentityArn,
SourceIpAddress,
RequestParameters
| order by TimeGenerated desc
```
## Contexto LATAM
> [!latam] Relevância Regional
> **Cryptojacking em contas cloud corporativas é ameaça crescente para empresas brasileiras.** Em 2024, o **Wiz Research** documentou aumento de 300% em casos de cryptomining não autorizado em contas AWS de empresas latino-americanas — frequentemente via credenciais IAM expostas em repositórios GitHub públicos ou configurações S3 permissivas. Empresas brasileiras em setores como tecnologia, e-commerce e startups frequentemente têm credenciais cloud expostas em código-fonte. O **GuardDuty** da AWS detecta automaticamente criação de instâncias suspeitas e deve ser habilitado em todas as contas AWS de organizações brasileiras como controle base. A região `sa-east-1` (São Paulo) deve ser a única região habilitada via SCP para empresas LATAM sem operações globais.
## Referências
- [MITRE ATT&CK - DS0030 Instance](https://attack.mitre.org/datasources/DS0030/)
- [AWS GuardDuty - Cryptomining Detection](https://docs.aws.amazon.com/guardduty/)
- [Wiz Research - Cloud Threat Landscape](https://www.wiz.io/blog/tag/research)
- [AWS SCP - Restrict Regions](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)