AWS - SageMaker Enum

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Przegląd usługi

Amazon SageMaker jest zarządzaną przez AWS platformą uczenia maszynowego, która spaja together notebooks, infrastrukturę treningową, orkiestrację, rejestry oraz zarządzane endpoints. A compromise of SageMaker resources typically provides:

  • Długotrwałe execution roles IAM z szerokim dostępem do S3, ECR, Secrets Manager lub KMS.
  • Dostęp do wrażliwych zbiorów danych przechowywanych w S3, EFS lub wewnątrz feature stores.
  • Punkty zaczepienia w sieci wewnątrz VPC (Studio apps, training jobs, endpoints).
  • Presigned URLs o wysokich uprawnieniach, które omijają uwierzytelnianie w konsoli.

Zrozumienie, jak SageMaker jest złożony, jest kluczowe zanim wykonasz pivot, persist, lub exfiltrate data.

Core Building Blocks

  • Studio Domains & Spaces: Web IDE (JupyterLab, Code Editor, RStudio). Każdy domain ma współdzielony system plików EFS i domyślną execution role.
  • Notebook Instances: Zarządzane instancje EC2 dla standalone notebooks; używają osobnych execution roles.
  • Training / Processing / Transform Jobs: Ephemeral containers, które pobierają kod z ECR i dane ze S3.
  • Pipelines & Experiments: Orkiestracje workflow opisujące wszystkie kroki, inputy i outputy.
  • Models & Endpoints: Spakowane artefakty wdrożone do inference przez HTTPS endpoints.
  • Feature Store & Data Wrangler: Zarządzane usługi do przygotowania danych i zarządzania cechami.
  • Autopilot & JumpStart: Zautomatyzowane ML i kuratorowany katalog modeli.
  • MLflow Tracking Servers: Zarządzane UI/API MLflow z presigned access tokens.

Każdy zasób odwołuje się do execution role, lokalizacji S3, container images oraz opcjonalnej konfiguracji VPC/KMS — uchwyć je wszystkie podczas 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

Zanotuj wszelkie cross-account trust (execution roles lub S3 buckets z external principals) oraz podstawowe ograniczenia, takie jak service control policies lub SCPs.

Domeny Studio, Aplikacje i Wspólne Przestrzenie

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

Co zapisać:

  • DomainArn, AppSecurityGroupIds, SubnetIds, DefaultUserSettings.ExecutionRole.
  • Zamontowane EFS (HomeEfsFileSystemId) oraz katalogi domowe S3.
  • Skrypty cyklu życia (często zawierają bootstrap credentials lub dodatkowy kod do push/pull).

Tip

Presigned Studio URLs mogą obejść uwierzytelnianie, jeśli są przyznane zbyt szeroko.

Instancje Notebooków i konfiguracje cyklu życia

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

Metadane notebooka ujawniają:

  • Rola wykonawcza (RoleArn), bezpośredni dostęp do internetu vs. tryb tylko VPC.
  • Lokalizacje S3 w DefaultCodeRepository, DirectInternetAccess, RootAccess.
  • Skrypty lifecycle umożliwiające pozyskanie poświadczeń lub wdrożenie mechanizmów utrwalania.

Trening, przetwarzanie, transformacja i zadania wsadowe

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

Skrupulatnie sprawdź:

  • AlgorithmSpecification.TrainingImage / AppSpecification.ImageUri – które obrazy ECR są wdrożone.
  • InputDataConfig & OutputDataConfig – S3 buckets, prefixes, and KMS keys.
  • ResourceConfig.VolumeKmsKeyId, VpcConfig, EnableNetworkIsolation – określają konfigurację sieciową lub ustawienia szyfrowania.
  • HyperParameters mogą leak environment secrets lub 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

Definicje potoku opisują każdy krok, powiązane role, obrazy kontenerów i zmienne środowiskowe. Komponenty Trial często zawierają URI artefaktów treningowych, logi S3 i metryki, które sugerują przepływ danych wrażliwych.

Modele, konfiguracje endpointów & wdrożone endpointy

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

Obszary zainteresowania:

  • URI artefaktów modeli w S3 (PrimaryContainer.ModelDataUrl) oraz obrazy kontenerów do inferencji.
  • Konfiguracja przechwytywania danych endpointu (S3 bucket, KMS) pod kątem możliwej eksfiltracji logów.
  • Endpointy multi-model używające S3DataSource lub ModelPackage (sprawdź cross-account packaging).
  • Konfiguracje sieciowe i grupy zabezpieczeń przypisane do endpointów.

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

Wnioski dotyczące bezpieczeństwa:

  • Online feature stores replikują dane do Kinesis; sprawdź OnlineStoreConfig.SecurityConfig.KmsKeyId i VPC.
  • Data Wrangler flows często zawierają osadzone poświadczenia JDBC/Redshift lub prywatne endpoints.
  • Clarify/Model Monitor jobs eksportują dane do S3, które mogą być publicznie czytelne (world-readable) lub dostępne z innych kont (cross-account).

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 przechowują eksperymenty i artefakty; presigned URLs mogą ujawnić wszystko.
  • Autopilot jobs uruchamiają wiele training jobs — enumerate outputs w poszukiwaniu ukrytych danych.
  • Architektury referencyjne JumpStart mogą wdrażać privileged roles w obrębie konta.

Rozważania dotyczące IAM i sieci

  • Wylicz IAM policies przypisane do wszystkich execution roles (Studio, notebooks, training jobs, pipelines, endpoints).
  • Sprawdź konteksty sieciowe: subnets, security groups, VPC endpoints. Wiele organizacji izoluje training jobs, ale zapomina ograniczyć outbound traffic.
  • Przejrzyj S3 bucket policies referencjonowane w ModelDataUrl, DataCaptureConfig, InputDataConfig pod kątem dostępu zewnętrznego.

Privilege Escalation

AWS - Sagemaker Privesc

Persistence

Aws Sagemaker Persistence

Post-Exploitation

AWS - SageMaker Post-Exploitation

Unauthorized Access

AWS - SageMaker Unauthenticated Enum

Referencje

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks