Studiuesit nga Check Point
Për një sulm të suksesshëm, është e nevojshme të jeni në gjendje të modifikoni skedarët e bazës së të dhënave të aplikacioneve të sulmuara, gjë që kufizon metodën në sulmet ndaj aplikacioneve që përdorin bazën e të dhënave SQLite si një format për të dhënat e transitit dhe hyrjes. Metoda mund të përdoret gjithashtu për të zgjeruar aksesin ekzistues lokal, për shembull, për të integruar portat e pasme të fshehura në aplikacionet e përdorura, si dhe për të anashkaluar mekanizmat e sigurisë kur analizohen malware nga studiuesit e sigurisë. Operacioni pas zëvendësimit të skedarit kryhet në momentin që aplikacioni ekzekuton pyetjen e parë SELECT kundrejt një tabele në bazën e të dhënave të modifikuar.
Si shembull, ne demonstruam aftësinë për të ekzekutuar kodin në iOS kur hapim një libër adresash, skedari me bazën e të dhënave "AddressBook.sqlitedb" u modifikua duke përdorur metodën e propozuar. Sulmi përdori një dobësi në funksionin fts3_tokenizer (CVE-2019-8602, aftësia e dereferencimit të treguesit), e fiksuar në përditësimin SQLite 2.28 të prillit, së bashku me një tjetër
Metoda e sulmit bazohet në përdorimin e dy teknikave "Query Hijacking" dhe "Query Oriented Programming", të cilat lejojnë shfrytëzimin e problemeve arbitrare që çojnë në prishjen e kujtesës në motorin SQLite. Thelbi i "Query Hijacking" është zëvendësimi i përmbajtjes së fushës "sql" në tabelën e shërbimit sqlite_master, e cila përcakton strukturën e bazës së të dhënave. Fusha e specifikuar përmban një bllok DDL (Data Definition Language) që përdoret për të përshkruar strukturën e objekteve në bazën e të dhënave. Përshkrimi specifikohet duke përdorur sintaksën standarde SQL, d.m.th. është përdorur konstruksioni "KRIJO TABELA",
i cili ekzekutohet gjatë procesit të inicializimit të bazës së të dhënave (gjatë nisjes së parë
sqlite3LocateTable funksionon për të krijuar struktura të brendshme të lidhura me tabelën në memorie.
Ideja është që, si rezultat i zëvendësimit të "CREATE TABLE" me "CREATE VIEW", bëhet i mundur kontrolli i çdo aksesi në bazën e të dhënave duke përcaktuar pamjen tuaj. Duke përdorur "CREATE VIEW" një operacion "SELECT" lidhet me tabelën, e cila do të thirret në vend të "CREATE TABLE" dhe ju lejon të përdorni pjesë të ndryshme të interpretuesit SQLite. Më pas, metoda më e thjeshtë e sulmit do të ishte thirrja e funksionit "load_extension", i cili ju lejon të ngarkoni një bibliotekë arbitrare me një shtesë, por ky funksion është i çaktivizuar si parazgjedhje.
Për të kryer një sulm kur është e mundur të kryhet operacioni “SELECT”, propozohet teknika “Query Oriented Programming”, e cila bën të mundur shfrytëzimin e problemeve në SQLite që çojnë në prishje të memories. Teknika të kujton programimin e orientuar drejt kthimit (
Burimi: opennet.ru