Petya, considerazioni tecniche

Petya, considerazioni tecniche

Il vettore di attacco iniziale è una distribuzione infetta di MEDoc, software di contabilità molto popolare in Ucraina, ma EternalBlue ha permesso al malware di propagarsi sui sistemi di tutta l'Europa. Analizziamone i dettagli tecnici
Il vettore di attacco iniziale è una distribuzione infetta di MEDoc, software di contabilità molto popolare in Ucraina, ma EternalBlue ha permesso al malware di propagarsi sui sistemi di tutta l'Europa. Analizziamone i dettagli tecnici

Petya o NotPetya? I maggiori esperti di sicurezza si stanno chiedendo quanto il malware finito nel mirino dei media in questi giorni abbia effettivamente in comune con il ransomware dello scorso anno. Non è la prima volta che riappare: essendo generato anche tramite piattaforme ransomware as-a-service – che permettono a chiunque di creare il proprio ransomware e di lanciarlo nel Web per mietere vittime – lo abbiamo già ritrovato online con il payload Mischa, e successivamente ribrandizzato con il nome GoldenEye.
Anche in questo nuovo caso, esso si palesa con la compromissione del Master Boot Record , mostrando la richiesta di pagamento in fase di avvio di Windows, e mascherando la fase di crittazione dei dati con una finta esecuzione di chkdsk , il software per il controllo del disco integrato in Windows.

Una novità è l’integrazione dello stesso con gli exploit EternalBlue ed EternalRomance , che come in WannaCry fungono da vettore di propagazione. L’infezione sembra iniziare da una ridistribuzione del software MEDoc , suite per la contabilità usato in modo particolare in Ucraina. È proprio qui che sono state registrate la maggior parte delle infezioni; tuttavia la presenza degli exploit di Vault7 ha permesso al malware di infettare sistemi anche in USA, Europa e Asia.

Petya è codificato in una libreria DLL , la cui esecuzione avviene mediante il lancio del comando rundll32.exe perfc.dat, #1 . Quando la DLL viene caricata, il ransowmare tenta immediatamente di cancellarsi dal disco e crea il file C:\Windows\perfc , una flag che indica che il sistema è stato infettato.

A questo punto, previ privilegi di amministrazione, viene modificato l’MBR del disco, installando un bootloader e un kernel proprietario, che all’avvio del computer, fingendo di controllare il disco, effettuerà la crittazione di tutti i file mostrando al termine dell’esecuzione il messaggio di richiesta del riscatto.

Secondo l’analisi di Matthieu Suiche , già fonte autorevole per il caso WannaCry, alcune caratteristiche di questa nuova variante di Petya ci portano a classificarlo come un wiper piuttosto che come ransomware ; l’obiettivo di un ransomware è quello di generare guadagni, ma l’indirizzo email a cui inviare la notifica di pagamento sembra non essere funzionante.


Nel contempo, è chiaro l’intento distruttivo: mentre la versione del 2016 eseguiva un backup dei settori del disco sovrascritti dal bootloader, effettuandone lo XOR con il byte 0x7 e postponendo il tutto in coda al bootloader iniettato, nella nuova versione è mantenuto il medesimo metodo, ma la lunghezza del bootloader è maggiore (8881 byte, 0x22b1).
Ciò comporta che i 24 settori del disco successivi al primo siano danneggiati irreversibilmente, senza possibilità di recupero.

La crittazione avviene in due fasi: user mode, nella quale vengono crittografati tutti i file relativi all’utente corrente, eseguita già al momento dell’infezione e full disk che, richiedendo i privilegi di amministrazione viene eseguita dal kernel sopracitato, e che riguarda tutto il drive di sistema eccetto la directory di installazione di Windows (%WINDIR%).

Le estensioni attaccate sono le seguenti:

