mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-28 05:33:10 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake
This commit is contained in:
@@ -1,32 +1,32 @@
|
||||
# AWS - SageMaker Enum
|
||||
# AWS - SageMaker Enumerazione
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Panoramica del servizio
|
||||
## Service Overview
|
||||
|
||||
Amazon SageMaker è la piattaforma gestita di AWS per il machine learning che mette insieme notebooks, infrastruttura di training, orchestrazione, registri e endpoint gestiti. Un compromesso delle risorse SageMaker fornisce tipicamente:
|
||||
Amazon SageMaker è la piattaforma managed di AWS per machine learning che mette insieme notebooks, infrastruttura di training, orchestrazione, registries e managed endpoints. Una compromissione delle risorse SageMaker tipicamente fornisce:
|
||||
|
||||
- Ruoli IAM di esecuzione a lunga durata con ampio accesso a S3, ECR, Secrets Manager o KMS.
|
||||
- Ruoli di esecuzione IAM a lunga durata con ampio accesso a S3, ECR, Secrets Manager o KMS.
|
||||
- Accesso a dataset sensibili memorizzati in S3, EFS o all'interno dei feature store.
|
||||
- Network footholds all'interno di VPC (Studio apps, training jobs, endpoints).
|
||||
- Presigned URLs ad alto privilegio che bypassano l'autenticazione della console.
|
||||
- Presenza di rete all'interno delle VPC (Studio apps, training jobs, endpoints).
|
||||
- presigned URLs ad alto privilegio che eludono l'autenticazione della console.
|
||||
|
||||
Capire come SageMaker è assemblato è fondamentale prima di pivotare, persistere o esfiltrare dati.
|
||||
Capire come SageMaker è assemblato è fondamentale prima di pivot, persist o exfiltrate dati.
|
||||
|
||||
## Componenti principali
|
||||
## Core Building Blocks
|
||||
|
||||
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Ogni dominio ha un filesystem EFS condiviso e un ruolo di esecuzione predefinito.
|
||||
- **Notebook Instances**: Istanza EC2 gestite per notebook standalone; utilizzano ruoli di esecuzione separati.
|
||||
- **Training / Processing / Transform Jobs**: container effimeri che prelevano codice da ECR e dati da S3.
|
||||
- **Pipelines & Experiments**: workflow orchestrati che descrivono tutti i passaggi, input e output.
|
||||
- **Models & Endpoints**: artefatti pacchettizzati distribuiti per inference tramite endpoint HTTPS.
|
||||
- **Feature Store & Data Wrangler**: servizi gestiti per la preparazione dei dati e la gestione delle feature.
|
||||
- **Autopilot & JumpStart**: ML automatizzato e catalogo di modelli curato.
|
||||
- **MLflow Tracking Servers**: UI/API MLflow gestita con token di accesso presigned.
|
||||
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Ogni dominio ha un file system EFS condiviso e un ruolo di esecuzione predefinito.
|
||||
- **Notebook Instances**: EC2 managed per notebook standalone; usano ruoli di esecuzione separati.
|
||||
- **Training / Processing / Transform Jobs**: Container effimeri che pullano codice da ECR e dati da S3.
|
||||
- **Pipelines & Experiments**: Workflow orchestrati che descrivono tutti i passaggi, input e output.
|
||||
- **Models & Endpoints**: Artefatti confezionati deployati per inference via HTTPS endpoints.
|
||||
- **Feature Store & Data Wrangler**: Servizi managed per la preparazione dei dati e la gestione delle feature.
|
||||
- **Autopilot & JumpStart**: ML automatizzato e catalogo di modelli curati.
|
||||
- **MLflow Tracking Servers**: UI/API MLflow managed con presigned access tokens.
|
||||
|
||||
Ogni risorsa fa riferimento a un ruolo di esecuzione, posizioni S3, immagini dei container e a una eventuale configurazione VPC/KMS—raccogli tutte queste informazioni durante l'enumerazione.
|
||||
Ogni risorsa fa riferimento a un execution role, location S3, container images e configurazioni opzionali VPC/KMS—capture all of them durante enumeration.
|
||||
|
||||
## Account e metadati globali
|
||||
## Account & Global Metadata
|
||||
```bash
|
||||
REGION=us-east-1
|
||||
# Portfolio status, used when provisioning Studio resources
|
||||
@@ -39,9 +39,9 @@ aws sagemaker list-models --region $REGION --query 'Models[].ExecutionRoleArn' -
|
||||
# Generic tag sweep across any SageMaker ARN you know
|
||||
aws sagemaker list-tags --resource-arn <sagemaker-arn> --region $REGION
|
||||
```
|
||||
Segnala qualsiasi cross-account trust (execution roles o S3 buckets con external principals) e le restrizioni di base, come service control policies o SCPs.
|
||||
Segnala eventuali trust cross-account (execution roles o S3 buckets con external principals) e restrizioni di base come service control policies o SCPs.
|
||||
|
||||
## Studio Domains, Apps & Shared Spaces
|
||||
## Studio Domains, Apps & Spazi Condivisi
|
||||
```bash
|
||||
aws sagemaker list-domains --region $REGION
|
||||
aws sagemaker describe-domain --domain-id <domain-id> --region $REGION
|
||||
@@ -63,11 +63,11 @@ aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <n
|
||||
Cosa registrare:
|
||||
|
||||
- `DomainArn`, `AppSecurityGroupIds`, `SubnetIds`, `DefaultUserSettings.ExecutionRole`.
|
||||
- EFS montato (`HomeEfsFileSystemId`) e directory home S3.
|
||||
- Script di lifecycle (spesso contengono bootstrap credentials o push/pull di codice aggiuntivo).
|
||||
- EFS montati (`HomeEfsFileSystemId`) e directory home S3.
|
||||
- Script di lifecycle (spesso contengono credenziali di bootstrap o codice aggiuntivo per push/pull).
|
||||
|
||||
> [!TIP]
|
||||
> Presigned Studio URLs possono bypassare l'autenticazione se concessi ampiamente.
|
||||
> Presigned Studio URLs possono aggirare l'autenticazione se concessi in modo troppo ampio.
|
||||
|
||||
## Notebook Instances & Lifecycle Configs
|
||||
```bash
|
||||
@@ -80,7 +80,7 @@ I metadati del notebook rivelano:
|
||||
|
||||
- Ruolo di esecuzione (`RoleArn`), accesso diretto a Internet vs. modalità solo VPC.
|
||||
- Posizioni S3 in `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
|
||||
- Script di ciclo di vita per credenziali o hook di persistenza.
|
||||
- Script di lifecycle per credenziali o hook di persistenza.
|
||||
|
||||
## Training, Processing, Transform e Batch Jobs
|
||||
```bash
|
||||
@@ -93,12 +93,10 @@ aws sagemaker describe-processing-job --processing-job-name <job> --region $REGI
|
||||
aws sagemaker list-transform-jobs --region $REGION
|
||||
aws sagemaker describe-transform-job --transform-job-name <job> --region $REGION
|
||||
```
|
||||
Esamina:
|
||||
|
||||
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` – quali immagini ECR sono distribuite.
|
||||
- `InputDataConfig` & `OutputDataConfig` – bucket S3, prefissi e chiavi KMS.
|
||||
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` – determinano la configurazione di rete o di crittografia.
|
||||
- `HyperParameters` possono leakare segreti di ambiente o stringhe di connessione.
|
||||
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` – determinare la postura di rete o di crittografia.
|
||||
- `HyperParameters` possono causare leak di segreti d'ambiente o stringhe di connessione.
|
||||
|
||||
## Pipelines, Experiments & Trials
|
||||
```bash
|
||||
@@ -110,9 +108,9 @@ aws sagemaker list-experiments --region $REGION
|
||||
aws sagemaker list-trials --experiment-name <experiment> --region $REGION
|
||||
aws sagemaker list-trial-components --trial-name <trial> --region $REGION
|
||||
```
|
||||
Le definizioni delle pipeline dettagliano ogni passaggio, i ruoli associati, le immagini dei container e le variabili d'ambiente. I componenti dei trial spesso contengono URI degli artefatti di addestramento, log S3 e metriche che suggeriscono il flusso di dati sensibili.
|
||||
Le definizioni delle pipeline descrivono ogni passaggio, i ruoli associati, le immagini dei container e le variabili d'ambiente. I componenti dei trial spesso contengono URI degli artefatti di addestramento, log S3 e metriche che suggeriscono il flusso di dati sensibili.
|
||||
|
||||
## Modelli, Configurazioni degli Endpoint & Endpoint distribuiti
|
||||
## Modelli, Configurazioni degli Endpoint e Endpoint Distribuiti
|
||||
```bash
|
||||
aws sagemaker list-models --region $REGION
|
||||
aws sagemaker describe-model --model-name <name> --region $REGION
|
||||
@@ -125,10 +123,10 @@ aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
|
||||
```
|
||||
Aree di interesse:
|
||||
|
||||
- URI S3 degli artefatti del modello (`PrimaryContainer.ModelDataUrl`) e immagini dei container di inferenza.
|
||||
- Configurazione di Endpoint data capture (S3 bucket, KMS) per possibile log exfil.
|
||||
- Multi-model endpoints che usano `S3DataSource` o `ModelPackage` (verificare packaging cross-account).
|
||||
- Configurazioni di rete e security groups associati agli endpoint.
|
||||
- URI S3 degli artefatti del modello (`PrimaryContainer.ModelDataUrl`) e immagini dei container di inference.
|
||||
- Configurazione di data capture dell'endpoint (S3 bucket, KMS) per possibile log exfil.
|
||||
- Endpoint multi-model che utilizzano `S3DataSource` o `ModelPackage` (verificare il packaging cross-account).
|
||||
- Config di rete e security groups associati agli endpoint.
|
||||
|
||||
## Feature Store, Data Wrangler & Clarify
|
||||
```bash
|
||||
@@ -141,11 +139,11 @@ aws sagemaker describe-data-wrangler-flow --flow-name <flow> --region $REGION
|
||||
aws sagemaker list-model-quality-job-definitions --region $REGION
|
||||
aws sagemaker list-model-monitoring-schedule --region $REGION
|
||||
```
|
||||
Considerazioni di sicurezza:
|
||||
Considerazioni sulla sicurezza:
|
||||
|
||||
- Online feature stores replicano i dati su Kinesis; verificare `OnlineStoreConfig.SecurityConfig.KmsKeyId` e la VPC.
|
||||
- Data Wrangler flows spesso incorporano credenziali JDBC/Redshift o endpoint privati.
|
||||
- Clarify/Model Monitor jobs esportano dati su S3 che potrebbero essere leggibili pubblicamente o accessibili da altri account.
|
||||
- Gli online feature store replicano i dati su Kinesis; verificare `OnlineStoreConfig.SecurityConfig.KmsKeyId` e la VPC.
|
||||
- I flussi di Data Wrangler spesso incorporano credenziali JDBC/Redshift o endpoint privati.
|
||||
- I job di Clarify/Model Monitor esportano dati in S3 che potrebbero essere leggibili pubblicamente o accessibili da account diversi.
|
||||
|
||||
## MLflow Tracking Servers, Autopilot & JumpStart
|
||||
```bash
|
||||
@@ -158,23 +156,23 @@ aws sagemaker describe-auto-ml-job --auto-ml-job-name <name> --region $REGION
|
||||
aws sagemaker list-jumpstart-models --region $REGION
|
||||
aws sagemaker list-jumpstart-script-resources --region $REGION
|
||||
```
|
||||
- I server di tracking MLflow memorizzano esperimenti e artefatti; le presigned URLs possono esporre tutto.
|
||||
- I job Autopilot avviano più training job—enumera gli output alla ricerca di dati nascosti.
|
||||
- Le reference architectures di JumpStart possono distribuire ruoli privilegiati nell'account.
|
||||
- MLflow tracking servers store experiments and artefacts; presigned URLs can expose everything.
|
||||
- Autopilot jobs spin multiple training jobs—enumerate outputs for hidden data.
|
||||
- Le architetture di riferimento JumpStart possono distribuire ruoli privilegiati nell'account.
|
||||
|
||||
## Considerazioni IAM e Networking
|
||||
## Considerazioni su IAM e Networking
|
||||
|
||||
- Enumera le IAM policies allegate a tutti gli execution roles (Studio, notebooks, training jobs, pipelines, endpoints).
|
||||
- Controlla i contesti di rete: subnets, security groups, VPC endpoints. Molte organizzazioni isolano i training jobs ma dimenticano di limitare il traffico outbound.
|
||||
- Rivedi le S3 bucket policies referenziate in `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` per accesso esterno.
|
||||
- Enumerare le IAM policies allegate a tutti i ruoli di esecuzione (Studio, notebooks, training jobs, pipelines, endpoints).
|
||||
- Verificare i contesti di rete: subnets, security groups, VPC endpoints. Molte organizzazioni isolano i training jobs ma dimenticano di limitare il traffico in uscita.
|
||||
- Riesaminare le S3 bucket policies referenziate in `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` per accesso esterno.
|
||||
|
||||
## Escalation dei privilegi
|
||||
## Privilege Escalation
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-sagemaker-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Persistenza
|
||||
## Persistence
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-sagemaker-persistence/README.md
|
||||
@@ -186,13 +184,13 @@ aws sagemaker list-jumpstart-script-resources --region $REGION
|
||||
../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Accesso non autorizzato
|
||||
## Unauthorized Access
|
||||
|
||||
{{#ref}}
|
||||
../../aws-unauthenticated-enum-access/aws-sagemaker-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Riferimenti
|
||||
## References
|
||||
|
||||
- [AWS SageMaker Documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)
|
||||
- [AWS CLI SageMaker Reference](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/index.html)
|
||||
|
||||
Reference in New Issue
Block a user