Une nouvelle technique d'exploitation des vulnérabilités de SQLite a été introduite.

Des chercheurs de Check Point dĂ©couvert lors de la confĂ©rence DEF CON, dĂ©tails d'une nouvelle technique pour attaquer les applications utilisant des versions vulnĂ©rables de SQLite. La mĂ©thode Check Point considĂšre les fichiers de base de donnĂ©es comme une opportunitĂ© d'intĂ©grer des scĂ©narios d'exploitation de vulnĂ©rabilitĂ©s dans divers sous-systĂšmes internes de SQLite qui ne sont pas directement exploitables. Les chercheurs ont Ă©galement prĂ©parĂ© une technique pour exploiter les vulnĂ©rabilitĂ©s en codant l'exploit sous la forme d'une chaĂźne de requĂȘtes SELECT dans la base de donnĂ©es SQLite, ce qui permet de contourner l'ASLR.

Pour rĂ©ussir une attaque, il est nĂ©cessaire de pouvoir modifier les fichiers de base de donnĂ©es des applications attaquĂ©es, ce qui limite la mĂ©thode aux attaques sur les applications qui utilisent la base de donnĂ©es SQLite comme format de transit et d'entrĂ©e des donnĂ©es. La mĂ©thode peut Ă©galement ĂȘtre utilisĂ©e pour Ă©tendre l'accĂšs local existant, par exemple pour intĂ©grer des portes dĂ©robĂ©es cachĂ©es dans les applications utilisĂ©es, ainsi que pour contourner les mĂ©canismes de sĂ©curitĂ© lors de l'analyse des logiciels malveillants par les chercheurs en sĂ©curitĂ©. L'opĂ©ration aprĂšs la substitution de fichier est effectuĂ©e au moment oĂč l'application exĂ©cute la premiĂšre requĂȘte SELECT sur une table de la base de donnĂ©es modifiĂ©e.

A titre d'exemple, nous avons dĂ©montrĂ© la possibilitĂ© d'exĂ©cuter du code sous iOS lors de l'ouverture d'un carnet d'adresses, le fichier avec la base de donnĂ©es « AddressBook.sqlitedb » a Ă©tĂ© modifiĂ© Ă  l'aide de la mĂ©thode proposĂ©e. L'attaque a utilisĂ© une vulnĂ©rabilitĂ© dans la fonction fts3_tokenizer (CVE-2019-8602, capacitĂ© de dĂ©rĂ©fĂ©rencement de pointeur), corrigĂ©e dans la mise Ă  jour SQLite 2.28 d'avril, ainsi qu'une autre vulnĂ©rabilitĂ© dans l'implĂ©mentation des fonctions de fenĂȘtre. De plus, l’utilisation d’une mĂ©thode de prise de contrĂŽle Ă  distance du serveur backend d’un attaquant Ă©crite en PHP, qui accumule les mots de passe interceptĂ©s lors du fonctionnement d’un code malveillant (les mots de passe interceptĂ©s ont Ă©tĂ© transmis sous la forme d’une base de donnĂ©es SQLite), a Ă©tĂ© dĂ©montrĂ©e.

La méthode d'attaque est basée sur l'utilisation de deux techniques « Query Hijacking » et « Query Oriented Programming », qui permettent d'exploiter des problÚmes arbitraires conduisant à une corruption de la mémoire dans le moteur SQLite. L'essence du « Query Hijacking » est de remplacer le contenu du champ « sql » dans la table de service sqlite_master, qui détermine la structure de la base de données. Le champ spécifié contient un bloc DDL (Data Definition Language) utilisé pour décrire la structure des objets dans la base de données. La description est spécifiée à l'aide de la syntaxe SQL standard, c'est-à-dire la construction « CREATE TABLE » est utilisée,
qui est exécuté lors du processus d'initialisation de la base de données (lors du premier lancement
Fonctions sqlite3LocateTable pour créer des structures internes liées aux tables en mémoire.

L'idĂ©e est qu'en remplaçant « CREATE TABLE » par « CREATE VIEW », il devient possible de contrĂŽler tout accĂšs Ă  la base de donnĂ©es en dĂ©finissant votre propre vue. En utilisant "CREATE VIEW", une opĂ©ration "SELECT" est liĂ©e Ă  la table, qui sera appelĂ©e Ă  la place de "CREATE TABLE" et vous permettra d'accĂ©der Ă  diffĂ©rentes parties de l'interprĂ©teur SQLite. Ensuite, la mĂ©thode d'attaque la plus simple serait d'appeler la fonction « load_extension Â», qui permet de charger une bibliothĂšque arbitraire avec une extension, mais cette fonction est dĂ©sactivĂ©e par dĂ©faut.

Pour mener une attaque lorsqu'il est possible d'effectuer l'opĂ©ration « SELECT », la technique « Query Oriented Programming » est proposĂ©e, qui permet d'exploiter des problĂšmes dans SQLite conduisant Ă  une corruption de mĂ©moire. La technique rappelle la programmation orientĂ©e retour (ROP, Programmation orientĂ©e retour), mais n'utilise pas d'extraits de code machine existants pour construire une chaĂźne d'appels (« gadgets »), mais les insĂšre dans un ensemble de sous-requĂȘtes Ă  l'intĂ©rieur de SELECT.

Une nouvelle technique d'exploitation des vulnérabilités de SQLite a été introduite.

Une nouvelle technique d'exploitation des vulnérabilités de SQLite a été introduite.

Source: opennet.ru

Achetez un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Achetez un hĂ©bergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster