From e3e7b20f833e8511762a93199589d9c2e921a422 Mon Sep 17 00:00:00 2001 From: h3xduck Date: Thu, 23 Jun 2022 15:54:20 -0400 Subject: [PATCH] Final modification --- docs/chapters/chapter2.tex | 12 ++++++++---- docs/ebpf_offensive_rootkit_tfg.pdf | Bin 5665324 -> 5665372 bytes 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/chapters/chapter2.tex b/docs/chapters/chapter2.tex index baf321c..46b52f0 100644 --- a/docs/chapters/chapter2.tex +++ b/docs/chapters/chapter2.tex @@ -141,16 +141,22 @@ The addition of classic BPF in the Linux kernel set the foundations of eBPF, but \hline \hline \textit{BPF}: First addition in the kernel & 2.1.75 & 1997\\ +\hline \textit{BPF+}: New JIT assembler & 3.0 & 2011\\ +\hline \textit{eBPF}: Added eBPF support & 3.15 & 2014\\ +\hline \textit New bpf() syscall & 3.18 & 2014\\ +\hline \textit Introduction of eBPF maps & 3.19 & 2015\\ +\hline \textit eBPF attached to kprobes & 4.1 & 2015\\ +\hline \textit Introduction of Traffic Control & 4.5 & 2016\\ +\hline \textit eBPF attached to tracepoints & 4.7 & 2016\\ +\hline \textit Introduction of XDP & 4.8 & 2016\\ - - \hline \end{tabular} \caption{Relevant eBPF updates. Selection of the official complete table at \cite{ebpf_funcs_by_ver}.} @@ -296,7 +302,6 @@ BPF\_MAP\_TYPE\_RINGBUF & Map providing alerts from kernel to user space, covere \hline BPF\_MAP\_TYPE\_PROG\_ARRAY & Stores descriptors of eBPF programs\\ \hline -\hline \end{tabular} \caption{Relevant types of eBPF maps. Full list can be consulted in the man page \cite{bpf_syscall}} \label{table:ebpf_map_types} @@ -509,7 +514,6 @@ bpf\_skb\_change\_head() & (Only) enlarges the extension of a packet, by moving \hline bpf\_skb\_change\_tail() & Enlarges or reduces the extension of a packet, by moving the address of its last byte.\\ \hline -\hline \end{tabular} \caption{Relevant TC-exclusive eBPF helpers.} \label{table:tc_helpers} diff --git a/docs/ebpf_offensive_rootkit_tfg.pdf b/docs/ebpf_offensive_rootkit_tfg.pdf index a44783429b999e52a0af9eb7434c58067dcfdbd6..3de2f7f336d541767418062683a88eb873f0d3a2 100644 GIT binary patch delta 64688 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 Ef7v4!#sB~S delta 64523 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 Ud@YPUYP{05+O_L*Oy64n5BnUwJpcdz