Është prezantuar një teknikë e re për shfrytëzimin e dobësive në SQLite.

Studiuesit nga Check Point i zbuluar në konferencën DEF CON, detajet e një teknike të re për të sulmuar aplikacionet duke përdorur versione të cenueshme të SQLite. Metoda Check Point i konsideron skedarët e bazës së të dhënave si një mundësi për të integruar skenarë për shfrytëzimin e dobësive në nënsisteme të ndryshme të brendshme SQLite që nuk janë drejtpërdrejt të shfrytëzueshme. Studiuesit kanë përgatitur gjithashtu një teknikë për shfrytëzimin e dobësive duke e koduar shfrytëzimin në formën e një zinxhiri pyetjesh SELECT në bazën e të dhënave SQLite, e cila ju lejon të anashkaloni ASLR.

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 cenueshmëria në zbatimin e funksioneve të dritares. Për më tepër, u demonstrua përdorimi i një metode për kapjen nga distanca të kontrollit të serverit mbështetës të një sulmuesi të shkruar në PHP, i cili grumbullon fjalëkalime të përgjuara gjatë funksionimit të kodit me qëllim të keq (fjalëkalimet e përgjuara u transmetuan në formën e një baze të dhënash SQLite).

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 (R.O.P., Programim i orientuar nga kthimi), por përdor jo copa ekzistuese të kodit të makinës për të ndërtuar një zinxhir thirrjesh (“vegël”), por fut në një grup nënpyetjesh brenda SELECT.

Është prezantuar një teknikë e re për shfrytëzimin e dobësive në SQLite.

Është prezantuar një teknikë e re për shfrytëzimin e dobësive në SQLite.

Burimi: opennet.ru

Shto një koment