Tecniche di attacco e difesa contro l’utilizzo di dispositivi USB

Nonostante l’utilizzo di porte USB per veicolare malware sia una tecnica di attacco non recente, sono ancora molti i casi in cui infrastrutture informatiche subiscono attacchi sfruttando le porte USB per inoculare malware nel sistema.

Sembra infatti che due dei dieci gruppi hacker più pericolosi specializzati in cyber spionaggio utilizzino anche chiavette USB infette per compromettere i sistemi. Mi riferisco ai seguenti gruppi:

  • SANDSORM (alias Quedagh, BE2 APT) un gruppo di hacker russi specializzato nel cyber spionaggio e sabotaggio che come tattiche e procedure (TTP) utilizza Watering holes, cd-rom e chiavette USB infette, vulnerabilità, zero- days, custom back door, worms e programmi per il furto di informazioni. Finora ha colpito governi, organizzazioni internazionali e il settore energetico in Europa e negli Stati Uniti ed è collegato agli attacchi ai media e alle infrastrutture energetiche in Ucraina.
  • HOUSEFLY (alias Equation) e anche questo gruppo americano utilizza come tattiche e procedure (TTP) Watering holes, cd-rom e chiavette USB infette, vulnerabilità, zero- days, custom back door, worms e programmi per il furto di informazioni. Finora ha colpito obiettivi d’interesse a livello nazionale.

Per dettagli sui vari gruppi hacker, origine, obbiettivi, tecniche e recenti attività si veda l’Internet Security Threat Report (ISTR) Volume 22 pubblicato ad aprile 2017 da Symantec.

Ovviamente gli attacchi condotti tramite device USB si basano sul fatto di riuscire ad inserire o a far inserire dagli utenti un device USB nel sistema, ma stando alla ricerca condotta della University of Illinois e dall’University of Michigan resa pubblica a maggio 2016 la 37th IEEE Security and Privacy Symposium risulta che il 48% delle persone che trova chiavette USB nei parcheggi prova ad inserirle nei propri computer e ad aprire il file contenuti . A riguardo si veda l’articolo Concerns about usb security are real: 48% of people do plug-in usb drives found in parking lots.

Inoltre come non dimenticare che il worm Stuxnet utilizzato nel 2010 per attaccare centrali nucleari è stato veicolato tramite chiavetta USB, per informazioni in merito si veda l’articolo The Real Story of Stuxnet pubblicato il 26 febbraio 2013 dall’ IEEE Spectrum.

Per la mia esperienza vi sono al momento quattro tipi di attacco basati sull’utilizzo dell’Universal Serial Bus (USB) come vettore di attacco.

Scenario 1: Malicious code

In questo scenario si sfrutta la chiavetta USB per diffondere malware che viene attivato quanto l’utente tenta di aprire o eseguire i file presenti sull’unità removibile, il malware può essere già presente sulla chiavetta o venire scaricato direttamente da Internet.

Per proteggersi da questo tipo di attacchi è possibile configurare l’antivirus per eseguire la scansione dei dispositivi removibili, disabilitare le funzionalità di Autoplay o disabilitare l’utilizzo di USB device. A riguardo si vedano:

Scenario 2: Attacchi tramite Social Engineering

In questo scenario si sfrutta una chiavetta USB per portare l’utente su un sito di phishing con l’intento di rubarle credenziali. In alternativa molto spesso vengono fornite con tecniche di Social Engineering all’utente delle chiavette ritenute “fidate” che contengo malware. A riguardo si veda ad esempio l’articolo SEToolkit – Hacking Windows Machines Using USB/CD Infectious Media Generator che spiega come utilizzare il progetto social-engineer-toolkit tramite la distribuzione Kali Linux per generare CD o chiavette USB malevole per sistemi Windows.

Anche in questo caso per proteggersi da questo tipo di attacchi è possibile configurare l’antivirus per eseguire la scansione dei dispositivi removibili, disabilitare le funzionalità di Autoplay o disabilitare l’utilizzo di USB device.

Scenario 3: HID (Human Interface Device) spoofing

Questo scenario prevede un attacco più sofisticato in cui un device USB è camuffato come una chiavetta USB, ma è in realtà una tastiera in grado di inviare la pressione di tasti per fornire all’attaccante un accesso remoto al computer della vittima.

Un’altra variante utilizzata per condurre questo tipo di attacchi quando si ha accesso fisico ad un computer attivo è quello di inserire una chiavetta USB che invia movimenti del mouse casuali (mouse jiggler) per impedire l’avvio dello screensaver e quindi il bocco della sessione. A titolo d’informazione i dispositivi come mouse jiggler possono anche venire utilizzati in indagini forensi per garantire la continuità dell’accesso a sistemi sotto indagine che poi vengono sequestrati mediante l’utilizzo di kit che consentono il trasporto dei sistemi garantendo la continuità dell’alimentazione elettrica (un esempio di tali kit è il HotPlug Field Kit Transport a live computer without shutting it down). Ovviamente le stesse tecniche utilizzate nelle indagini forensi potrebbero essere utilizzate per rubare computer o server.

