BlueKeep

BlueKeep (CVE- 2019-0708) è una vulnerabilità Remote Code Execution presente nell’RDP dei vecchi Sistemi Operativi Windows (dal 2000 a Windows Server 2008).

È classificata con un punteggio CVSS (Common Vulnerability Scoring System) di 9.8 su 10.

La sua pericolosità è paragonabile soltanto a WannaCry, il worm che nel 2017 si diffuse in tutto il globo nell’arco di sole 24 ore.

Ma cos’è che rende BlueKeep così pericolosa e com’è possibile tutelarsi?

In questo articolo esamineremo caratteristiche, funzionamento e tecniche di prevenzione di una delle minacce più temute degli ultimi tempi.

BlueKeep, cosa è accaduto

Come riportato in apertura, BlueKeep è una vulnerabilità critica definita Remote Code Execution.

Ciò sta a significare che qualsiasi attaccante, una volta trovato l’exploit in grado di violarla, può tranquillamente assumere il totale controllo del sistema.

Tra i principali obiettivi dell’exploitation di Bluekeep rientrano:

Prima di scendere nei dettagli tecnici, però, soffermiamoci sull’analisi di quanto accaduto nel 2019 in relazione proprio a questa criticità del protocollo Windows.

2019: gli eventi

La National Cyber Security Agency del Regno Unito è stata la prima a rilevare la falla a inizio Maggio 2019. A seguito della segnalazione, Microsoft impiegò circa una quindicina di giorni per implementare e diffonderne la patch di sicurezza.

Per la precisione, l’aggiornamento della falla di sicurezza venne rilasciato il 13 Maggio e diffuso con un bollettino il giorno seguente.

BlueKeep venne ufficialmente riconosciuta come CVE-2019-0708.

Tuttavia, c’è da evidenziare più di una particolarità sull’accaduto. Com’è risaputo, il Patch Tuesday, ovvero il secondo martedì di ogni mese, è il giorno istituito da Microsoft per rilasciare i suoi aggiornamenti di routine.

Nel caso di BlueKeep, però, i fattori non ordinari erano sostanzialmente tre:

  • si trattava di una vulnerabilità zero-day, quindi sconosciuta agli sviluppatori, ma potenzialmente già nota agli hacker
  • venne rilasciata come patch out-of-band, ovvero con tempistiche e modalità differenti rispetto al normale
  • e soprattutto interessava sistemi operativi non più supportati, noti in gergo come out-of-support.

A tal proposito, è utile ricordare che nel 2019 era già mainstream Windows 10, mentre Windows 11 era poco di là da venire.

Nonostante ciò, persino l’Agenzia per la Sicurezza Nazionale statunitense (NSA) sollecitò affinché Microsoft invitasse utenti e aziende ad aggiornare il Sistema Operativo dei propri device.

Per comprenderne il motivo, è necessario specificare ulteriormente il concetto di out-of-band.

Come più volte sottolineato, la vulnerabilità BlueKeep interessava i vecchi sistemi OS sia in versione da 32 che da 64-bit, così come i relativi Service Pack.

In particolare, si trattava di:

  • Windows 2000
  • Windows Vista
  • Windows XP
  • Windows 7
  • Windows Server 2003 e Windows Server 2003 R2
  • Windows Server 2008 e Windows Server 2008 R2

La gestione fuori-banda si riferisce proprio al fatto che gli utenti i cui device facevano ancora uso degli OS obsoleti avrebbero dovuto scaricare e installare manualmente la patch.

Sostanzialmente il contrario di quanto sarebbe avvenuto sui Sistemi Operativi più recenti, i quali avrebbero usufruito del normale aggiornamento automatico.

BlueKeep CVE vulnerability

BlueKeep, perché è una vulnerabilità così pericolosa

Le ragioni per cui BlueKeep era considerata una vulnerabilità critica erano sostanzialmente tre:

  • la prima riguarda il numero di device potenzialmente vulnerabili.
    I ricercatori stimarono che i dispositivi affetti da questo problema erano all’incirca 950.000
  • la seconda concerne il suo essere “wormable
  • e da ultimo, ma non meno importante, il fatto che si trattasse di una “vulnerabilità pre-authentication

