mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-28 05:33:10 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user