mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-01 23:39:52 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-unauthenticated-enum-
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
# AWS - SageMaker Enum
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Огляд сервісу
|
||||
|
||||
Amazon SageMaker — керований AWS сервіс для машинного навчання, який поєднує блокноти, інфраструктуру для тренування, оркестрацію, реєстри та керовані endpoints. Компрометація ресурсів SageMaker зазвичай забезпечує:
|
||||
|
||||
- Тривалі IAM execution roles з широким доступом до S3, ECR, Secrets Manager або KMS.
|
||||
- Доступ до конфіденційних наборів даних, що зберігаються в S3, EFS або всередині feature stores.
|
||||
- Мережеві плацдарми всередині VPC (Studio apps, training jobs, endpoints).
|
||||
- Високопривілейовані presigned URLs, які обходять аутентифікацію консолі.
|
||||
|
||||
Розуміння того, як зібраний SageMaker, — ключовий крок перед тим, як виконувати pivot, persist або здійснювати ексфільтрацію даних.
|
||||
|
||||
## Core Building Blocks
|
||||
|
||||
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Кожен domain має спільну файлову систему EFS і роль виконання за замовчуванням.
|
||||
- **Notebook Instances**: Керовані EC2 інстанси для автономних notebook; використовують окремі execution roles.
|
||||
- **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 токенами доступу.
|
||||
|
||||
Кожен ресурс посилається на execution role, S3 локації, образи контейнерів та опціональні VPC/KMS налаштування — фіксуйте всі ці деталі під час енумерації.
|
||||
|
||||
## Обліковий запис та глобальні метадані
|
||||
```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
|
||||
```
|
||||
Зверніть увагу на будь-яку довіру між акаунтами (execution roles or S3 buckets with 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
|
||||
```
|
||||
Метадані ноутбука виявляють:
|
||||
|
||||
- Роль виконання (`RoleArn`), прямий доступ до Інтернету або режим лише VPC.
|
||||
- Розташування S3 у `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
|
||||
- Скрипти життєвого циклу для облікових даних або хуків персистентності.
|
||||
|
||||
## Навчання, обробка, трансформація та пакетні завдання
|
||||
```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 образи розгорнуті.
|
||||
- `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 деталізує кожен крок, пов'язані ролі, container images і environment variables. Trial components часто містять training artefact URIs, S3 logs і metrics, які натякають на потік чутливих даних.
|
||||
|
||||
## Моделі, конфігурації Endpoint та розгорнуті Endpoint-и
|
||||
```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 URI артефактів моделі (`PrimaryContainer.ModelDataUrl`) та образи контейнерів для inference.
|
||||
- Endpoint data capture configuration (S3 bucket, KMS) для можливої ексфільтрації логів.
|
||||
- Multi-model endpoints, що використовують `S3DataSource` або `ModelPackage` (перевірити на cross-account packaging).
|
||||
- Network configs та 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 або приватні кінцеві точки.
|
||||
- Clarify/Model Monitor jobs експортують дані в S3, які можуть бути доступні для читання всім або доступні з інших акаунтів.
|
||||
|
||||
## 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 зберігають експерименти та артефакти; попередньо підписані URL-адреси можуть розкрити все.
|
||||
- Завдання Autopilot запускають кілька навчальних завдань — перераховуйте результати на наявність прихованих даних.
|
||||
- Референсні архітектури JumpStart можуть розгортати привілейовані ролі в обліковому записі.
|
||||
|
||||
## IAM & Мережеві міркування
|
||||
|
||||
- Перелічіть IAM-політики, приєднані до всіх ролей виконання (Studio, notebooks, training jobs, pipelines, endpoints).
|
||||
- Перевірте мережеві контексти: subnets, security groups, VPC endpoints. Багато організацій ізолюють training jobs, але забувають обмежити вихідний трафік.
|
||||
- Перегляньте політики S3 bucket, на які посилаються в `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-unauthorized-access/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}}
|
||||
Reference in New Issue
Block a user