3DS, 7Z, ACCDB, AI, ASP, ASPX, AVHD, BACK, BAK, C, CFG, CONF, CPP, CS, CTL, DBF, DISK, DJVU, DOC, DOCX, DWG, EML, FDB, GZ, H, HDD, KDBX, MAIL, MDB, MSG, NRG, ORA, OST, OVA, OVF, PDF, PHP, PMF, PPT, PPTX, PST, PVI, PY, PYC, RAR, RTF, SLN, SQL, TAR, VBOX, VBS, VCB, VDI, VFD, VMC, VMDK, VMSD, VMX, VSDX, VSV, WORK, XLS, XLSX, XVD, ZIP

Per ogni drive viene generata propria chiave di cifratura AES 128-bit, con cui viene criptato 1MB di dati in testa ad ogni file.
Il risultato dell’operazione di crittografia viene poi memorizzato in codifica base64 in coda al file README.txt; la chiave viene eliminata in modo permanente, così da non poter essere recuperata.

Nel caso in cui i privilegi di amministrazione non siano disponibili per l’installazione dell’engine crittografico, il malware tenterà comunque di propagarsi. Al termine dell’infezione, viene programmato un riavvio del sistema con il seguente comando:

/c at 00:49 C:\Windows\system32\shutdown.exe /r /f

La schedulazione dell’operazione di riavvio consente al malware di avere tempo a sufficienza per la propagazione, prima che il sistema venga reso inutilizzabile.

Per quanto riguarda il meccanismo di propagazione, il malware ha alcune somiglianze con WannaCry : infatti viene costruita anche in questo caso una lista di IP da infettare.
Questa, stando a quanto riportato da Symantec , contiene:
– tutti gli indirizzi IP e i server DHCP relativi agli adattatori di rete installati nel sistema;
– tutti i client DHCP deducibili e contattabili, che abbiano aperte le porte 445 e 139;
– tutti gli IP della stessa sottorete della macchina infetta;
– tutti le macchine verso cui la macchina infetta ha connessioni aperte;
– tutte le macchine presenti nella cache ARP;
– tutte le risorse definite in eventuali domini Active Directory;
– tutti i server e le postazioni nella stessa rete Windows;
– tutte le risorse dichiarate nel Windows Credential Manager, per le quali sono note le credenziali di accesso (comprese connessioni di desktop remoto).

Le credenziali necessarie sono ottenute ispezionando il Windows Credential Manager, oppure eseguendo un apposito software che ne effettui il dump dalla memoria.
Parallelamente a ciò, vengono ispezionate e attaccate eventuali directory di amministrazione condivise in rete mediante il protocollo SMB: il malware viene copiato nello share \\admin$ ed eseguito remotamente tramite psexec o WMIC (Windows Management Instrumentation Command line).

Ove necessario, vengono utilizzati gli exploit EternalBlue ed EternalRomance: il ruolo degli exploit dell’NSA è quasi marginale, di fronte a sistemi di infezione più classici e facilmente circoscrivibili mantenendo il sistema operativo aggiornato, configurando correttamente il controllo degli accessi e seguendo le best-practice. La presenza di firmware EFI e l’uso di partition table GPT, unita all’attivazione della funzionalità SecureBoot, pur scomoda agli amanti dell’etica open, può contrastare facilmente infezioni così a basso livello.

Petya non è provvisto di meccanismo di kill-switch : alcuni hanno impropriamente definito in modo tale l’esistenza del file C:\Windows\perfc , in quanto la sua presenza indica l’avvenuta infezione e blocca esclusivamente le operazioni di propagazione.
Tuttavia, per kill-switch, normalmente si intende un meccanismo centralizzato e sotto il controllo del creatore del malware; in WannaCry questo consisteva nella risoluzione DNS di uno specifico dominio dal nome improbabile.

Creare questo file, dunque, non previene nei confronti delle operazioni di cifratura – è consigliato tenere sempre un backup aggiornato dei propri dati – ma impedisce che il malware infetti il resto della rete aziendale tramite le modalità esposte.

Patrizio Tufarolo

fonte immagine

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il
29 giu 2017
Link copiato negli appunti