mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-01 15:35:51 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake
This commit is contained in:
@@ -4,29 +4,29 @@
|
||||
|
||||
## Огляд сервісу
|
||||
|
||||
Amazon SageMaker — керований AWS сервіс для машинного навчання, який об’єднує notebooks, training infrastructure, orchestration, registries та managed endpoints. Компрометація ресурсів SageMaker зазвичай дає:
|
||||
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.
|
||||
- Довготривалі 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 та default execution role.
|
||||
- **Notebook Instances**: Керовані EC2 інстанси для standalone notebooks; використовують окремі execution roles.
|
||||
- **Training / Processing / Transform Jobs**: Ефемерні контейнери, які витягують код з ECR та дані з S3.
|
||||
- **Pipelines & Experiments**: Оркестровані workflows, що описують всі кроки, inputs та outputs.
|
||||
- **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**: Керовані сервіси для підготовки даних та управління features.
|
||||
- **Autopilot & JumpStart**: Автоматизований ML та кураторований catalogue моделей.
|
||||
- **Feature Store & Data Wrangler**: Керовані сервіси для підготовки даних та управління ознаками.
|
||||
- **Autopilot & JumpStart**: Автоматизований ML та відібраний каталог моделей.
|
||||
- **MLflow Tracking Servers**: Керований MLflow UI/API з presigned access tokens.
|
||||
|
||||
Кожний ресурс посилається на execution role, S3 locations, container images та опціональну VPC/KMS конфігурацію — зафіксуйте всі з них під час enumeration.
|
||||
Кожен ресурс посилається на execution role, S3-локації, образи контейнерів та опціональну VPC/KMS конфігурацію — зафіксуйте всі вони під час enumeration.
|
||||
|
||||
## Account & Global Metadata
|
||||
## Облікові та глобальні метадані
|
||||
```bash
|
||||
REGION=us-east-1
|
||||
# Portfolio status, used when provisioning Studio resources
|
||||
@@ -41,7 +41,7 @@ aws sagemaker list-tags --resource-arn <sagemaker-arn> --region $REGION
|
||||
```
|
||||
Зверніть увагу на будь-які cross-account trust (execution roles або S3 buckets з external principals) та базові обмеження, такі як service control policies або SCPs.
|
||||
|
||||
## Studio домени, додатки та спільні простори
|
||||
## Studio Domains, Apps & Shared Spaces
|
||||
```bash
|
||||
aws sagemaker list-domains --region $REGION
|
||||
aws sagemaker describe-domain --domain-id <domain-id> --region $REGION
|
||||
@@ -60,14 +60,14 @@ aws sagemaker describe-space --domain-id <domain-id> --space-name <space> --regi
|
||||
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 домашні директорії.
|
||||
- Змонтований EFS (`HomeEfsFileSystemId`) та домашні каталоги в S3.
|
||||
- Lifecycle scripts (часто містять bootstrap credentials або додатковий код для push/pull).
|
||||
|
||||
> [!TIP]
|
||||
> Presigned Studio URLs можуть обійти аутентифікацію, якщо вони надані широкому колу користувачів.
|
||||
> Presigned Studio URLs можуть обходити автентифікацію, якщо надані широко.
|
||||
|
||||
## Notebook Instances & Lifecycle Configs
|
||||
```bash
|
||||
@@ -76,11 +76,11 @@ aws sagemaker describe-notebook-instance --notebook-instance-name <name> --regio
|
||||
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 виявляють:
|
||||
Notebook metadata reveals:
|
||||
|
||||
- Роль виконання (`RoleArn`), прямий доступ до інтернету проти режиму VPC-only.
|
||||
- Місця розташування S3 у `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
|
||||
- Скрипти життєвого циклу для облікових даних або хуків персистенції.
|
||||
- Роль виконання (`RoleArn`), прямий доступ до інтернету або режим лише VPC.
|
||||
- Розташування S3 у `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
|
||||
- Скрипти життєвого циклу для credentials або persistence hooks.
|
||||
|
||||
## Навчання, обробка, трансформація та пакетні завдання
|
||||
```bash
|
||||
@@ -95,12 +95,12 @@ aws sagemaker describe-transform-job --transform-job-name <job> --region $REGION
|
||||
```
|
||||
Ретельно перевірте:
|
||||
|
||||
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` – які образи в ECR розгорнуті.
|
||||
- `InputDataConfig` & `OutputDataConfig` – S3 бакети, префікси та ключі KMS.
|
||||
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` – визначають мережеву чи шифрувальну конфігурацію.
|
||||
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` – які ECR images розгорнуті.
|
||||
- `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 <pipeline> --region $REGION
|
||||
@@ -110,7 +110,7 @@ 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 логи та метрики, які можуть вказувати на потік конфіденційних даних.
|
||||
Визначення Pipeline описують кожен крок, пов'язані ролі, образи контейнерів та змінні середовища. Компоненти Trial часто містять URI артефактів навчання, S3 логи та метрики, які натякають на потік чутливих даних.
|
||||
|
||||
## Моделі, конфігурації кінцевих точок та розгорнуті кінцеві точки
|
||||
```bash
|
||||
@@ -123,12 +123,12 @@ aws sagemaker describe-endpoint-config --endpoint-config-name <cfg> --region $RE
|
||||
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.
|
||||
- S3 URIs артефактів моделі (`PrimaryContainer.ModelDataUrl`) та образи контейнерів для inference.
|
||||
- Налаштування захоплення даних endpoint (S3 bucket, KMS) для можливого log exfil.
|
||||
- Мульти-модельні endpoints, що використовують `S3DataSource` або `ModelPackage` (перевірити на міжакаунтне пакування).
|
||||
- Мережеві конфігурації та security groups, приєднані до endpoints.
|
||||
|
||||
## Feature Store, Data Wrangler & Clarify
|
||||
```bash
|
||||
@@ -143,9 +143,9 @@ 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) або доступними для інших акаунтів.
|
||||
- Онлайн 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
|
||||
@@ -158,41 +158,41 @@ 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 можуть розгортати привілейовані ролі в акаунті.
|
||||
- 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 та мережі
|
||||
## IAM & Networking Considerations
|
||||
|
||||
- Перелічіть IAM policies, приєднані до всіх execution roles (Studio, notebooks, training jobs, pipelines, endpoints).
|
||||
- Перевірте мережеві контексти: subnets, security groups, VPC endpoints. Багато організацій ізолюють training jobs, але забувають обмежити вихідний трафік.
|
||||
- Перегляньте S3 bucket policies, на які посилаються `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig`, щодо зовнішнього доступу.
|
||||
- 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
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-sagemaker-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Персистентність
|
||||
## Persistence
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-sagemaker-persistence/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Пост-експлуатація
|
||||
## Post-Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Несанкціонований доступ
|
||||
## Unauthorized Access
|
||||
|
||||
{{#ref}}
|
||||
../../aws-unauthenticated-enum-access/aws-sagemaker-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Посилання
|
||||
## References
|
||||
|
||||
- [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)
|
||||
|
||||
Reference in New Issue
Block a user