Quanto detto sta a significare sostanzialmente che:

  • a Maggio 2019 erano ancora sorprendentemente in attività quasi un milione di dispositivi con sistemi operativi ormai obsoleti
  • inoltre, qualora un exploit fosse stato in grado di violare BlueKeep, il device colpito avrebbe potuto trasformarsi in vettore per la diffusione di worm autoreplicanti, ransomware o Trojan. Il tutto senza necessità di autenticazione o interazioni specifiche da parte dell’utente.

Tale scenario avrebbe generato un’escalation di exploit e infezioni che avrebbero infallibilmente colpito qualsiasi altro dispositivo vulnerabile.

In sostanza: una volta diventati vittima, i device si sarebbero trasformati in ignari complici nella diffusione esponenziale dell’attacco.

Tuttavia, fu solo a inizio Luglio 2019 che i ricercatori di Sophos pubblicarono un PoC (Proof of Concept) in cui dimostravano di aver implementato un exploit effettivamente in grado di sfruttare BlueKeep.

E gli hacker non si fecero attendere.

Nonostante i dettagli tecnici non fossero mai stati diffusi, il 23 Luglio una versione commerciale dell’exploit, denominata CANVAS 7.23, era già disponibile sul dark-web.

Dunque, non fu un caso se, a pochi giorni dall’annuncio, si cominciò a registrare un’impennata di attività sospette legate al protocollo RDP.

In aggiunta, ai primi di Agosto venne rilevata DejaBlue, una falla assimilabile a BlueKeep, ma presente nelle versioni più recenti di Windows (e in ogni sui aggiornamento fino a Windows 10).

A questi eventi, nell’autunno di quello stesso anno, fecero seguito tentativi di exploitation a fini di cryptojacking e mining di criptovaluta.

Tuttavia, Microsoft ha sempre mantenuto il massimo riserbo sull’accaduto, limitandosi a sollecitare gli utenti a:

  • installare le patch

e

  • aggiornare i propri Sistemi Operativi.

Caratteristiche tecniche di BlueKeep

In apertura, si è parlato di BlueKeep in relazione all’RDP di Microsoft.
Ma cosa significa esattamente?

La sigla RDP sta per Remote Desktop Protocol, un protocollo proprietario Microsoft evolutosi dai Terminal Service di Windows.

Si tratta di un’utilità di amministrazione remota nata dall’esigenza di controllare da remoto i device di una rete LAN.

Soprattutto in ambito aziendale, infatti, emerse la necessità di potersi collegare ad un desktop remoto tramite una semplice interfaccia grafica ed ecco che Windows implementò i suoi Remote Desktop Service abilitati proprio mediante l’RDP.

In sintesi, l’RDP rende possibile la connessione di più terminali (client) ad un unico host (server).

Nella vita quotidiana, ciò si traduce nella connessione remota che un utente effettua ai service aziendali centralizzati.

Tuttavia, nonostante il forte carattere di innovatività, furono proprio le lacune nella sua implementazione a dar vita al fenomeno BlueKeep.

Il Remote Desktop Protocol è, infatti, un protocollo multicanale che sfrutta di default la porta 3389/TCP per l’iniziazione del trasferimento dati.

Supporta canali virtuali statici, tra cui gli standard:

  • “rdpdr” (redirection)
  • “rdpsnd” (sound)
  • “cliprdr” (condivisione testo)

In aggiunta a questi, per impostazione predefinita Microsoft crea ulteriori due gateway:

  • MS_T120
  • e CTXTW

BlueKeep: vulnerabilità Use-after-Free

Bisogna ora tener presente che nel driver del kernel di Windows sussisteva una vulnerabilità “Use-after-Free” (UAF).

Ciò significa che il kernel, ovvero il software di intermediazione tra

  • i programmi in esecuzione lato software
  • e la loro allocazione negli spazi di memoria dell’hardware

presentava una vistosa lacuna.

Ma cosa significa nello specifico “Use-after-Free”?

Le vulnerabilità UAF indicano un malfunzionamento nel meccanismo di allocazione dinamica della memoria. Partiamo dal presupposto che i dati presenti nell’heap (memoria dinamica) vengono costantemente riallocati. Per tale ragione, al fine di determinare quali blocchi di memoria siano liberi e quali no, se ne rende necessaria una scansione costante.

Durante il processo, ad ogni blocco viene associata un’intestazione (definita in gergo tecnico “puntatore”) con riferimento univoco all’area di memoria allocata.

