Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake

This commit is contained in:
Translator
2025-10-23 11:00:20 +00:00
parent c9c234d8a6
commit e8c97e9e4e

View File

@@ -2,31 +2,31 @@
{{#include ../../../../banners/hacktricks-training.md}}
## Service Overview
## Dienstübersicht
Amazon SageMaker ist AWS' verwaltete Machine-Learning-Plattform, die Notebooks, Trainings-Infrastruktur, Orchestrierung, Registries und verwaltete Endpoints zusammenführt. Eine Kompromittierung von SageMaker-Ressourcen ermöglicht typischerweise:
Amazon SageMaker ist AWS' verwaltete Machine-Learning-Plattform, die Notebooks, Trainingsinfrastruktur, Orchestrierung, Registries und verwaltete Endpunkte zusammenführt. Eine Kompromittierung von SageMaker-Ressourcen liefert typischerweise:
- Langfristige IAM-Ausführungsrollen mit weitreichendem Zugriff auf S3, ECR, Secrets Manager oder KMS.
- Längerlebige IAM-Ausführungsrollen mit umfangreichem Zugriff auf S3, ECR, Secrets Manager oder KMS.
- Zugriff auf sensible Datensätze, die in S3, EFS oder in Feature Stores gespeichert sind.
- Netzwerk-Footprints innerhalb von VPCs (Studio apps, training jobs, endpoints).
- Hochprivilegierte presigned URLs, die die Konsolen-Authentifizierung umgehen.
- Netzwerk-Fußfeste innerhalb von VPCs (Studio-Apps, Training-Jobs, Endpunkte).
- Hochprivilegierte presigned URLs, die die Console-Authentifizierung umgehen.
Das Verständnis, wie SageMaker aufgebaut ist, ist entscheidend, bevor Sie pivot, persist oder exfiltrate Daten.
Zu verstehen, wie SageMaker aufgebaut ist, ist entscheidend, bevor Sie pivot, persist oder exfiltrate data.
## Core Building Blocks
## Kernbausteine
- **Studio Domains & Spaces**: Web-IDE (JupyterLab, Code Editor, RStudio). Jede Domain hat ein gemeinsames EFS-Dateisystem und eine standardmäßige Ausführungsrolle.
- **Notebook Instances**: Verwaltete EC2-Instanzen für eigenständige Notebooks; verwenden separate Ausführungsrollen.
- **Notebook Instances**: Managed EC2-Instanzen für eigenständige Notebooks; verwenden separate Ausführungsrollen.
- **Training / Processing / Transform Jobs**: Ephemere Container, die Code aus ECR und Daten aus S3 ziehen.
- **Pipelines & Experiments**: Orchestrierte Workflows, die alle Schritte, Inputs und Outputs beschreiben.
- **Pipelines & Experiments**: Orchestrierte Workflows, die alle Schritte, Eingaben und Ausgaben beschreiben.
- **Models & Endpoints**: Verpackte Artefakte, die für Inferenz über HTTPS-Endpunkte bereitgestellt werden.
- **Feature Store & Data Wrangler**: Verwaltete Services für Datenvorbereitung und Feature-Management.
- **Feature Store & Data Wrangler**: Managed Services für Datenaufbereitung und Feature-Management.
- **Autopilot & JumpStart**: Automatisiertes ML und kuratierter Modellkatalog.
- **MLflow Tracking Servers**: Verwaltete MLflow UI/API mit presigned access tokens.
- **MLflow Tracking Servers**: Managed MLflow UI/API mit presigned Zugriffstokens.
Jede Ressource referenziert eine Ausführungsrolle, S3-Standorte, Container-Images und optionale VPC-/KMS-Konfiguration — erfassen Sie alle während der Enumeration.
Jede Ressource verweist auf eine Ausführungsrolle, S3-Standorte, Container-Images und optionale VPC/KMS-Konfiguration — erfasse alle während der enumeration.
## Account & Global Metadata
## Account & globale Metadaten
```bash
REGION=us-east-1
# Portfolio status, used when provisioning Studio resources
@@ -39,7 +39,7 @@ 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
```
Notieren Sie jegliche Cross-Account-Trusts (execution roles oder S3 buckets mit external principals) und grundlegende Einschränkungen wie service control policies (SCPs).
Notiere alle Cross-Account-Trusts (execution roles oder S3 buckets mit external principals) und grundlegende Beschränkungen wie service control policies oder SCPs.
## Studio Domains, Apps & Shared Spaces
```bash
@@ -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
```
Was zu protokollieren ist:
Was aufgezeichnet werden sollte:
- `DomainArn`, `AppSecurityGroupIds`, `SubnetIds`, `DefaultUserSettings.ExecutionRole`.
- Gemountetes EFS (`HomeEfsFileSystemId`) und S3-Home-Verzeichnisse.
- Lifecycle-Skripte (enthalten oft Bootstrap-Zugangsdaten oder zusätzlichen Code zum Pushen/Pullen).
- Gemountete EFS (`HomeEfsFileSystemId`) und S3-Home-Verzeichnisse.
- Lifecycle-Skripte (enthalten oft Bootstrap-Zugangsdaten oder zusätzlichen Code für push/pull).
> [!TIP]
> Presigned Studio URLs können die Authentifizierung umgehen, wenn sie weitreichend gewährt werden.
> Presigned Studio URLs können die Authentifizierung umgehen, wenn sie weitreichend vergeben werden.
## Notebook Instances & Lifecycle Configs
```bash
@@ -76,9 +76,9 @@ 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-Metadaten geben Aufschluss über:
Notebook-Metadaten zeigen:
- Ausführungsrolle (`RoleArn`), direkter Internetzugang vs. nur VPC-Modus.
- Ausführungsrolle (`RoleArn`), direkter Internetzugang vs. VPC-only-Modus.
- S3-Standorte in `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
- Lifecycle-Skripte für credentials oder persistence hooks.
@@ -93,14 +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
```
Prüfen:
Überprüfe:
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` welche ECR-Images bereitgestellt werden.
- `InputDataConfig` & `OutputDataConfig` S3-Buckets, Prefixes und KMS-Keys.
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` bestimmen Netzwerk- oder Verschlüsselungskonfiguration.
- `HyperParameters` können Umgebungsgeheimnisse oder Connection Strings leak.
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` welche ECR images eingesetzt werden.
- `InputDataConfig` & `OutputDataConfig` S3-Buckets, Präfixe und KMS-Schlüssel.
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` die Netzwerk- oder Verschlüsselungskonfiguration bestimmen.
- `HyperParameters` können environment secrets oder connection strings leak.
## Pipelines, Experiments & Trials
## Pipelines, Experimente & Trials
```bash
aws sagemaker list-pipelines --region $REGION
aws sagemaker list-pipeline-executions --pipeline-name <pipeline> --region $REGION
@@ -110,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-Definitionen beschreiben jeden Schritt, die zugehörigen Rollen, Container-Images und Umgebungsvariablen. Trial-Komponenten enthalten oft URIs von Trainingsartefakten, S3-Logs und Metriken, die auf sensible Datenflüsse hinweisen.
Pipeline-Definitionen beschreiben jeden Schritt, die zugehörigen Rollen, Container-Images und Umgebungsvariablen. Trial-Komponenten enthalten häufig Training-Artefakt-URIs, S3-Logs und Metriken, die auf einen sensiblen Datenfluss hinweisen.
## Modelle, Endpoint-Konfigurationen & bereitgestellte Endpoints
## Modelle, Endpoint-Konfigurationen & bereitgestellte Endpunkte
```bash
aws sagemaker list-models --region $REGION
aws sagemaker describe-model --model-name <name> --region $REGION
@@ -125,10 +125,10 @@ aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
```
Fokusbereiche:
- Modell-Artefakt S3-URIs (`PrimaryContainer.ModelDataUrl`) und Inference-Container-Images.
- Konfiguration der Endpoint Data Capture (S3 bucket, KMS) für mögliche log exfil.
- Multi-Model-Endpunkte, die `S3DataSource` oder `ModelPackage` verwenden (auf Cross-Account-Packaging prüfen).
- Netzwerk-Konfigurationen und Sicherheitsgruppen, die an Endpoints angehängt sind.
- Model-Artefakt S3 URIs (`PrimaryContainer.ModelDataUrl`) und inference container images.
- Endpoint data capture configuration (S3 bucket, KMS) für mögliche log exfil.
- Multi-model endpoints using `S3DataSource` or `ModelPackage` (prüfen auf cross-account packaging).
- Netzwerkkonfigurationen und security groups, die an Endpoints angehängt sind.
## Feature Store, Data Wrangler & Clarify
```bash
@@ -141,11 +141,11 @@ 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
```
Sicherheits-Hinweise:
Sicherheitszusammenfassung:
- Online feature stores replizieren Daten in Kinesis; prüfen Sie `OnlineStoreConfig.SecurityConfig.KmsKeyId` und die VPC.
- Data Wrangler flows enthalten häufig JDBC/Redshift-Zugangsdaten oder private Endpunkte.
- Clarify/Model Monitor-Jobs exportieren Daten nach S3, die möglicherweise öffentlich lesbar oder kontoübergreifend zugänglich sind.
- Online feature stores replizieren Daten zu Kinesis; prüfe `OnlineStoreConfig.SecurityConfig.KmsKeyId` und VPC.
- Data Wrangler flows enthalten oft JDBC-/Redshift-Zugangsdaten oder private Endpunkte.
- Clarify/Model Monitor-Jobs exportieren Daten nach S3, die möglicherweise world-readable oder kontoübergreifend zugänglich sind.
## MLflow Tracking Servers, Autopilot & JumpStart
```bash
@@ -158,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-Server speichern Experimente und Artefakte; presigned URLs können alles offenlegen.
- Autopilot-Jobs starten mehrere training jobs — prüfe die Outputs auf versteckte Daten.
- JumpStart reference architectures können privilegierte Rollen im Account bereitstellen.
- MLflow tracking servers speichern Experimente und Artefakte; presigned URLs können alles offenlegen.
- Autopilot-Jobs starten mehrere training jobs — prüfen Sie die Ausgaben auf versteckte Daten.
- JumpStart-Referenzarchitekturen können privilegierte Rollen im Account bereitstellen.
## IAM & Netzwerküberlegungen
- Liste die IAM-Policies auf, die an alle Ausführungsrollen angehängt sind (Studio, notebooks, training jobs, pipelines, endpoints).
- Prüfe Netzwerk-Kontexte: subnets, security groups, VPC endpoints. Viele Organisationen isolieren training jobs, vergessen aber, den ausgehenden Traffic zu beschränken.
- Überprüfe S3-Bucket-Policies, die in `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` referenziert werden, auf externen Zugriff.
- Erfassen Sie IAM-Policies, die an alle Ausführungsrollen angehängt sind (Studio, notebooks, training jobs, pipelines, endpoints).
- Prüfen Sie Netzwerk-Kontexte: subnets, security groups, VPC endpoints. Viele Organisationen isolieren training jobs, vergessen aber, ausgehenden Traffic einzuschränken.
- Überprüfen Sie S3-Bucket-Policies, die in `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` referenziert werden, auf externen Zugriff.
## Privilege Escalation