GCP - BigQuery Privesc
BigQuery
BigQuery hakkında daha fazla bilgi için:
GCP - Bigquery EnumTabloyu Okuma
Bir BigQuery tablosu içinde depolanan bilgilere erişerek hassas bilgiler bulmak mümkün olabilir. Bilgilere erişmek için gereken izinler bigquery.tables.get
, bigquery.jobs.create
ve bigquery.tables.getData
'dır:
Veri dışa aktar
Bu, veriye erişmenin başka bir yoludur. Veriyi bir bulut depolama kovasına dışa aktarın ve bilgi içeren dosyaları indirin. Bu işlemi gerçekleştirmek için aşağıdaki izinlere ihtiyaç vardır: bigquery.tables.export
, bigquery.jobs.create
ve storage.objects.create
.
Veri ekleme
Bir Bigquery tablosuna güvenilir verileri başka bir yerdeki bir zafiyeti kötüye kullanmak için eklemek mümkün olabilir. Bunun için bigquery.tables.get
, bigquery.tables.updateData
ve bigquery.jobs.create
izinleri kullanılarak kolayca yapılabilir:
bigquery.datasets.setIamPolicy
bigquery.datasets.setIamPolicy
Bir saldırgan, bu yetkiyi kullanarak bir BigQuery veri kümesi üzerinde kendisine daha fazla izin verebilir:
bigquery.datasets.update
, (bigquery.datasets.get
)
bigquery.datasets.update
, (bigquery.datasets.get
)Sadece bu izin, bir BigQuery veri kümesine erişimi güncellemek için ACL'leri değiştirerek erişime kimin sahip olduğunu belirten yetkilendirmeleri değiştirmenizi sağlar:
bigquery.tables.setIamPolicy
bigquery.tables.setIamPolicy
Bir saldırgan, bu yetkiyi kullanarak bir BigQuery tablosu üzerinde kendisine daha fazla izin verebilir:
bigquery.rowAccessPolicies.update
, bigquery.rowAccessPolicies.setIamPolicy
, bigquery.tables.getData
, bigquery.jobs.create
bigquery.rowAccessPolicies.update
, bigquery.rowAccessPolicies.setIamPolicy
, bigquery.tables.getData
, bigquery.jobs.create
Belgelere göre, bahsedilen izinlerle bir satır politikasını güncellemek mümkündür.
Ancak, bq
komut satırı aracını kullanarak daha fazlasına ihtiyacınız var: bigquery.rowAccessPolicies.create
, bigquery.tables.get
.
Satır politikalarının sıralaması çıktısında filtre kimliğini bulmak mümkündür. Örnek:
Last updated