S'ha introduït una nova tècnica per explotar vulnerabilitats a SQLite.

Investigadors de Check Point descobert a la conferència DEF CON, detalls d'una nova tècnica per atacar aplicacions amb versions vulnerables de SQLite. El mètode Check Point considera els fitxers de base de dades com una oportunitat per integrar escenaris d'explotació de vulnerabilitats en diversos subsistemes SQLite interns que no són directament explotables. Els investigadors també han preparat una tècnica per explotar vulnerabilitats mitjançant la codificació de l'explotació en forma d'una cadena de consultes SELECT a la base de dades SQLite, que us permet evitar ASLR.

Per a un atac reeixit, és necessari poder modificar els fitxers de base de dades de les aplicacions atacades, la qual cosa limita el mètode als atacs a aplicacions que utilitzen la base de dades SQLite com a format de trànsit i dades d'entrada. El mètode també es pot utilitzar per ampliar l'accés local existent, per exemple, per integrar les portes del darrere ocultes a les aplicacions utilitzades, així com per evitar els mecanismes de seguretat quan s'analitza programari maliciós per part dels investigadors de seguretat. L'operació després de la substitució de fitxers es porta a terme en el moment que l'aplicació executa la primera consulta SELECT contra una taula de la base de dades modificada.

Com a exemple, vam demostrar la capacitat d'executar codi a iOS en obrir una llibreta d'adreces, el fitxer amb la base de dades "AddressBook.sqlitedb" es va modificar mitjançant el mètode proposat. L'atac va utilitzar una vulnerabilitat a la funció fts3_tokenizer (CVE-2019-8602, capacitat de desreferència del punter), corregida a l'actualització SQLite 2.28 d'abril, juntament amb una altra vulnerabilitat en la implementació de funcions de finestra. A més, es va demostrar l'ús d'un mètode per prendre el control remot del servidor backend d'un atacant escrit en PHP, que acumula contrasenyes interceptades durant l'operació de codi maliciós (les contrasenyes interceptades es van transmetre en forma de base de dades SQLite).

El mètode d'atac es basa en l'ús de dues tècniques "Segrest de consultes" i "Programació orientada a consultes", que permeten explotar problemes arbitraris que condueixen a la corrupció de la memòria en el motor SQLite. L'essència del "Segrest de consultes" és substituir el contingut del camp "sql" a la taula de servei sqlite_master, que determina l'estructura de la base de dades. El camp especificat conté un bloc DDL (Data Definition Language) utilitzat per descriure l'estructura dels objectes de la base de dades. La descripció s'especifica mitjançant la sintaxi SQL estàndard, és a dir. s'utilitza la construcció "CREAR TAULA",
que s'executa durant el procés d'inicialització de la base de dades (durant el primer llançament
Funcions sqlite3LocateTable per crear estructures internes relacionades amb taules a la memòria.

La idea és que, com a resultat de substituir “CREATE TABLE” per “CREATE VIEW”, sigui possible controlar qualsevol accés a la base de dades definint la vostra pròpia vista. Utilitzant "CREATE VIEW" una operació "SELECT" està vinculada a la taula, que es cridarà en lloc de "CREATE TABLE" i us permet accedir a diferents parts de l'intèrpret SQLite. A continuació, el mètode més senzill d'atac seria cridar la funció "load_extension", que us permet carregar una biblioteca arbitrària amb una extensió, però aquesta funció està desactivada per defecte.

Per dur a terme un atac quan és possible realitzar l'operació “SELECT”, es proposa la tècnica de “Programació orientada a consultes”, que permet explotar problemes en SQLite que condueixen a la corrupció de la memòria. La tècnica recorda la programació orientada al retorn (ROP, Programació orientada al retorn), però utilitza fragments de codi màquina no existents per crear una cadena de trucades ("gadgets"), però s'insereix en un conjunt de subconsultes dins de SELECT.

S'ha introduït una nova tècnica per explotar vulnerabilitats a SQLite.

S'ha introduït una nova tècnica per explotar vulnerabilitats a SQLite.

Font: opennet.ru

Afegeix comentari