Kërkuesit nga kompania Check Point në konferencën DEF CON, detajet për teknikën e re të sulmeve ndaj aplikacioneve që përdorin versione të dobësuara të SQLite. Metoda e Check Point shqyrton skedarët me DB si një mundësi për integrimin e skenarëve të shfrytëzimit të dobësive në sisteme të ndryshme të brendshme të SQLite, të paqasshme për shfrytëzim direkt. Kërkuesit gjithashtu kanë përgatitur një teknikë për shfrytëzimin e dobësive duke aktivizuar eksploitin në formën e një vargu SELECT-kërkesash në DB-në SQLite, e cila mundëson kalimin e ASLR.
Për një sulm të suksesshëm është e nevojshme që të ketë mundësinë e modifikimit të skedarëve të DB-së së aplikacioneve në shënjestër, gjë që e kufizon metodën në sulme ndaj aplikacioneve që përdorin DB-në SQLite si format për të dhënat tranzitore dhe hyrëse. Metoda gjithashtu mund të përdoret për të zgjeruar aksesin lokal që është arritur, për shembull, për integrimin e backdoor-ve të fshehta në aplikacionet në përdorim, si dhe për të anashkaluar mekanizmat e mbrojtjes gjatë analizës së malware-it. Shfrytëzimi pas zëvendësimit të skedarit realizohet në momentin kur aplikacioni kryen kërkesën e parë SELECT ndaj tabelës në DB-në e modifikuar.
Si shembull është demonstruar mundësia e ekzekutimit të kodit në iOS kur hapet lista e adresave, skedari me DB-në "AddressBook.sqlitedb" i modifikuar duke përdorur metodën e propozuar. Për sulmin u përdor një dobësi në funksionin fts3_tokenizer (CVE-2019-8602, mundësia e dereferencimit të pointerit), e rregulluar në përditësimin e prillit të SQLite 2.28, së bashku me dobësi të tjera në realizimin e funksioneve të dritareve. Për më tepër, është demonstruar aplikimi i metodës për kapjen e kontrollit nga larg mbi një server backend të shkruar në PHP nga personat keqbërës, të cilët realizonin grumbullimin e fjalëkalimeve, të kapura gjatë funksionimit të kodit të dëmshëm (fjalëkalimet e kapura u dërguan në formën e një databaze SQLite).
Metoda e sulmit bazohet nĂ« pĂ«rdorimin e dy teknikave âQuery Hijackingâ dhe âQuery Oriented Programmingâ, qĂ« lejojnĂ« shfrytĂ«zimin e problemeve tĂ« rastĂ«sishme qĂ« çojnĂ« nĂ« dĂ«mtimin e memories 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 DB-sĂ«. Kjo fushĂ« pĂ«rmban njĂ« bllok DDL (Data Definition Language), i cili pĂ«rdoret pĂ«r tĂ« pĂ«rshkruar strukturĂ«n e objekteve nĂ« DB. PĂ«rcaktimi jepet duke pĂ«rdorur sintaksĂ«n standarde SQL, pra pĂ«rdoret konstruksioni âCREATE TABLEâ
i cili ekzekutohet gjatë procesit të inicializimit të DB-së (në kohën e lançimit të parë
funksioni sqlite3LocateTable) për të krijuar strukturat e brendshme të lidhura me tabelën në memorie.
Ideja Ă«shtĂ« qĂ«, si rezultat i zĂ«vendĂ«simit tĂ« âCREATE TABLEâ me âCREATE VIEWâ, shfaqet mundĂ«sia pĂ«rmes pĂ«rcaktimit tĂ« pamjes tuaj pĂ«r tĂ« kontrolluar çdo referencĂ« nĂ« DB. Me ndihmĂ«n e âCREATE VIEWâ, operacioni âSELECTâ i lidhur me tabelĂ«n do tĂ« thirret nĂ« vend tĂ« âCREATE TABLEâ, duke lejuar aksesin nĂ« pjesĂ« tĂ« ndryshme tĂ« interpreterit SQLite. MĂ« pas, mĂ«nyra mĂ« e thjeshtĂ« pĂ«r tĂ« sulmuar do tĂ« ishte thirrja e funksionit âload_extensionâ, qĂ« lejon ngarkimin e njĂ« biblioteke tĂ« rastĂ«sishme me njĂ« zgjerim, por ky funksion Ă«shtĂ« çaktivizuar nga parazgjedhja.
PĂ«r tĂ« realizuar sulmin nĂ« kushte qĂ« lejojnĂ« ekzekutimin e operacionit âSELECTâ, Ă«shtĂ« propozuar teknika âQuery Oriented Programmingâ, qĂ« ofron mundĂ«sinĂ« pĂ«r tĂ« shfrytĂ«zuar problemet nĂ« SQLite qĂ« çojnĂ« nĂ« dĂ«mtimin e memories. Teknikat ngjajnĂ« me programimin e orientuar nĂ« kthim (, Return-Oriented Programming), por pĂ«rdorin pĂ«r ndĂ«rtimin e zinxhirĂ«ve tĂ« thirrjeve (âgadgetsâ) jo fragmente ekzistuese tĂ« kodit tĂ« makinĂ«s, por futje nĂ« grupin e nĂ«npyetjes brenda SELECT.
Burimi: opennet.ru
