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

This commit is contained in:
Translator
2025-10-17 15:53:40 +00:00
parent 5c182b98e0
commit 49f843976f
4 changed files with 407 additions and 203 deletions

View File

@@ -2,31 +2,31 @@
{{#include ../../../../banners/hacktricks-training.md}}
## Service-Übersicht
## Service Overview
Amazon SageMaker ist AWS' verwaltete Machine-Learning-Plattform, die Notebooks, Trainingsinfrastruktur, Orchestrierung, Registries und verwaltete Endpunkte zusammenführt. Eine Kompromittierung von SageMaker-Ressourcen verschafft typischerweise:
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:
- Langfristige IAM-Ausführungsrollen mit weitreichendem Zugriff auf S3, ECR, Secrets Manager oder KMS.
- Zugriff auf sensible Datensätze, die in S3, EFS oder in Feature Stores gespeichert sind.
- Netzwerk-Fußfeste innerhalb von VPCs (Studio apps, training jobs, endpoints).
- Hochprivilegierte presigned URLs, die die Console-Authentifizierung umgehen.
- Netzwerk-Footprints innerhalb von VPCs (Studio apps, training jobs, endpoints).
- Hochprivilegierte presigned URLs, die die Konsolen-Authentifizierung umgehen.
Zu verstehen, wie SageMaker aufgebaut ist, ist entscheidend, bevor Sie pivot, persist oder exfiltrate Daten.
Das Verständnis, wie SageMaker aufgebaut ist, ist entscheidend, bevor Sie pivot, persist oder exfiltrate Daten.
## Core Building Blocks
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Jede Domain hat ein gemeinsames EFS-Dateisystem und eine standardmäßige Ausführungsrolle.
- **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.
- **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.
- **Models & Endpoints**: Verpackte Artefakte, die für Inference über HTTPS-Endpoints bereitgestellt werden.
- **Feature Store & Data Wrangler**: Verwaltete Services zur Datenaufbereitung und Feature-Verwaltung.
- **Models & Endpoints**: Verpackte Artefakte, die für Inferenz über HTTPS-Endpunkte bereitgestellt werden.
- **Feature Store & Data Wrangler**: Verwaltete Services r Datenvorbereitung und Feature-Management.
- **Autopilot & JumpStart**: Automatisiertes ML und kuratierter Modellkatalog.
- **MLflow Tracking Servers**: Verwaltetes MLflow UI/API mit presigned access tokens.
- **MLflow Tracking Servers**: Verwaltete MLflow UI/API mit presigned access tokens.
Jede Ressource referenziert eine Ausführungsrolle, S3-Standorte, Container-Images und optional VPC/KMS-Konfigurationerfassen Sie alle während der enumeration.
Jede Ressource referenziert eine Ausführungsrolle, S3-Standorte, Container-Images und optionale VPC-/KMS-Konfigurationerfassen Sie alle während der Enumeration.
## Konto- & globale Metadaten
## Account & Global Metadata
```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
```
Notiere jegliche cross-account trust (execution roles oder S3 buckets mit external principals) und grundlegende Einschränkungen wie service control policies oder SCPs.
Notieren Sie jegliche Cross-Account-Trusts (execution roles oder S3 buckets mit external principals) und grundlegende Einschränkungen wie service control policies (SCPs).
## Studio Domains, Apps & Shared Spaces
```bash
@@ -60,23 +60,23 @@ 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 erfassen:
Was zu protokollieren ist:
- `DomainArn`, `AppSecurityGroupIds`, `SubnetIds`, `DefaultUserSettings.ExecutionRole`.
- Eingehängte EFS (`HomeEfsFileSystemId`) und S3-Home-Verzeichnisse.
- Lifecycle-Skripte (enthalten oft Bootstrap-Anmeldeinformationen oder zusätzlichen Push-/Pull-Code).
- Gemountetes EFS (`HomeEfsFileSystemId`) und S3-Home-Verzeichnisse.
- Lifecycle-Skripte (enthalten oft Bootstrap-Zugangsdaten oder zusätzlichen Code zum Pushen/Pullen).
> [!TIP]
> Vorgesignierte Studio-URLs können die Authentifizierung umgehen, wenn sie breit vergeben werden.
> Presigned Studio URLs können die Authentifizierung umgehen, wenn sie weitreichend gewährt werden.
## Notebook-Instanzen & Lifecycle-Konfigurationen
## 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
```
Notebook-Metadaten offenbaren:
Notebook-Metadaten geben Aufschluss über:
- Ausführungsrolle (`RoleArn`), direkter Internetzugang vs. nur VPC-Modus.
- S3-Standorte in `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
@@ -96,11 +96,11 @@ aws sagemaker describe-transform-job --transform-job-name <job> --region $REGION
Prüfen:
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` welche ECR-Images bereitgestellt werden.
- `InputDataConfig` & `OutputDataConfig` S3-Buckets, Prefixes und KMS-Schlüssel.
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` bestimmen die Netzwerk- oder Verschlüsselungs-Konfiguration.
- `HyperParameters` können Umgebungsgeheimnisse oder Connection-Strings leak.
- `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.
## Pipelines, Experimente & Trials
## 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-Definitionen beschreiben jeden Schritt, zugeordnete Rollen, Container-Images und Umgebungsvariablen. Trial-Komponenten enthalten häufig Trainings-Artefakt-URIs, 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 oft URIs von Trainingsartefakten, S3-Logs und Metriken, die auf sensible Datenflüsse hinweisen.
## Modelle, Endpoint-Konfigurationen & bereitgestellte Endpoints
```bash
@@ -125,10 +125,10 @@ aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
```
Fokusbereiche:
- S3-URIs der Model-Artefakte (`PrimaryContainer.ModelDataUrl`) und Inference-Container-Images.
- Konfiguration von Endpoint Data Capture (S3 bucket, KMS) für mögliche Log exfil.
- Multi-model Endpoints, die `S3DataSource` oder `ModelPackage` verwenden (auf cross-account packaging prüfen).
- Netzwerkkonfigurationen und security groups, die an Endpoints angehängt sind.
- 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.
## Feature Store, Data Wrangler & Clarify
```bash
@@ -143,9 +143,9 @@ aws sagemaker list-model-monitoring-schedule --region $REGION
```
Sicherheits-Hinweise:
- Online feature stores replizieren Daten zu Kinesis; überprüfe `OnlineStoreConfig.SecurityConfig.KmsKeyId` und VPC.
- Data Wrangler flows enthalten häufig eingebettete JDBC/Redshift-Zugangsdaten oder private Endpunkte.
- Clarify/Model Monitor jobs exportieren Daten nach S3, die möglicherweise weltweit lesbar oder kontenübergreifend zugänglich sind.
- 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.
## MLflow Tracking Servers, Autopilot & JumpStart
```bash
@@ -158,14 +158,14 @@ 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 servers speichern Experimente und Artefakte; presigned URLs können alles exponieren.
- Autopilot jobs starten mehrere training jobs — enumeriere Outputs nach versteckten Daten.
- JumpStart reference architectures können privilegierte Rollen im Konto bereitstellen.
- 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.
## IAM & Netzwerküberlegungen
- Ermittle IAM-Policies, die an alle Ausführungsrollen angehängt sind (Studio, notebooks, training jobs, pipelines, endpoints).
- Überprüfe Netzwerkkontexte: subnets, security groups, VPC endpoints. Viele Organisationen isolieren training jobs, vergessen jedoch, ausgehenden Traffic zu beschränken.
- 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.
## Privilege Escalation