94 lines
6.5 KiB
TeX
94 lines
6.5 KiB
TeX
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%% Descr: Vorlage für Berichte der DHBW-Karlsruhe, Ein Kapitel
|
|
%% Author: Prof. Dr. Jürgen Vollmer, vollmer@dhbw-karlsruhe.de
|
|
%% $Id: kapitel1.tex,v 1.24 2020/03/13 16:02:34 vollmer Exp $
|
|
%% -*- coding: utf-8 -*-
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\chapter{Grundlagen}
|
|
|
|
\section{Aufgabenstellung}
|
|
|
|
Um im Falle eines \ac{DDoS} Angriffs schnell reagieren zu können, muss es eine bequeme und einfache Möglichkeit geben, Routen zu manipulieren.
|
|
Hierfür wurde das Projekt Remote Triggered Blackholing gestartet.
|
|
Im Falle eines \ac{DDoS} Angriffs, könnten somit IP Präfixe des Angreifers gezielt in ein Blackhole geroutet werden.
|
|
Eine Belastung der Zielsysteme könnte somit verhindert werden, da die boshaften Pakete des Angreifers somit nicht beim Zielsystem ankommen würden, sondern in das schwarze Loch (Blackhole) weitergeleitet werden.
|
|
Um die Routen in Routern manipulieren zu können, müssen diese über Injektoren in diese injiziert werden.
|
|
Im Verlaufe dieser Projektarbeit wird die Entwicklung der Injektoren Komponente und der Aufbau einer Staging(Testing) Umgebung genauer dargelegt.
|
|
Der Aufbau und die Entwicklung der \ac{API} Komponente wurde bereits in der T1000 erläutert.
|
|
|
|
\newpage
|
|
|
|
|
|
\section{Genutze Technologien}
|
|
|
|
\subsection{Django Rest Framework}
|
|
|
|
Django ist ein Web-Framework, dessen Ziel es ist, die Entwicklung von Web Applikationen schnell, einfach und übersichtlich zu machen.
|
|
Das Django \ac{REST} Framework, hier nachfolgend als \ac{DRF} bezeichnet, ist ein \ac{REST} Framework welches auf Django basiert.
|
|
Mit \ac{DRF} lassen sich \ac{REST}-ful \ac{API}s schnell und einfach gestalten.
|
|
Hierfür bietet Django eine Reihe an vorgefertigten Hilfestellung an, welche im Verlaufe dieser Projektarbeit näher erläutert werden.
|
|
Datenbankmodelle werden hier einfach programmatisch deklariert und werden anschließend von Django automatisch verwaltet.
|
|
Über Objekte können somit einzelne Werte aus der Datenbank entnommen werden, ohne sich mühsam mit \ac{SQL} Queries auseinandersetzen zu müssen.
|
|
Sowohl Django als auch \ac{DRF} basieren auf der Programmiersprache Python.
|
|
|
|
\subsection{Hashicorp Consul}
|
|
|
|
Consul, entwickelt von Hashicorp, ist eine Netzwerk Service Lösung, welche eine sichere Kommunikation zwischen Services und Applikation erlaubt.
|
|
Consul kann sowohl redundant mit mehreren Nodes, als auch standalone genutzt werden.
|
|
Für diese Projektarbeit, wird eine standalone Lösung eingesetzt und es wird lediglich die Key-Value Store Funktion genutzt.
|
|
Mit dieser Funktion können Key-Value Paare über das Netzwerk in Consul gespeichert werden.
|
|
|
|
\subsection{Docker}
|
|
|
|
Docker ist Platform zur Containerisierung von Anwendungen.
|
|
Hierdurch wird die Möglichkeit geschaffen eine isoliertes und leichtgewichtige Umgebung zu schaffen, welche sonst lediglich mittels \acp{VM} möglich wäre.
|
|
Durch Docker wird auf produktiven System durch die zusätzliche Isolationsschicht der Containerisierung eine weitere Sicherheitsstufe hinzugefügt, welche potenziellen Angreifern den Zugriff auf das Hostsystem erschwert.
|
|
|
|
\section{Stand der Technik}
|
|
|
|
Das \ac{BGP} ist ein Protokoll des Internet-Routings, das die besten Wege für den Datenverkehr zwischen \acp{AS} bestimmt.
|
|
Es verwendet Peering-Verbindungen zwischen Routern, um Informationen über erreichbare Netzwerke auszutauschen und die optimalen Pfade für den Datenaustausch zu ermitteln.
|
|
Anders als bei herkömmlichen Routing Protokollen wie dem \ac{RIP} oder \ac{OSPF}, wird hier eine direkte \ac{TCP} Verbindung zwischen Routern(Neighbours/Nachbarn) hergestellt.
|
|
Wenn zwei \ac{BGP} Nachbarn eine \ac{BGP} Verbindung aufgebaut haben, beginnen diese \ac{BGP} Informationen in Form von Nachrichten auszutauschen.
|
|
Jede Nachricht besteht aus einem Header, und dem tatsächlichen Inhalt.
|
|
\cite[Vgl.][S. 19 f.]{beijnum.2002a}
|
|
Um eine \ac{BGP} Verbindung herzustellen, müssen sich Router über eine Open-Message verbinden.
|
|
\cite[Vgl.][S. 20 ff.]{beijnum.2002a}
|
|
\\\\
|
|
Routen und Änderungen dieser werden über Update Messages weitergeleitet.
|
|
Genauer wird dies in \cite[RFC4271][]{rfc4271} definiert.
|
|
\\\\
|
|
\ac{BGP}-Communities sind ein Mechanismus, mit welchem Netzwerkbetreiber spezifische Gruppen oder Kategorien von Präfixen markieren können.
|
|
Diese Markierungen, als \glqq Communities\grqq bezeichnet, können verwendet werden, um Routen zu identifizieren und zu beeinflussen, wie sie von anderen \acp{AS} interpretiert werden.
|
|
Durch die Verwendung von Communities können Netzwerkbetreiber das Routing auf feinere Weise steuern und anpassen, ohne die Kernstruktur des \ac{BGP}-Netzwerks zu verändern.
|
|
Die Manipulation von Routen mittels \ac{BGP} Communities erfolgt, indem einem bestimmten Präfix eine oder mehrere Community-Markierungen zugewiesen werden.
|
|
Andere \ac{AS} können dann diese Community-Markierungen verwenden, um spezifische Aktionen auszuführen, wie z.B.:
|
|
|
|
\begin{itemize}
|
|
\item Pfadwahl beeinflussen: Durch das Zuweisen von Communities zu bestimmten Präfixen können Netzwerkbetreiber festlegen, wie andere \ac{AS} ihre Routen interpretieren sollen.
|
|
Dies kann dazu verwendet werden, den bevorzugten Weg für den Datenverkehr zu beeinflussen.
|
|
|
|
\item Traffic-Engineering: Netzwerkbetreiber können Communities verwenden, um den Datenverkehrsfluss zu steuern.
|
|
Durch Markieren von Präfixen können sie bestimmte \ac{AS} dazu anleiten, den Datenverkehr auf bestimmten Wegen zu leiten, um Netzwerkressourcen effizienter zu nutzen.
|
|
|
|
\item Blackhole-Routing: \ac{BGP} Communities können dazu genutzt werden, bestimmte Präfixe zu markieren und den Datenverkehr über Blackholes zu lenken, um Angriffe oder Überlastungen zu bewältigen.
|
|
|
|
\item Routenfilterung: \ac{AS} können Community-Markierungen verwenden, um präzise Routenfilterung durchzuführen.
|
|
Damit können sie bestimmte Routen von bestimmten Quellen oder für bestimmte Zwecke filtern oder akzeptieren.
|
|
|
|
\end{itemize}
|
|
Die Verwendung von BGP Communities ermöglicht eine flexiblere und zielgerichtete Steuerung des Internet-Routings.
|
|
Netzwerkbetreiber können so gezielt auf unterschiedliche Anforderungen reagieren und gleichzeitig die Integrität und Stabilität des BGP-Netzwerks aufrechterhalten.
|
|
|
|
|
|
\begin{flushleft}
|
|
Durch den nahezu identischen Technologiestack wie bei der T1000 und um den Lesefluss zu wahren, wurden einige Kurzbeschreibungen in abgeänderter Form wiederverwendet.
|
|
\end{flushleft}
|
|
|
|
\newpage
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\endinput
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|