# USBKill (software)

USBKill è un software libero anti-forense open source scritto in Python e disponibile per Linux, BSD, macOS e altri sistemi Unix-like
È progettato per agire come un "kill switch" per il computer sul quale viene installato. Quando viene rilevata una modifica sullo stato di una porta USB, USBKill può eseguire una serie di azioni, come spegnere il computer, cancellare i dati dalla RAM e dalla swap, o eseguire comandi personalizzati.
USBKill è un software libero distribuito sotto licenza GPL e distribuito tramite GitHub.
Il programma è stato creato dallo sviluppatore, noto al pubblico sotto il nome di Hephaest0s, in risposta alle circostanze dell'arresto di Ross Ulbricht, noto anche come Dread Pirate Roberts, e fondatore di Silk Road, un mercato nero online che operava nel dark web.
Dopo un'indagine complessa messa in atto per identificare e raccogliere prove contro Ulbricht, l'FBI ha scoperto un diario e un logbook sul laptop di Ulbricht che dettagliavano il suo coinvolgimento nella gestione di Silk Road. L'accesso alle prove incriminanti sul suo laptop è avvenuto senza bisogno della sua collaborazione ma semplicemente copiando i dati dalla sua unità flash dopo averlo distratto.
USBKill risulta particolarmente utile per prevenire l'accesso e l'esfiltrazione di dati non autorizzato dal PC dell'utente.
Il programma, infatti, mantiene una whitelist di dispositivi autorizzati a connettersi alle porte USB del computer sul quale è installato. Se un dispositivo non presente nella whitelist viene collegato alla macchina, USBKill è in grado di mettere in atto misure di difesa immediata come il ritorno alla schermata di blocco utente, avviare la crittografia del disco rigido o la cancellazione completa dei dati presenti sul computer.
USBKill però può tornare utile anche per bloccare tentativi di installazione di malware o spyware da periferiche USB, prevenendo così qualsiasi compromissione del sistema, e impedire la duplicazione non autorizzata di file sensibili su dispositivi esterni.

## Utilizzo

Dopo la sua installazione, il programma chiede all'utente di creare una whitelist dei dispositivi autorizzati a connettersi alle porte USB del computer, che vengono controllate con una frequenza modificabile dall'utente.
L'utente può scegliere quali azioni intraprendere nel momento in cui il computer rileva un dispositivo USB non autorizzato (non presente nella whitelist). L'azione predefinita è lo spegnimento del sistema e la cancellazione dei dati dalla RAM e dal file di swap.
USBKill può essere configurato anche "al contrario". È infatti possibile utilizzare una chiavetta USB autorizzata come una sorta di chiave fisica allacciata al polso dell'utente. In questo scenario, se l'unità flash viene rimossa forzatamente (quando l'utente lascia la postazione), il programma avvierà automaticamente le routine di sicurezza preimpostate, come lo spegnimento del sistema o la cancellazione dei dati.
Aaron Grothe, in un articolo apparso sulla rivista 2600 The Hacker Quarterly, parlando di USBKill ne ha elogiato le caratteristiche affermando che "[È] progettato per fare una cosa e lo fa piuttosto bene". Come ulteriore precauzione, suggeriva agli utenti di rinominare il programma con il nome di un'applicazione innocua in modo tale da nasconderlo agli occhi di chi tenta di cercarlo sul computer per disabilitarlo.
Hephaest0s suggerisce il suo impiego come parte di un regime di sicurezza generale e per impedire l'installazione di malware o spyware sul computer e prevenire l'esfiltrazione di dati non autorizzata.

## Modifiche e programmi derivati

Nel suo articolo su 2600 The Hacker Quarterly, Aaron Grothe, ha condiviso una patch per USBKill che estendeva le sue capacità permettendo al programma di chiudere la connessione di rete a cui il terminale era connesso. In questo modo, l'accesso non autorizzato non solo avrebbe attivato le misure di protezione dei dati locali, ma avrebbe anche isolato il terminale dalla rete, prevenendo ulteriori compromissioni.
Lo sviluppatore Nate Brune ha creato Silk Guardian, ispirandosi a USBKill. Questo progetto è stato implementato come modulo del kernel Linux per migliorare la sicurezza dei dati e proteggere contro accessi non autorizzati.