Per proteggersi da questo tipo di attacchi e disabilitare l’utilizzo di USB device o controllare il tipo di device USB installabili a riguardo si veda:

In ambienti Linux, *BSD e OS X è stato sviluppato UsbKill un tool basato su script Python il cui scopo è realizzare un anti-forensic kill-switch che arresta il sistema nel caso rilevi una modifica sulle porte USB, per esempio un inserimento o una rimozione di un dispositivo. USBKill è disponibile nel seguente repository su GitHub https://github.com/hephaest0s/usbkill e può comunque essere utilizzato anche per proteggere sistemi dall’inserimento di dispositivi USB ignoti in particolare in sistemi non presidiati come, ad esempio, i server.

In ambiente Windows al seguente USB Shutdown : Yank USB Pendrive to Shutdown Windows è disponibile un tool simile che esegue lo shutdown   del sistema in caso vengano rilevati modifiche sulle porte USB, il tool è compilato a 32 bit ed è stato testato su Windows 7, 8, 8.1 e 10. Un altro interessante progetto open source in ambiente Windows il cui obbiettivo è bloccare rogue USB device è Beamgun che può bloccare attacchi basati sull’utilizzo di dispositivi USB che generano . Keystroke Injection (per esempio Rubber Duckies) o dispositivi USB con interfaccia ethernet che forniscono accessi remoti, eseguono attacchi di tipo man-in-the-middle e monitoraggio del sistema (per esempio LAN Turtle).

Per ulteriori informazioni su questo tipo di attacchi si vedano:

Scenario 4: Denial-of-service

Questo scenario prevede l’utilizzo di una chiavetta USB modificata per danneggiare computer della vittima tramite un sovraccarico elettrico sulla porta USB stessa, questo tipo di attacco nasce da un annuncio fatto da un ricercatore sulla sicurezza russo conosciuto come “Dark Purple” nel 2015 nel post USB killer (di cui è disponibile una traduzione in inglese al seguente USB Killer). Da allora l’hardware di tale device si è evoluto per essere sempre più letale ed oggi possibile acquistare device USB Killer V3.0 conformi al marchio CE dal sito https://usbkill.com con le seguenti caratteristiche:

  • Input voltage: 4.5 – 5.5 VDC
  • Output voltage: -215 VDC
  • Pulse Frequency: 8 – 12 times / second
  • Pulse current: ≥180A

Ovviamente non possono esserci protezioni software per tipo di attacco, la protezione migliore è valutare se il vendor hardware ha previsto a livello hardware una protezione da sovraccarichi elettrici sulle porte USB del proprio dispositivo (computer, laptop, smartphone, etc..). Sempre sul sito https://usbkill.com oltre all’USB Killer è anche possibile acquistare un Testing Shield che utilizzato in combinazione con l’USB Killer permette di testare se esiste o meno una protezione da sovraccarichi elettrici sulle porte USB.

In base a quanto affermato sul sito https://usbkill.com il 95% dei device hardware testati risulta vulnerabile ad attacchi di tipo USB power surge, mentre Apple sembra essere l’unica vendor che sta lavorando sulla protezione degli attacchi di tipo USB power surge (si veda USB Kill: Behind the scenes), ma sempre su https://usbkill.com è disponibile un USB Killer Adaptor Pack che permette di bypassare il chip di autenticazione su Phone 5, 6, 7 e 8 e il protocollo di autenticazione dell’USB-C.

Nel caso in cui sia possibile non utilizzare le porte USB è possibile bloccare l’inserimento di una UBS Killer impedendo l’uso della porta USB tramite dei USB Port Blocker removibili solo tramite un’apposita chiave (Lindy, Kensington e altri vendor distribuiscono questo tipo di protezione fisica), la disabilitazione da BIOS delle porte USB potrebbe anche rimuovere l’alimentazione alla porta, ma questo spetto va verificato perché dipende da come è stato implementato il BIOS. Ovviamente la miglior protezione sarebbe l’implementazione da parte dei vendor hardware di optoisolatori sulle porte USB.

Dispositivi hardware per la protezione delle porte USB

Gli attacchi su porte USB hanno spinto Robert Fisk a creare USG un hardware USB firewall portatile per porte USG che isola un device USB dal computer per impedire la compromissione di quest’ultimo. USG è disponibile nel seguente repository su GitHub https://github.com/robertfisk/USG e si basa sull’utilizzo di due microprocessori STM32F4 che comunicano con bus seriale ad alta velocità.

L’idea che sta alla base di USG è quella di supportare sull’interfaccia USB solo un numero limitato di comandi ritenuti sicuri per evitare dati malformati o non previsti che sono alla base degli USB Driver Exploits. Inoltre USG blocca gli attacchi basati su funzionalità nascoste supportando solo la connessione di un device e impedendo la modifica runtime della device class. Per quanto riguarda invece gli attacchi basati su comandi USB legittimi viene riportato che si sta ancora lavorando per sviluppare protezioni su questo fronte:

Type 3 Attacks: Evil Functionality in Plain Sight

