# 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 ```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 --region $REGION ``` Зверніть увагу на будь-які cross-account trust (execution roles або S3 buckets з external principals) та базові обмеження, такі як service control policies або SCPs. ## Studio домени, додатки та спільні простори ```bash aws sagemaker list-domains --region $REGION aws sagemaker describe-domain --domain-id --region $REGION aws sagemaker list-user-profiles --domain-id-equals --region $REGION aws sagemaker describe-user-profile --domain-id --user-profile-name --region $REGION # Enumerate apps (JupyterServer, KernelGateway, RStudioServerPro, CodeEditor, Canvas, etc.) aws sagemaker list-apps --domain-id-equals --region $REGION aws sagemaker describe-app --domain-id --user-profile-name --app-type JupyterServer --app-name default --region $REGION # Shared collaborative spaces aws sagemaker list-spaces --domain-id-equals --region $REGION aws sagemaker describe-space --domain-id --space-name --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 --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 ```bash aws sagemaker list-notebook-instances --region $REGION aws sagemaker describe-notebook-instance --notebook-instance-name --region $REGION aws sagemaker list-notebook-instance-lifecycle-configs --region $REGION aws sagemaker describe-notebook-instance-lifecycle-config --notebook-instance-lifecycle-config-name --region $REGION ``` Метадані Notebook виявляють: - Роль виконання (`RoleArn`), прямий доступ до інтернету проти режиму VPC-only. - Місця розташування S3 у `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`. - Скрипти життєвого циклу для облікових даних або хуків персистенції. ## Навчання, обробка, трансформація та пакетні завдання ```bash aws sagemaker list-training-jobs --region $REGION aws sagemaker describe-training-job --training-job-name --region $REGION aws sagemaker list-processing-jobs --region $REGION aws sagemaker describe-processing-job --processing-job-name --region $REGION aws sagemaker list-transform-jobs --region $REGION aws sagemaker describe-transform-job --transform-job-name --region $REGION ``` Ретельно перевірте: - `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` – які образи в ECR розгорнуті. - `InputDataConfig` & `OutputDataConfig` – S3 бакети, префікси та ключі KMS. - `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` – визначають мережеву чи шифрувальну конфігурацію. - `HyperParameters` можуть leak секрети середовища або рядки підключення. ## Pipelines, Experiments & Trials ```bash aws sagemaker list-pipelines --region $REGION aws sagemaker list-pipeline-executions --pipeline-name --region $REGION aws sagemaker describe-pipeline --pipeline-name --region $REGION aws sagemaker list-experiments --region $REGION aws sagemaker list-trials --experiment-name --region $REGION aws sagemaker list-trial-components --trial-name --region $REGION ``` Визначення pipeline описують кожен крок, пов'язані ролі, образи контейнерів та змінні середовища. Компоненти trial часто містять URI артефактів навчання, S3 логи та метрики, які можуть вказувати на потік конфіденційних даних. ## Моделі, конфігурації кінцевих точок та розгорнуті кінцеві точки ```bash aws sagemaker list-models --region $REGION aws sagemaker describe-model --model-name --region $REGION aws sagemaker list-endpoint-configs --region $REGION aws sagemaker describe-endpoint-config --endpoint-config-name --region $REGION aws sagemaker list-endpoints --region $REGION aws sagemaker describe-endpoint --endpoint-name --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 ```bash aws sagemaker list-feature-groups --region $REGION aws sagemaker describe-feature-group --feature-group-name --region $REGION aws sagemaker list-data-wrangler-flows --region $REGION aws sagemaker describe-data-wrangler-flow --flow-name --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 ```bash aws sagemaker list-mlflow-tracking-servers --region $REGION aws sagemaker describe-mlflow-tracking-server --tracking-server-name --region $REGION aws sagemaker list-auto-ml-jobs --region $REGION aws sagemaker describe-auto-ml-job --auto-ml-job-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}} ## Посилання - [AWS SageMaker Documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) - [AWS CLI SageMaker Reference](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/index.html) - [SageMaker Studio Architecture](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio.html) - [SageMaker Security Best Practices](https://docs.aws.amazon.com/sagemaker/latest/dg/security.html) {{#include ../../../../banners/hacktricks-training.md}}