Il meccanismo si inceppa quando un puntatore rimasto vuoto, anziché cambiare riferimento su null, continua a indicare un set di dati ormai spostato o eliminato.

Il risultato consiste in un’intestazione pendente, su cui è possibile ascrivere qualsiasi tipo di codice arbitrario,

In sintesi, dunque, una vulnerabilità Use-after-Free consente l’immissione di script malevoli senza che il programma segnali alcun errore.

Ecco spiegata la logica di fondo nei tentativi di exploitation di BlueKeep.

Nel caso specifico, questi consistevano nell’invio di messaggi sul canale MS_T120, per il quale non sussiste alcuna motivazione legittima per una connessione lato client.

Ciò consentiva all’attaccante di eseguire codice da remoto tramite l’NT AUTHORITY/SYSTEM.

Di cosa si tratta?

In parole semplici, dell’account locale predefinito cui il sottosistema di sicurezza Windows riconosce i privilegi di accesso più alti.

Patch di sicurezza, NLA e altre best practice di prevenzione

Avendo ora a disposizione una panoramica di quanto accaduto e i contestuali approfondimenti tecnici, analizziamo di seguito i principali interventi di mitigazione del rischio.

Installazione immediata delle patch di sicurezza e upgrade dei Sistemi Operativi obsoleti

Come si è avuto modo di constatare, qualsiasi programma o Sistema Operativo out-of-support costituisce un pericolo per il proprio device e i propri dati, nonché un detonatore di attacchi su larga scala.

Per cui, fondamentale sarà provvedere all’aggiornamento costante e all’installazione di tutte le patch di sicurezza disponibili.

Disabilitare o configurare correttamente programmi e app

Disinstallando gli applicativi che non si utilizzano – o cambiando la configurazione di default su quelli in uso – si diminuisce notevolmente l’esposizione di vulnerabilità potenzialmente sfruttabili. Con i Remote Desktop Service di Microsoft vale la stessa regola.

Come puntualizzato in precedenza, questo servizio è configurato per consuetudine sulla porta 3389. Trattandosi di un dato universalmente noto, non cambiare la porta dell’RDP equivale automaticamente ad agevolare l’aggressore nell’apertura di una backdoor.

Impostazione di VPN e Firewall

Poiché per molte aziende l’accesso remoto è un servizio quanto mai essenziale, non è possibile bloccare integralmente l’accesso all’RDP.
Lo si può però gestire in modo sicuro tramite la corretta impostazione della protezione firewall.

C’è, però, da puntualizzare che questa intermediazione può frenare i tentativi di exploitation esterni, ma non impedisce agli attacchi di divampare dall’interno.

Perché ciò accada, basterebbe una semplice e-mail di phishing con un link corrotto, o un qualsiasi altro tipo di raggiro che sfrutti il social engineering.

In questi casi, per arginare il danno, bisognerebbe già disporre di un oculato sistema di segmentazione di rete. Tuttavia, spesso aziende e organizzazioni non hanno un’idea precisa di quanti dispositivi siano effettivamente connessi alla propria rete. Né, tantomeno, sono a conoscenza di tutte le porte non-standard impostate per la connessione RDP.

Pertanto, sebbene l’applicazione di queste misure sia fondamentale, la regola aurea rimane sempre aggiornare e patchare costantemente.

Abilitazione della Network Level Authentication (NLA)

La Network Level Authentication (NLA) è un protocollo che richiede l’autenticazione dell’utente prima che la connessione al desktop remoto venga stabilita.

Questa soluzione consente di bloccare

  • sia gli accessi non autorizzati veri e propri
  • che i tentativi sospetti di exploit della vulnerabilità

Quanto avvenuto con BlueKeep aiuta a far luce su un aspetto spesso sottovalutato dagli utenti: l’aggiornamento costante di sistemi e applicativi.

Non bisogna mai dimenticare che ogni device connesso alla rete ne diventa un endpoint. Questi, com’è noto, sono gli anelli più deboli di ogni infrastruttura IT, proprio perché costantemente esposti alle minacce del web.

L’insegnamento che si può trarre da BlueKeep consiste, dunque, nel non dare più per scontato o rimandare nessun avviso di aggiornamento.

Certo, la semplice installazione di una patch non garantisce l’immunità assoluta, ma come minimo corregge le falle note prima che un hacker possa violarle.

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!