mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake
This commit is contained in:
@@ -1,32 +1,32 @@
|
||||
# AWS - SageMaker Enumération
|
||||
# AWS - SageMaker Enum
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Présentation du service
|
||||
## Aperçu du service
|
||||
|
||||
Amazon SageMaker est la plateforme de machine learning gérée par AWS qui relie notebooks, infrastructure de training, orchestration, registries et endpoints gérés. Une compromission des ressources SageMaker fournit typiquement :
|
||||
Amazon SageMaker est la plateforme de machine learning gérée d'AWS qui relie notebooks, infrastructure de training, orchestration, registries et endpoints managés. Une compromission des ressources SageMaker fournit typiquement :
|
||||
|
||||
- Des execution roles IAM longue durée avec un large accès à S3, ECR, Secrets Manager, ou KMS.
|
||||
- L'accès à des jeux de données sensibles stockés dans S3, EFS, ou à l'intérieur de feature stores.
|
||||
- Des points d'appui réseau à l'intérieur de VPCs (Studio apps, training jobs, endpoints).
|
||||
- Des presigned URLs à privilèges élevés qui contournent l'authentification console.
|
||||
- Rôles d'exécution IAM à longue durée de vie avec un large accès à S3, ECR, Secrets Manager ou KMS.
|
||||
- Accès à des jeux de données sensibles stockés dans S3, EFS, ou dans des feature stores.
|
||||
- Points d'ancrage réseau à l'intérieur des VPCs (Studio apps, training jobs, endpoints).
|
||||
- Presigned URLs à haut niveau de privilèges qui contournent l'authentification console.
|
||||
|
||||
Comprendre comment SageMaker est assemblé est essentiel avant you pivot, persist, or exfiltrate data.
|
||||
Comprendre comment SageMaker est assemblé est clé avant de pivot, persist, or exfiltrate data.
|
||||
|
||||
## Composants principaux
|
||||
|
||||
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Chaque domain dispose d'un système de fichiers EFS partagé et d'un execution role par défaut.
|
||||
- **Notebook Instances**: Instances EC2 gérées pour notebooks autonomes ; utilisent des execution roles séparés.
|
||||
- **Training / Processing / Transform Jobs**: Conteneurs éphémères qui pull du code depuis ECR et des données depuis S3.
|
||||
- **Pipelines & Experiments**: Workflows orchestrés décrivant toutes les étapes, les entrées et les sorties.
|
||||
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Chaque domain dispose d'un système de fichiers EFS partagé et d'un rôle d'exécution par défaut.
|
||||
- **Notebook Instances**: Instances EC2 managées pour notebooks autonomes ; utilisent des rôles d'exécution séparés.
|
||||
- **Training / Processing / Transform Jobs**: Conteneurs éphémères qui récupèrent le code depuis ECR et les données depuis S3.
|
||||
- **Pipelines & Experiments**: Workflows orchestrés décrivant toutes les étapes, entrées et sorties.
|
||||
- **Models & Endpoints**: Artefacts packagés déployés pour l'inférence via des endpoints HTTPS.
|
||||
- **Feature Store & Data Wrangler**: Services gérés pour la préparation des données et la gestion des features.
|
||||
- **Autopilot & JumpStart**: ML automatisé et catalogue de modèles sélectionnés.
|
||||
- **MLflow Tracking Servers**: UI/API MLflow gérées avec des presigned access tokens.
|
||||
- **Feature Store & Data Wrangler**: Services managés pour la préparation des données et la gestion des features.
|
||||
- **Autopilot & JumpStart**: ML automatisé et catalogue de modèles curated.
|
||||
- **MLflow Tracking Servers**: UI/API MLflow managée avec tokens d'accès presigned.
|
||||
|
||||
Chaque ressource référence un execution role, des emplacements S3, des images de conteneur, et une configuration VPC/KMS optionnelle — capturez-les tous pendant l'énumération.
|
||||
Chaque ressource référence un rôle d'exécution, des emplacements S3, des images de conteneur et une configuration optionnelle VPC/KMS — capturez-les tous pendant enumeration.
|
||||
|
||||
## Métadonnées du compte et globales
|
||||
## Compte et métadonnées globales
|
||||
```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
|
||||
```
|
||||
Notez toute relation de confiance inter-comptes (execution roles ou S3 buckets avec des external principals) et les restrictions de base telles que service control policies ou SCPs.
|
||||
Notez toute cross-account trust (execution roles ou S3 buckets avec external principals) et les restrictions de base telles que service control policies ou SCPs.
|
||||
|
||||
## Studio Domains, Apps & Shared Spaces
|
||||
## Domaines Studio, Applications & Espaces partagés
|
||||
```bash
|
||||
aws sagemaker list-domains --region $REGION
|
||||
aws sagemaker describe-domain --domain-id <domain-id> --region $REGION
|
||||
@@ -63,11 +63,11 @@ aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <n
|
||||
À enregistrer :
|
||||
|
||||
- `DomainArn`, `AppSecurityGroupIds`, `SubnetIds`, `DefaultUserSettings.ExecutionRole`.
|
||||
- EFS monté (`HomeEfsFileSystemId`) et répertoires home S3.
|
||||
- Lifecycle scripts (contiennent souvent des identifiants bootstrap ou du code supplémentaire push/pull).
|
||||
- EFS montés (`HomeEfsFileSystemId`) et répertoires home S3.
|
||||
- Scripts de lifecycle (contiennent souvent des identifiants bootstrap ou effectuent des opérations push/pull de code supplémentaire).
|
||||
|
||||
> [!TIP]
|
||||
> Les Presigned Studio URLs peuvent contourner l'authentification si leur accès est trop large.
|
||||
> Presigned Studio URLs peuvent contourner l'authentification si elles sont accordées de manière trop large.
|
||||
|
||||
## Notebook Instances & Lifecycle Configs
|
||||
```bash
|
||||
@@ -76,13 +76,13 @@ 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
|
||||
```
|
||||
Les métadonnées du notebook révèlent :
|
||||
Les métadonnées du Notebook révèlent :
|
||||
|
||||
- Rôle d'exécution (`RoleArn`), accès direct à Internet vs VPC-only.
|
||||
- Rôle d'exécution (`RoleArn`), accès direct à Internet vs. mode VPC-only.
|
||||
- Emplacements S3 dans `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
|
||||
- Scripts de lifecycle pour credentials ou hooks de persistance.
|
||||
|
||||
## Training, Processing, Transform & Batch Jobs
|
||||
## Tâches Training, Processing, Transform & Batch
|
||||
```bash
|
||||
aws sagemaker list-training-jobs --region $REGION
|
||||
aws sagemaker describe-training-job --training-job-name <job> --region $REGION
|
||||
@@ -93,12 +93,12 @@ 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
|
||||
```
|
||||
Scrutez :
|
||||
Examinez :
|
||||
|
||||
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` – quelles images ECR sont déployées.
|
||||
- `InputDataConfig` & `OutputDataConfig` – les buckets S3, les préfixes et les clés KMS.
|
||||
- `InputDataConfig` & `OutputDataConfig` – buckets S3, préfixes et clés KMS.
|
||||
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` – déterminent la posture réseau ou de chiffrement.
|
||||
- `HyperParameters` peuvent leak des secrets d'environnement ou des chaînes de connexion.
|
||||
- `HyperParameters` peuvent leak des secrets d'environnement ou des connection strings.
|
||||
|
||||
## Pipelines, Experiments & Trials
|
||||
```bash
|
||||
@@ -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
|
||||
```
|
||||
Les définitions de pipeline détaillent chaque étape, les rôles associés, les images de conteneurs et les variables d'environnement. Les Trial components contiennent souvent des URI d'artefacts d'entraînement, des logs S3 et des métriques qui laissent entrevoir le flux de données sensibles.
|
||||
Les définitions de pipeline détaillent chaque étape, les rôles associés, les images de conteneurs et les variables d'environnement. Les composants d'essai contiennent souvent des URI d'artefacts d'entraînement, des logs S3 et des métriques qui suggèrent un flux de données sensibles.
|
||||
|
||||
## Modèles, configurations des points de terminaison et points de terminaison déployés
|
||||
## Modèles, configurations de points de terminaison et points de terminaison déployés
|
||||
```bash
|
||||
aws sagemaker list-models --region $REGION
|
||||
aws sagemaker describe-model --model-name <name> --region $REGION
|
||||
@@ -123,9 +123,11 @@ 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
|
||||
```
|
||||
- URIs S3 des artefacts de modèle (`PrimaryContainer.ModelDataUrl`) et images des conteneurs d'inférence.
|
||||
Points d'attention :
|
||||
|
||||
- URI S3 des artefacts de modèle (`PrimaryContainer.ModelDataUrl`) et images de conteneur d'inférence.
|
||||
- Configuration de capture de données des endpoints (S3 bucket, KMS) pour une éventuelle exfiltration de logs.
|
||||
- Endpoints multi-modèles utilisant `S3DataSource` ou `ModelPackage` (vérifier le packaging cross-account).
|
||||
- Endpoints multi-modèles utilisant `S3DataSource` ou `ModelPackage` (vérifier le packaging inter-compte).
|
||||
- Configurations réseau et groupes de sécurité attachés aux endpoints.
|
||||
|
||||
## Feature Store, Data Wrangler & Clarify
|
||||
@@ -139,13 +141,13 @@ 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
|
||||
```
|
||||
Points de sécurité :
|
||||
Points clés de sécurité :
|
||||
|
||||
- Online feature stores répliquent des données vers Kinesis ; vérifiez `OnlineStoreConfig.SecurityConfig.KmsKeyId` et VPC.
|
||||
- Data Wrangler flows intègrent souvent des identifiants JDBC/Redshift ou des points de terminaison privés.
|
||||
- Les jobs Clarify/Model Monitor exportent des données vers S3 qui peuvent être lisibles publiquement ou accessibles par d'autres comptes.
|
||||
- Online feature stores répliquent des données vers Kinesis ; vérifiez `OnlineStoreConfig.SecurityConfig.KmsKeyId` et la VPC.
|
||||
- Data Wrangler flows intègrent souvent des identifiants JDBC/Redshift ou des endpoints privés.
|
||||
- Clarify/Model Monitor jobs exportent des données vers S3 qui peuvent être lisibles publiquement ou accessibles entre comptes.
|
||||
|
||||
## Serveurs de tracking MLflow, Autopilot & JumpStart
|
||||
## MLflow Tracking Servers, Autopilot & JumpStart
|
||||
```bash
|
||||
aws sagemaker list-mlflow-tracking-servers --region $REGION
|
||||
aws sagemaker describe-mlflow-tracking-server --tracking-server-name <name> --region $REGION
|
||||
@@ -156,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 tracking servers stockent des expériences et des artefacts ; les URLs pré-signées peuvent tout exposer.
|
||||
- Les jobs Autopilot lancent plusieurs training jobs — énumérez les sorties pour trouver des données cachées.
|
||||
- Les architectures de référence JumpStart peuvent déployer des rôles privilégiés dans le compte.
|
||||
- MLflow tracking servers stockent des experiments et des artefacts ; les URLs pré-signées (presigned URLs) peuvent tout exposer.
|
||||
- Les jobs Autopilot lancent plusieurs training jobs — énumérez les sorties pour détecter des données cachées.
|
||||
- Les reference architectures JumpStart peuvent déployer des rôles privilégiés dans le compte.
|
||||
|
||||
## IAM & Networking Considerations
|
||||
## Considérations IAM & Réseau
|
||||
|
||||
- Énumérez les politiques IAM attachées à tous les rôles d'exécution (Studio, notebooks, training jobs, pipelines, endpoints).
|
||||
- Vérifiez le contexte réseau : subnets, security groups, VPC endpoints. De nombreuses organisations isolent les training jobs mais oublient de restreindre le trafic sortant.
|
||||
- Passez en revue les bucket policies S3 référencées dans `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` pour détecter un accès externe.
|
||||
- Vérifiez les contextes réseau : subnets, security groups, VPC endpoints. De nombreuses organisations isolent les training jobs mais oublient de restreindre le trafic sortant.
|
||||
- Passez en revue les politiques de bucket S3 référencées dans `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` pour l'accès externe.
|
||||
|
||||
## Privilege Escalation
|
||||
## Escalade de privilèges
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-sagemaker-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Persistence
|
||||
## Persistance
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-sagemaker-persistence/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Post-Exploitation
|
||||
## Post-exploitation
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Unauthorized Access
|
||||
## Accès non autorisé
|
||||
|
||||
{{#ref}}
|
||||
../../aws-unauthenticated-enum-access/aws-sagemaker-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
## References
|
||||
## Références
|
||||
|
||||
- [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