9.9 KiB
AWS - SageMaker Enum
{{#include ../../../../banners/hacktricks-training.md}}
Visión general 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:
- 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.
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.
Cada recurso referencia un execution role, ubicaciones S3, imágenes de contenedor y configuración opcional de VPC/KMS—capture todos ellos durante enumeration.
Account & Global Metadata
REGION=us-east-1
# Portfolio status, used when provisioning Studio resources
aws sagemaker get-sagemaker-servicecatalog-portfolio-status --region $REGION
# List execution roles used by models (extend to other resources as needed)
aws sagemaker list-models --region $REGION --query 'Models[].ExecutionRoleArn' --output text | tr ' ' '
' | sort -u
# 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.
Dominios de Studio, Apps y Espacios Compartidos
aws sagemaker list-domains --region $REGION
aws sagemaker describe-domain --domain-id <domain-id> --region $REGION
aws sagemaker list-user-profiles --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-user-profile --domain-id <domain-id> --user-profile-name <profile> --region $REGION
# Enumerate apps (JupyterServer, KernelGateway, RStudioServerPro, CodeEditor, Canvas, etc.)
aws sagemaker list-apps --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-app --domain-id <domain-id> --user-profile-name <profile> --app-type JupyterServer --app-name default --region $REGION
# Shared collaborative spaces
aws sagemaker list-spaces --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-space --domain-id <domain-id> --space-name <space> --region $REGION
# Studio lifecycle configurations (shell scripts at start/stop)
aws sagemaker list-studio-lifecycle-configs --region $REGION
aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <name> --region $REGION
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).
Tip
Presigned Studio URLs pueden eludir la autenticación si se conceden de forma demasiado amplia.
Notebook Instances & Lifecycle Configs
aws sagemaker list-notebook-instances --region $REGION
aws sagemaker describe-notebook-instance --notebook-instance-name <name> --region $REGION
aws sagemaker list-notebook-instance-lifecycle-configs --region $REGION
aws sagemaker describe-notebook-instance-lifecycle-config --notebook-instance-lifecycle-config-name <cfg> --region $REGION
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.
Training, Processing, Transform & Batch Jobs
aws sagemaker list-training-jobs --region $REGION
aws sagemaker describe-training-job --training-job-name <job> --region $REGION
aws sagemaker list-processing-jobs --region $REGION
aws sagemaker describe-processing-job --processing-job-name <job> --region $REGION
aws sagemaker list-transform-jobs --region $REGION
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.ResourceConfig.VolumeKmsKeyId,VpcConfig,EnableNetworkIsolation– determinan la postura de red o de cifrado.HyperParameterspueden leak secretos del entorno o cadenas de conexión.
Pipelines, Experiments & Trials
aws sagemaker list-pipelines --region $REGION
aws sagemaker list-pipeline-executions --pipeline-name <pipeline> --region $REGION
aws sagemaker describe-pipeline --pipeline-name <pipeline> --region $REGION
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.
Modelos, Configuraciones de Endpoint & Endpoints Desplegados
aws sagemaker list-models --region $REGION
aws sagemaker describe-model --model-name <name> --region $REGION
aws sagemaker list-endpoint-configs --region $REGION
aws sagemaker describe-endpoint-config --endpoint-config-name <cfg> --region $REGION
aws sagemaker list-endpoints --region $REGION
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
S3DataSourceoModelPackage(verificar empaquetado entre cuentas). - Configuraciones de red y grupos de seguridad adjuntos a los endpoints.
Feature Store, Data Wrangler & Clarify
aws sagemaker list-feature-groups --region $REGION
aws sagemaker describe-feature-group --feature-group-name <feature-group> --region $REGION
aws sagemaker list-data-wrangler-flows --region $REGION
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
Conclusiones de seguridad:
- Online feature stores replican datos a Kinesis; comprueba
OnlineStoreConfig.SecurityConfig.KmsKeyIdy 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.
MLflow Tracking Servers, Autopilot & JumpStart
aws sagemaker list-mlflow-tracking-servers --region $REGION
aws sagemaker describe-mlflow-tracking-server --tracking-server-name <name> --region $REGION
aws sagemaker list-auto-ml-jobs --region $REGION
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
- 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.
- Las arquitecturas de referencia de JumpStart pueden desplegar roles privilegiados en la cuenta.
IAM y consideraciones de red
- 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,InputDataConfigpara detectar acceso externo.
Privilege Escalation
{{#ref}} ../../aws-privilege-escalation/aws-sagemaker-privesc/README.md {{#endref}}
Persistence
{{#ref}} ../../aws-persistence/aws-sagemaker-persistence/README.md {{#endref}}
Post-Exploitation
{{#ref}} ../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md {{#endref}}
Unauthorized Access
{{#ref}} ../../aws-unauthenticated-enum-access/aws-sagemaker-unauthenticated-enum/README.md {{#endref}}
References
- AWS SageMaker Documentation
- AWS CLI SageMaker Reference
- SageMaker Studio Architecture
- SageMaker Security Best Practices
{{#include ../../../../banners/hacktricks-training.md}}