Cos'è l'esecuzione di codice remoto?
Un attacco RCE (esecuzione di codice remoto) consiste in un malintenzionato che esegue codice dannoso sui computer o sulla rete di un'organizzazione. La capacità di eseguire codice controllato dall'aggressore può essere sfruttata per vari scopi, tra cui l'implementazione di malware aggiuntivo o il furto di dati sensibili.
Come funzionano gli attacchi di esecuzione di codice in remoto (RCE)
Gli attacchi tramite esecuzione di codice remoto si verificano solitamente tramite vulnerabilità nelle applicazioni Web e nell'infrastruttura di rete.
Le vulnerabilità legate all'esecuzione di codice in modalità remota sono difetti nel software che consentono a un aggressore di eseguire codice dannoso su un sistema di destinazione. Per RCE possono essere utilizzati diversi tipi di vulnerabilità, tra cui i seguenti esempi:
- Vulnerabilità di injection: una vulnerabilità di injection, come l'SQL injection o la command injection, è abilitata da una scarsa sanificazione dell'input. Se un utente fornisce un input malevolo, attentamente studiato, alcuni dei dati forniti verranno interpretati come comandi da eseguire. Ciò consente al malintenzionato di forzare il sistema vulnerabile a eseguire il codice fornito dall'aggressore.
- Deserializzazione non sicura: la serializzazione semplifica la trasmissione di set di dati impacchettandoli in un'unica stringa di bit che deve essere decompressa dal sistema destinatario. Tuttavia, se la struttura dei dati serializzati non è ben definita, un autore di un attacco potrebbe essere in grado di creare un input che viene interpretato erroneamente quando viene decompresso. A seconda delle modalità di archiviazione ed elaborazione dei dati, questa errata interpretazione può consentire all'aggressore di eseguire il codice.
- Scrittura fuori limite: un buffer è una porzione di memoria di dimensioni fisse allocata per memorizzare dati. Letture o scritture di dati non sicure potrebbero consentire a un malintenzionato di inserire i dati in una posizione in cui potrebbero essere interpretati come codice o come importanti informazioni sul flusso di controllo per l'applicazione.
- Gestione dei file: alcune applicazioni consentono agli utenti di caricare file su un server. L'accesso fornito può consentire a un autore di un attacco di caricare un file contenente codice dannoso e indurre l'applicazione a eseguirlo.
Il malware è un codice fornito da un utente malintenzionato progettato per essere eseguito su un sistema di destinazione. Una vulnerabilità RCE consente semplicemente a un malintenzionato di distribuire malware in diversi modi.
Di conseguenza, le vulnerabilità RCE possono essere utilizzate per raggiungere molti degli stessi obiettivi del malware tradizionale. RCE può essere utilizzato per distribuire malware su un sistema vulnerabile, eseguire un attacco denial-of-service (DoS) o accedere a informazioni sensibili archiviate su un sistema.
Come gli autori di attacchi possono utilizzare l'RCE
L'esecuzione di codice remoto è pericolosa perché la possibilità di eseguire codice dannoso offre al malintenzionato una serie di opzioni. Alcuni dei modi in cui le vulnerabilità RCE possono essere utilizzate per ulteriori attacchi comuni includono:
- Accesso remoto: Le vulnerabilità RCE vengono comunemente sfruttate per fornire a un aggressore un punto d'appoggio iniziale su una rete aziendale, da cui poi potrebbe espandersi. Ad esempio, una vulnerabilità RCE potrebbe consentire a un autore di un attacco di rubare le credenziali di accesso che gli consentirebbero l'accesso alla rete tramite una VPN.
- Distribuzione di malware: sebbene le vulnerabilità RCE consentano l'esecuzione di codice, questo codice potrebbe avere un ambito limitato. Per aggirare questa limitazione, gli autori di attacchi possono utilizzare RCE per scaricare ed eseguire altro malware più distruttivo. Ad esempio, RCE potrebbe essere utilizzato per scaricare ed eseguire ransomware su un sistema vulnerabile.
- Furto di dati: le vulnerabilità RCE potrebbero consentire a un autore di un attacco di eseguire comandi all'interno di un'applicazione vulnerabile. Ciò può fornire l'accesso al filesystem, ai database e ad altri archivi di dati aziendali e dei clienti sensibili.
- Distruzione dei dati: le vulnerabilità RCE potrebbero consentire a un autore di un attacco di eseguire comandi DROP all'interno di un database o di eseguire codice all'interno del terminale di sistema. Questo accesso fornisce la stessa capacità di eliminare i file che avrebbe un utente legittimo
- Attacchi DoS: le vulnerabilità di scrittura fuori limite consentono a un autore di un attacco di sovrascrivere codice critico, bloccando un'applicazione. Altre vulnerabilità RCE potrebbero consentire la chiusura dei processi o l'eliminazione di dati vitali.
Come impedire l'esecuzione di codice in remoto
Gli attacchi basati sull'esecuzione di codice in modalità remota sono resi possibili dalle vulnerabilità presenti nelle applicazioni Web aziendali. Alcuni dei metodi che le aziende possono utilizzare per ridurre la loro esposizione agli attacchi RCE includono:
- Scansione delle vulnerabilità: una combinazione di analisi statica del codice, per identificare modelli di vulnerabilità noti, e analisi dinamica come il fuzzing può aiutare gli sviluppatori a identificare e correggere le vulnerabilità RCE prima che possano essere sfruttate.
- Aggiornamento e patch: le vulnerabilità RCE possono essere rilevate in un'applicazione o nelle librerie di terze parti da cui dipende. L'applicazione tempestiva di aggiornamenti e patch riduce la finestra temporale in cui il codice vulnerabile potrebbe essere sfruttato.
- Convalida dell'input: la maggior parte delle vulnerabilità RCE riguardano una convalida degli input scadente, in cui un'applicazione fa ipotesi sui dati forniti dall'utente Una convalida affidabile dell'input può eliminare la minaccia della maggior parte delle vulnerabilità RCE.
- Monitoraggio della rete: i tentativi di exploit RCE possono essere rilevati e bloccati da una soluzione di protezione delle applicazioni Web e delle API (WAAP). L'implementazione di soluzioni di sicurezza di rete davanti alle applicazioni Web può ridurre i potenziali rischi di vulnerabilità non corrette.
Proteggersi da RCE con Cloudflare One
Poiché le applicazioni Web si spostano sempre più verso l'hosting basato su cloud, proteggerle da attacchi informatici diventa sempre più difficile. Il Web Application Firewall di Cloudflare utilizza una vasta gamma di intelligence delle minacce globali per bloccare i tentativi di esecuzione di codice in remoto.
Inoltre, Cloudflare One, la piattaforma Secure Access Service Edge (SASE) di Cloudflare fornisce sicurezza e monitoraggio affidabili per le applicazioni aziendali interne.