Uusi tekniikka SQLiten haavoittuvuuksien hyödyntämiseen on otettu käyttöön.

Check Pointin tutkijat paljastettu DEF CON -konferenssissa yksityiskohtia uudesta tekniikasta hyökätä sovelluksiin käyttämällä haavoittuvia SQLiten versioita. Check Point -menetelmä pitää tietokantatiedostoja mahdollisuutena integroida skenaarioita sellaisten sisäisten SQLite-alijärjestelmien haavoittuvuuksien hyödyntämiseen, jotka eivät ole suoraan hyödynnettävissä. Tutkijat ovat myös laatineet tekniikan haavoittuvuuksien hyödyntämiseksi koodaamalla hyväksikäytön SELECT-kyselyjen ketjun muodossa SQLite-tietokannassa, jonka avulla voit ohittaa ASLR:n.

Hyökkäyksen onnistuminen edellyttää kykyä muokata hyökkäyksen kohteena olevien sovellusten tietokantatiedostoja, mikä rajoittaa menetelmän hyökkäyksiin sovelluksiin, jotka käyttävät SQLite-tietokantaa siirto- ja syöttötietojen muotona. Menetelmällä voidaan myös laajentaa olemassa olevaa paikallista pääsyä, esimerkiksi integroida piilotettuja takaovia käytettyihin sovelluksiin sekä ohittaa tietoturvamekanismeja tietoturvatutkijoiden haittaohjelmien analysoinnissa. Tiedoston korvaamisen jälkeinen toimenpide suoritetaan sillä hetkellä, kun sovellus suorittaa ensimmäisen SELECT-kyselyn muokatun tietokannan taulukkoa vastaan.

Esimerkkinä osoitimme kyvyn suorittaa koodia iOS:ssä osoitekirjaa avattaessa, "AddressBook.sqlitedb"-tietokannan tiedostoa muokattiin ehdotetulla menetelmällä. Hyökkäys käytti fts3_tokenizer-funktion (CVE-2019-8602, pointer dereference -ominaisuus), joka korjattiin huhtikuun SQLite 2.28 -päivityksessä, haavoittuvuutta yhdessä toisen kanssa. haavoittuvuus ikkunatoimintojen toteutuksessa. Lisäksi esiteltiin menetelmän käyttö hyökkääjän PHP:llä kirjoitetun taustapalvelimen etähallintaan, joka kerää haitallisen koodin toiminnan aikana siepattuja salasanoja (siepatut salasanat välitettiin SQLite-tietokannan muodossa).

Hyökkäysmenetelmä perustuu kahden tekniikan "Query Hijacking" ja "Query Oriented Programming" käyttöön, jotka mahdollistavat mielivaltaisten ongelmien hyödyntämisen, jotka johtavat muistin vioittumiseen SQLite-moottorissa. Query Hijackingin ydin on korvata sqlite_master-palvelutaulukon sql-kentän sisältö, joka määrittää tietokannan rakenteen. Määritetty kenttä sisältää DDL (Data Definition Language) -lohkon, jota käytetään kuvaamaan tietokannan objektien rakennetta. Kuvaus määritetään käyttämällä standardia SQL-syntaksia, eli. käytetään "CREATE TABLE" -rakennetta,
joka suoritetaan tietokannan alustusprosessin aikana (ensimmäisen käynnistyksen aikana
sqlite3LocateTable-funktiot luovat taulukkoon liittyviä sisäisiä rakenteita muistiin.

Ajatuksena on, että kun "CREATE TABLE" korvataan sanalla "CREATE VIEW", on mahdollista hallita pääsyä tietokantaan määrittelemällä oma näkymäsi. Käytettäessä "CREATE VIEW" -toimintoa taulukkoon on sidottu "SELECT"-toiminto, jota kutsutaan "CREATE TABLE":n sijaan ja jonka avulla voit käyttää SQLite-tulkin eri osia. Seuraavaksi yksinkertaisin hyökkäystapa olisi kutsua "load_extension"-toiminto, jonka avulla voit ladata mielivaltaisen kirjaston laajennuksella, mutta tämä toiminto on oletuksena pois käytöstä.

Hyökkäyksen suorittamiseen, kun on mahdollista suorittaa "SELECT" -toiminto, ehdotetaan "Query Oriented Programming" -tekniikkaa, joka mahdollistaa SQLiten ongelmien hyödyntämisen, jotka johtavat muistin vioittumiseen. Tekniikka muistuttaa paluusuuntautunutta ohjelmointia (ROP, Paluusuuntautunut ohjelmointi), mutta se ei käytä olemassa olevia konekoodinpätkiä kutsuketjun ("gadgetien") rakentamiseen, vaan lisää alikyselyiden joukkoon SELECT-toiminnon sisällä.

Uusi tekniikka SQLiten haavoittuvuuksien hyödyntämiseen on otettu käyttöön.

Uusi tekniikka SQLiten haavoittuvuuksien hyödyntämiseen on otettu käyttöön.

Lähde: opennet.ru

Lisää kommentti