mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 19:11:41 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake
This commit is contained in:
@@ -2,29 +2,29 @@
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Visão geral do serviço
|
||||
## Visão Geral do Serviço
|
||||
|
||||
Amazon SageMaker é a plataforma gerenciada de machine learning da AWS que integra notebooks, infraestrutura de treinamento, orquestração, registries e endpoints gerenciados. Um comprometimento de recursos do SageMaker normalmente fornece:
|
||||
|
||||
- Long-lived IAM execution roles com amplo acesso a S3, ECR, Secrets Manager ou KMS.
|
||||
- Roles de execução IAM de longa duração com amplo acesso a S3, ECR, Secrets Manager ou KMS.
|
||||
- Acesso a datasets sensíveis armazenados em S3, EFS ou dentro de feature stores.
|
||||
- Network footholds dentro de VPCs (Studio apps, training jobs, endpoints).
|
||||
- High-privilege presigned URLs que contornam a autenticação do console.
|
||||
- High-privilege presigned URLs que bypassam a autenticação do console.
|
||||
|
||||
Entender como o SageMaker é montado é crucial antes de pivot, persist ou exfiltrate dados.
|
||||
Entender como o SageMaker é montado é chave antes de pivot, persist, or exfiltrate data.
|
||||
|
||||
## Componentes principais
|
||||
## Core Building Blocks
|
||||
|
||||
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Cada domain tem um sistema de arquivos EFS compartilhado e um default execution role.
|
||||
- **Notebook Instances**: Instâncias EC2 gerenciadas para notebooks standalone; usam execution roles separados.
|
||||
- **Training / Processing / Transform Jobs**: Contêineres efêmeros que puxam código do ECR e dados do S3.
|
||||
- **Pipelines & Experiments**: Workflows orquestrados que descrevem todos os passos, entradas e saídas.
|
||||
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). Cada domain tem um sistema de arquivos EFS compartilhado e execution role padrão.
|
||||
- **Notebook Instances**: Instâncias EC2 gerenciadas para notebooks standalone; usam execution roles separadas.
|
||||
- **Training / Processing / Transform Jobs**: Containers efêmeros que puxam código de ECR e dados de S3.
|
||||
- **Pipelines & Experiments**: Workflows orquestrados que descrevem todos os passos, inputs e outputs.
|
||||
- **Models & Endpoints**: Artefatos empacotados implantados para inferência via endpoints HTTPS.
|
||||
- **Feature Store & Data Wrangler**: Serviços gerenciados para preparação de dados e gerenciamento de features.
|
||||
- **Autopilot & JumpStart**: ML automatizado e catálogo de modelos curados.
|
||||
- **MLflow Tracking Servers**: UI/API MLflow gerenciado com presigned access tokens.
|
||||
- **Autopilot & JumpStart**: ML automatizado e catálogo de modelos curado.
|
||||
- **MLflow Tracking Servers**: UI/API do MLflow gerenciada com presigned access tokens.
|
||||
|
||||
Cada recurso referencia um execution role, localizações S3, imagens de container e configuração opcional VPC/KMS — capture todos durante a enumeração.
|
||||
Every resource references an execution role, S3 locations, container images, and optional VPC/KMS configuration—capture all of them during enumeration.
|
||||
|
||||
## Account & Global Metadata
|
||||
```bash
|
||||
@@ -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
|
||||
```
|
||||
Anote qualquer confiança entre contas (roles de execução ou buckets S3 com entidades externas) e restrições básicas, como service control policies ou SCPs.
|
||||
Anote qualquer confiança entre contas (cross-account) (execution roles ou S3 buckets com principals externos) e restrições básicas, como service control policies ou SCPs.
|
||||
|
||||
## Domínios do Studio, Apps e Shared Spaces
|
||||
## Domínios, Apps e Shared Spaces do Studio
|
||||
```bash
|
||||
aws sagemaker list-domains --region $REGION
|
||||
aws sagemaker describe-domain --domain-id <domain-id> --region $REGION
|
||||
@@ -63,26 +63,26 @@ aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <n
|
||||
O que registrar:
|
||||
|
||||
- `DomainArn`, `AppSecurityGroupIds`, `SubnetIds`, `DefaultUserSettings.ExecutionRole`.
|
||||
- EFS montado (`HomeEfsFileSystemId`) e diretórios home do S3.
|
||||
- scripts de lifecycle (frequentemente contêm credenciais de bootstrap ou código extra para push/pull).
|
||||
- EFS montado (`HomeEfsFileSystemId`) e diretórios home no S3.
|
||||
- Scripts de ciclo de vida (frequentemente contêm credenciais de bootstrap ou push/pull de código adicional).
|
||||
|
||||
> [!TIP]
|
||||
> URLs de Studio pré-assinadas podem contornar a autenticação se concedidas amplamente.
|
||||
> Presigned Studio URLs podem contornar a autenticação se forem concedidos amplamente.
|
||||
|
||||
## Instâncias de Notebook & Configurações de Lifecycle
|
||||
## Instâncias de Notebook e Configurações de Ciclo de Vida
|
||||
```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
|
||||
```
|
||||
Metadados do notebook revelam:
|
||||
Os metadados do notebook revelam:
|
||||
|
||||
- Função de execução (`RoleArn`), acesso direto à internet vs. modo somente VPC.
|
||||
- Locais S3 em `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
|
||||
- Função de execução (`RoleArn`), acesso direto à Internet vs. modo apenas VPC.
|
||||
- Localizações S3 em `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`.
|
||||
- Scripts de ciclo de vida para credenciais ou ganchos de persistência.
|
||||
|
||||
## Treinamento, Processamento, Transform & Batch Jobs
|
||||
## Treinamento, Processamento, Transformação e Tarefas em Lote
|
||||
```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
|
||||
```
|
||||
Inspecione:
|
||||
Analise:
|
||||
|
||||
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` – quais imagens ECR estão implantadas.
|
||||
- `InputDataConfig` & `OutputDataConfig` – buckets S3, prefixos, e chaves KMS.
|
||||
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` – determinar a postura de rede ou de criptografia.
|
||||
- `HyperParameters` may leak segredos de ambiente ou strings de conexão.
|
||||
- `InputDataConfig` & `OutputDataConfig` – S3 buckets, prefixes e KMS keys.
|
||||
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` – determinam a postura de rede ou de criptografia.
|
||||
- `HyperParameters` podem leak segredos de ambiente ou connection strings.
|
||||
|
||||
## Pipelines, Experiments & Trials
|
||||
```bash
|
||||
@@ -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
|
||||
```
|
||||
As definições de pipeline descrevem cada etapa, as funções associadas, imagens de contêiner e variáveis de ambiente. Componentes de Trial frequentemente contêm URIs de artefatos de treinamento, logs do S3 e métricas que sugerem fluxo de dados sensíveis.
|
||||
As definições de pipeline detalham cada etapa, as funções associadas, as imagens de contêiner e as variáveis de ambiente. Componentes de trial frequentemente contêm URIs de artefatos de treinamento, logs do S3 e métricas que sugerem fluxo de dados sensíveis.
|
||||
|
||||
## Modelos, Configurações de Endpoint & Endpoints Implantados
|
||||
```bash
|
||||
@@ -126,9 +126,9 @@ aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
|
||||
Áreas de foco:
|
||||
|
||||
- URIs S3 dos artefatos de modelo (`PrimaryContainer.ModelDataUrl`) e imagens de container de inferência.
|
||||
- Configuração de captura de dados do endpoint (S3 bucket, KMS) para possível log exfil.
|
||||
- Configuração de captura de dados de endpoint (S3 bucket, KMS) para possível exfiltração de logs.
|
||||
- Endpoints multi-model usando `S3DataSource` ou `ModelPackage` (verificar empacotamento entre contas).
|
||||
- Configurações de rede e security groups anexados aos endpoints.
|
||||
- Configurações de rede e security groups associados aos endpoints.
|
||||
|
||||
## 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
|
||||
```
|
||||
Principais pontos de segurança:
|
||||
Pontos de segurança:
|
||||
|
||||
- Online feature stores replicam dados para Kinesis; verifique `OnlineStoreConfig.SecurityConfig.KmsKeyId` e VPC.
|
||||
- Data Wrangler flows frequentemente incorporam credenciais JDBC/Redshift ou endpoints privados.
|
||||
- Jobs Clarify/Model Monitor exportam dados para S3 que podem ser legíveis publicamente (world-readable) ou acessíveis entre contas.
|
||||
- Fluxos do Data Wrangler frequentemente incorporam credenciais JDBC/Redshift ou endpoints privados.
|
||||
- Jobs do Clarify/Model Monitor exportam dados para S3 que podem ser legíveis publicamente ou acessíveis entre contas.
|
||||
|
||||
## MLflow Tracking Servers, Autopilot & JumpStart
|
||||
```bash
|
||||
@@ -158,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 store experiments and artefacts; URLs pré-assinadas podem expor tudo.
|
||||
- Autopilot jobs iniciam múltiplos training jobs — enumerate outputs em busca de dados ocultos.
|
||||
- JumpStart reference architectures podem implantar funções privilegiadas na conta.
|
||||
- MLflow tracking servers armazenam experimentos e artefatos; presigned URLs podem expor tudo.
|
||||
- Autopilot jobs disparam múltiplos training jobs — enumere os outputs em busca de dados ocultos.
|
||||
- JumpStart reference architectures podem implantar roles privilegiados na conta.
|
||||
|
||||
## Considerações de IAM & Rede
|
||||
## IAM & Networking Considerations
|
||||
|
||||
- Enumerate políticas IAM anexadas a todas as execution roles (Studio, notebooks, training jobs, pipelines, endpoints).
|
||||
- Verifique os contextos de rede: subnets, security groups, VPC endpoints. Muitas organizações isolam training jobs mas esquecem de restringir o tráfego de saída.
|
||||
- Revise políticas de bucket S3 referenciadas em `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` quanto ao acesso externo.
|
||||
- Enumere políticas IAM anexadas a todos os roles de execução (Studio, notebooks, training jobs, pipelines, endpoints).
|
||||
- Verifique contextos de rede: subnets, security groups, VPC endpoints. Muitas organizações isolam training jobs mas esquecem de restringir o tráfego de saída.
|
||||
- Revise políticas de bucket S3 referenciadas em `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig` para acesso externo.
|
||||
|
||||
## Escalada de Privilégios
|
||||
## Privilege Escalation
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-sagemaker-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Persistência
|
||||
## Persistence
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-sagemaker-persistence/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Pós-Exploração
|
||||
## Post-Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Acesso Não Autorizado
|
||||
## Unauthorized Access
|
||||
|
||||
{{#ref}}
|
||||
../../aws-unauthenticated-enum-access/aws-sagemaker-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Referências
|
||||
## References
|
||||
|
||||
- [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