Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Il Ransomware nelle Aziende - Eset Security Days 2016

4,341 views

Published on

Sheraton Roma Hotel & Conference Center di Roma - 4 Maggio 2016

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Il Ransomware nelle Aziende - Eset Security Days 2016

  1. 1. Ransomware Funzioni avanzate e Tecniche di evasione Gianni Amato CERT-PA
  2. 2. Malware Writers VS Malware Analysts
  3. 3. MBRLock ● Master Boot Record compromesso; ● Sostituzione MBR originale con MBR proprietario; ● I dati sul disco sono integri ma il sistema non è accessibile; ● Per ottenere la password era necessario chiamare un numero a pagamento. http://www.gianniamato.it/2012/03/mbr-lock.html
  4. 4. MBRLock Remediation ● È sufficiente ripristinare l’MBR per accedere al sistema; ● Analisi successive hanno dimostrato che il codice accetta qualsiasi password composta da 14 cifre. {Sono le prime versioni di MBRLock, veicolate nell’anno 2011, perfezionate nei mesi e negli anni a seguire. Oggi Petya.} http://www.gianniamato.it/2012/03/mbr-lock.html
  5. 5. {Code}Il problema non risiede nella complessità del codice ma nei tempi di risposta dell’ IT Security.
  6. 6. Tecniche di evasione ● Differenti vettori di infezione (exploit kit) ● Offuscamento del codice (codifica: da non confondere con la cifratura) ● Riconoscimento dell’ambiente (fisico, virtuale, sandbox) ● Rilevamento dei tool di analisi in esecuzione sul sistema (strumenti di debug e monitoraggio del traffico)
  7. 7. Il tempo è denaro Ingannare gli analisti inesperti Mettere in difficoltà gli analisti più esperti Guadagnare tempo (giorni, settimane quando va bene, prima che abbia inizio il periodo di decadenza)
  8. 8. Exploit Kit Blackhole, Neutrino, Nuclear, Angler
  9. 9. Exploit kit Kit di strumenti preconfezionati che truffatori possono acquistare o noleggiare al mercato nero con lo scopo di distribuire malware attraverso pagine web compromesse. Il kit analizza le informazioni della vittima che visita la pagina web attraverso le informazioni fornite dal browser e cerca di individuare, e successivamente sfruttare, le vulnerabilità note al fine di installare il malware sul sistema senza alcuna interazione da parte dell’utente.
  10. 10. CryptXXX Ransomware. Maisto code: http://pastebin.com/raw/fXLEPiAj
  11. 11. SX: [Black Hole Exploit Kit] | DX: [Exploit Kit Collecion] offerte individuate in due black market differenti il 01/05/2016 alle ore 23:30 Exploit kit (business) al black market
  12. 12. Private Exploit Kit Exploits: cve-2015-5122 cve-2015-5119 cve-2015-3043 cve-2015-2419 cve-2015-2445 cve-2015-0311 cve-2014-6332 modded for silent running and 2 private landing page automaically random encryption aes Adobe Flash Zero-Day in HackingTeam Leak (luglio 2015) Internet Explorer 10 and 11 allows remote attackers to execute arbitrary code | IE 10 ASLR Bypass
  13. 13. Dietro Locky il team di Dridex? Similitudini. Stesse tecniche di infezione: ● Prima tramite Macro applicata ai file MS Office. ● Dopo tramite Nuclear Explit Kit. ● C&C offuscati in una sezione (fake) denominata “.reloc”. ● User-agent hard coded. ● Registry key random. Stesso metodo di distribuzione: ● Prima mail con allegati MS Office. ● Dopo tramite file JavaScript (opportunamente offuscato) allegato alla mail.
  14. 14. JS Ransomware Locky
  15. 15. JS Ransomware Locky [Decoder script] ● Unicode escape sequences ● Nested variables ● Fragmented url import re filename = 'SCAN000189077.js' with open(filename, 'r') as file: data = file.read().split('n') for str in data: uMatch = re.findall('u[0-9]{3}[0-9a-fA-F]{1}', str) for u in uMatch: str = str.replace(u, u.decode('unicode-escape')) print (str) JS Locky - python decoder: https://gist.github.com/guelfoweb/1b7c4ecc3a2a7d8947ad
  16. 16. JS Ransomware Downloader JS Ransomware Encoded: http://pastebin.com/nCWdQxGY JS Ransomware Decoded: http://pastebin.com/xAKRt4HB
  17. 17. JS Ransomware [Decoder script] JS Ransomware - python decoder: https://gist.github.com/guelfoweb/2ee5ac10c42132674bd6
  18. 18. Tecniche note, codice nuovo Online sandbox bypass - PoC di laboratorio
  19. 19. Pseudo Random Domains Tecnica conosciuta dal 2009. JS Pseudo Random Code (encoded): http://pastebin.com/b5km5Hay
  20. 20. ● I domini da contattare per il download del malware cambiano dinamicamente ogni 12 ore; ● Eventuale analisi tramite sandbox online o strumenti in grado di interpretare il codice metterebbero in evidenza un solo nome dominio generato (pseudo- randomicamente) in base alla data e l’ora in cui il codice è stato sottoposto ad analisi. Solo una analisi manuale e appronfondita del codice potrà fornire le informazioni complete. URL Programmate
  21. 21. Malwr bypass (PoC) Malwr report: https://malwr.com/analysis/MjkzODE4MGVmOTE1NDQ4Zjg1MmIzODYwN2M4ODdjOWE/
  22. 22. Reverse (PoC) Analisi incompleta ● Lo stesso sample sottoposto a una sandbox non nota al malware produrrà invece un report incompleto qualora la risorsa all’indirizzo principale [riga 5] risulti raggiungibile; ● Il dominio alternativo [riga 9] non verrà esposto finchè la risorsa principale non verrà dismessa. Reverse report: https://www.reverse.it/sample/7a36c3b22eb858d83b199c0ec60e4d816022965b69a07103a222c12d59f93425?environmentId=1
  23. 23. TeslaCrypt 4.1A ● Detect and stop AV scan Kill Process: ● Task Manager ● Registry Editor ● Command Shell ● Process Explorer Diversamente da quanto indicato nelle informazioni per il riscatto, la nuova variante utilizza una componente di cifratura AES-256.
  24. 24. ≈18%percentuale di campioni ransomware (dropper) analizzati nel laboratorio CERT- PA utilizzano tecniche di Anti Debug (ollydbg, ida, process, etc.)
  25. 25. ≈6%percentuale di campioni ransomware (dropper) analizzati nel laboratorio CERT- PA utilizzano tecniche di Anti Virtual Machine (sandbox)
  26. 26. Petya in origine MBRLock
  27. 27. Petya analysis [STEP 1] - BSOD Alla prima esecuzione il dropper provvede a sostituire il Master Boot Record (MBR) con uno proprietario e conserva alcuni dati e le istruzioni che verranno successivamente eseguite nella FASE 2 in appositi settori del disco compromesso. Completata l’operazione manda in crash il sistema provocando un “errore grave”.
  28. 28. Petya analysis [STEP 1] - Dati integri In questa prima fase è ancora possibile recuperare i dati presenti nel disco accedendo al device come unità esterna al sistema, tramite appositi strumenti per l’analisi forense, o semplicemente ripristinando l’ MBR.
  29. 29. Petya analysis [STEP 1] - MBR Infected ● L’MBR infetto di Petya è lo stesso su tutti i sistemi, cambiano solo gli ultimi byte in cui il malware scrive i riferimenti alle istruzioni. ● La manipolazione dell’MBR richiede privilegi di amministratore, ragione per cui il malware non sarà in grado di compromettere un sistema con privilegi utente limitati. ● La componente fissa va da 0x0000 a 0x0093, occupando esattamente 147 byte.
  30. 30. Petya analysis [STEP 1] - Core (strings) I settori successivi, dal 0x0022 al 0x0035, risultano occupati dal codice malevolo di Petya da cui è possibile leggere visivamente le stringhe che appariranno come messaggio per l’ utente nella FASE 2.
  31. 31. Petya analysis [STEP 1] - Boot loader ● Il settore 0x0036 conserva le informazioni più preziose, quelle che il boot loader utilizzerà nella FASE 2. ● Il primo byte è utilizzato per siglare lo stato del disco; il valore 0 indica che Petya si trova ancora nella prima fase, mentre diventerà 1 quando la FASE 2 sarà stata ultimata. ● Nei successivi 32 byte viene memorizzata la chiave per la cifratura dell’MFT. A seguire altri 8 byte individuano il vettore da utilizzare per la cifratura e in base al quale verranno effettuate le permutazioni; ● Successivamente è possibile individuare le url onion e una stringa alfanumerica di 90 byte che rappresenta un codice identificativo dell’host compromesso.
  32. 32. Petya analysis [STEP 1] - Original MBR ● Il settore 0x0038 contiene una copia dell’ MBR originale codificato con XOR 0x37. ● Il motivo per cui Petya effettua una copia dell’MBR originale è legato al fatto che il dropper contiene già un MBR, quello infetto, portarsi dietro anche un MBR pulito incrementerebbe inutilmente le dimensioni del file.
  33. 33. Petya analysis [STEP 2] - Fake Chkdsk Al primo riavvio della macchina compromessa verranno eseguite le istruzioni contenute nell’MBR infetto. Carica in memoria le informazioni memorizzate nel settore 0x0022 del disco in cui è presente il core di Petya. Quest’ultimo verifica lo stato del disco leggendo il primo byte del settore 0x0036, se risulta settato a 0 simula un check disk di pochissimi secondi, tempo necessario per compiere una serie di operazioni.
  34. 34. Petya analysis [STEP 2] - Operazioni ● Copia della chiave di 32 byte dal settore 0x0036; ● Cifratura dell’MFT usando una variante dell’algoritmo salsa20; ● Scrittura dell’MFT cifrato nei settori compresi tra 0x0001 e 0x0021; ● Sostituzione con zeri del valore della key nel settore 0x0036; ● Sostituzione del valore del primo byte da 0 a 1 nella sezione 0x0036 in modo da non ripetere la stessa operazione ai successivi reboot. ● Essendo stati azzerati i 32 byte della sezione 0x0036, Petya utilizzerà la chiave caricata in memoria e il vettore di 8 byte (che resterà leggibile nel settore 0x0036) per eseguire le permutazioni e quindi cifrare e riscrivere interamente il settore 0x0037. ● Questo settore sarà utilizzato successivamente per verificare che la chiave inserita dall’utente per liberare il disco sia quella corretta.
  35. 35. Petya analysis [STEP 2] - Cifratura MFT Completate le operazioni precedenti, Petya mostrerà una schermata rossa con un teschio che resterà visibile finp alla pressione di un tasto qualunque. Successivamente verranno mostrate le condizioni per ottenere il riscatto. Esattamente le stesse memorizzate nello STEP 1 (settore 0x0036). CERT-PA-B011-160407 - https://www.cert-pa.it/
  36. 36. {Code}Il problema non risiede nella complessità del codice ma nei tempi di risposta dell’ IT Security.
  37. 37. Domande ? Grazie per l’attenzione! ● Author: Gianni Amato ● Web: www.gianniamato.it ● Twitter: @guelfoweb

×