Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-services/aws-sagemaker-enum/README.md

12 KiB
Raw Blame History

AWS - SageMaker Enum

{{#include ../../../../banners/hacktricks-training.md}}

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

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

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

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

Основні складові

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

Кожний ресурс посилається на execution role, S3 locations, container images та опціональну VPC/KMS конфігурацію — зафіксуйте всі з них під час 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

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

Studio домени, додатки та спільні простори

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

What to record:

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

Tip

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

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

Метадані Notebook виявляють:

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

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

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 розгорнуті.
  • InputDataConfig & OutputDataConfig S3 бакети, префікси та ключі KMS.
  • ResourceConfig.VolumeKmsKeyId, VpcConfig, EnableNetworkIsolation визначають мережеву чи шифрувальну конфігурацію.
  • HyperParameters можуть leak секрети середовища або рядки підключення.

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

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

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

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) та образи контейнерів для інференсу.
  • Конфігурація захоплення даних endpoint (S3 bucket, KMS) для можливого log exfil.
  • Multi-model endpoints, що використовують S3DataSource або ModelPackage (перевірити cross-account packaging).
  • Мережеві конфігурації та security groups, прикріплені до 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

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

  • Online feature stores реплікують дані в Kinesis; перевірте OnlineStoreConfig.SecurityConfig.KmsKeyId та VPC.
  • Потоки Data Wrangler часто вбудовують облікові дані JDBC/Redshift або приватні кінцеві точки.
  • Завдання Clarify/Model Monitor експортують дані в S3, які можуть бути публічно читабельними (world-readable) або доступними для інших акаунтів.

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 для відстеження зберігають експерименти та артефакти; presigned URLs можуть розкрити все.
  • Завдання Autopilot запускають кілька training jobs — перераховуйте outputs у пошуках прихованих даних.
  • Еталонні архітектури JumpStart можуть розгортати привілейовані ролі в акаунті.

Міркування щодо IAM та мережі

  • Перелічіть IAM policies, приєднані до всіх execution roles (Studio, notebooks, training jobs, pipelines, endpoints).
  • Перевірте мережеві контексти: subnets, security groups, VPC endpoints. Багато організацій ізолюють training jobs, але забувають обмежити вихідний трафік.
  • Перегляньте S3 bucket policies, на які посилаються ModelDataUrl, DataCaptureConfig, InputDataConfig, щодо зовнішнього доступу.

Підвищення привілеїв

{{#ref}} ../../aws-privilege-escalation/aws-sagemaker-privesc/README.md {{#endref}}

Персистентність

{{#ref}} ../../aws-persistence/aws-sagemaker-persistence/README.md {{#endref}}

Пост-експлуатація

{{#ref}} ../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md {{#endref}}

Несанкціонований доступ

{{#ref}} ../aws-sagemaker-unauthenticated-enum/README.md {{#endref}}

Посилання

{{#include ../../../../banners/hacktricks-training.md}}