# AWS - EMR Enum

{{#include ../../../banners/hacktricks-training.md}}

## EMR

Il servizio Elastic MapReduce (EMR) di AWS, a partire dalla versione 4.8.0, ha introdotto una funzionalità di **configurazione della sicurezza** che migliora la protezione dei dati consentendo agli utenti di specificare le impostazioni di crittografia per i dati a riposo e in transito all'interno dei cluster EMR, che sono gruppi scalabili di istanze EC2 progettati per elaborare framework di big data come Apache Hadoop e Spark.

Le caratteristiche principali includono:

- **Crittografia del Cluster Predefinita**: Per impostazione predefinita, i dati a riposo all'interno di un cluster non sono crittografati. Tuttavia, abilitare la crittografia fornisce accesso a diverse funzionalità:
- **Impostazione della Chiave Unificata Linux**: Crittografa i volumi del cluster EBS. Gli utenti possono optare per il servizio di gestione delle chiavi di AWS (KMS) o un fornitore di chiavi personalizzato.
- **Crittografia HDFS Open-Source**: Offre due opzioni di crittografia per Hadoop:
- Secure Hadoop RPC (Remote Procedure Call), impostato su privacy, sfruttando il Simple Authentication Security Layer.
- Crittografia del trasferimento dei blocchi HDFS, impostata su true, utilizza l'algoritmo AES-256.
- **Crittografia in Transito**: Si concentra sulla protezione dei dati durante il trasferimento. Le opzioni includono:
- **Crittografia Open Source Transport Layer Security (TLS)**: La crittografia può essere abilitata scegliendo un fornitore di certificati:
- **PEM**: Richiede la creazione manuale e l'aggregazione dei certificati PEM in un file zip, referenziato da un bucket S3.
- **Personalizzato**: Comporta l'aggiunta di una classe Java personalizzata come fornitore di certificati che fornisce artefatti di crittografia.

Una volta integrato un fornitore di certificati TLS nella configurazione della sicurezza, possono essere attivate le seguenti funzionalità di crittografia specifiche per l'applicazione, variando in base alla versione di EMR:

- **Hadoop**:
- Potrebbe ridurre lo shuffle crittografato utilizzando TLS.
- Secure Hadoop RPC con Simple Authentication Security Layer e HDFS Block Transfer con AES-256 sono attivati con crittografia a riposo.
- **Presto** (versione EMR 5.6.0+):
- La comunicazione interna tra i nodi Presto è protetta utilizzando SSL e TLS.
- **Tez Shuffle Handler**:
- Utilizza TLS per la crittografia.
- **Spark**:
- Impiega TLS per il protocollo Akka.
- Usa Simple Authentication Security Layer e 3DES per il Block Transfer Service.
- Il servizio di shuffle esterno è protetto con il Simple Authentication Security Layer.

Queste funzionalità migliorano collettivamente la postura di sicurezza dei cluster EMR, specialmente riguardo alla protezione dei dati durante le fasi di archiviazione e trasmissione.

#### Enumeration
```bash
aws emr list-clusters
aws emr describe-cluster --cluster-id <id>
aws emr list-instances --cluster-id <id>
aws emr list-instance-fleets --cluster-id <id>
aws emr list-steps --cluster-id <id>
aws emr list-notebook-executions
aws emr list-security-configurations
aws emr list-studios #Get studio URLs
```
#### Privesc

{{#ref}}
../aws-privilege-escalation/aws-emr-privesc/README.md
{{#endref}}

## Riferimenti

- [https://cloudacademy.com/course/domain-three-designing-secure-applications-and-architectures/elastic-mapreduce-emr-encryption-1/](https://cloudacademy.com/course/domain-three-designing-secure-applications-and-architectures/elastic-mapreduce-emr-encryption-1/)

{{#include ../../../banners/hacktricks-training.md}}
