Chaidh innleachd ùr airson brath a ghabhail air so-leòntachd ann an SQLite a thoirt a-steach.

Luchd-rannsachaidh bho Check Point gun lorg aig co-labhairt DEF CON, mion-fhiosrachadh mu dhòigh-obrach ùr airson ionnsaigh a thoirt air tagraidhean a’ cleachdadh dreachan so-leònte de SQLite. Tha modh Check Point a’ beachdachadh air faidhlichean stòr-dàta mar chothrom suidheachaidhean fhilleadh a-steach airson a bhith a’ gabhail brath air so-leòntachd ann an grunn fo-shiostaman SQLite a-staigh nach gabh brath gu dìreach. Tha luchd-rannsachaidh cuideachd air dòigh-obrach ullachadh airson a bhith a’ gabhail brath air so-leòntachd le bhith a’ còdachadh brath ann an cruth sreath de cheistean SELECT ann an stòr-dàta SQLite, a leigeas leat ASLR a sheachnadh.

Airson ionnsaigh shoirbheachail, feumar a bhith comasach air faidhlichean stòr-dàta nan tagraidhean ionnsaigh atharrachadh, a tha a’ cuingealachadh an dòigh air ionnsaigh a thoirt air tagraidhean a bhios a’ cleachdadh stòr-dàta SQLite mar chruth airson dàta gluasaid agus cuir a-steach. Faodar an dòigh a chleachdadh cuideachd gus an ruigsinneachd ionadail a th’ ann a leudachadh, mar eisimpleir, gus dorsan falaichte fhilleadh a-steach do thagraidhean cleachdte, a bharrachd air a bhith a’ dol seachad air dòighean tèarainteachd nuair a bhios luchd-rannsachaidh tèarainteachd a’ dèanamh anailis air malware. Gnìomh às deidh ionadachadh fhaidhlichean a dhèanamh an-dràsta tha an tagradh a’ cur an gnìomh a’ chiad cheist SELECT mu choinneamh clàr san stòr-dàta atharraichte.

Mar eisimpleir, sheall sinn an comas còd a ruith ann an iOS nuair a dh'fhosglas sinn leabhar seòlaidhean, chaidh am faidhle leis an stòr-dàta "AddressBook.sqlitedb" atharrachadh a 'cleachdadh an dòigh a chaidh a mholadh. Chleachd an ionnsaigh so-leòntachd anns a’ ghnìomh fts3_tokenizer (CVE-2019-8602, comas lorg puing), stèidhichte ann an ùrachadh Giblean SQLite 2.28, còmhla ri fear eile so-leòntachd ann an cur an gnìomh gnìomhan uinneig. A bharrachd air an sin, chaidh cleachdadh an dòigh airson smachd a chumail air astar air frithealaiche backend neach-ionnsaigh sgrìobhte ann am PHP, a bhios a’ cruinneachadh faclan-faire a chaidh an glacadh nuair a chaidh còd droch-rùnach a chleachdadh (chaidh na faclan-faire eadar-ghabhail a chuir a-steach ann an cruth stòr-dàta SQLite).

Tha an dòigh ionnsaigh stèidhichte air cleachdadh dà dhòigh “Query Hijacking” agus “Query Oriented Programming”, a leigeas le bhith a’ gabhail brath air duilgheadasan neo-riaghailteach a dh’ adhbhraicheas coirbeachd cuimhne ann an einnsean SQLite. Is e brìgh “Query Hijacking” susbaint an raoin “sql” a chuir an àite a ’chlàr seirbheis sqlite_master, a bhios a’ dearbhadh structar an stòr-dàta. Anns an raon ainmichte tha bloc DDL (Cànan Mìneachadh Dàta) a thathar a’ cleachdadh gus cunntas a thoirt air structar nithean san stòr-dàta. Tha an tuairisgeul air a shònrachadh a’ cleachdadh co-chòrdadh àbhaisteach SQL, i.e. thathas a’ cleachdadh an togail “CREATE TABLE”,
a thèid a chuir gu bàs rè pròiseas tòiseachaidh an stòr-dàta (rè a’ chiad fhoillseachadh
gnìomhan sqlite3LocateTable gus structaran a-staigh co-cheangailte ri clàr a chruthachadh mar chuimhneachan.

Is e am beachd, mar thoradh air “CREATE TABLE” a chuir an àite “CREATE VIEW”, gum bi e comasach smachd a chumail air ruigsinneachd sam bith air an stòr-dàta le bhith a’ mìneachadh do bheachd fhèin. Le bhith a’ cleachdadh “CREATE VIEW” tha gnìomh “SELECT” ceangailte ris a’ bhòrd, ris an canar an àite “CREATE TABLE” agus a leigeas leat faighinn gu diofar phàirtean den eadar-theangair SQLite. An uairsin, is e an dòigh ionnsaigh as sìmplidh an gnìomh “load_extension” a ghairm, a leigeas leat leabharlann neo-riaghailteach a luchdachadh le leudachadh, ach tha an gnìomh seo ciorramach gu bunaiteach.

Gus ionnsaigh a dhèanamh nuair a tha e comasach an gnìomh “SELECT” a dhèanamh, thathas a ’moladh an innleachd“ Prògramadh Ceistean ”, a tha ga dhèanamh comasach brath a ghabhail air duilgheadasan ann an SQLite a dh’ adhbhraicheas truailleadh cuimhne. Tha an dòigh-obrach coltach ri prògramadh a tha ag amas air tilleadh (ROP, Prògramadh stèidhichte air Tilleadh), ach a’ cleachdadh criomagan de chòd inneal nach eil ann mar-thà gus sèine de ghlaodhan (“ widgets ”) a thogail, ach cuir a-steach ann an seata de subqueries taobh a-staigh SELECT.

Chaidh innleachd ùr airson brath a ghabhail air so-leòntachd ann an SQLite a thoirt a-steach.

Chaidh innleachd ùr airson brath a ghabhail air so-leòntachd ann an SQLite a thoirt a-steach.

Source: fosgailtenet.ru

Cuir beachd ann