vulnerabilita RCE

La sicurezza informatica è un settore estremamente ampio, poiché con l’avanzare della tecnologia e delle tecniche di sviluppo cresce anche la complessità dei processi e, dunque, anche la possibilità che vi siano imperfezioni: le vulnerabilità.

Tra le tipologie di vulnerabilità esistenti, le Remote Code Execution (o RCE) sono annoverate tra quelle potenzialmente più pericolose, in quanto consentono agli attaccanti di eseguire codice malevolo sulla macchina colpita. In questo articolo cercheremo di capire nel dettaglio da cosa deriva la loro pericolosità e quali sono i potenziali danni che può causare lo sfruttamento di queste falle di sicurezza.

Verranno riportati degli esempi concreti di vulnerabilità di questo tipo, illustrandone gli effetti e le peculiarità.
Infine verranno descritte alcune misure preventive che possono aiutare ad evitare o mitigare i danni.

Sommario degli argomenti

Remote Code Execution o vulnerabilità RCE, ecco di che cosa si tratta

Le Remote Code Execution sono un tipo di vulnerabilità in cui un attaccante riesce ad ottenere la possibilità di far eseguire del codice arbitrario e malevolo alle macchine attaccate. Le RCE fanno parte di un più ampio tipo di vulnerabilità, chiamate ACE (Arbitrary Code Execution). Sono le più diffuse e pericolose di questa tipologia, in quanto possono essere sfruttate anche senza aver ottenuto l’accesso al sistema attaccato.

Le RCE sono considerate vulnerabilità compromettenti del sistema, in quanto possono portare a gravi conseguenze tra cui:

  • perdita di dati
  • interruzioni del servizio

ma possono anche essere usate come mezzo per iniettare malware e ransomware. La capacità di poter eseguire codice arbitrario in modo illecito può consentire agli hacker di muoversi all’interno del sistema e scalare le gerarchie per acquisire nuovi privilegi.

Cosa si può fare attraverso l’iniezione di codice arbitrario?

Molte cose, purtroppo.
Tendenzialmente si usano queste falle per portare avanti attacchi più strutturati tramite impiego di ransomware.
O peggio, è possibile sfruttare la potenza di calcolo delle macchine attaccate per minare criptovalute.
Infine, è possibile aggiungere i dispositivi colpiti a delle botfarm, una schiera di sistemi zombie pronti ad essere usati in attacchi DDoS o in campagne di disinformazione sui social.

Generalmente, le RCE proliferano laddove ci sono delle carenze di sicurezza a vari livelli, ad esempio:

  1. una superficiale validazione dell’input proveniente dagli utenti
  2. insufficiente controllo degli accessi tramite processi di autenticazione non adeguati
  3. problemi di buffer overflow più in profondità nel sistema.

Vedremo più avanti nel dettaglio queste tematiche ne corso del nostro articolo.
Nel prossimo paragrafo analizzeremo alcuni esempi più o meno celebri di vulnerabilità RCE per farci un’idea generale del problema.

Exploit RCE: alcuni esempi

Esistono vari enti preposti alla catalogazione delle vulnerabilità note. Il loro lavoro è propedeutico all’informazione degli utenti. Il fine ultimo è quello di intimare la verifica di sicurezza dei propri sistemi.

La CISA, l’agenzia per la cybersicurezza americana, tra gli altri, stila una lista aggiornata di vulnerabilità e senza ombra di dubbio le RCE sono molto diffuse, specialmente nelle classifiche delle vulnerabilità più pericolose e utilizzate. Portiamo alcuni esempi.

CVE-2021-44228 (Log4Shell)

Questa vulnerabilità è stata scoperta nel dicembre del 2021 ed ha immediatamente allarmato l’intera comunità di sicurezza informatica, nonché le aziende e gli utenti che usufruivano della libreria compromessa.

Tale libreria è log4j, utilizzata da milioni di servizi e sistemi scritti in Java per fare il log di messaggi di errore.
Da questa vulnerabilità si sono poi originate ulteriori falle di sicurezza, prolungando il problema per tutto il 2022.

Log4Shell è una vulnerabilità di tipo Remote Code Execution tramite la quale gli attaccanti possono eseguire del codice arbitrario sui sistemi colpiti anche senza aver fornito alcun tipo di autenticazione.

La pericolosità sta anche nella facilità di utilizzo: anche un hacker inesperto può sfruttare questa vulnerabilità con successo.

Spring4Shell

Nell’aprile del 2022 è stata scoperta una vulnerabilità critica di severità 9.8/10 all’interno del framework Java Spring. Nei mesi precedenti c’erano già stati problemi con la sicurezza del prodotto e le patch rilasciate sono state bypassate nelle settimane seguenti. La vulnerabilità originata era di tipo Remote Code Execution e, in alcune configurazioni del framework, lo sfruttamento poteva avvenire in maniera piuttosto diretta e relativamente semplice attraverso delle semplici richieste HTTP mirate. Le ricerche portate avanti dalla CISA hanno evidenziato ancora una volta l’utilizzo di questo tipo di vulnerabilità per porre una backdoor nell’applicativo o per cercare di ottenere maggiori privilegi.

ELEMENTOR (WordPress)

Elementor è un plugin del CRM WordPress che conta circa 5 milioni di download.

A marzo del 2022 è stata trovata una vulnerabilità di tipo RCE che poteva essere sfruttata per ottenere il controllo dei siti web che facevano uso del servizio. Secondo i ricercatori, permetteva a tutti gli utenti autenticati di eseguire codice PHP arbitrario, arrivando facilmente a prendere il controllo completo del sito web ed utilizzarlo come base per altri attacchi (ad esempio attacchi XSS).

I principali rischi connessi ad una vulnerabilità RCE

Come già accennato, le RCE possono portare gli attaccanti ad ottenere il completo controllo del sistema, atto che sfocia in vari scenari.
Di seguito vediamo nel dettaglio alcuni casi più frequenti.

  • Privilege escalation

    In alcuni casi, le RCE sono sfruttate come ‘rampa di lancio’ per altri attacchi, più strutturati.
    Ad esempio, è possibile che i server di un servizio abbiano delle vulnerabilità interne, sfruttabili solamente se si ha un qualche livello di autenticazione. Con del codice arbitrario è possibile scalare la gerarchia dei privilegi e ottenere l’autorizzazione necessaria per poter agire su tali vulnerabilità.

  • Esfiltrazione di dati sensibili

    Eseguire codice malevolo da remoto è estremamente efficace se si vogliono esfiltrare dei dati sensibili da un sistema. È infatti possibile far eseguire a piacimento alcuni malware progettati per questo scopo: dal semplice script che copia dati non criptati al più complesso memory scraper.

  • Mining di Criptovalute

    Questa eventualità diventa più comune con l’incremento di popolarità delle cripto valute. Ottenere le monete digitali diventa sempre più laborioso e occorrono calcolatori potenti e dedicati solamente al mining. Alcuni cyber criminali, però, puntano a creare una rete di molti calcolatori ‘domestici’, che cedono parte della loro potenza di calcolo per questo scopo senza che il proprietario se ne accorga. Ciò avviene grazie a malware specifici di cryptomining, fatti eseguire in seguito allo sfruttamento di una vulnerabilità RCE.

  • Denial of Service (DoS)

    Il codice arbitrario fatto eseguire dagli attaccanti è un mezzo perfetto per appesantire il sistema e causare rallentamenti e crash, portando ad una effettiva interruzione del servizio. Il sistema compromesso può inoltre essere la base di partenza per attacchi di questo genere verso terzi.

  • Ransomware

    Forse il rischio più pericoloso che si corre quando si ha a che fare con queste vulnerabilità. Gli attaccanti possono lanciare un ransomware, il quale tipicamente cripta i dati presenti nel sistema, effettivamente congelando il servizio fino al pagamento del riscatto.

Come ci si difende dalle vulnerabilità RCE?

Abbiamo visto la pericolosità delle Remote Code Execution e come queste possano essere usate dagli attaccanti per causare ogni tipo di disservizio. Ma quali precauzioni  è possibile mettere in pratica per diminuire la probabilità di ospitare una vulnerabilità di questo tipo?

Ecco alcune buone norme che sicuramente possono aiutare.

Sanificare gli input

immessi dagli utenti è una buona norma che aiuta a prevenire una vasta gamma di problematiche, come ad esempio XSS o Code Injection di vario tipo. Dovrebbe essere uno standard ma è spesso implementata in maniera insufficiente. Gli attaccanti sfruttano queste imperfezioni per far eseguire del codice malevolo che, in caso di successo, gli darà modo di gettare le basi per attacchi più complessi.

É fondamentale, inoltre, una corretta gestione della memoria. I buffer overflow possono essere sfruttati dagli attaccanti per destabilizzare alcuni processi nella gestione degli oggetti in memoria e portare alla possibilità di eseguire codice arbitrario. Problemi di questo tipo possono essere evitati effettuando dei test sul codice.

Per prevenire una scalata dei privilegi c’è bisogno di un ferreo controllo degli accessi. Come già evidenziato in precedenza, le RCE vengono sfruttate per ottenere privilegi sempre maggiori all’interno del sistema. Si può giocare d’anticipo, segmentando la propria rete in più sotto-reti, aventi ognuna la propria policy di sicurezza e accesso. Ciò mantiene il problema confinato alla sottorete colpita, con buona pace del cyber criminale.

Infine, se si effettua una attenta analisi del traffico si prevengono interazioni tra il sistema e i terminali remoti (quelli degli attaccanti). Gli attaccanti potrebbero infatti intercettare il traffico al fine di ottenere informazioni utili per tentare l’accesso al sistema.

Conclusioni

Le RCE (remote Code Execution) fanno parte del più ampio ventaglio delle ACE (Arbitrary Code Execution).

Sono vulnerabilità pericolose in quanto concedono agli attaccanti la libertà di eseguire del codice arbitrario nel sistema sotto attacco, senza necessariamente avere effettuato l’accesso ad esso.

Abbiamo visto come a partire dalle RCE si possa arrivare alla perdita di dati sensibili o addirittura alla perdita del controllo di un sito. Le RCE sono spesso usate come ‘ariete’ penetrare nel sistema e iniziare la scalata ai previlegi.

Fortunatamente è possibile prevenire o mitigare lo sfruttamento di queste vulnerabilità operando delle misure preventive molto efficaci, applicabili sia in fase di sviluppo che in seguito, rivolgendosi ad esperti del settore.

Cyberment Srl

Cyberment è un’azienda specializzata in consulenza di sicurezza informatica. Il nostro red team è composto da hacker etici e specialisti in cybersecurity che operano in questo settore da oltre 20 anni.

Ci occupiamo di identificare le vulnerabilità informatiche nei sistemi e nelle applicazioni web tramite servizi di Vulnerability Assessment e Penetration Test.

Siamo un’azienda di sicurezza informatica certificata ISO 9001, ISO 27001, nonché azienda etica. Abbiamo sede legale a Milano e sede operativa a Porto Mantovano, mentre Londra è il cuore del nostro reparto ricerca e sviluppo.

Se desideri conoscere in modo approfondito i nostri servizi di prevenzione dalle minacce informatiche, contattaci!