[section_title title=Gli esperti di Websense suggeriscono..]
Come mostrato di seguito, dai report provenienti da Microsoft WER (Dr. Watson) può essere un po’ più difficile estrarre le informazioni.
Dr. Watson indica di seguito una tipologia specifica di report per i dispositivi USB che sono stati collegati. Possiamo iniziare filtrando i messaggi contenenti “PnPGenericDriverFound”. A questo seguono informazioni aggiuntive (alcune codificate in URL) che sembrano criptiche ma che con alcune tabelle di ricerca possono essere suddivise nei campi indicati di seguito:
– Data
– Produttore del device USB
– Identificatore del device USB
– Revisione del device USB
– Host computer – Lingua di default
– Host computer – Sistema operativo, 32/64-bit, service pack e versione di aggiornamento
– Host computer – Produttore, modello e nome
– Host computer – Versione del Bios e identificatore unico della macchina
Fase 1: creare le ricerche dell’ID del vendor e del prodotto nel vostro tool SIEM preferito
Si scopre che le ricerche sull’ID del vendor e del dispositivo possono essere un po’ complicate ma mappano esattamente i database dei driver di Windows e Linux. Per vedere un esempio, provate a digitare “lsusb” da una macchina Linux. Dopo aver analizzato a fondo alcuni database online di driver, abbiamo messo insieme uno script di ricerca che potrete usare per i codici dei vendor e dei dispositivi e che potrete scaricare da GitHub. Siate liberi di aggiungere i nuovi codici dei dispositivi o controllare il nostro sito per gli aggiornamenti.
I nostri file di ricerca dei produttori hanno questo formato:
– vid,vid_name
– 0001,Fry’s Electronics
– 0002,Ingram
– 0003,Club Mac
– 0004,Nebraska Furniture Mart
– 0053,Planex
– 0079,DragonRise Inc.
– 0105,Trust International B.V.
– 0145,Unknown
– 017C,MLK
– 0204,Chipsbank Microelectronics Co., Ltd
– 0218,Hangzhou Worlde
– 02AD,HUMAX Co., Ltd.
– 0300,MM300 eBook Reader
– 0324,OCZ Technology Inc
– 0325,OCZ Technology Inc
E gli ID dei device hanno questo formato:
– pid,pid_name
– 0001142B,Arbiter Systems, Inc.
– 00017778,Counterfeit flash drive [Kingston]
– 00535301,GW-US54ZGL 802.11bg
– 00790006,Generic USB Joystick
– 00790011,Gamepad
– 0105145F,NW-3100 802.11b/g 54Mbps Wireless Network Adapter [zd1211]
– 01450112,Card Reader
– 017C145F,Trust Deskset
– 02046025,CBM2080 Flash drive controller
– 02046026,CBM1180 Flash drive controller
– 02180301,MIDI Port
– 02AD138C,PVR Mass Storage
– 0324BC06,OCZ ATV USB 2.0 Flash Drive
– 0324BC08,OCZ Rally2/ATV USB 2.0 Flash Drive
– 0325AC02,ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive
Utilizzando Splunk o un tool SIEM simile, creare ricerche per mappare gli ID dei vendor e dei prodotti che vedete nei log Watson qui sopra sui file manuf_ids.csv and product_ids.csv che sono stati allegati. Potete notare che la nostra ricerca dell’ID di prodotto contiene il VID+PID (Vendor ID e Product ID) insieme – questo è quello che molto probabilmente vorrete utilizzare nelle vostre ricerche.
Fase 2: Ultime notizie dai campi nei report di Dr. Watson
Il prossimo passo è decodificare la struttura che sembra relativamente complessa del report WER. Il diagramma sopra mostra valori diffusi, mentre di seguito abbiamo riportato alcune query Splunk che potete utilizzare per rilevare l’inserimento di un dispositivo USB e creare report su cosa è stato collegato alla vostra rete.
Sotto trovate un esempio di query Splunk con l’aggiunta di commenti per spiegare quello che accade in ogni campo. Dovrete cancellare i commenti prima di essere operativi in Splunk. Potete scaricare le query complete qui.
1. sourcetype=”Watson” watson.microsoft.com // Impostare la tipologia di fonte per il vostro log proxy e pre-filtrate i record contenenti watson.microsoft.com
2. | regex src_ip=”^\d+.\d+.\d+” // Usare questo per essere sicuri che si tratti di un record valido con un indirizzo IP host
3. | rex field=cs_uri_path “/(?<bus>\w{3})_VID_(?<vid>\w{4})_PID_(?<pid>\w{4})” // Questa espressione regolare estrae variabili BUS e VID
4. | rex field=cs_uri_path “/(?<bus>\w{3})_VEN_(?<ven>\w{4})_DEV_(?<dev>\w{4})” // Questa regex estrae le variabili dell’ID del vendor e del dispositivo
5. | eval vid=if(vid!=””,vid,ven) // Essere sicuri della presenza di un ID del Vendor valido
6. | eval pid=if(pid!=””,vid+””+pid,dev) // Essere sicuri della presenza di un ID del Prodotto valido
7. | eval PC_Manufacturer=urldecode(SM) // Decodificare il Produttore del PC dalla richiesta GET
8. | eval PC_Model=urldecode(SPN)| rex field=OS “(?<os_version>\d\.\d+)” //Decodificare il modello del PC dalla richiesta GET
9. | rex field=OS “(?<os_version_detailed>\d\.\d+\.\d+)” // Uscire dalla Versione del Sistema Operativo (es. Windows 7)
10. | eval BV=urldecode(BV) // Decodificare la versione BIOS del computer che ha generato il report
11. | Rinominare BV come “BIOS Version”
12. | Rinominare MID come “Machine ID”
13. | where isnotnull(os_version) AND isnotnull(bus) // Essere sicuri che stiamo cercado un record valido
14. | lookup windowsVersion os_version OUTPUT os_description // Cercare la versione di Windows del computer (es. 6.1.7601 è Windows 7)
15. | lookup manufId vid OUTPUT vid_name // Cercare il nome del vendor del dispositivo USB dalla ricerca fornita
16. | lookup productId pid OUTPUT pid_name // Cercare l’ID del prodotto USB dalla ricerca fornita
17. | Rinominare vid_name come “Device_Manufacturer”
18. | table _time, src_ip, bus, vid, Device_Manufacturer, pid, pid_name, os_version_detailed, os_description, PC_Manufacturer, PC_Model, “BIOS Version”, “Machine ID” // Estrarre una buona tabella
Modificare quanto è necessario e ottenere uno spaccato dettagliato dei dispositivi USB che sono stati collegati alla vostra rete!
Vi consigliamo di limitare la vostra ricerca a rimuovere i comuni dispositivi USB di cui non dovreste preoccuparvi, come tastiere e mouse. Per esempio:
– search pid_name != “*mouse*”
– search pid_name != “*keyboard*”
Le prossime fasi
Facendo un passo ulteriore, è possibile configurare il SIEM per generare un report ogni volta che un certo di tipo di device (come una periferica di archiviazione di massa, o uno smartphone) è connesso a un computer sulla rete. Per applicare la prevenzione della fuga del dato (DFP – Data Theft Protection) a questo, bisogna cercare di limitare questi report filtrando per nome computer o per indirizzo IP quei computer che hanno (o hanno avuto) accesso ai dati sensibili, per esempio identificando le perifiche di massa connesse al cluster Hadoop HDFS o sullo stesso segmento di rete.