Type 3 attacks also use completely legitimate USB commands, where the device you are using performs malicious actions. Defending against this type of attack requires rules specific to the attached device. For example, the mass storage class could encrypt blocks before they reach the USB device, rendering man-in-the-middle attempts futile. Or the human interface device (HID) class might block keystrokes arriving faster than a reasonable human typing speed. This firmware functionality is still under development.

Per maggiori dettagli si veda Technical Details for the Curious.

Per quanto riguarda la protezione da attacchi di tipo USB power surge tramite USB Killer viene riportato che l’USG non è stato progettato con questo scopo anche se la protezione potrebbe essere indiretta in quanto l’USG potrebbe bloccare buona parte della scarica elettrica danneggiandosi al posto del computer.

Q. Can the USG protect me from the USB Killer?

A. The USG was not designed to resist physical overvoltage attacks because they are obvious and easily contained. The information in your computer is more valuable than your computer itself, and the USG defends you against attacks that compromise your information.

But having said that, the USG will provide some protection. The voltage surge will pass through and damage two microprocessors and two ESD surge suppressors before it reaches your computer. The USG’s circuits will be destroyed, but the voltage surge will probably be reduced to a safe level at your computer’s port. If anyone does perform this test, you are welcome to tell me the result!

Al momento è disponibile per la vendita la versione 1.0 di USG che ha le seguenti caratteristiche:

The USG’s firmware supports the following devices, at USB 1 speeds (12Mbps):

  • Mass Storage – Flash drives and hard drives, 512byte sectors and 2TB max
  • Mice – 4 buttons with scroll wheel
  • Keyboards – 101 keys

Un altro dispositivo hardware per la protezione delle porte USB è USBCheckIn sviluppato da Federico Griscioli, Maurizio Pizzonia, Marco Sacchetti dell’Università degli Studi “Roma Tre” e reso pubblico alla 14th Annual Conference on Privacy, Security and Trust (PST) del 2016. USBCheckIn è al momento sviluppato come Preemptive research project. USBCheckIn blocca temporaneamente dispositivi non autorizzati e richiede un’interazione all’utente per inserire una sequenza di caratteri in modo che sono chi è a conoscenza di questa passphrase possa autorizzare l’utilizzo del dispositivo USB:

Essentially, USBCheckIn temporarily blocks the traffic coming from the device and at the same time asks the user to physically interact with it. For example, for a keyboard, it shows on its internal display a random sequence of characters that the user has to type with the keyboard. After the user has entered the correct sequence, USBCheckIn logically connects the USB device with the system, and the device can be used normally. If the user enters the wrong sequence, the device is not allowed to communicate with the host system.

If the device is malicious, the commands sent to the host will not pass the authorization process and will not reach the system, preventing any attack from being successful. To prevent brute force attacks, the user has a fixed number of attempts before the device is blocked. After that, he needs to press the button on USBCheckIn to try again the authorization process.

Per info su USBCheckIn si veda il sito http://www.dia.uniroma3.it/~pizzonia/usbcheckin.

Conclusioni

Sebbene le tecniche di attacco su USB siano note ormai da tempo sono comunque sfruttate e potenzialmente pericolose in particolare vengono sfruttare vulnerabilità zero-day o se è possibile per gli attaccanti accedere fisicamente ai computer, ovviamente la soluzione più semplice è quella di impedire fisicamente l’utilizzo delle porte USB se queste non sono necessarie. Se invece il sistema deve utilizzare dispositivi USB se possibile occorre fare in modo che utilizzi esclusivamente dispositivi USB ritenuti affidabili, quindi oltre a prevedere delle difese informatiche contro i rogue USB device è necessario anche evitare gli utenti debbano trovarsi ad utilizzarli e quindi lavorare in tal senso sulle procedure aziendali.

Purtroppo nei casi in cui può essere necessario utilizzare dispositivi USB potenzialmente non affidabili occorre pianificare procedure per il ripristino rapido di postazioni di lavoro nel caso vengano danneggiate o compromesse e confinare gli accessi all’infrastruttura di queste postazioni esposte agli attacchi veicolati tramite dispositivi USB in modo da non mettere a rischio l’intera infrastruttura.

Un caso pratico di questo di uno scenario in cui dispositivi USB potenzialmente pericolosi possano venire inseriti in computer connessi ad una rete dati è la gestione della Carta d’Identità Elettronica (CIE) che dovrà essere attivata in tutti i Comuni d’Italia entro il 2018 e che prevede nelle Modalità di acquisizione foto anche la possibilità da parte del cittadino di portare una fotografia su supporto digitale USB. Questa possibilità espone inevitabilmente i computer utilizzati per la gestione della CIE ad attacchi tramite rogue USB device o peggio ancora alle USB Killer mettendo a rischio, se non vengono prese le dovute contromisure, la rete dati degli uffici del Comune o il danneggiamento dei computer utilizzati per la gestione della CIE nel caso vengano inserite delle USB Killer. In scenari come questo sarebbe utile dotare i computer esposti ad attacchi tramite rogue USB device di device di protezione hardware delle porte USB come USG o USBCheckIn.