AWS - SageMaker Enum

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Aperçu du service

Amazon SageMaker est la plateforme de machine learning gérée d’AWS qui relie notebooks, infrastructure de training, orchestration, registries et endpoints managés. Une compromission des ressources SageMaker fournit typiquement :

  • Rôles d’exécution IAM à longue durée de vie avec un large accès à S3, ECR, Secrets Manager ou KMS.
  • Accès à des jeux de données sensibles stockés dans S3, EFS, ou dans des feature stores.
  • Points d’ancrage réseau à l’intérieur des VPCs (Studio apps, training jobs, endpoints).
  • Presigned URLs à haut niveau de privilèges qui contournent l’authentification console.

Comprendre comment SageMaker est assemblé est clé avant de pivot, persist, or exfiltrate data.

Composants principaux

  • Studio Domains & Spaces: Web IDE (JupyterLab, Code Editor, RStudio). Chaque domain dispose d’un système de fichiers EFS partagé et d’un rôle d’exécution par défaut.
  • Notebook Instances: Instances EC2 managées pour notebooks autonomes ; utilisent des rôles d’exécution séparés.
  • Training / Processing / Transform Jobs: Conteneurs éphémères qui récupèrent le code depuis ECR et les données depuis S3.
  • Pipelines & Experiments: Workflows orchestrés décrivant toutes les étapes, entrées et sorties.
  • Models & Endpoints: Artefacts packagés déployés pour l’inférence via des endpoints HTTPS.
  • Feature Store & Data Wrangler: Services managés pour la préparation des données et la gestion des features.
  • Autopilot & JumpStart: ML automatisé et catalogue de modèles curated.
  • MLflow Tracking Servers: UI/API MLflow managée avec tokens d’accès presigned.

Chaque ressource référence un rôle d’exécution, des emplacements S3, des images de conteneur et une configuration optionnelle VPC/KMS — capturez-les tous pendant enumeration.

Compte et métadonnées globales

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

Notez toute cross-account trust (execution roles ou S3 buckets avec external principals) et les restrictions de base telles que service control policies ou SCPs.

Domaines Studio, Applications & Espaces partagés

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

À enregistrer :

  • DomainArn, AppSecurityGroupIds, SubnetIds, DefaultUserSettings.ExecutionRole.
  • EFS montés (HomeEfsFileSystemId) et répertoires home S3.
  • Scripts de lifecycle (contiennent souvent des identifiants bootstrap ou effectuent des opérations push/pull de code supplémentaire).

Tip

Presigned Studio URLs peuvent contourner l’authentification si elles sont accordées de manière trop large.

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

Les métadonnées du Notebook révèlent :

  • Rôle d’exécution (RoleArn), accès direct à Internet vs. mode VPC-only.
  • Emplacements S3 dans DefaultCodeRepository, DirectInternetAccess, RootAccess.
  • Scripts de lifecycle pour credentials ou hooks de persistance.

Tâches Training, Processing, Transform & Batch

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

Examinez :

  • AlgorithmSpecification.TrainingImage / AppSpecification.ImageUri – quelles images ECR sont déployées.
  • InputDataConfig & OutputDataConfig – buckets S3, préfixes et clés KMS.
  • ResourceConfig.VolumeKmsKeyId, VpcConfig, EnableNetworkIsolation – déterminent la posture réseau ou de chiffrement.
  • HyperParameters peuvent leak des secrets d’environnement ou des connection strings.

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

Les définitions de pipeline détaillent chaque étape, les rôles associés, les images de conteneurs et les variables d’environnement. Les composants d’essai contiennent souvent des URI d’artefacts d’entraînement, des logs S3 et des métriques qui suggèrent un flux de données sensibles.

Modèles, configurations de points de terminaison et points de terminaison déployés

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

Points d’attention :

  • URI S3 des artefacts de modèle (PrimaryContainer.ModelDataUrl) et images de conteneur d’inférence.
  • Configuration de capture de données des endpoints (S3 bucket, KMS) pour une éventuelle exfiltration de logs.
  • Endpoints multi-modèles utilisant S3DataSource ou ModelPackage (vérifier le packaging inter-compte).
  • Configurations réseau et groupes de sécurité attachés aux 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

Points clés de sécurité :

  • Online feature stores répliquent des données vers Kinesis ; vérifiez OnlineStoreConfig.SecurityConfig.KmsKeyId et la VPC.
  • Data Wrangler flows intègrent souvent des identifiants JDBC/Redshift ou des endpoints privés.
  • Clarify/Model Monitor jobs exportent des données vers S3 qui peuvent être lisibles publiquement ou accessibles entre comptes.

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
  • MLflow tracking servers stockent des experiments et des artefacts ; les URLs pré-signées (presigned URLs) peuvent tout exposer.
  • Les jobs Autopilot lancent plusieurs training jobs — énumérez les sorties pour détecter des données cachées.
  • Les reference architectures JumpStart peuvent déployer des rôles privilégiés dans le compte.

Considérations IAM & Réseau

  • Énumérez les politiques IAM attachées à tous les rôles d’exécution (Studio, notebooks, training jobs, pipelines, endpoints).
  • Vérifiez les contextes réseau : subnets, security groups, VPC endpoints. De nombreuses organisations isolent les training jobs mais oublient de restreindre le trafic sortant.
  • Passez en revue les politiques de bucket S3 référencées dans ModelDataUrl, DataCaptureConfig, InputDataConfig pour l’accès externe.

Escalade de privilèges

AWS - Sagemaker Privesc

Persistance

Aws Sagemaker Persistence

Post-exploitation

AWS - SageMaker Post-Exploitation

Accès non autorisé

AWS - SageMaker Unauthenticated Enum

Références

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks