Ransomware WannaCry: Protezione e Best Practices

WannaCry, anche noto come WCry, WanaCrypt0r o Wana Decrypt0r 2.0, è un ransomware che si diffonde sfruttando gli exploit denominati EternalBlue e DoublePulsar.

L’exploit EternalBlue sfrutta una vulnerabilità del protocollo SMB v1 implementato nei sistemi Windows (CVE-2017-0145) risolta nel bollettino di sicurezza MS17-010 pubblicato il 14 marzo 2017 (per informazioni sull’SMB si veda la KB204279 Direct hosting of SMB over TCP/IP).

WannaCry sfrutta la vulnerabilità per diffondersi su reti pubbliche e private con modalità simili a quelle di un worm. Nella fase dell’infezione viene condotta una scansione della rete sulla porta TCP 445 (SMB) alla ricerca di sistemi Windows vulnerabili che poi vengono infettati con la backdoor DoublePulsar per ottenere l’accesso alla una macchina, quindi il malware crea una copia di sé stesso sul sistema e la esegue.

Di seguito una cronostoria sommaria degli eventi che hanno portato alla creazione e alla diffusione di WannaCry:

Da questa breve cronostoria di questo questo ransomware possiamo trarre le seguenti conclusioni:

  • Da quanto è stato reso pubblico lo zero day a quanto è stato resa disponibile una correzione per impedirne l’utilizzo e mettere in sicurezza il sistema sono trascorsi 87 giorni (ovvero 2 mesi e 27 giorni).
  • Da quanto è stato reso pubblico lo zero day a quando il ransomware è stato diffuso sono trascorsi 115 giorni (ovvero 3 mesi e 25 giorni)
  • Da quanto è stato resa disponibile una correzione per impedirne l’utilizzo e mettere in sicurezza il sistema a quando il ransomware è stato diffuso sono trascorsi 28 giorni.
  • C’è stata una completa e tempestiva informazione sull’argomento sia da parte di fonti private che governative comprese le istituzioni italiane.

Di conseguenza appare chiaro come siano di primaria importanza le seguenti attività al fine di gestire al meglio la sicurezza di un’infrastruttura informatica:

  • Informarsi sui canali istituzionali e/o privati dedicati alla sicurezza sulle minacce in corso.
  • Mantenere aggiornati i sistemi client e server con almeno cadenza settimanale.
  • Mantenere aggiornate le firme degli antivirus con una frequenza almeno giornaliera o se possibile ogni 6 ore.
  • Assicurarsi che i sistemi antimalware sui server di sposta siano attivi, funzionanti e aggiornati ed evitare lo scambio di allegati che possono contenere malware tramite mail.
  • Non esporre le porte utilizzate da SMB (TCP 139, TCP 445, UDP 137, UDP 138) tranne che agli host che ne hanno necessità,
  • Disabilitare o rimuovere dai sistemi le funzionalità non utilizzate (nel caso specifico il supporto a SMB v1) .
  • Assicurarsi che i backup siano funzionanti, aggiornati e protetti.
  • Assicurarsi che ogni utente abbia solo i privilegi strettamente necessari per contenere i danni di una eventuale infezione.
  • Monitorare l’infrastruttura per rilevare tempestivamente comportamenti sospetti in modo da bloccare rapidamente una una eventuale infezione (caso specifico una delle verifiche potrebbe essere quella di generare un alert se si rilevano file con estensioni .wcry tramite uno script che analizza le share più comunemente usate dagli utenti in base ad una schedulazione).

Inoltre per quanto riguarda le Pubbliche Amministrazioni le nuove Misure minime di sicurezza ICT per la PA oltre ad obbligare tutte le PA a seguire le precedenti indicazioni forniscono delle linee guida basate su SANS 2.0 (CIS Critical Security Controls for Effective Cyber Defense ) versione 6.0 di ottobre 2015 con fine di fornire un riferimento utile a stabilire se il livello di protezione offerto da un’infrastruttura risponde alle esigenze operative, individuando anche gli interventi idonei per il suo adeguamento.

Scendendo nel dettaglio di ciò che un amministratore di sistema deve fare per scongiurare un infezione la prima attività da eseguire è controllare l’aggiornamento dei sistemi per assicurarsi che le correzioni rilasciate col bollettino MS17-010 siano state installate e in caso contrario installarle per scongiurare che un sistema possa essere infettato tramite la rete.

Per verificare gli aggiornamenti di sicurezza installati filtrando in base al prefisso KB40 è possibile utilizzare il comando:

wmic qfe get hotfixid | Find “KB40”

Per verificare se la il bollettino MS17-010 è stato installato procedere come segue in base al sistema operativo da verificare:

Sebbene sia consigliabile aggiornare anche i sistemi Windows 10 nel post WannaCrypt ransomware worm targets out-of-date systems viene indicato che i sistemi con Windows 10 non sono affetti dalla vulnerabilità CVE-2017-0145 denominata EternalBlue e sfruttata da WannaCry:

“The exploit code used by WannaCrypt was designed to work only against unpatched Windows 7 and Windows Server 2008 (or earlier OS) systems, so Windows 10 PCs are not affected by this attack.

We haven’t found evidence of the exact initial entry vector used by this threat, but there are two scenarios that we believe are highly possible explanations for the spread of this ransomware:

  • Arrival through social engineering emails designed to trick users to run the malware and activate the worm-spreading functionality with the SMB exploit
  • Infection through SMB exploit when an unpatched computer is addressable from other infected machines”

La seconda attività che che un amministratore di sistema dovrebbe fare è disabilitare l’SMB v1 come peraltro già raccomandato nel post Stop using SMB1 del 16 Settembre 2016 in seguito al rilascio del bollettino di sicurezza MS16-114, ovvero dopo la pubblicazione da parte di Shadow Brokers degli exploit trafugati ma molto prima che questi venissero utilizzati per creare e veicolare malware:

“The original SMB1 protocol is nearly 30 years old, and like much of the software made in the 80’s, it was designed for a world that no longer exists. A world without malicious actors, without vast sets of important data, without near-universal computer usage. Frankly, its naivete is staggering when viewed though modern eyes. I blame the West Coast hippy lifestyle.”

Vi sono ormai pochi scenari in cui può essere necessario utilizzare ancora SMB v1 sempre come descritto nel post Stop using SMB1 come l’utilizzo di Windows XP o Windows Server 2003 in quanto tali OS sono in grado di accedere e/o esporre share solo tramite SMB v1, altre ragioni possono essere software che fanno uso della funzionalità network neighborhood o ancora stampanti multifunzioni con firmware datati che utilizzano funzionalità di scan to share:

  • You’re still running XP or WS2003 under a custom support agreement.
  • You have some decrepit management software that demands admins browse via the ‘network neighborhood’ master browser list.
  • You run old multi-function printers with antique firmware in order to “scan to share”.

Per la disabilitazione dell’SMB v1 è possibile utilizzare le indicazioni della How to enable and disable SMBv1, SMBv2, and SMBv3 in Windows and Windows Server.

Disabilitazione Server SMB v1 in Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008 tramite PowerShell:

Per disattivare SMB v1 nel server SMB, eseguire il seguente cmdlet:

Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB1 -Type DWORD -Value 0 –Force

Dopo aver impostato le chiavi registro per disabilitare l’SMB v1 nel server SMB è necessario riavviare il computer

Disabilitazione Server SMB v1 in Windows 8, Windows Server 2012, Windows 10 e Windows Server 2016 tramite PowerShell:

Per ottenere lo stato corrente della configurazione del protocollo del server SMB eseguire il seguente cmdlet:

Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

Per disattivare SMB v1 nel server SMB eseguire il seguente cmdlet:

Set-SmbServerConfiguration -EnableSMB1Protocol $false

Dopo aver disabilitato l’SMB v1 nel server SMB tramite il cmdlet Set-SmbServerConfiguration non è necessario riavviare il computer.

Disabilitazione Clinet SMB v1 in Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8 e Windows Server 2012 tramite il comando sc.exe:

Per ottenere lo stato del servizio SMB Client eseguire il comando:

sc.exe queryex mrxsmb10

Per disabilitare SMB v1 sul client SMB eseguire i comandi:

sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled

Rimozione dell’SMB v1 in Windows 8.1, Windows 10, Windows 2012 R2 e Windows Server 2016 tramite PowerShell:

Per ottenere lo stato della funzionalità SMB 1.0 eseguire il seguente cmdlet:

Get-WindowsFeature FS-SMB1

Per rimuovere la funzionalità SMB 1.0 eseguire il seguente cmdlet:

Remove-WindowsFeature FS-SMB1

Rimozione dell’SMB v1 in Windows 8.1 e Windows 10 tramite PowerShell:

Per ottenere lo stato della funzionalità SMB 1.0 eseguire il seguente cmdlet:

Get-WindowsOptionalFeature -Online -FeatureName smb1protocol

Per rimuovere la funzionalità SMB 1.0 eseguire il seguente cmdlet:

Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

Conclusioni

Sebbene anche in questo caso l’infezione poteva essere semplicemente scongiurata mantenendo aggiornati i sistemi va comunque detto che le considerazioni riportate nel post The need for urgent collective action to keep people safe online: Lessons from last week’s cyberattack da Brad Smith (President and Chief Legal Officer) circa il dovere morale di un ente pubblico governativo di informare il produttore di un software di una vulnerabiltà se questa può causare danni a persone sono più che condivisibili.

Ovviamente sebbene l’alarme WannaCry sembra rientrato occorre continuare a tenere alta la guardia e aggiornare i sistemi in quanto come è ovvio aspettarsi compariranno altri malware che utilizzeranno gli stessi exploit o altri tra quelli trafugati dal collettivo hacker Shadow Brokers che non riguardano non solo i sistemi operattivi Microsoft, ma ad esempio, anche numerosi firewall.

Infatti oggi è già stato individuato un nuovo ransomware denominato UIWIX che si diffonde sfruttando l’exploit EternalBlue, a riguardo si veda CERT Nazionale Italia: Il ransomware UIWIX si installa sfruttando l’exploit EternalBlue. Inoltre pare che già prima di WannCry un altro malware abbia utilizzato l’exploit EternalBlu diffondesi forse già dal 24 Aprile 2017, a riguardo di veda CERT Nazionale Italia: Il malware Adylkuzz diffuso sfruttando gli stessi exploit di WannaCry.

Per ulteriori informazioni si veda anche il post Attacco ransomware #WannaCry : risorse utili e chiarimenti di Felicaino Intini (Microsoft Italia).