Berkeley Packet Filter: theory, practice and perspectives

Di Stefano, Michele (2019) Berkeley Packet Filter: theory, practice and perspectives. [Laurea], Università di Bologna, Corso di Studio in Informatica [L-DM270]
Documenti full-text disponibili:
[img] Documento PDF (Thesis)
Disponibile con Licenza: Creative Commons: Attribuzione - Condividi allo stesso modo 3.0 (CC BY-SA 3.0)

Download (705kB)

Abstract

Inizialmente in molte versioni di Unix il meccanismo di filtraggio dei pacchetti era implementato nello spazio utente, richiedendo la copia di ogni pacchetto dallo spazio kernel, prima di essere filtrato. L'introduzione di BPF ha permesso di migliorare la performance consentendo il filtraggio dei pacchetti direttamente nel kernel space. La prima implementazione, classic BPF (cBPF) permette di iniettare dallo spazio utente codice assembly per la macchina virtuale che risiede nel kernel, in modo che il programmatore possa scrivere filtri personalizzati. L' utilizzo di cBPF e' stato esteso anche al filtraggio delle system call tramite l'implementazione di seccomp che sfrutta la stessa sintassi ma per agire su una struttura dati che rappresenta la system call eseguita, invece che il pacchetto di rete. Successivamente la macchina virtuale e' stata riscritta sia per adeguarla alle innovazioni riguardanti l'architettura dei moderni processori (e.g. piu' registri, piu' istruzioni) sia con lo scopo di aggiungere ulteriori funzionalita'. La nuova implementazione prende il nome di extended BPF (eBPF) e prevede molte piu' tipologie di programmi, la possibilita' di utilizzare mappe per la comunicazione tra user space e kernel space, la possibilita' di chiamare da un programma BPF altri programmi BPF o un sottoinsieme di funzioni del kernel chiamate helpers, nonche' la possibilita' di fissare alcuni oggetti in un file system virtuale in modo da poterli recuperare successivamente. Il supporto eBPF per seccomp non e' stato introdotto sebbene vi siano state alcune patch proposte. Il seguente lavoro di tesi ha l'obiettivo di introdurre cBPF ed eBPF, sia a livello teorico descrivendone le componenti, che pratico tramite la creazione di un repository github ed di una documentazione tecnica ed infine di analizzare alcuni aspetti relativi a seccomp.

Abstract
Tipologia del documento
Tesi di laurea (Laurea)
Autore della tesi
Di Stefano, Michele
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
bpf,berkeley packet filter,networking,tracing,seccomp
Data di discussione della Tesi
18 Dicembre 2019
URI

Altri metadati

Statistica sui download

Gestione del documento: Visualizza il documento

^