Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-10-17 15:54:17 +00:00
parent db6c0646f8
commit 07fc5d0246
4 changed files with 419 additions and 214 deletions

View File

@@ -4,29 +4,29 @@
## Огляд сервісу
Amazon SageMaker — керований AWS сервіс для машинного навчання, який поєднує блокноти, інфраструктуру для тренування, оркестрацію, реєстри та керовані 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.
- Мережеві плацдарми всередині VPC (Studio apps, training jobs, endpoints).
- Високопривілейовані presigned URLs, які обходять аутентифікацію консолі.
- Тривалого життя 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 або здійснювати ексфільтрацію даних.
Розуміння того, як зібрано SageMaker, є ключовим перед тим, як pivot, persist або exfiltrate дані.
## 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**: Оркестровані робочі процеси, які описують усі кроки, вхідні та вихідні дані.
- **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**: Керовані сервіси для підготовки даних та управління фічами.
- **Autopilot & JumpStart**: Автоматизоване ML та кураторований каталог моделей.
- **MLflow Tracking Servers**: Керований MLflow UI/API з presigned токенами доступу.
- **Feature Store & Data Wrangler**: Керовані сервіси для підготовки даних та управління features.
- **Autopilot & JumpStart**: Автоматизований ML та кураторований catalogue моделей.
- **MLflow Tracking Servers**: Керований MLflow UI/API з presigned access tokens.
Кожен ресурс посилається на execution role, S3 локації, образи контейнерів та опціональні VPC/KMS налаштування — фіксуйте всі ці деталі під час енумерації.
Кожний ресурс посилається на execution role, S3 locations, container images та опціональну VPC/KMS конфігураціюзафіксуйте всі з них під час enumeration.
## Обліковий запис та глобальні метадані
## Account & Global Metadata
```bash
REGION=us-east-1
# Portfolio status, used when provisioning Studio resources
@@ -39,9 +39,9 @@ aws sagemaker list-models --region $REGION --query 'Models[].ExecutionRoleArn' -
# 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.
Зверніть увагу на будь-які cross-account trust (execution roles або S3 buckets з external principals) та базові обмеження, такі як service control policies або SCPs.
## Studio Domains, Apps & Shared Spaces
## Studio домени, додатки та спільні простори
```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 виявляють:
- Роль виконання (`RoleArn`), прямий доступ до Інтернету або режим лише VPC.
- Розташування S3 у `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
- Скрипти життєвого циклу для облікових даних або хуків персистентності.
- Роль виконання (`RoleArn`), прямий доступ до інтернету проти режиму VPC-only.
- Місця розташування S3 у `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
- Скрипти життєвого циклу для облікових даних або хуків персистенції.
## Навчання, обробка, трансформація та пакетні завдання
```bash
@@ -93,12 +93,14 @@ aws sagemaker describe-processing-job --processing-job-name <job> --region $REGI
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 ключі.
Ретельно перевірте:
- `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 <pipeline> --region $REGION
@@ -108,9 +110,9 @@ 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, які натякають на потік чутливих даних.
Визначення pipeline описують кожен крок, пов'язані ролі, образи контейнерів та змінні середовища. Компоненти trial часто містять URI артефактів навчання, S3 логи та метрики, які можуть вказувати на потік конфіденційних даних.
## Моделі, конфігурації Endpoint та розгорнуті Endpoint-и
## Моделі, конфігурації кінцевих точок та розгорнуті кінцеві точки
```bash
aws sagemaker list-models --region $REGION
aws sagemaker describe-model --model-name <name> --region $REGION
@@ -121,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 URI артефактів моделі (`PrimaryContainer.ModelDataUrl`) та образи контейнерів для inference.
- Endpoint data capture configuration (S3 bucket, KMS) для можливої ексфільтрації логів.
- Multi-model endpoints, що використовують `S3DataSource` або `ModelPackage` (перевірити на cross-account packaging).
- Network configs та security groups, прикріплені до endpoints.
- Артефакти моделі 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
@@ -141,9 +143,9 @@ 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, які можуть бути доступні для читання всім або доступні з інших акаунтів.
- Online feature stores реплікують дані в Kinesis; перевірте `OnlineStoreConfig.SecurityConfig.KmsKeyId` та VPC.
- Потоки Data Wrangler часто вбудовують облікові дані JDBC/Redshift або приватні кінцеві точки.
- Завдання Clarify/Model Monitor експортують дані в S3, які можуть бути публічно читабельними (world-readable) або доступними для інших акаунтів.
## MLflow Tracking Servers, Autopilot & JumpStart
```bash
@@ -156,15 +158,15 @@ 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 можуть розгортати привілейовані ролі в обліковому записі.
- Сервери MLflow для відстеження зберігають експерименти та артефакти; presigned URLs можуть розкрити все.
- Завдання Autopilot запускають кілька training jobs — перераховуйте outputs у пошуках прихованих даних.
- Еталонні архітектури JumpStart можуть розгортати привілейовані ролі в акаунті.
## IAM & Мережеві міркування
## Міркування щодо IAM та мережі
- Перелічіть IAM-політики, приєднані до всіх ролей виконання (Studio, notebooks, training jobs, pipelines, endpoints).
- Перелічіть IAM policies, приєднані до всіх execution roles (Studio, notebooks, training jobs, pipelines, endpoints).
- Перевірте мережеві контексти: subnets, security groups, VPC endpoints. Багато організацій ізолюють training jobs, але забувають обмежити вихідний трафік.
- Перегляньте політики S3 bucket, на які посилаються в `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig`, щодо зовнішнього доступу.
- Перегляньте S3 bucket policies, на які посилаються `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig`, щодо зовнішнього доступу.
## Підвищення привілеїв
@@ -178,7 +180,7 @@ aws sagemaker list-jumpstart-script-resources --region $REGION
../../aws-persistence/aws-sagemaker-persistence/README.md
{{#endref}}
## Постексплуатація
## Пост-експлуатація
{{#ref}}
../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md