Nessun pericolo grazie a Rails: una difesa efficace contro gli attacchi di iniezione di codice
Akamai è costantemente impegnata a ottimizzare il proprio WAF (Web Application Firewall) per garantire ai clienti il massimo livello di sicurezza. A tale proposito, siamo lieti di annunciare il lancio di una nuova funzionalità di rilevamento specifica per gli attacchi di iniezione di codice mirati alle applicazioni Ruby on Rails (Rails).
Perché è fondamentale proteggere le applicazioni Ruby on Rails?
Ruby on Rails è diventato un framework diffuso per lo sviluppo di applicazioni web per la semplicità di utilizzo, la flessibilità e il robusto ecosistema. La sua capacità di accelerare i tempi di sviluppo, conservando allo stesso tempo un codebase pulito e compatibile, lo ha reso molto appetibile per gli sviluppatori di qualsiasi organizzazione. Molti brand noti del settore, come GitHub, Shopify, Airbnb e Basecamp, hanno costruito le loro piattaforme utilizzando Ruby on Rails, il che sottolinea la sua importanza in ambito tecnologico.
Tuttavia, Rails è anche diventato un bersaglio molto allettante di attacchi informatici per gli stessi motivi per i quali è così apprezzato dagli sviluppatori. La maggiore automazione dei processi e la crescente esigenza di interoperabilità delle applicazioni creano, infatti, nuovi punti in cui i malintenzionati possono nascondersi. Proteggere le applicazioni Rails è, quindi, essenziale per salvaguardare i dati sensibili e le operazioni aziendali di queste importanti piattaforme.
L'aumento delle minacce contro Ruby on Rails
Nel corso degli anni, Rails ha dovuto affrontare numerose vulnerabilità di sicurezza e vettori di attacco di una certa entità. L'Open Worldwide Application Security Project (OWASP) offre una scheda di riferimento sulla protezione di Rails che evidenzia quanto sia fondamentale per sviluppatori e team addetti alla sicurezza stare sempre all'erta.
Sebbene la maggior parte delle vulnerabilità di alto profilo di Rails sia stata attribuita alla deserializzazione non protetta di formati di dati JSON e YAML, gli sviluppatori potrebbero inavvertitamente esporre l'applicazione e i dati degli utenti ad altri tipi di attacchi, come l'iniezione di codice. Ciò è particolarmente evidente con la funzione "eval"del linguaggio Ruby, che sviluppa dinamicamente codice Ruby da un'immissione di stringhe. Se il malintenzionato riesce a immettere codice all'interno di questa funzione, può eseguire qualsiasi codice Ruby in modo arbitrario.
Riportiamo di seguito un esempio di un caso simile:
def calculate
calc = params[:calc]
result = eval(calc)
render plain: result
End
In questo esempio estremamente elementare, l'azione di calcolo prende il parametro calc dall'input dell'utente, che include un'operazione matematica come "1+2" e utilizza la funzione " eval" di Ruby, che restituisce il risultato dell'operazione matematica. In tal modo, l'autore dell'attacco può insinuarsi in questa vulnerabilità creatasi per fornire codice Ruby arbitrario da eseguire.
Come l'autore dell'attacco può sfruttare questa vulnerabilità
L'autore di un attacco potrebbe sfruttare tale vulnerabilità inviando una richiesta creata ad hoc con codice Ruby dannoso, come:
POST /calculate?ip=IO.popen('cat%20%2Fetc%2Fpasswd').read%20%23
Oppure nella sua forma decodificata:
IO.popen('cat /etc/passwd').read #
Questo comando porterebbe alla lettura dei contenuti del file /etc/passwd del sistema, che contiene informazioni sensibili sugli utenti. Il simbolo # alla fine è un commento di Ruby che indica di ignorare gli elementi che lo seguono, per evitare errori di sintassi nel resto del codice.
Mitigazione con la soluzione Adaptive Security Engine
L'aumento di minacce informatiche sofisticate crea l'urgenza di adottare misure di sicurezza solide e robuste. La nostra ultima regola di Adaptive Security Engine, 3000404 — Ruby on Rails Sensitive Operation Injection Attack Detected, offre un livello di precisione e protezione più elevato nel rilevamento e nella mitigazione degli attacchi di iniezioni di codice verso le applicazioni Ruby (Figura 1).
Vantaggi principali
Migliore precisione: le tecniche di rilevamento avanzato individuano con precisione i tentativi di iniezioni di codice e li bloccano, riducendo al minimo i falsi positivi e garantendo che non ci siano ripercussioni sul traffico lecito
Copertura completa: la copertura capillare di un ampio spettro di vettori di iniezioni di codice offre una solida protezione delle applicazioni Ruby
Gli attacchi di iniezione di codice su applicazioni Ruby on Rails ai danni dei nostri clienti
Grazie alla nostra nuova regola specifica per le applicazioni Rails, siamo in grado di rilevare ogni giorno decine di migliaia di tentativi di iniezioni di codice in tutto il mondo. Nelle ultime settimane, la regola di Adaptive Security Engine ha registrato un picco di quasi 250.000 rilevamenti in un solo giorno e una media di quasi 70.000 attacchi mitigati al giorno (Figura 2).
Finora abbiamo osservato oltre 3.000 IP univoci che hanno tentato di attaccare oltre 21.000 host. Tali tentativi provenivano da tutto il mondo, ma la maggior parte è stata rilevata in Germania (Figura 3).
Uno sguardo al futuro
La sicurezza è un aspetto fondamentale della vostra azienda, per cui ci impegniamo a fornire soluzioni che non solo soddisfino ma che superino le vostre aspettative. Il nostro WAF è progettato per fornire una protezione completa e l'aggiunta della regola di rilevamento delle iniezioni di codice in Rails rafforza ulteriormente i nostri meccanismi di difesa per proteggere le vostre applicazioni e i vostri dati.
Continueremo a innovare ed espandere le funzionalità del nostro WAF con in mente il solo obiettivo di fornire ai nostri clienti le soluzioni di sicurezza più efficienti e affidabili possibili. Non perdetevi i nostri prossimi aggiornamenti, perché lavoreremo senza sosta per ottimizzare le nostre offerte di prodotti e conservare la nostra posizione in prima linea nel campo della sicurezza delle applicazioni web.
Per ulteriori informazioni su Adaptive Security Engine e sulle soluzioni di sicurezza per le API e le applicazioni web di Akamai, contattate il vostro rappresentante Akamai.