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

This commit is contained in:
Translator
2025-10-23 10:59:41 +00:00
parent 6276b9d872
commit ff352c1e50

View File

@@ -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)