GCP - BigQuery Privesc
BigQuery
Для отримання додаткової інформації про BigQuery перевірте:
GCP - Bigquery EnumЧитання таблиці
Читання інформації, що зберігається в таблиці BigQuery, може дозволити знайти чутливу інформацію. Для доступу до інформації потрібні дозволи bigquery.tables.get
, bigquery.jobs.create
та bigquery.tables.getData
:
Export data
Це ще один спосіб доступу до даних. Експортуйте їх до cloud storage bucket і завантажте файли з інформацією.
Для виконання цієї дії потрібні наступні дозволи: bigquery.tables.export
, bigquery.jobs.create
та storage.objects.create
.
Insert data
Можливо, можна ввести певні довірені дані в таблицю Bigquery, щоб зловживати вразливістю в іншому місці. Це можна легко зробити за допомогою дозволів bigquery.tables.get
, bigquery.tables.updateData
та bigquery.jobs.create
:
bigquery.datasets.setIamPolicy
bigquery.datasets.setIamPolicy
Зловмисник може зловживати цим привілеєм, щоб надати собі додаткові дозволи на набір даних BigQuery:
bigquery.datasets.update
, (bigquery.datasets.get
)
bigquery.datasets.update
, (bigquery.datasets.get
)Лише цей дозвіл дозволяє оновити ваш доступ до BigQuery dataset шляхом зміни ACLs, які вказують, хто може отримати до нього доступ:
bigquery.tables.setIamPolicy
bigquery.tables.setIamPolicy
Зловмисник може зловживати цим привілеєм, щоб надати собі додаткові дозволи на таблицю BigQuery:
bigquery.rowAccessPolicies.update
, bigquery.rowAccessPolicies.setIamPolicy
, bigquery.tables.getData
, bigquery.jobs.create
bigquery.rowAccessPolicies.update
, bigquery.rowAccessPolicies.setIamPolicy
, bigquery.tables.getData
, bigquery.jobs.create
Згідно з документацією, з вказаними дозволами можливо оновити політику рядків.
Однак, використовуючи cli bq
вам потрібно ще дещо: bigquery.rowAccessPolicies.create
, bigquery.tables.get
.
Можливо знайти ID фільтра у виведенні переліку політик рядків. Приклад:
Якщо у вас є bigquery.rowAccessPolicies.delete
замість bigquery.rowAccessPolicies.update
, ви також можете просто видалити політику:
Ще один потенційний варіант обійти політики доступу до рядків - просто змінити значення обмежених даних. Якщо ви можете бачити лише коли term
є Cfba
, просто змініть всі записи таблиці, щоб мати term = "Cfba"
. Однак це запобігається bigquery.
Last updated