Eng nei Technik fir d'Ausbeutung vu Schwachstelle bei SQLite gouf agefouert.

Fuerscher aus Check Point opgedeckt op der DEF CON Konferenz, Detailer vun enger neier Technik fir Attacke vun Uwendungen mat vulnérabel Versioune vu SQLite. D'Check Point Method betruecht Datenbankdateien als eng Geleeënheet fir Szenarie z'integréieren fir Schwächen a verschiddenen internen SQLite Subsystemer z'exploitéieren déi net direkt exploitéierbar sinn. D'Fuerscher hunn och eng Technik fir d'Ausbeutung vu Schwachstelle virbereet andeems Dir den Ausbeutung a Form vun enger Kette vu SELECT Ufroen an der SQLite Datebank kodéiert, wat Iech erlaabt ASLR ëmzegoen.

Fir en erfollegräichen Attack ass et néideg d'Datebankdateien vun den attackéierten Uwendungen z'änneren, wat d'Methode limitéiert op Attacken op Uwendungen, déi d'SQLite-Datebank als Format fir Transit- an Inputdaten benotzen. D'Method kann och benotzt ginn fir den existente lokalen Zougang z'erweideren, zum Beispill fir verstoppte Backdoors an benotzten Uwendungen z'integréieren, wéi och fir Sécherheetsmechanismen z'ënnerhalen wann Dir Malware vu Sécherheetsfuerscher analyséiert. Operatioun no der Dateisubstitutioun gëtt am Moment duerchgefouert wou d'Applikatioun déi éischt SELECT Ufro géint eng Tabell an der geännerter Datebank ausféiert.

Als Beispill hu mir d'Fähigkeit bewisen fir Code am iOS ze lafen wann Dir en Adressbuch opmaacht, d'Datei mat der Datebank "AddressBook.sqlitedb" gouf mat der proposéierter Method geännert. D'Attack benotzt eng Schwachstelle an der fts3_tokenizer Funktioun (CVE-2019-8602, Pointer Dereference Capability), fixéiert am Abrëll SQLite 2.28 Update, zesumme mat engem aneren Schwachstelle an der Ëmsetzung vun Fënster Funktiounen. Zousätzlech gouf d'Benotzung vun enger Method fir d'Remote Kontroll vun engem Backend-Server vun engem Ugräifer an PHP geschriwwen, déi Passwierder accumuléiert, déi während der Operatioun vu béiswëllegen Code ofgefaangen sinn (déi ofgefaangen Passwierder goufen a Form vun enger SQLite-Datebank iwwerdroen).

D'Attackmethod baséiert op der Benotzung vun zwou Techniken "Query Hijacking" an "Query Oriented Programming", déi d'Exploitatioun vun arbiträre Probleemer erlaben, déi zu Erënnerungskorruptioun am SQLite-Motor féieren. D'Essenz vum "Query Hijacking" ass den Inhalt vum "sql" Feld an der sqlite_master Service Dësch ze ersetzen, wat d'Struktur vun der Datebank bestëmmt. De spezifizéierte Feld enthält en DDL (Data Definition Language) Block deen benotzt gëtt fir d'Struktur vun Objeten an der Datebank ze beschreiwen. D'Beschreiwung gëtt mat Standard SQL Syntax spezifizéiert, d.h. de "CREATE TABLE" Konstruktioun gëtt benotzt,
déi während dem Datebankinitialiséierungsprozess ausgefouert gëtt (während dem éischte Start
sqlite3LocateTable Funktiounen fir Dësch-Zesummenhang intern Strukturen an Erënnerung ze schafen.

D'Iddi ass datt, als Resultat vum Ersatz vun "CREATE TABLE" duerch "CREATE VIEW", et méiglech gëtt all Zougang zu der Datebank ze kontrolléieren andeems Dir Är eege Vue definéiert. Mat "CREATE VIEW" ass eng "SELECT" Operatioun un den Dësch gebonnen, deen amplaz "CREATE TABLE" genannt gëtt an erlaabt Iech Zougang zu verschiddenen Deeler vum SQLite Dolmetscher. Als nächst wier déi einfachst Method fir d'Attack d'Funktioun "load_extension" ze nennen, déi Iech erlaabt eng arbiträr Bibliothéik mat enger Extensioun ze lueden, awer dës Funktioun ass Standard deaktivéiert.

Fir en Attack auszeféieren wann et méiglech ass d'Operatioun "SELECT" auszeféieren, gëtt d'Technik "Query Oriented Programming" proposéiert, wat et méiglech mécht Probleemer an SQLite auszenotzen, déi zu Erënnerungskorruptioun féieren. D'Technik erënnert un Retour-orientéiert Programméierung (ROP, Return-Oriented Programming), awer benotzt net existent Ausschnëtter vum Maschinncode fir eng Kette vun Uriff ze bauen ("Gadgeten"), awer setzt an eng Rei vun Ënnersufroen an SELECT.

Eng nei Technik fir d'Ausbeutung vu Schwachstelle bei SQLite gouf agefouert.

Eng nei Technik fir d'Ausbeutung vu Schwachstelle bei SQLite gouf agefouert.

Source: opennet.ru

Setzt e Commentaire