mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-12 13:05:19 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake
This commit is contained in:
@@ -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/KMS—capture todos ellos durante enumeration.
|
||||
Cada recurso referencia un execution role, ubicaciones S3, container images y configuración opcional VPC/KMS — captura 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)
|
||||
|
||||
Reference in New Issue
Block a user