Een nieuwe techniek voor het exploiteren van kwetsbaarheden in SQLite is gepresenteerd.

Onderzoekers van Check Point hebben onthuld op de DEF CON-conferentie gaven details over een nieuwe techniek om aanvallen uit te voeren op toepassingen die gebruikmaken van kwetsbare versies van SQLite. De methode van Check Point beschouwt databasebestanden als een mogelijkheid om exploit-scripts te integreren in verschillende interne subsystemen van SQLite, die niet rechtstreeks kunnen worden aangevallen. Onderzoekers hebben ook een techniek voorbereid voor het uitbuiten van kwetsbaarheden met de exploit gecodeerd in de vorm van een reeks SELECT-query's naar de SQLite-database, waarmee ASLR kan worden omzeild.

Voor een succesvolle aanval is de mogelijkheid om databasebestanden van de aangevallen toepassingen te modificeren noodzakelijk, wat de methode beperkt tot aanvallen op toepassingen die SQLite-databases gebruiken als formaat voor transit- en invoergegevens. De methode kan ook worden toegepast om reeds verkregen lokale toegang uit te breiden, bijvoorbeeld voor het integreren van verborgen backdoors in gebruikte toepassingen, evenals voor het omzeilen van beveiligingsmechanismen tijdens het analyseren van malware. Exploitatie na vervanging van het bestand vindt plaats wanneer de applicatie de eerste SELECT-query naar een tabel in de gewijzigde database uitvoert.

Als voorbeeld werd de mogelijkheid gedemonstreerd om code in iOS uit te voeren bij het openen van het adresboek, waarvan het databasebestand "AddressBook.sqlitedb" was gewijzigd met behulp van de voorgestelde methode. Voor de aanval werd gebruikgemaakt van een kwetsbaarheid in de functie fts3_tokenizer (CVE-2019-8602, mogelijkheid tot dereferencen van een pointer), die is verholpen in de aprilupdate van SQLite 2.28, samen met een andere kwetsbaarheid in de implementatie van vensterfuncties. Bovendien werd de toepassing van de methode gedemonstreerd voor het op afstand overnemen van de controle over een PHP-backsendsserver door aanvallers, die wachtwoorden verzamelen die zijn onderschept tijdens de werking van de malware (de onderschepte wachtwoorden werden in de vorm van een SQLite-database verzonden).

De aanvalsmethode is gebaseerd op het gebruik van twee technieken: 'Query Hijacking' en 'Query Oriented Programming', die in staat zijn willekeurige problemen te exploiteren die leiden tot geheugenbeschadiging in de SQLite-engine. De essentie van 'Query Hijacking' ligt in het vervangen van de inhoud van het veld 'sql' in de systeemtabel sqlite_master, die de structuur van de database bepaalt. Dit veld bevat een DDL-blok (Data Definition Language), gebruikt voor het beschrijven van de structuur van objecten in de database. De beschrijving wordt gegeven met behulp van de standaard SQL-syntaxis, d.w.z. de constructie 'CREATE TABLE',
die wordt uitgevoerd tijdens de initialisatie van de database (tijdens de eerste uitvoering
van de functie sqlite3LocateTable) voor het creƫren van interne structuren in het geheugen die aan de tabel zijn gerelateerd.

Het idee is dat door 'CREATE TABLE' te vervangen door 'CREATE VIEW', de mogelijkheid ontstaat om via de definitie van een eigen view elke toegang tot de database te beheersen. Met 'CREATE VIEW' wordt een 'SELECT'-operatie aan de tabel gekoppeld, die in plaats van 'CREATE TABLE' zal worden aangeroepen en waarmee toegang kan worden verkregen tot verschillende delen van de SQLite-interpreter. Vervolgens zou de eenvoudigste aanvalsmethode de aanroep van de functie 'load_extension' zijn, waarmee een willekeurige bibliotheek met een extensie kan worden geladen, maar deze functie is standaard uitgeschakeld.

Om de aanval uit te voeren in een situatie waarin de 'SELECT'-operatie kan worden uitgevoerd, werd de techniek 'Query Oriented Programming' voorgesteld, die in staat is om problemen in SQLite te exploiteren die leiden tot geheugenbeschadiging. De techniek lijkt op Return-Oriented Programming (ROP, maar gebruikt in plaats van niet-bestaande fragmenten van machinecode voor het opbouwen van een keten van aanroepen ('gadgets'), invoegstukken in een subquery-set binnen SELECT.

Een nieuwe techniek voor het exploiteren van kwetsbaarheden in SQLite is gepresenteerd.

Een nieuwe techniek voor het exploiteren van kwetsbaarheden in SQLite is gepresenteerd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster