
IotShark - Monitoraggio e Analisi del Traffico IoT
Questo è il nostro progetto finale per CS 219 del trimestre autunnale 2019.
IoTShark è un servizio di monitoraggio IOT che consente agli utenti di monitorare i propri dispositivi IOT per le tendenze nei dati inviati/ricevuti. Di solito, impostare un attacco man-in-the-middle con configurazioni adeguate può richiedere parecchio tempo e può sembrare impossibile per chi ha poca o nessuna esperienza in sicurezza informatica o anche in informatica.
IoTShark mira a fornire una soluzione [quasi] completamente automatizzata per un utente per monitorare i propri dispositivi IOT eseguendo semplicemente un singolo script. L'utente deve solo selezionare il dispositivo che desidera monitorare, e questo programma si occupa del resto del lavoro pesante avviando l'ARP poisoning, impostando il packet forwarding e il packet sniffer man-in-the-middle. Ha anche un'interfaccia web interattiva e facile da capire dove l'utente può filtrare i pacchetti in base a porte, tipi e timestamp per ottenere una comprensione più ampia di quanto e quando vengono trasmesse le cose.
Miriamo anche a classificare alcuni tipi di dati come messaggi heartbeat, trasferimenti di dati e anomalie, anche se l'ultimo sarà probabilmente dimostrato sul test RPi non criptato poiché è difficile fare rilevamento di anomalie senza grandi quantità di dati (e avremmo bisogno di molti dispositivi e individui per raccogliere così tanti dati).
🚨🚨🚨 Si prega di notare che le seguenti istruzioni sono state solo verificate su MacOS. Se usi Linux o Windows + WSL, i risultati possono variare e potrebbe non funzionare. 🚨🚨🚨
pip3 install -r requirements.txtsudo sysctl net.inet.ip.forwarding=1sudo python3 iotshark.pyCrea un ambiente virtuale Python e installa i pacchetti di dipendenza.
virtualenv --python=`which python3` venv
source venv/bin/activate
pip install -r requirements.txt
Assicurati che il packet forwarding sia abilitato sulla tua macchina locale. Questo è necessario per far funzionare l'attacco man-in-the-middle. Su macOS si può fare con:
sudo sysctl net.inet.ip.forwarding=1
Esegui il programma principale iotshark.py. Vedi quello script per le opzioni accettate.
Attualmente questo programma esegue le seguenti 4 azioni:
-s o in un insieme di subnet residenziali comuni-f seguita dal percorso relativo al file csvDopo che l'ARP poisoning è in esecuzione, puoi esaminare il traffico dal dispositivo target con Wireshark usando un filtro di visualizzazione come:
(ip.src==192.168.0.215 or ip.dst==192.168.0.215) and tcp.port != 443
I dati catturati sono memorizzati in un file csv con il seguente formato:
{timestamp, incoming_bytes, outgoing_bytes, srcport, dstport, transfer_protocol, connection_protocol, srcip, dstip}
123123213, 0, 240, 36, 80, 65124, HTTP, UDP, 192.168.0.215, 104.24.4.5
123123240, 300, 0, 800, 443, 65125, HTTPS, TCP, 104.24.4.5, 192.168.0.215
Ad esempio, ecco una lunga stringa che possiamo dire ad Alexa Echo Dot/Google Home mentre sniffiamo il loro traffico. Presta attenzione se il dispositivo sta trasmettendo dati prima della parola di attivazione.
È una notte buia e tempestosa. Io e i miei amici siamo appena tornati dal Parco Nazionale di Yosemite, dove la rapida volpe marrone salta sopra il cane pigro. La prossima settimana è il Ringraziamento. Il Black Friday del 2019 sta arrivando. È un buon momento per fare qualcosa di emozionante, come seguire un corso di Sicurezza Informatica o di Linguaggi di Programmazione alla UCLA. A proposito, il primo Airbus A380 jumbo jet sta andando in pensione. Ci piace volare su quell'aereo.
WAKE_WORD, che tempo fa a Los Angeles il Giorno del Ringraziamento?
Comunque, abbiamo Boeing 787 Dreamliners per voli intercontinentali. Il corso di Web e Sistemi Mobili con Ravi è fantastico. Dovremmo aggiornare la lavatrice commerciale durante il saldo del Black Friday. Il tempo luminoso e soleggiato sta tornando e un viaggio al Parco Nazionale di Joshua Tree ci aspetta. Beh, ho appena visto un gatto lento schiantarsi contro un nuovo robot Android. Ci sono anche altri robot realizzati da Apple e Amazon.