Git Product home page Git Product logo

progetto-network-security's Introduction

Progetto-Network-Security

Traccia: L’obiettivo del seguente progetto è l’implementazione di un insieme di attacchi, e delle rispettive mitigazioni, in un ambiente IoT simulato. In questo tipo di contesti abbiamo a che fare con dispositivi dotati di bassa potenza di elaborazione che comunicano, ed è proprio a causa di tali caratteristiche che, i protocolli di comunicazioni devono essere leggeri in modo da poter essere eseguiti senza causare un overhead eccessivo. Per tale motivo spesso, tali protocolli, tralasciano alcuni aspetti di sicurezza che richiederebbero un elevato quantitativo di risorse, lasciando uno spazio per potenziali attacchi. Nel nostro caso di studio specifico sfrutteremo questi spiragli di sicurezza in riferimento ai protocolli 6LoWPAN e RPL, implementando in particolare i seguenti attacchi:

  • DoS Attack
  • Rank Attack
  • Wormhole Attack
  • Fragment Duplication Attack

Professore: De Rango Floriano

Candidati:

  • Danny Di Cello
  • Raffaele Miriello
  • Giuseppe Seminara
  • Roberto Magurno

Installazione e configurazione dell'ambiente

Sebbene sia possibile seguire diverse strade per l’installazione del sistema Contiki, si è deciso di seguire l’approccio consigliato nella documentazione ufficiale, utilizzando quindi un’immagine Docker. La scelta effettuata presenta diversi vantaggi, i cui due più rilevanti sono i seguenti:

  • Facilità di installazione: l’installazione richiede pochi passi al termine dei quali si dispone di un ambiente totalmente configurato e funzionante.
  • Compatibilità: l’immagine Docker fornisce una maggiore compatibilità ed un maggior numero di dispositivi simulati, rispetto ad un processo di installazione nativa sul sistema Host.

Requisiti

Se non è già presente sul sistema è necessario installare il pacchetto Docker-CE, con il seguente comando:

$ sudo apt-get install docker-ce

Successivamente è opportuno aggiungere l’utente corrente al gruppo Docker. Questo passaggio è facoltativo, ma permette di interagire col Docker senza l’utilizzo dei privilegi di amministratore.

$ sudo usermod -aG docker <nome_utente>

Installazione

Installato Docker-CE sul sistema host è possibile procedere al download dell’immagine di Contiki-ng digitando

$ docker pull contiker/contiki-ng

Tale comando scarica l’ultima versione di Contiki disponibile. Una volta completato il download è necessario clonare il repository GitHub di Contiki-ng e inizializzare tutti i sotto moduli con i seguenti comandi:

$ git clone https://github.com/contiki-ng/contiki-ng.git
$ cd contiki-ng
$ git submodule update --init –recursive

Infine, per semplificare il processo di avvio è stato creato il seguente alias:

export CNG_PATH=/home/ns/contiki-ng alias contiker="docker run –privileged–sysctl net.ipv6.conf.all.disable_ipv6=0 –mount type=bind,source=$CNG_PATH, destination=/home/user/contiki-ng -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/bus/usb:/dev/bus/usb -ti contiker/contiki-ng"

A questo punto l’ambiente di sviluppo è installato ed è possibile lanciare il simulatore digitando il comando

$ contiker cooja

Struttura Cartelle

Per la riproduzione degli esperimenti sviluppati è necessario identificare due cartelle importanti:

  • ~/contiki-ng: contiene tutti i file di configurazione di Contiki-NG;
  • ~/contiki-ng/<nome_attacco>: contiene tutti i file modificati per implementare gli attacchi e le rispettive mitigazioni. La cartella attacchi è suddivisa in sottocartelle ognuna delle quali contiene l’implementazione di un attacco e della rispettiva mitigazione, riferita a topologie differenti. Inoltre, è presente uno script Bash che permette di preparare tutti i file necessari e pulire l’ambiente prima di caricare una simulazione, utilizzando i file di backup presenti nella rispettiva cartella.

progetto-network-security's People

Contributors

gise98 avatar dannydicello avatar myroby avatar rot13-git avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.