Lêkolînerên ji Check Point
Ji bo êrîşek serketî, pêdivî ye ku meriv bikaribe pelên databasê yên serîlêdanên êrîşkirî biguhezîne, ku vê rêbazê bi êrişên ser sepanên ku databasa SQLite wekî formatek ji bo veguhastin û daneya têketinê bikar tînin sînordar dike. Rêbaz dikare di heman demê de ji bo berfirehkirina gihîştina herêmî ya heyî jî were bikar anîn, mînakî, ji bo entegrekirina dergehên paşde yên veşartî di nav sepanên hatî bikar anîn de, û her weha ji bo derbaskirina mekanîzmayên ewlehiyê dema ku malware ji hêla lêkolînerên ewlehiyê ve analîz dike. Operasyona piştî guheztina pelê di dema ku serîlêdan yekem lêpirsîna SELECT li hember tabloyek di databasa guhertî de pêk tîne.
Mînakî, me dema vekirina pirtûkek navnîşan de kapasîteya xebitandina kodê di iOS-ê de destnîşan kir, pelê bi databasa "AddressBook.sqlitedb" bi karanîna rêbaza pêşniyarkirî hate guherandin. Êrîşê di fonksiyona fts3_tokenizer (CVE-2019-8602, kapasîteya dereferansê ya nîşankerê) de qelsiyek bikar anî, di nûvekirina SQLite 2.28-ê ya Nîsanê de, digel yekî din
Rêbaza êrîşê li ser bingeha karanîna du teknolojiyên "Query Hijacking" û "Query Oriented Programming" ye, ku destûrê dide îstismarkirina pirsgirêkên kêfî yên ku di motora SQLite de dibe sedema xerabûna bîranînê. Esasê "Query Hijacking" ev e ku meriv naveroka qada "sql" di tabloya karûbarê sqlite_master de biguhezîne, ku avahiya databasê diyar dike. Qada diyarkirî bloka DDL (Zimanê pênasekirina daneyan) dihewîne ku ji bo danasîna avahiya tiştên di databasê de tê bikar anîn. Danasîn bi karanîna hevoksaziya standard SQL tête diyar kirin, ango. avakirina "CREATE TABLE" tê bikaranîn,
ku di pêvajoya destpêkirina databasê de (di dema destpêkirina yekem de
Fonksiyonên sqlite3LocateTable ku di bîranînê de strukturên hundurîn ên girêdayî tabloyê biafirîne.
Fikir ev e ku, di encama şûna "CREATE TABLE" bi "CREATE VIEW" re, bi destnîşankirina dîtina xwe ve kontrolkirina her gihîştina databasê gengaz dibe. Bi karanîna "CREATE VIEW" operasyonek "SELECT" bi tabloyê ve girêdayî ye, ku dê li şûna "CREATE TABLE" were gazî kirin û dihêle hûn xwe bigihînin beşên cihêreng ên wergêra SQLite. Dûv re, rêbaza êrîşê ya herî hêsan dê bangkirina fonksiyona "load_extension" be, ku dihêle hûn pirtûkxaneyek keyfî bi dirêjkirinê bar bikin, lê ev fonksiyon ji hêla xwerû ve hatî asteng kirin.
Ji bo pêkanîna êrîşek dema ku gengaz e ku operasyona "SELECT" pêk were, teknîka "Bernameya Bernamekirina Oriented Query" tê pêşniyar kirin, ku ev gengaz dike ku pirsgirêkên di SQLite-ê de ku dibin sedema xerabûna bîranînê bikar bînin. Teknîkî bernamesaziya vegerê tîne bîra xwe (
Source: opennet.ru