AWS - SageMaker Enum

Reading time: 8 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Огляд сервісу

Amazon SageMaker — керована AWS платформа машинного навчання, яка об'єднує notebooks, training infrastructure, orchestration, registries та managed endpoints. Компрометація ресурсів SageMaker зазвичай надає:

  • Довготривалі IAM execution roles зі значним доступом до S3, ECR, Secrets Manager або KMS.
  • Доступ до конфіденційних наборів даних, що зберігаються в S3, EFS або у feature stores.
  • Мережеві опорні точки всередині VPCs (Studio apps, training jobs, endpoints).
  • Привілейовані presigned URLs, що обходять автентифікацію в консолі.

Розуміння того, як зібрано SageMaker, є ключовим перед тим, як pivot, persist або exfiltrate дані.

Основні компоненти

  • Studio Domains & Spaces: Web IDE (JupyterLab, Code Editor, RStudio). Кожен domain має спільну файлову систему EFS та роль виконання за замовчуванням.
  • Notebook Instances: Керовані EC2 інстанси для автономних notebooks; використовують окремі ролі виконання.
  • Training / Processing / Transform Jobs: Ефемерні контейнери, які завантажують код з ECR та дані з S3.
  • Pipelines & Experiments: Оркестровані робочі потоки, які описують усі кроки, вхідні та вихідні дані.
  • Models & Endpoints: Запаковані артефакти, розгорнуті для inference через HTTPS endpoints.
  • Feature Store & Data Wrangler: Керовані сервіси для підготовки даних та управління ознаками.
  • Autopilot & JumpStart: Автоматизований ML та відібраний каталог моделей.
  • MLflow Tracking Servers: Керований MLflow UI/API з presigned access tokens.

Кожен ресурс посилається на execution role, S3-локації, образи контейнерів та опціональну VPC/KMS конфігурацію — зафіксуйте всі вони під час enumeration.

Облікові та глобальні метадані

bash
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

Зверніть увагу на будь-які cross-account trust (execution roles або S3 buckets з external principals) та базові обмеження, такі як service control policies або SCPs.

Studio Domains, Apps & Shared Spaces

bash
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

Що фіксувати:

  • DomainArn, AppSecurityGroupIds, SubnetIds, DefaultUserSettings.ExecutionRole.
  • Змонтований EFS (HomeEfsFileSystemId) та домашні каталоги в S3.
  • Lifecycle scripts (часто містять bootstrap credentials або додатковий код для push/pull).

tip

Presigned Studio URLs можуть обходити автентифікацію, якщо надані широко.

Notebook Instances & Lifecycle Configs

bash
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

Notebook metadata reveals:

  • Роль виконання (RoleArn), прямий доступ до інтернету або режим лише VPC.
  • Розташування S3 у DefaultCodeRepository, DirectInternetAccess, RootAccess.
  • Скрипти життєвого циклу для credentials або persistence hooks.

Навчання, обробка, трансформація та пакетні завдання

bash
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

Ретельно перевірте:

  • AlgorithmSpecification.TrainingImage / AppSpecification.ImageUri – які ECR images розгорнуті.
  • InputDataConfig & OutputDataConfig – S3 бакети, префікси та KMS ключі.
  • ResourceConfig.VolumeKmsKeyId, VpcConfig, EnableNetworkIsolation – визначають мережеву або шифрувальну конфігурацію.
  • HyperParameters можуть leak секрети середовища або рядки підключення.

Конвеєри, експерименти та тести

bash
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

Визначення Pipeline описують кожен крок, пов'язані ролі, образи контейнерів та змінні середовища. Компоненти Trial часто містять URI артефактів навчання, S3 логи та метрики, які натякають на потік чутливих даних.

Моделі, конфігурації кінцевих точок та розгорнуті кінцеві точки

bash
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

Ключові напрямки:

  • S3 URIs артефактів моделі (PrimaryContainer.ModelDataUrl) та образи контейнерів для inference.
  • Налаштування захоплення даних endpoint (S3 bucket, KMS) для можливого log exfil.
  • Мульти-модельні endpoints, що використовують S3DataSource або ModelPackage (перевірити на міжакаунтне пакування).
  • Мережеві конфігурації та security groups, приєднані до endpoints.

Feature Store, Data Wrangler & Clarify

bash
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

Висновки з безпеки:

  • Онлайн feature stores реплікують дані в Kinesis; перевірте OnlineStoreConfig.SecurityConfig.KmsKeyId та VPC.
  • Data Wrangler flows часто вбудовують облікові дані JDBC/Redshift або приватні endpoints.
  • Clarify/Model Monitor jobs експортують дані в S3, які можуть бути доступні світові (world-readable) або між акаунтами (cross-account).

MLflow Tracking Servers, Autopilot & JumpStart

bash
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 store experiments and artefacts; presigned URLs can expose everything.
  • Autopilot jobs spin multiple training jobs—enumerate outputs for hidden data.
  • JumpStart reference architectures may deploy privileged roles into the account.

IAM & Networking Considerations

  • Enumerate IAM policies attached to all execution roles (Studio, notebooks, training jobs, pipelines, endpoints).
  • Check network contexts: subnets, security groups, VPC endpoints. Many organisations isolate training jobs but forget to restrict outbound traffic.
  • Review S3 bucket policies referenced in ModelDataUrl, DataCaptureConfig, InputDataConfig for external access.

Privilege Escalation

AWS - Sagemaker Privesc

Persistence

Aws Sagemaker Persistence

Post-Exploitation

AWS - SageMaker Post-Exploitation

Unauthorized Access

AWS - SageMaker Unauthenticated Enum

References

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks