
PENIOT: Strumento di Penetration Testing per IoT
PENIOT è uno strumento di penetration testing per dispositivi Internet of Things (IoT). Ti aiuta a testare/penetrare i tuoi dispositivi prendendo di mira la loro connettività Internet con diversi tipi di attacchi di sicurezza. In altre parole, puoi esporre il tuo dispositivo sia ad attacchi di sicurezza attivi che passivi. Dopo aver deciso il dispositivo target e le informazioni (o i parametri) necessari di quel dispositivo, puoi eseguire attacchi di sicurezza attivi come la modifica/consumo di risorse di sistema, la riproduzione di unità di comunicazione valide e così via. Inoltre, puoi eseguire attacchi di sicurezza passivi come la violazione della riservatezza di informazioni importanti o l'analisi del traffico. Grazie a PENIOT, tutte queste operazioni possono essere semi-automatizzate o addirittura completamente automatizzate. In breve, PENIOT è un pacchetto/framework per prendere di mira dispositivi IoT con attacchi di sicurezza basati su protocolli.
Inoltre, ti fornisce una struttura di base per ulteriori inserimenti di nuovi attacchi di sicurezza o nuovi protocolli IoT. Una delle caratteristiche più importanti di PENIOT è la sua estensibilità. Di default, ha diversi protocolli IoT comuni e numerosi attacchi di sicurezza relativi a quei protocolli. Ma può essere esteso ulteriormente esportando la struttura di base dei componenti utilizzati internamente in modo da poter sviluppare i tuoi attacchi in armonia con la struttura interna di PENIOT.
Il paradigma IoT ha vissuto un'enorme crescita nell'ultimo decennio, con miliardi di dispositivi connessi a Internet. La maggior parte di questi dispositivi manca anche delle misure di sicurezza di base a causa dei vincoli di capacità e di progetti realizzati senza pensare alla sicurezza a causa della brevità del time-to-market. A causa dell'elevata connettività nell'IoT, attacchi con effetti devastanti in reti estese possono essere facilmente lanciati dagli hacker attraverso dispositivi vulnerabili.
Fino ad ora, i penetration testing venivano eseguiti manualmente se non del tutto ignorati. Questa procedura rendeva la fase di test dei dispositivi molto lenta. D'altra parte, le aziende che producono dispositivi IoT dovrebbero essere sempre aggiornate nel testare i propri dispositivi in termini di affidabilità, robustezza e funzionalità fornite, poiché essere esposti ad attacchi di sicurezza da parte di malintenzionati potrebbe causare impatti imprevisti sugli utenti finali. L'obiettivo principale di PENIOT è accelerare il processo di test di sicurezza. Ti permette di individuare le falle di sicurezza sui tuoi dispositivi IoT automatizzando la fase di penetration testing che richiede tempo.
Prima di tutto, PENIOT offre novità. È uno dei primi esempi di strumenti di penetration testing nel campo IoT. Esistono solo uno o due strumenti simoli specializzati in IoT, ma sono ancora in fase di sviluppo, quindi non ancora completati.
Poiché il numero di dispositivi IoT sta aumentando drasticamente, i dispositivi IoT diventano sempre più comuni nella nostra vita quotidiana. Case intelligenti, biciclette intelligenti, sensori medici, fitness tracker, serrature intelligenti e fabbriche connesse sono solo alcuni esempi di prodotti IoT. Considerando ciò, abbiamo sentito la necessità di scegliere alcuni dei protocolli IoT più comunemente utilizzati da inserire in PENIOT di default. Abbiamo scelto i seguenti protocolli come protocolli IoT predefiniti inclusi in PENIOT. Questi protocolli IoT sono stati testati con vari tipi di attacchi di sicurezza come DoS, Fuzzing, Sniffing e attacchi di Replay.
I seguenti protocolli sono attualmente supportati:
Inoltre, ti consente di esportare la struttura principale interna del proprio protocollo implementato e degli attacchi per implementare i tuoi protocolli o attacchi. Inoltre, puoi estendere i protocolli già esistenti con i tuoi attacchi appena implementati. E infine, ti fornisce un'interfaccia utente grafica facile da usare e user-friendly.
Innanzitutto, è necessario avere il modulo setuptools di Python installato sulla propria macchina. Inoltre, è necessario installare python-tk e bluepy prima dell'installazione e della build.
In breve, è necessario quanto segue prima di eseguire lo script di installazione.
Si noti che si consiglia di avere un ambiente virtuale separato creato appositamente per Peniot poiché le librerie dipendenti sono piuttosto vecchie e potrebbero causare problemi durante l'installazione insieme alle librerie esterne esistenti
Puoi costruire il progetto in locale eseguendo i seguenti comandi.
$ git clone [email protected]:yakuza8/peniot.git
$ cd peniot
$ python setup.py install
Anche se cerchiamo di fornire uno script di installazione aggiornato, potrebbero esserci alcune parti mancanti poiché il progetto non può essere mantenuto per così tanto tempo. Per favore, informaci se ci sono problemi con l'installazione.
Nota importante: È necessario avere Radamsa installato sulla propria macchina per generare payload di fuzzing negli attacchi di fuzzing.
Puoi eseguire Peniot tramite riga di comando o il tuo IDE preferito dopo aver configurato un ambiente virtuale e aver installato le librerie necessarie descritte sopra.
$ python src/peniot.py
Dopo aver eseguito questo comando, dovresti vedere un'interfaccia utente. Quindi puoi esplorare lo strumento da solo.
Puoi trovare il Documento di Panoramica di Progettazione e il Documento di Progettazione Finale nella cartella resources/documents. Diversi diagrammi sono allegati nella cartella resources/diagrams. Ecco la rappresentazione più semplice di come PENIOT è suddiviso in moduli e come è progettato.
La maggior parte degli attacchi ha i propri test di integrazione di esempio all'interno dei loro script di attacco. Per eseguire questi test, è necessario avere un programma in esecuzione per il protocollo target. Cerchiamo di fornirti programmi di esempio per ogni protocollo, in cui puoi trovare script server/client nella directory examples di ciascun protocollo.
Questo progetto è stato contribuito dai seguenti membri del progetto:
ed è supervisionato da Pelin Angın.
Innanzitutto, lascia che ti ringrazi per aver visitato il nostro sito del progetto. Abbiamo cercato di fornirti come si possa penetrare e hackerare dispositivi IoT tramite i protocolli che utilizzano grazie ad attacchi di sicurezza end-to-end. Il nostro scopo principale è hackerare quei dispositivi con attacchi di sicurezza generici. Si possono semplicemente trovare attacchi specifici per qualsiasi protocollo, ma come ho detto il nostro era di fornire un framework di penetrazione generico ed estensibile.
In secondo luogo, PENIOT è sviluppato con Python2.7. E il nostro codice potrebbe essere entrato in stato legacy. Ma comunque, abbiamo voluto condividerlo pubblicamente in modo che chiunque possa ottenere spunti e ispirazione per sviluppare i propri strumenti di penetrazione, ed è ciò che ci rende felici se dovesse accadere.
In terzo luogo, cercheremo anche di portare il nostro strumento in Python3 se riusciremo a trovare il tempo necessario per farlo. Quando ciò accadrà, lo comunicheremo anche da questa pagina. Grazie per l'attenzione.
Sviluppatore: @yakuza8 (Berat Cankar)