Teknik baru ditemukan untuk mengeksploitasi kerentanan dalam SQLite

itu Peneliti Check Point baru-baru ini terungkap dalam konferensi DEF DENGAN detailnya dari teknik baru yang ditemukan, ini digunakan halUntuk menyerang aplikasi yang menggunakan versi SQLite yang rentan.

Metode Check Point menganggap file database sebagai peluang untuk mengintegrasikan skenario eksploitasi kerentanan di beberapa subsistem SQLite internal yang tidak dapat diakses untuk eksploitasi dahi. Para peneliti juga menyiapkan teknik untuk mengeksploitasi kerentanan dengan mengeksploitasi pengkodean dalam bentuk serangkaian pertanyaan SELECT dalam database SQLite, yang memungkinkan menghindari ASLR.

Tentang kerentanan

Periksa Point peneliti detail itu untuk serangan yang berhasil, penyerang harus dapat memodifikasi file database dari aplikasi yang diserang, yang membatasi metode menyerang aplikasi yang menggunakan database SQLite sebagai format untuk transit dan memasukkan data.

Meskipun begitu mereka juga mengumumkan bahwa metode ini juga dapat digunakan untuk memperluas akses lokal yang sudah diperoleh, misalnya, untuk mengintegrasikan backdoors tersembunyi ke dalam aplikasi yang digunakan, serta untuk menghindari peneliti keamanan saat menganalisis malware.

Operasi setelah peniruan file dilakukan pada saat di mana aplikasi mengeksekusi permintaan SELECT pertama ke tabel dalam database yang dimodifikasi.

Sebagai contoh, kemampuan untuk mengeksekusi kode pada iOS ditunjukkan dengan membuka buku alamat, file dengan database "AddressBook.sqlitedb”Yang telah dimodifikasi menggunakan metode yang diusulkan.

Untuk serangan itu, kerentanan digunakan dalam fungsi fts3_tokenizer (CVE-2019-8602, kemampuan untuk mengubah referensi pointer), dikoreksi dalam pembaruan SQLite 2.28 April, bersama dengan kerentanan lain dalam implementasi fungsi jendela.

Juga menunjukkan penggunaan metode kejang jarak jauh dari server backend penyerang yang ditulis dalam PHP, yang mengakumulasi kata sandi yang dicegat selama operasi kode berbahaya (kata sandi yang dicegat ditransfer dalam bentuk database SQLite).

Metode serangan didasarkan pada penggunaan dua teknik, Query Hijacking dan Query Oriented Programming, yang memungkinkan mengeksploitasi masalah sewenang-wenang yang menyebabkan kerusakan memori pada mesin SQLite.

Inti dari "Query Hijacking" adalah mengganti konten bidang "sql" di tabel layanan sqlite_master yang menentukan struktur database. Bidang yang ditentukan berisi blok DDL (Data Definition Language) yang digunakan untuk menggambarkan struktur objek dalam database.

Deskripsi diatur menggunakan sintaks SQL normal, yaitu. konstruksi "CREATE TABLE" digunakan, yang dilakukan selama inisialisasi database (selama eksekusi pertama dari fungsi sqlite3LocateTable) untuk membuat struktur internal yang terkait dengan tabel dalam memori.

Idenya adalah bahwa, sebagai hasil dari penggantian "CREATE TABLE" dan "CREATE VIEW, dimungkinkan untuk mengontrol akses ke database melalui definisi pandangan Anda.

Di sisi lain, dengan menggunakan perintah "CREATE VIEW", operasi "SELECT" dilampirkan pada tabel, yang akan dipanggil bukannya "CREATE TABLE" dan memungkinkan penyerang untuk mengakses beberapa bagian dari juru bahasa SQLite.

Selain itu, cara termudah untuk menyerang adalah dengan memanggil fungsi "load_extension", yang memungkinkan penyerang memuat pustaka sewenang-wenang dengan ekstensi, tetapi fungsi ini dinonaktifkan secara default.

Untuk melakukan serangan di bawah kondisi kemungkinan melakukan operasi SELECT, teknik pemrograman berorientasi permintaan diusulkan, yang memungkinkan mengeksploitasi masalah dalam SQLite yang menyebabkan kerusakan memori.

Teknik ini mengingatkan pada Return-Oriented Programming (ROP), tetapi menggunakan fragmen kode mesin yang tidak ada, tetapi dimasukkan ke dalam satu set subquery dalam SELECT untuk membangun rantai panggilan ("gadget").

Sumber: https://threatpost.com/

Pos terkait

Back to top button