AWS - SageMaker Enum
Reading time: 8 minutes
tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:
HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
서비스 개요
Amazon SageMaker는 AWS의 관리형 머신러닝 플랫폼으로, 노트북, 학습 인프라, 오케스트레이션, 레지스트리 및 관리형 엔드포인트를 통합합니다. SageMaker 리소스가 침해되면 일반적으로 다음을 확보할 수 있습니다:
- 광범위한 S3, ECR, Secrets Manager 또는 KMS 접근 권한을 가진 장기간 유효한 IAM 실행 역할.
- S3, EFS 또는 feature stores에 저장된 민감한 데이터셋에 대한 접근.
- VPC 내부의 네트워크 발판(Studio apps, training jobs, endpoints).
- 콘솔 인증을 우회하는 높은 권한의 presigned URLs.
pivot, persist, 또는 데이터를 exfiltrate하기 전에 SageMaker가 어떻게 구성되는지 이해하는 것이 핵심입니다.
핵심 구성 요소
- Studio Domains & Spaces: Web IDE (JupyterLab, Code Editor, RStudio). 각 도메인에는 공유 EFS 파일 시스템과 기본 실행 역할이 있습니다.
- Notebook Instances: 독립형 노트북용 관리되는 EC2 인스턴스; 별도의 실행 역할을 사용합니다.
- Training / Processing / Transform Jobs: ECR에서 코드를, S3에서 데이터를 가져오는 임시 컨테이너.
- Pipelines & Experiments: 모든 단계, 입력 및 출력을 설명하는 오케스트레이션된 워크플로.
- Models & Endpoints: HTTPS 엔드포인트를 통해 추론용으로 배포되는 패키지형 아티팩트.
- Feature Store & Data Wrangler: 데이터 준비 및 feature 관리용 관리형 서비스.
- Autopilot & JumpStart: 자동화된 ML 및 선별된 모델 카탈로그.
- MLflow Tracking Servers: presigned 액세스 토큰을 가진 관리형 MLflow UI/API.
모든 리소스는 실행 역할, S3 위치, 컨테이너 이미지 및 선택적 VPC/KMS 구성을 참조합니다 — enumeration 과정에서 이들을 모두 수집하세요.
계정 및 전역 메타데이터
REGION=us-east-1
# Portfolio status, used when provisioning Studio resources
aws sagemaker get-sagemaker-servicecatalog-portfolio-status --region $REGION
# List execution roles used by models (extend to other resources as needed)
aws sagemaker list-models --region $REGION --query 'Models[].ExecutionRoleArn' --output text | tr ' ' '
' | sort -u
# Generic tag sweep across any SageMaker ARN you know
aws sagemaker list-tags --resource-arn <sagemaker-arn> --region $REGION
cross-account trust (execution roles or S3 buckets with external principals) 및 service control policies 또는 SCPs와 같은 기본 제한 사항을 기록하세요.
Studio 도메인, 앱 및 공유 공간
aws sagemaker list-domains --region $REGION
aws sagemaker describe-domain --domain-id <domain-id> --region $REGION
aws sagemaker list-user-profiles --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-user-profile --domain-id <domain-id> --user-profile-name <profile> --region $REGION
# Enumerate apps (JupyterServer, KernelGateway, RStudioServerPro, CodeEditor, Canvas, etc.)
aws sagemaker list-apps --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-app --domain-id <domain-id> --user-profile-name <profile> --app-type JupyterServer --app-name default --region $REGION
# Shared collaborative spaces
aws sagemaker list-spaces --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-space --domain-id <domain-id> --space-name <space> --region $REGION
# Studio lifecycle configurations (shell scripts at start/stop)
aws sagemaker list-studio-lifecycle-configs --region $REGION
aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <name> --region $REGION
기록할 항목:
DomainArn,AppSecurityGroupIds,SubnetIds,DefaultUserSettings.ExecutionRole.- 마운트된 EFS (
HomeEfsFileSystemId) 및 S3 홈 디렉터리. - Lifecycle scripts (종종 부트스트랩 자격증명이나 push/pull 추가 코드를 포함함).
tip
Presigned Studio URLs은(는) 광범위하게 권한을 부여하면 인증을 우회할 수 있습니다.
Notebook Instances & Lifecycle Configs
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 메타데이터는 다음을 드러냅니다:
- 실행 역할 (
RoleArn), 직접 인터넷 액세스 또는 VPC-only 모드. DefaultCodeRepository,DirectInternetAccess,RootAccess에 있는 S3 위치.- 자격 증명 또는 지속성 훅을 위한 Lifecycle 스크립트.
Training, Processing, Transform 및 Batch 작업
aws sagemaker list-training-jobs --region $REGION
aws sagemaker describe-training-job --training-job-name <job> --region $REGION
aws sagemaker list-processing-jobs --region $REGION
aws sagemaker describe-processing-job --processing-job-name <job> --region $REGION
aws sagemaker list-transform-jobs --region $REGION
aws sagemaker describe-transform-job --transform-job-name <job> --region $REGION
면밀히 검토:
AlgorithmSpecification.TrainingImage/AppSpecification.ImageUri– 어떤 ECR images가 배포되었는지.InputDataConfig&OutputDataConfig– S3 buckets, prefixes, 및 KMS keys.ResourceConfig.VolumeKmsKeyId,VpcConfig,EnableNetworkIsolation– 네트워크 또는 암호화 포지처를 판단합니다.HyperParametersmay leak 환경 비밀 또는 연결 문자열.
파이프라인, 실험 및 트라이얼
aws sagemaker list-pipelines --region $REGION
aws sagemaker list-pipeline-executions --pipeline-name <pipeline> --region $REGION
aws sagemaker describe-pipeline --pipeline-name <pipeline> --region $REGION
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
파이프라인 정의는 각 단계, 관련 역할, 컨테이너 이미지 및 환경 변수를 상세히 설명합니다. Trial 구성 요소에는 종종 훈련 아티팩트 URIs, S3 로그 및 민감한 데이터 흐름을 암시하는 지표가 포함되어 있습니다.
모델, 엔드포인트 구성 및 배포된 엔드포인트
aws sagemaker list-models --region $REGION
aws sagemaker describe-model --model-name <name> --region $REGION
aws sagemaker list-endpoint-configs --region $REGION
aws sagemaker describe-endpoint-config --endpoint-config-name <cfg> --region $REGION
aws sagemaker list-endpoints --region $REGION
aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
중점 영역:
- 모델 아티팩트 S3 URIs (
PrimaryContainer.ModelDataUrl)와 추론 컨테이너 이미지. - 가능한 log exfil을 위한 Endpoint 데이터 캡처 구성 (S3 bucket, KMS).
S3DataSource또는ModelPackage를 사용하는 멀티-모델 엔드포인트(교차 계정 패키징 확인).- 엔드포인트에 연결된 네트워크 구성 및 보안 그룹.
Feature Store, Data Wrangler & Clarify
aws sagemaker list-feature-groups --region $REGION
aws sagemaker describe-feature-group --feature-group-name <feature-group> --region $REGION
aws sagemaker list-data-wrangler-flows --region $REGION
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
Security 요점:
- Online feature stores는 데이터를 Kinesis로 복제합니다.
OnlineStoreConfig.SecurityConfig.KmsKeyId와 VPC를 확인하세요. - Data Wrangler flows는 종종 JDBC/Redshift 자격 증명이나 프라이빗 엔드포인트를 포함합니다.
- Clarify/Model Monitor jobs는 데이터를 S3로 내보내며, 해당 데이터가 전 세계에서 읽을 수 있는 상태(world-readable)이거나 계정 간 접근(cross-account) 가능할 수 있습니다.
MLflow Tracking Servers, Autopilot & JumpStart
aws sagemaker list-mlflow-tracking-servers --region $REGION
aws sagemaker describe-mlflow-tracking-server --tracking-server-name <name> --region $REGION
aws sagemaker list-auto-ml-jobs --region $REGION
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 서버는 실험과 아티팩트를 저장합니다; 사전 서명된 URL은 모든 것을 노출시킬 수 있습니다.
- Autopilot 작업은 여러 training jobs를 실행합니다 — 숨겨진 데이터를 찾기 위해 출력물을 열거하세요.
- JumpStart 참조 아키텍처는 계정에 권한이 높은 역할을 배포할 수 있습니다.
IAM 및 네트워킹 고려사항
- 모든 실행 역할에 연결된 IAM 정책(Studio, notebooks, training jobs, pipelines, endpoints)을 열거하세요.
- 네트워크 컨텍스트를 확인하세요: subnets, security groups, VPC endpoints. 많은 조직이 학습 작업을 분리하지만 아웃바운드 트래픽 제한을 잊습니다.
- 외부 접근을 위해
ModelDataUrl,DataCaptureConfig,InputDataConfig에서 참조되는 S3 버킷 정책을 검토하세요.
Privilege Escalation
Persistence
Post-Exploitation
AWS - SageMaker Post-Exploitation
Unauthorized Access
AWS - SageMaker Unauthenticated Enum
참고자료
- AWS SageMaker Documentation
- AWS CLI SageMaker Reference
- SageMaker Studio Architecture
- SageMaker Security Best Practices
tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:
HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud