347 lines
11 KiB
TeX
347 lines
11 KiB
TeX
\documentclass{beamer}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[german]{babel}
|
|
\usepackage{pdfpages}
|
|
\usepackage{amssymb}
|
|
\usepackage{enumerate}
|
|
\usepackage{array}
|
|
\usepackage{lmodern}
|
|
\usepackage{url}
|
|
\usepackage{hyperref}
|
|
\usepackage[all]{xy}
|
|
\usepackage[export]{adjustbox}
|
|
\usepackage{subcaption}
|
|
\usepackage{listings}
|
|
\usepackage{graphicx}
|
|
\graphicspath{{./img/}}
|
|
|
|
%Farbschema
|
|
\definecolor{tuerkis}{rgb}{0.0, 0.65, 0.76}
|
|
\definecolor{weiss}{rgb}{1.0,1.0,1.0}
|
|
\definecolor{gruen}{rgb}{0.22, 0.74, 0.07}
|
|
|
|
\usetheme{metropolis}
|
|
%\usecolortheme{whale}
|
|
\setbeamercolor{progress bar}{fg=gruen,bg=gruen}
|
|
\setbeamercolor{frametitle}{bg = gruen}
|
|
\setbeamercolor{background canvas}{bg = weiss}
|
|
\setbeamercolor{footline}{fg=gray}
|
|
\setbeamerfont{page number in head/foot}{size=\scriptsize}
|
|
\setbeamercolor{title}{fg = black}
|
|
\setbeamertemplate{frame footer}{ \insertlogo{\includegraphics[width=0.1\textwidth]{aegis_logo_with_name.pdf}} \hfill \insertsection}
|
|
\lstset{frame=single}
|
|
|
|
%\logo{\includegraphics[width=.1\textwidth]{aegis_logo_with_name.pdf}\hspace*{.05\paperwidth}}
|
|
%\logo{\includegraphics[width=.1\textwidth]{img/aegis_logo_with_name.pdf}}
|
|
\newcommand\pipeline{\center \includegraphics[width=0.6\linewidth]{grobentwurf/packet_diagram_pipeline.png}}
|
|
|
|
%Information to be included in the title page:
|
|
\title[Abwehr von Denial-of-Service-Angriffen durch effiziente User-Space Paketverarbeitung: AEGIS]{Abwehr von Denial-of-Service-Angriffen durch effiziente User-Space Paketverarbeitung: AEGIS}
|
|
\subtitle{Review für die Implementierungsphase}
|
|
\institute{Technische Universität Ilmenau}
|
|
\date{24.06.2021}
|
|
|
|
\begin{document}
|
|
|
|
\begin{frame}
|
|
\maketitle % Automatically created using the information in the commands above
|
|
\end{frame}
|
|
|
|
\begin{frame}{Aufgabenstellung}
|
|
\center
|
|
\includegraphics[width=0.3\textwidth]{dpdk_logo.png}
|
|
\includegraphics[width=\textwidth]{Netzwerkplan-Real.png}
|
|
\center
|
|
Abwehrsystem gegen DoS-Angriffe
|
|
\end{frame}
|
|
|
|
\begin{frame}{Aufgabenstellung}
|
|
\begin{itemize}
|
|
\item Die Software soll mehrere Varianten von Attacken abwehren
|
|
\item Nur eine davon ist für diesen Vortrag relevant:
|
|
\end{itemize}
|
|
\center
|
|
\textbf{SYN-Flood-Attacke}
|
|
\begin{figure}[h!]
|
|
\includegraphics[width=0.5\textwidth]{SYN-FLOOD.png}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Gliederung}
|
|
\begin{enumerate}
|
|
\item \textbf{Grobentwurf}
|
|
\item \textbf{Feinentwurf}
|
|
\begin{enumerate}
|
|
\item Komponente: NicManagement
|
|
\item Komponente: PacketDissection
|
|
\item Komponente: Inspection
|
|
\item Komponente: Treatment
|
|
\item Einsatz von mehreren Threads
|
|
\item Alternative Entwürfe
|
|
\end{enumerate}
|
|
\item \textbf{Entwurfsmuster}
|
|
\item \textbf{Stand des Projekts}
|
|
\item \textbf{Ausblick}
|
|
\end{enumerate}
|
|
\end{frame}
|
|
|
|
% ===== G R O B E N T W U R F ===== %
|
|
\begin{frame}{Grobentwurf}
|
|
\begin{center}
|
|
%\includegraphics[width=\linewidth]{grobentwurf/packet_diagram.pdf}
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Grobentwurf}
|
|
\begin{center}
|
|
%\includegraphics[width=0.95\linewidth]{roadmap/roadmap2.pdf}
|
|
Die Architektur folgt dem Pipeline-Modell.
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
% ===== F E I N E N T W U R F ===== %
|
|
\begin{frame}{Feinentwurf}
|
|
%\includegraphics[width=\textwidth]{roadmap/roadmap2_1.pdf}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: NicManagement}
|
|
\begin{figure}
|
|
\includegraphics[width=0.3\textwidth]{dpdk_logo.png}
|
|
\includegraphics[width=\linewidth]{polling.png}
|
|
\center
|
|
effizient Pakete von der NIC bekommen: Polling
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: PacketDissection}
|
|
%\includegraphics[width=\textwidth]{roadmap/roadmap2_2.pdf}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: PacketDissection}
|
|
%\includegraphics[width=\textwidth]{roadmap/roadmap2_2.pdf}
|
|
\begin{itemize}
|
|
\item extrahiert Informationen aus den Paketen
|
|
\item stellt diese für die folgenden Komponenten bereit
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Inspection}
|
|
%\includegraphics[width=\textwidth]{roadmap/roadmap2_3.pdf}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Inspection}
|
|
\begin{minipage}[h]{0.45\textwidth}
|
|
\begin{figure}[h!]
|
|
\includegraphics[width=\textwidth, center]{inspection.pdf}
|
|
\end{figure}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}[h]{0.45\textwidth}
|
|
\begin{itemize}
|
|
\item Klasse Analyzer
|
|
\item Filterung aller Pakete der Netzwerkprotokolle UDP, TCP, ICMP
|
|
\item Abwehr von SYN-FIN-Angriffen
|
|
\end{itemize}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Inspection}
|
|
\includegraphics[width=\textwidth, center]{analyzerDiagram.png}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Treatment}
|
|
%\includegraphics[width=\textwidth]{roadmap/roadmap2_4.pdf}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Treatment}
|
|
\includegraphics[width=\textwidth, center]{Treatment_ohne_Container_mit_Schatten.pdf}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Treatment}
|
|
\begin{minipage}[h]{0.45\textwidth}
|
|
\includegraphics[width=\textwidth, center]{SYN-FLOOD.png}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}[h]{0.45\textwidth}
|
|
\begin{itemize}
|
|
\item SYN-Flood-Abwehr mit SYN-Cookies
|
|
\item keine Reservierung von Ressourcen beim Aufbau
|
|
\end{itemize}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Treatment}
|
|
\begin{minipage}[h]{0.5\textwidth}
|
|
\includegraphics[width=\textwidth, center]{splicing.pdf}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}[h]{0.45\textwidth}
|
|
\begin{itemize}
|
|
\item TCP-Proxy
|
|
\item Middle-Box als Vermittler
|
|
\end{itemize}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Implementierung Treatment}
|
|
{\footnotesize
|
|
\begin{lstlisting}
|
|
Treatment::treat_packtes(){
|
|
for packet in packet_to_inside{
|
|
if(packet.get_type() == packet_type_tcp){
|
|
flags = packet.get_flags();
|
|
if(flags.is_pure_syn()){
|
|
syn_cookie = calc_cookie(connection_data);
|
|
reply_packet = get_empty_packet_to_outside;
|
|
reply_packet.fill(connection_data,syn_cookie);
|
|
}
|
|
else if(...){...}
|
|
...
|
|
}
|
|
}
|
|
}
|
|
\end{lstlisting}
|
|
}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Einsatz von Threads}
|
|
\begin{itemize}
|
|
\item eine Pipeline \(\rightarrow\) nur ein Thread nötig
|
|
\end{itemize}
|
|
%\includegraphics[width=\linewidth]{roadmap/roadmap2.pdf}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Einsatz von Threads}
|
|
\begin{itemize}
|
|
\item Wünsche für Effizienz:
|
|
\begin{itemize}
|
|
\item mehrere Threads parallel
|
|
\item gleichmäßig ausgelastet
|
|
\item keine Kommunikation
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\includegraphics[width=\linewidth]{multithreading2.pdf}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Einsatz von Threads}
|
|
\begin{itemize}
|
|
\item Pakete aufgeteilt durch ,,RSS'' (Receive Side Scaling)
|
|
\begin{itemize}
|
|
\item realisiert durch Hashing
|
|
\item Schlüssel: \texttt{[Src-IP; Dst-IP; Src-Port; Dst-Port]}
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\begin{figure}
|
|
\center
|
|
%\includegraphics[width=0.8\linewidth]{rss/rss.pdf}
|
|
\end{figure}
|
|
\begin{itemize}
|
|
\item \textbf{gleichmäßige Auslastung} (wegen Hashing)
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Einsatz von Threads}
|
|
\begin{itemize}
|
|
\item Problem: Verschiedene Zuordnung je Seite
|
|
\begin{itemize}
|
|
\item[\(\rightarrow\)] Inter-Thread-Kommunikation nötig!
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\begin{figure}
|
|
\center
|
|
%\includegraphics[width=\linewidth]{rss/sym_rss_solution.pdf}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Einsatz von Threads}
|
|
\begin{itemize}
|
|
\item Lösung: ,,Symmetric RSS''
|
|
\begin{itemize}
|
|
\item \texttt{[\textbf{Src-IP}; \textit{Dst-IP}]} \(\equiv\) \texttt{[\textit{Dst-IP}; \textbf{Src-IP}]}
|
|
\item[\(\rightarrow\)] \textbf{keine Inter-Thread-Kommunikation nötig}
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\begin{figure}
|
|
\center
|
|
%\includegraphics[width=\linewidth]{rss/sym_rss_problem.pdf}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Feinentwurf: Alternative Entwürfe}
|
|
% Alternativen (Implementierungsentscheidungen, Grobentwurfsänderung)
|
|
\begin{figure}
|
|
\center
|
|
\includegraphics[width=\textwidth]{multithreading_old.pdf}
|
|
\end{figure}
|
|
\begin{itemize}
|
|
\item alternativ: ein Thread pro Komponente
|
|
\item Nachteil: zu viel Inter-Thread-Kommunikation
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Entwurfsmuster}
|
|
\begin{minipage}[h]{0.45\textwidth}
|
|
\begin{figure}[h!]
|
|
\includegraphics[width=\textwidth]{singleton.pdf}
|
|
\end{figure}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}[h]{0.45\textwidth}
|
|
\begin{itemize}
|
|
\item Erzeugungsmuster
|
|
\item Nur ein Objekt dieser Klasse
|
|
\item Globale Informationsbereitstellung
|
|
\item Verwendung im Configurator
|
|
\end{itemize}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Was AEGIS bisher kann}
|
|
\begin{minipage}[h]{\textwidth}
|
|
\center
|
|
\begin{minipage}[h]{0.5\textwidth}
|
|
\center
|
|
\includegraphics[width=\textwidth]{done/done1.png}
|
|
Pakete weiterleiten
|
|
\end{minipage}
|
|
\begin{minipage}[h]{0.25\textwidth}
|
|
\center
|
|
%\includegraphics[width=\textwidth]{done/done2.pdf}
|
|
Multithreading
|
|
\end{minipage}
|
|
\end{minipage}
|
|
\vspace{0.5cm}
|
|
\begin{minipage}[h]{\textwidth}
|
|
\center
|
|
\begin{minipage}[h]{0.3\textwidth}
|
|
\center
|
|
\includegraphics[width=0.5\textwidth]{done/done3.png}
|
|
Informationen aus Paketen extrahieren
|
|
\end{minipage}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Ausblick}
|
|
\begin{itemize}
|
|
\item Anforderungen unverändert
|
|
\item Überprüfung wichtiger Anforderung
|
|
\item Erweiterung um Angriffe und ihre Abwehrmechanismen
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Bildquellen}
|
|
\begin{itemize}
|
|
\tiny
|
|
\item https://www.onlinewebfonts.com/icon/571002 [Abgerufen am 22.06.2021]
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\begin{center}
|
|
\textbf{Vielen Dank für Ihre Aufmerksamkeit!}
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\end{document} |