Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

Alla Scoperta degli Adversarial SQLi Attack. Solo il nome fa paura!

Alessandro Rugolo : 1 Maggio 2024 10:38

Ho già parlato in diverse occasioni di attacchi del tipo SQL Injection e questo non è che una sua evoluzione. Come è noto SQL è il linguaggio standard impiegato per interagire con un database relazionale.

Uno sguardo alle SQL injection

SQL Injection o “Structured Query Language Injection” è un tipo di attacco nei confronti del database di un’applicazione web che consiste nella esecuzione di una interrogazione malevola. Molte applicazioni WEB sono infatti tuttora vulnerabili a questo tipo di attacco che consiste nell’inserire nei campi di ricerca o nei form interni delle stringhe di testo che includono dei simboli o dei caratteri speciali che a noi possono sembrare innocui vengono interpretati in determinati modi dal database.

Dato che gli attacchi SQLi sono sempre in testa alle classifiche, allo scopo di migliorare le tecniche di difesa, i ricercatori di sicurezza hanno approfondito questo tipo di attacco concentrandosi in particolare su alcune tecniche di detection basate su due paradigmi:

  • detection tramite signature: le signatures sono identificatori specifici di modelli di attacco noti, come per esempio sequenze di caratteri, payloads o comportamenti particolari associati a vulnerabilità o exploit;
  • Machine Learning detection: l’individuazione dell’attacco è devoluta a modelli di ML che grazie all’addestramento estensivo sono capaci di individuare e bloccare tentativi di attacco.

Mentre per le tecniche basate su signature è chiaro che un attacco viene individuato se la signature è presente nel database di firme malevole, per quanto riguarda la detection tramite algoritmi ML c’è molto da dire. Quest’ultima categoria infatti cerca di individuare gli attacchi SQLi grazie all’addestramento cui è stato sottoposto l’algoritmo di ML.

Per cercare di evitare di essere individuati dagli algoritmi di Machine Learning detection gli attaccanti hanno inventato una nuova tecnica di attacco chiamata per l’appunto Adversarial SQLi attack. Cerchiamo ora di capire che cosa sia un Adversarial SQLi Attack, come funziona un attacco di questo tipo e come lo si può contrastare.

Cominciamo come al solito dall’inizio, la definizione di Adversarial SQLi Attack.

Per Adversarial SQLi Attack si intende un attacco di tipo SQL injection costruito appositamente per non essere individuato da modelli di Machine Learning che si occupano di contrastare attacchi SQLi.

In pratica si tratta di un tipo di attacco che sfrutta le vulnerabilità dell’addestramento del modello ML impiegato da strumenti come i Web Application Firewall (WAF) per individuare gli attacchi di tipo SQL Injection.

Consiste nel modificare un payload malevolo (codice malevolo usato per l’attacco SQLi) affinchè il modello di ML utilizzato nei WAF non lo classifichi come tale ma come una richiesta legittima. Ma come è possibile aggirare gli algoritmi di Machine Learning?

Occorre sapere che la maggior parte dei WAF open source, ma spesso anche quelli proprietari, si basano su un set di regole chiamato Core Rule Set (CRS), sviluppato da Open Web Application Security Project (OWASP). OWASP ha anche sviluppato un WAF open source, ModSecurity, che è spesso integrato in altri sistemi. In pratica la maggior parte dei sistemi di detection di SQLi si basa sul CRS. Ma siamo sicuri che ciò sia un bene?

La risposta sembra essere negativa. Secondo le risultanze di alcuni test le regole CRS portano in alcuni casi ad avere un elevato numero di falsi positivi, in pratica richieste legittime vengono scambiate per attacchi di tipo SQLi, provocando disservizio. Inoltre ModSecurity è altamente vulnerabile a attacchi di tipo Adversarial.

Ma come è possibile difendersi da questo tipo di attacco?

Per cercare di risolvere questi problemi sono stati seguiti diversi approcci tra cui quello conosciuto come AdvModSec, che consiste nell’addestrare il modello ML agli attacchi di tipo Adversarial, ovvero a riconoscere le varianti di un attacco SQLi. Il nuovo modello così addestrato sarà capace di riconoscere gli attacchi SQLi e loro varianti e di ridurre il numero di falsi positivi, avendo in definitiva un sistema di detection più efficace.

Alessandro Rugolo
Presidente di SICYNT -Società Italiana per lo sviluppo della cultura cyber e delle nuove tecnologie. Appassionato di nuove tecnologie, giornalismo e strategia. Autore di numerosi articoli, autore del libro "Il dominio Cyber". Coordinatore della rubrica cyber di Difesa Online. Socio del Centro Studi privacy e nuove tecnologie, del Centro Studi Esercito e di DeComponendisCifris. Colonnello dell'Esercito in riserva.