Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake

This commit is contained in:
Translator
2025-10-23 10:59:15 +00:00
parent 4a19fb318f
commit 2fc1416adc

View File

@@ -2,29 +2,29 @@
{{#include ../../../../banners/hacktricks-training.md}}
## Visión general del servicio
## Descripción del servicio
Amazon SageMaker es la plataforma administrada de aprendizaje automático de AWS que aglutina notebooks, infraestructura de entrenamiento, orquestación, registries y endpoints administrados. Una compromisión de recursos de SageMaker normalmente proporciona:
Amazon SageMaker es la plataforma gestionada de machine-learning de AWS que conecta notebooks, infraestructura de entrenamiento, orquestación, registries y endpoints gestionados. Una compromisión de recursos de SageMaker normalmente proporciona:
- Roles de ejecución IAM de larga duración con amplio acceso a S3, ECR, Secrets Manager o KMS.
- Acceso a conjuntos de datos sensibles almacenados en S3, EFS o dentro de feature stores.
- Puntos de apoyo en la red dentro de VPCs (Studio apps, training jobs, endpoints).
- Presigned URLs de alto privilegio que permiten eludir la autenticación de la consola.
- Long-lived IAM execution roles con amplio acceso a S3, ECR, Secrets Manager o KMS.
- Acceso a datasets sensibles almacenados en S3, EFS o dentro de feature stores.
- Footholds de red dentro de VPCs (Studio apps, training jobs, endpoints).
- High-privilege presigned URLs que evitan la autenticación del console.
Entender cómo está ensamblado SageMaker es clave antes de pivot, persist, or exfiltrate data.
## Componentes principales
- **Studio Domains & Spaces**: IDE web (JupyterLab, Code Editor, RStudio). Cada dominio tiene un sistema de archivos EFS compartido y un rol de ejecución predeterminado.
- **Notebook Instances**: instancias EC2 gestionadas para notebooks autónomos; usan roles de ejecución separados.
- **Training / Processing / Transform Jobs**: contenedores efímeros que obtienen código desde ECR y datos desde S3.
- **Pipelines & Experiments**: flujos de trabajo orquestados que describen todos los pasos, inputs y outputs.
- **Models & Endpoints**: artefactos empaquetados desplegados para inferencia vía endpoints HTTPS.
- **Feature Store & Data Wrangler**: servicios gestionados para preparación de datos y gestión de features.
- **Autopilot & JumpStart**: ML automatizado y catálogo de modelos curado.
- **MLflow Tracking Servers**: UI/API de MLflow gestionada con tokens de acceso presigned.
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Cada domain tiene un sistema de archivos EFS compartido y un default execution role.
- **Notebook Instances**: Instancias EC2 gestionadas para notebooks independientes; usan execution roles separados.
- **Training / Processing / Transform Jobs**: Contenedores efímeros que tiran código desde ECR y datos desde S3.
- **Pipelines & Experiments**: Workflows orquestados que describen todos los pasos, inputs y outputs.
- **Models & Endpoints**: Artefactos empaquetados desplegados para inference vía endpoints HTTPS.
- **Feature Store & Data Wrangler**: Servicios gestionados para preparación de datos y gestión de features.
- **Autopilot & JumpStart**: ML automatizado y catálogo curado de modelos.
- **MLflow Tracking Servers**: UI/API de MLflow gestionada con presigned access tokens.
Cada recurso referencia un execution role, ubicaciones S3, imágenes de contenedor y configuración opcional de VPC/KMScapture todos ellos durante enumeration.
Cada recurso referencia un execution role, ubicaciones S3, container images y configuración opcional VPC/KMScaptura todos ellos durante la enumeration.
## Account & Global Metadata
```bash
@@ -39,7 +39,7 @@ 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
```
Anota cualquier confianza entre cuentas (execution roles o S3 buckets con external principals) y las restricciones básicas como service control policies o SCPs.
Anota cualquier relación de confianza entre cuentas (roles de ejecución o S3 buckets con entidades externas) y restricciones básicas como service control policies o SCPs.
## Dominios de Studio, Apps y Espacios Compartidos
```bash
@@ -63,11 +63,11 @@ aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <n
Qué registrar:
- `DomainArn`, `AppSecurityGroupIds`, `SubnetIds`, `DefaultUserSettings.ExecutionRole`.
- EFS montados (`HomeEfsFileSystemId`) y directorios home en S3.
- Scripts de lifecycle (a menudo contienen credenciales de bootstrap o código adicional para push/pull).
- EFS montado (`HomeEfsFileSystemId`) y directorios home de S3.
- Lifecycle scripts (a menudo contienen credenciales de bootstrap o código adicional push/pull).
> [!TIP]
> Presigned Studio URLs pueden eludir la autenticación si se conceden de forma demasiado amplia.
> Presigned Studio URLs can bypass authentication if granted broadly.
## Notebook Instances & Lifecycle Configs
```bash
@@ -78,11 +78,11 @@ aws sagemaker describe-notebook-instance-lifecycle-config --notebook-instance-li
```
Los metadatos del notebook revelan:
- Rol de ejecución (`RoleArn`), acceso directo a Internet vs. modo solo VPC.
- Ubicaciones S3 en `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
- Scripts de ciclo de vida para credenciales o hooks de persistencia.
- Role de ejecución (RoleArn), acceso directo a internet vs. modo solo VPC.
- Ubicaciones S3 en DefaultCodeRepository, DirectInternetAccess, RootAccess.
- Scripts de lifecycle para credenciales o hooks de persistencia.
## Training, Processing, Transform & Batch Jobs
## Entrenamiento, Procesamiento, Transform & Batch Jobs
```bash
aws sagemaker list-training-jobs --region $REGION
aws sagemaker describe-training-job --training-job-name <job> --region $REGION
@@ -96,11 +96,11 @@ aws sagemaker describe-transform-job --transform-job-name <job> --region $REGION
Examinar:
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` qué imágenes ECR están desplegadas.
- `InputDataConfig` & `OutputDataConfig` S3 buckets, prefixes, y KMS keys.
- `InputDataConfig` & `OutputDataConfig` S3 buckets, prefijos y claves KMS.
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` determinan la postura de red o de cifrado.
- `HyperParameters` pueden leak secretos del entorno o cadenas de conexión.
- `HyperParameters` pueden leak secretos de entorno o cadenas de conexión.
## Pipelines, Experiments & Trials
## Pipelines, Experimentos y Ensayos
```bash
aws sagemaker list-pipelines --region $REGION
aws sagemaker list-pipeline-executions --pipeline-name <pipeline> --region $REGION
@@ -110,9 +110,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
```
Las definiciones de pipeline detallan cada paso, los roles asociados, las imágenes de contenedor y las variables de entorno. Los componentes Trial a menudo contienen URIs de artefactos de entrenamiento, registros en S3 y métricas que sugieren el flujo de datos sensibles.
Las definiciones de pipeline detallan cada paso, los roles asociados, las imágenes de contenedor y las variables de entorno. Los componentes de Trial suelen contener URIs de artefactos de entrenamiento, registros de S3 y métricas que sugieren el flujo de datos sensibles.
## Modelos, Configuraciones de Endpoint & Endpoints Desplegados
## Modelos, Configuraciones de Endpoint y Endpoints Desplegados
```bash
aws sagemaker list-models --region $REGION
aws sagemaker describe-model --model-name <name> --region $REGION
@@ -125,10 +125,10 @@ aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
```
Áreas de enfoque:
- URIs S3 de artefactos de modelo (`PrimaryContainer.ModelDataUrl`) e imágenes de contenedores de inferencia.
- Configuración de captura de datos del endpoint (bucket S3, KMS) para posible exfiltración de logs.
- Endpoints multi-model que usan `S3DataSource` o `ModelPackage` (verificar empaquetado entre cuentas).
- Configuraciones de red y grupos de seguridad adjuntos a los endpoints.
- URIs de artefactos del modelo en S3 (`PrimaryContainer.ModelDataUrl`) y las imágenes de contenedor de inferencia.
- Configuración de captura de datos del endpoint (S3 bucket, KMS) para posible exfiltración de logs.
- Endpoints multi-modelo que usan `S3DataSource` o `ModelPackage` (verificar empaquetado entre cuentas).
- Configuraciones de red y security groups adjuntos a los endpoints.
## Feature Store, Data Wrangler & Clarify
```bash
@@ -143,11 +143,11 @@ aws sagemaker list-model-monitoring-schedule --region $REGION
```
Conclusiones de seguridad:
- Online feature stores replican datos a Kinesis; comprueba `OnlineStoreConfig.SecurityConfig.KmsKeyId` y la VPC.
- Los flujos de Data Wrangler suelen incrustar credenciales JDBC/Redshift o endpoints privados.
- Los jobs de Clarify/Model Monitor exportan datos a S3 que podrían ser legibles por todo el mundo o accesibles entre cuentas.
- Los feature stores en línea replican datos a Kinesis; verifique `OnlineStoreConfig.SecurityConfig.KmsKeyId` y la VPC.
- Los flujos de Data Wrangler con frecuencia incrustan credenciales JDBC/Redshift o endpoints privados.
- Los trabajos de Clarify/Model Monitor exportan datos a S3 que podrían ser legibles públicamente o accesibles entre cuentas.
## MLflow Tracking Servers, Autopilot & JumpStart
## Servidores de Tracking de MLflow, Autopilot & JumpStart
```bash
aws sagemaker list-mlflow-tracking-servers --region $REGION
aws sagemaker describe-mlflow-tracking-server --tracking-server-name <name> --region $REGION
@@ -159,40 +159,40 @@ aws sagemaker list-jumpstart-models --region $REGION
aws sagemaker list-jumpstart-script-resources --region $REGION
```
- Los servidores de tracking de MLflow almacenan experimentos y artefactos; las presigned URLs pueden exponerlo todo.
- Los jobs de Autopilot lanzan múltiples training jobs: enumera las salidas en busca de datos ocultos.
- Los trabajos de Autopilot ejecutan múltiples trabajos de entrenamiento — enumera las salidas en busca de datos ocultos.
- Las arquitecturas de referencia de JumpStart pueden desplegar roles privilegiados en la cuenta.
## IAM y consideraciones de red
## Consideraciones de IAM y redes
- Enumera las políticas de IAM adjuntas a todos los roles de ejecución (Studio, notebooks, training jobs, pipelines, endpoints).
- Revisa los contextos de red: subnets, security groups, VPC endpoints. Muchas organizaciones aíslan los training jobs pero olvidan restringir el tráfico saliente.
- Revisa las políticas de los buckets S3 referenciadas en `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` para detectar acceso externo.
- Revisa contextos de red: subredes, grupos de seguridad, endpoints de VPC. Muchas organizaciones aíslan los training jobs pero olvidan restringir el tráfico saliente.
- Revisa las políticas de buckets S3 referenciadas en `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` para acceso externo.
## Privilege Escalation
## Escalada de privilegios
{{#ref}}
../../aws-privilege-escalation/aws-sagemaker-privesc/README.md
{{#endref}}
## Persistence
## Persistencia
{{#ref}}
../../aws-persistence/aws-sagemaker-persistence/README.md
{{#endref}}
## Post-Exploitation
## Post-explotación
{{#ref}}
../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md
{{#endref}}
## Unauthorized Access
## Acceso no autorizado
{{#ref}}
../../aws-unauthenticated-enum-access/aws-sagemaker-unauthenticated-enum/README.md
{{#endref}}
## References
## Referencias
- [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)