AWS - SageMaker Enum
{{#include ../../../../banners/hacktricks-training.md}}
सेवा अवलोकन
Amazon SageMaker AWS का managed machine-learning प्लेटफ़ॉर्म है जो notebooks, training infrastructure, orchestration, registries, और managed endpoints को एक साथ जोड़ता है। SageMaker resources के समझौते से आम तौर पर निम्न तक पहुँच मिल सकती है:
- लंबे समय तक सक्रिय रहने वाले IAM execution roles जिनके पास व्यापक S3, ECR, Secrets Manager, या KMS access होता है।
- S3, EFS, या feature stores में संग्रहित संवेदनशील datasets तक पहुँच।
- VPCs के अंदर नेटवर्क footholds (Studio apps, training jobs, endpoints)।
- High-privilege presigned URLs जो console authentication को बायपास करते हैं।
SageMaker कैसे assembled है यह समझना महत्वपूर्ण है, इससे पहले कि आप pivot, persist, या exfiltrate data करें।
मुख्य निर्माण खंड
- Studio Domains & Spaces: Web IDE (JupyterLab, Code Editor, RStudio)। प्रत्येक domain के पास साझा EFS फ़ाइल सिस्टम और डिफ़ॉल्ट execution role होता है।
- Notebook Instances: स्टैंडअलोन notebooks के लिए मैनेज्ड EC2 instances; अलग execution roles का उपयोग करते हैं।
- Training / Processing / Transform Jobs: अस्थायी containers जो ECR से code और S3 से data खींचते हैं।
- Pipelines & Experiments: Orchestrated workflows जो सभी steps, inputs, और outputs का वर्णन करते हैं।
- Models & Endpoints: Packaged artefacts जिन्हें inference के लिए HTTPS endpoints के माध्यम से deploy किया जाता है।
- Feature Store & Data Wrangler: डेटा तैयारी और feature management के लिए मैनेज्ड सेवाएँ।
- Autopilot & JumpStart: Automated ML और curated model catalogue।
- MLflow Tracking Servers: Managed MLflow UI/API presigned access tokens के साथ।
हर resource एक execution role, S3 locations, container images, और वैकल्पिक VPC/KMS configuration को reference करता है — enumeration के दौरान इन सभी को capture करें।
खाता और वैश्विक मेटाडेटा
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 या S3 buckets जिनमें 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 स्क्रिप्ट्स (अक्सर bootstrap credentials या push/pull extra code होते हैं).
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 metadata में निम्न बातें प्रकट होती हैं:
- Execution role (
RoleArn), direct internet access बनाम VPC-only मोड। - S3 स्थान
DefaultCodeRepository,DirectInternetAccess,RootAccessमें। - Credentials या persistence hooks के लिए lifecycle scripts।
Training, Processing, Transform & Batch Jobs
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 इमेजेस तैनात हैं।InputDataConfig&OutputDataConfig– S3 buckets, prefixes, और KMS keys।ResourceConfig.VolumeKmsKeyId,VpcConfig,EnableNetworkIsolation– नेटवर्क या एन्क्रिप्शन की स्थिति निर्धारित करते हैं।HyperParametersमें environment secrets या connection strings 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
पाइपलाइन परिभाषाएँ हर चरण, संबंधित भूमिकाएँ, कंटेनर इमेजेस और environment variables का विस्तृत विवरण देती हैं। ट्रायल कंपोनेंट्स अक्सर training artefact URIs, S3 logs और ऐसे मेट्रिक्स होते हैं जो संवेदनशील डेटा प्रवाह की ओर संकेत करते हैं।
मॉडल, एंडपॉइंट कॉन्फ़िगरेशन और डिप्लॉय किए गए एंडपॉइंट्स
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
ध्यान केंद्रित क्षेत्र:
- Model artefact के S3 URIs (
PrimaryContainer.ModelDataUrl) और inference container images। - Endpoint data capture कॉन्फ़िगरेशन (S3 bucket, KMS) संभावित log exfil के लिए।
- Multi-model endpoints जो
S3DataSourceयाModelPackageका उपयोग करते हैं (cross-account packaging की जांच करें)। - Network configs और security groups जो endpoints से जुड़े हैं।
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
सुरक्षा निष्कर्ष:
- Online feature stores Kinesis पर डेटा replicate करते हैं;
OnlineStoreConfig.SecurityConfig.KmsKeyIdऔर VPC की जाँच करें। - Data Wrangler flows अक्सर JDBC/Redshift क्रेडेंशियल्स या private endpoints में एम्बेड होते हैं।
- Clarify/Model Monitor jobs डेटा S3 पर export करते हैं जो world-readable या cross-account accessible हो सकता है।
MLflow ट्रैकिंग सर्वर्स, 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 servers experiments और artefacts को स्टोर करते हैं; presigned URLs सब कुछ उजागर कर सकते हैं।
- Autopilot jobs कई training jobs चलाते हैं—hidden data के लिए outputs enumerate करें।
- JumpStart reference architectures खाते में privileged roles deploy कर सकते हैं।
IAM और नेटवर्किंग पर विचार
- सभी execution roles (Studio, notebooks, training jobs, pipelines, endpoints) से जुड़ी IAM policies enumerate करें।
- network contexts की जाँच करें: subnets, security groups, VPC endpoints. कई संगठनों ने training jobs को अलग रखा होता है पर outbound traffic को restrict करना भूल जाते हैं।
- external access के लिए
ModelDataUrl,DataCaptureConfig,InputDataConfigमें referenced S3 bucket policies की समीक्षा करें।
Privilege Escalation
{{#ref}} ../../aws-privilege-escalation/aws-sagemaker-privesc/README.md {{#endref}}
Persistence
{{#ref}} ../../aws-persistence/aws-sagemaker-persistence/README.md {{#endref}}
Post-Exploitation
{{#ref}} ../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md {{#endref}}
Unauthorized Access
{{#ref}} ../aws-sagemaker-unauthenticated-enum/README.md {{#endref}}
संदर्भ
- AWS SageMaker दस्तावेज़
- AWS CLI SageMaker संदर्भ
- SageMaker Studio वास्तुकला
- SageMaker सुरक्षा सर्वोत्तम प्रथाएँ
{{#include ../../../../banners/hacktricks-training.md}}