È stata scoperta una nuova tecnica per sfruttare le vulnerabilità in SQLite

versioni vulnerabili di SQLite

I I ricercatori di Check Point hanno recentemente rivelato nella conferenza DEF con i dettagli di una nuova tecnica che è stata scoperta, questo è usato pPer attaccare le applicazioni che utilizzano versioni vulnerabili di SQLite.

Il metodo Check Point considera i file di database come un'opportunità per integrare scenari di sfruttamento delle vulnerabilità in vari sottosistemi SQLite interni che non sono accessibili per lo sfruttamento della fronte. I ricercatori hanno anche sviluppato una tecnica per sfruttare le vulnerabilità con la codifica degli exploit sotto forma di una stringa di query SELECT in un database SQLite, che consente di evitare ASLR.

A proposito di vulnerabilità

I ricercatori di Check Point lo dettagliano per un attacco riuscito, un utente malintenzionato deve essere in grado di modificare i file di database delle applicazioni attaccate, che limita il metodo di attacco alle applicazioni che utilizzano database SQLite come formato per i dati di transito e di input.

Anche se rivelano inoltre che il metodo può essere utilizzato anche per espandere l'accesso locale già ottenuto, ad esempio, per integrare backdoor nascoste nelle applicazioni utilizzate, nonché per evitare ricercatori di sicurezza durante l'analisi del malware.

L'operazione dopo la rappresentazione del file viene eseguita nel momento in cui l'applicazione esegue la prima richiesta SELECT alla tabella nel database modificato.

Ad esempio, è stata dimostrata la capacità di eseguire codice su iOS all'apertura della rubrica, il file con il database «Rubrica indirizzi.sqlitedb»Che è stato modificato utilizzando il metodo proposto.

Per l'attacco una vulnerabilità è stata utilizzata nella funzione fts3_tokenizer (CVE-2019-8602, la capacità di dereferenziare un puntatore), corretto nell'aggiornamento SQLite 2.28 di aprile, insieme a un'altra vulnerabilità nell'implementazione delle funzioni della finestra.

Inoltre, dimostra l'uso del metodo per il controllo remoto del sequestro di un server di backend da parte di aggressori scritti in PHP, che accumula le password intercettate durante l'operazione di codice dannoso (le password intercettate sono state trasferite sotto forma di un database SQLite).

Il metodo di attacco si basa sull'utilizzo di due tecniche, Query Hijacking e Query Oriented Programming, che consentono di sfruttare problemi arbitrari che portano al danneggiamento della memoria nel motore SQLite.

L'essenza di "Query hijacking" consiste nel sostituire il contenuto del campo "sql" nella tabella del servizio sqlite_master che definisce la struttura del database. Il campo specificato contiene il blocco DDL (Data Definition Language) utilizzato per descrivere la struttura degli oggetti nel database.

La descrizione viene impostata utilizzando la normale sintassi SQL, ad es. Il costrutto "CREATE TABLE", che viene eseguito durante l'inizializzazione del database (durante la prima esecuzione della funzione sqlite3LocateTable) viene utilizzato per creare strutture interne associate alla tabella in memoria.

L'idea è che come risultato della sostituzione di "CREATE TABLE" e "CREATE VIEW, è possibile controllare qualsiasi accesso al database attraverso la definizione della sua vista.

D'altra parte, utilizzando il comando "CREATE VIEW", viene allegata alla tabella un'operazione "SELECT", che verrà chiamata al posto di "CREATE TABLE" e consentirà all'aggressore di accedere a varie parti dell'interprete SQLite.

Oltre a questo, il modo più semplice per attaccare sarebbe chiamare la funzione "load_extension", che consente all'attaccante di caricare una libreria arbitraria con l'estensione, ma questa funzione è disabilitata per impostazione predefinita.

Per eseguire un attacco nelle condizioni della possibilità di eseguire l'operazione SELECT, è stata proposta la tecnica di programmazione orientata alla query, che consente di sfruttare problemi in SQLite che portano al danneggiamento della memoria.

La tecnica ricorda la programmazione ROP (Return Oriented Programming), ma utilizza frammenti di codice macchina inesistenti, ma viene inserita in una serie di sottoquery all'interno di SELECT per costruire una catena di chiamate ("gadget").

fonte: https://threatpost.com/


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.