AWS - SageMaker Enum

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をサポートする

サービス概要

Amazon SageMaker はノートブック、トレーニングインフラ、オーケストレーション、レジストリ、マネージドエンドポイントを結びつける AWS のマネージド機械学習プラットフォームです。SageMaker リソースが侵害されると通常得られるもの:

  • 広範な S3、ECR、Secrets Manager、または KMS へのアクセス権を持つ長期間有効な IAM 実行ロール。
  • S3、EFS、または feature stores に格納された機密データセットへのアクセス。
  • VPC 内のネットワーク足場(Studio apps、training jobs、endpoints)。
  • コンソール認証をバイパスする高権限の presigned URL。

SageMaker がどのように構成されているかを理解することは、pivot、persist、または exfiltrate data を行う前に重要です。

コア構成要素

  • Studio Domains & Spaces: Web IDE (JupyterLab, Code Editor, RStudio)。各 domain は共有 EFS ファイルシステムとデフォルトの実行ロールを持ちます。
  • Notebook Instances: スタンドアロンノートブック用のマネージド EC2 インスタンス。個別の実行ロールを使用します。
  • Training / Processing / Transform Jobs: ECR からコード、S3 からデータを取得するエフェメラルなコンテナ。
  • Pipelines & Experiments: すべてのステップ、入力、出力を記述するオーケストレーションされたワークフロー。
  • Models & Endpoints: HTTPS エンドポイント経由で推論にデプロイされるパッケージ化されたアーティファクト。
  • Feature Store & Data Wrangler: データ準備とフィーチャ管理のためのマネージドサービス。
  • Autopilot & JumpStart: 自動化された ML とキュレートされたモデルカタログ。
  • MLflow Tracking Servers: presigned アクセストークンを用いるマネージド MLflow UI/API。

すべてのリソースは実行ロール、S3 ロケーション、コンテナイメージ、そしてオプションの VPC/KMS 設定を参照します — 列挙時にこれらをすべて記録してください。

アカウント & グローバルメタデータ

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

クロスアカウントの信頼関係(execution roles や external principals を持つ S3 バケットなど)および service control policies(SCPs)などのベースラインの制限を記録してください。

Studio ドメイン、Apps & Shared Spaces

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(しばしば bootstrap credentials や push/pull による追加コードを含む)。

Tip

Presigned Studio URLs は、広く付与されると認証をバイパスできることがある。

ノートブックインスタンスとライフサイクル設定

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 の場所。
  • 認証情報や永続化フック用のライフサイクルスクリプト。

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 バケット、プレフィックス、および KMS キー。
  • ResourceConfig.VolumeKmsKeyId, VpcConfig, EnableNetworkIsolation – ネットワークや暗号化の設定状況を判断する。
  • HyperParameters は環境のシークレットや接続文字列を 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 コンポーネントにはしばしばトレーニングアーティファクトのURI、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) および 推論コンテナイメージ。
  • エンドポイントのデータキャプチャ構成(S3 bucket, KMS) — 可能な log exfil を想定して確認。
  • 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

セキュリティのポイント:

  • Online feature stores はデータを Kinesis に複製します。OnlineStoreConfig.SecurityConfig.KmsKeyId と VPC を確認してください。
  • Data Wrangler のフローには、JDBC/Redshift の認証情報や private endpoints が埋め込まれていることが多いです。
  • Clarify/Model Monitor ジョブはデータを 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 serversは実験やアーティファクトを保存します。presigned URLsによりすべてが露出する可能性があります。
  • Autopilot jobsは複数のtraining jobsを起動します — 隠されたデータを見つけるために出力を列挙してください。
  • JumpStart reference architecturesはアカウント内に特権ロールをデプロイする可能性があります。

IAM とネットワークに関する考慮事項

  • すべての実行ロール(Studio、notebooks、training jobs、pipelines、endpoints)にアタッチされているIAMポリシーを列挙してください。
  • ネットワークコンテキストを確認してください:subnets、security groups、VPC endpoints。多くの組織はtraining jobsを分離しますが、アウトバウンドトラフィックの制限を忘れがちです。
  • 外部アクセスについて、ModelDataUrlDataCaptureConfigInputDataConfigで参照されているS3バケットポリシーを確認してください。

Privilege Escalation

AWS - Sagemaker Privesc

Persistence

Aws Sagemaker Persistence

Post-Exploitation

AWS - SageMaker Post-Exploitation

Unauthorized Access

AWS - SageMaker Unauthenticated Enum

参考

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をサポートする