Vi serve il cloud computing? Iniziate subito

Nessun pericolo grazie a Rails: una difesa efficace contro gli attacchi di iniezione di codice

Akamai Wave Blue

scritto da

Sam Tinklenberg, Maxim Zavodchik, e Aparna Mandal

November 06, 2024

Sam Tinklenberg

scritto da

Sam Tinklenberg

Sam Tinklenberg svolge il ruolo di Senior Security Researcher del reparto Apps & APIs Threat Research Group di Akamai. Sam vanta un background di tutto rispetto nei test di penetrazione delle applicazioni web e si dedica con passione all'individuazione e alla protezione dalle vulnerabilità critiche. Quando non si occupa di app web, Sam si diverte con videogame e giochi da tavolo, ama fare escursioni all'aperto e uscire con amici e parenti.

Maxim Zavodchik

scritto da

Maxim Zavodchik

Maxim Zavodchik svolge il ruolo di Senior Manager del reparto Apps & APIs Threat Research di Akamai.

Aparna Mandal

scritto da

Aparna Mandal

Aparna Mandal is the Lead Product Manager for Akamai Adaptive Security Engine, the core web application firewall engine for Akamai's web application and API security solution. She has more than a decade of experience in building and implementing innovative and efficient solutions.

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.
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.

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).

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). Figura 1. Attacco di iniezione di codice in Ruby bloccato dalla regola 3000404 di Adaptive Security Engine

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).

 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). Figura 2. Rilevamenti giornalieri registrati dalla regola 3000404 di Adaptive Security Engine

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).

Tali tentativi provenivano da tutto il mondo, ma la maggior parte è stata rilevata in Germania (Figura 3). Figura 3. Mappa dei tentativi di iniezione di codice in Rails osservati

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.



Akamai Wave Blue

scritto da

Sam Tinklenberg, Maxim Zavodchik, e Aparna Mandal

November 06, 2024

Sam Tinklenberg

scritto da

Sam Tinklenberg

Sam Tinklenberg svolge il ruolo di Senior Security Researcher del reparto Apps & APIs Threat Research Group di Akamai. Sam vanta un background di tutto rispetto nei test di penetrazione delle applicazioni web e si dedica con passione all'individuazione e alla protezione dalle vulnerabilità critiche. Quando non si occupa di app web, Sam si diverte con videogame e giochi da tavolo, ama fare escursioni all'aperto e uscire con amici e parenti.

Maxim Zavodchik

scritto da

Maxim Zavodchik

Maxim Zavodchik svolge il ruolo di Senior Manager del reparto Apps & APIs Threat Research di Akamai.

Aparna Mandal

scritto da

Aparna Mandal

Aparna Mandal is the Lead Product Manager for Akamai Adaptive Security Engine, the core web application firewall engine for Akamai's web application and API security solution. She has more than a decade of experience in building and implementing innovative and efficient solutions.