Peneliti ti Check Point
Pikeun serangan suksés, perlu pikeun bisa ngaropéa file database tina aplikasi diserang, nu watesan metoda pikeun serangan dina aplikasi nu ngagunakeun database SQLite salaku format keur transit jeung data input. Métode ogé tiasa dianggo pikeun ngalegaan aksés lokal anu tos aya, contona, pikeun ngahijikeun panto tukang anu disumputkeun kana aplikasi anu dianggo, ogé pikeun ngaliwat mékanisme kaamanan nalika nganalisa malware ku peneliti kaamanan. Operasi sanggeus substitusi file dilumangsungkeun dina momen aplikasi executes query PILIH munggaran ngalawan tabel dina database dirobah.
Salaku conto, kami nunjukkeun kamampuan pikeun ngajalankeun kode dina ios nalika muka buku alamat, file sareng database "AddressBook.sqlitedb" dirobih nganggo metode anu diusulkeun. Serangan éta ngagunakeun kerentanan dina fungsi fts3_tokenizer (CVE-2019-8602, kamampuan dereference pointer), dibereskeun dina update April SQLite 2.28, sareng anu sanésna.
Metoda serangan dumasar kana pamakéan dua téhnik "Query Hijacking" jeung "Query Oriented Programming", nu ngidinan exploiting masalah sawenang nu ngakibatkeun korupsi memori dina mesin SQLite. Hakekat "Query Hijacking" nyaéta ngaganti eusi widang "sql" dina tabel layanan sqlite_master, nu nangtukeun struktur database. Widang anu ditangtukeun ngandung blok DDL (Data Definition Language) anu dianggo pikeun ngajelaskeun struktur objék dina pangkalan data. Pedaran ieu dieusian maké sintaksis SQL baku, i.e. konstruksi "CREATE TABLE" dipaké,
nu dieksekusi salila prosés initialization database (salila peluncuran munggaran
sqlite3LocateTable fungsi pikeun nyieun struktur internal nu patali tabel dina mémori.
Gagasanna nyaéta, salaku hasil tina ngagentos "JIEUN TABEL" sareng "JIEUN VIEW", janten tiasa ngontrol aksés kana pangkalan data ku netepkeun pandangan anjeun nyalira. Ngagunakeun "Jieun Témbongkeun" a "PILIH" operasi kabeungkeut kana tabél, nu bakal disebut tinimbang "Jieun tabel" tur ngidinan Anjeun pikeun ngakses bagian béda tina juru SQLite. Salajengna, metodeu serangan pangbasajanna nyaéta nyauran fungsi "load_extension", anu ngamungkinkeun anjeun pikeun ngamuat perpustakaan sawenang kalayan ekstensi, tapi fungsi ieu ditumpurkeun sacara standar.
Pikeun ngalaksanakeun serangan nalika kasebut nyaéta dimungkinkeun pikeun ngalakukeun operasi "PILIH", téhnik "Query Berorientasi Programming" diusulkeun, nu ngamungkinkeun pikeun mangpaatkeun masalah dina SQLite nu ngakibatkeun korupsi memori. Téhnik ieu ngingetkeun pemrograman berorientasi balik (
sumber: opennet.ru