Bei einem Exploit handelt es sich um ein Computerprogramm, das Sicherheitslücken von Software-Produkten aufzeigt und deren Ausnutzung ermöglicht. Sie stellen potente Werkzeuge für Hacker und Cyberkriminelle dar, um in geschützte Computersysteme einzudringen, um Datendiebstahl und ähnliche illegale Aktivitäten zu begehen. Exploits können jedoch auch bei der Beseitigung von Schwachstellen genutzt werden.

Allgemeine Informationen

Exploits stellen systematische Wege dar, um aufgrund von Schwachstellen in Form von Programmierfehlern der Software in Computersysteme und Netzwerke einzudringen. Dabei kann es sich sowohl um rein theoretische Beschreibungen der Sicherheitslücke (Proof of Concept), als auch um ausführbare Programme zur direkten Ausnutzung der jeweiligen Sicherheitslücke handeln. Für Hacker und andere Cyberkriminelle sind sie wichtige Tools, um unbefugten Zugriff auf ein Computersystem zu erlangen und dieses nach persönlichen Wünschen zu manipulieren. Darüber hinaus werden Exploits eingesetzt, um Sicherheitsschwachstellen genau zu dokumentieren und für deren Beseitigung mittels Software-Updates und -Patches zu sorgen. In vielen Fällen machen sich Exploits sogenannte „Pufferüberläufe“ (Buffer Overflow) zunutze. Dabei handelt es sich um Programmierfehler, die es ermöglichen, Programmcode in einem nicht dafür vorgesehenen Bereich des Arbeitsspeichers auszuführen, um beispielsweise Adminrechte oder Zugriff auf geschützte Dateien und Ordner zu erhalten. Viele nutzen zudem schlecht programmierte Schnittstellen aus, mit denen eigene Codefragmente zur Ausführung gebracht werden können.

Bedeutung für Netzwerk- und Systemsicherheit

Durch den Einsatz gängiger Exploits können Computersysteme und Netzwerke auf Schwachstellen geprüft werden. Falls bereits Patches und Updates für bekannte Sicherheitslücken installiert sind, kann mit den entsprechenden Exploits die Wirksamkeit dieser Updates verifiziert werden. Neben einzelnen gibt es auch sogenannte „Exploit-Pakete“, die eine Vielzahl unterschiedlicher Schwachstellen in einem einzelnen Programm sammeln. Ein System lässt sich auf diese Weise auf eine Großzahl verschiedener Lücken prüfen. Für den Cyberkriminellen erhöht sich jedoch durch den Einsatz solcher Pakete die Wahrscheinlichkeit, dass er in ein System eindringt und dieses manipuliert.

Einteilung von Exploits nach Angriffsart und zeitlichen Aspekten

Abhängig von der eingesetzten Angriffsart und den zeitlichen Aspekten lassen sich Exploits in folgende Kategorien einteilen.

Remote-Exploits sind in erster Linie darauf ausgelegt, Schwachstellen in Netzwerksoftware auszunutzen. Sie basieren auf dem Einsatz manipulierter Datenpakete. Ein lokaler Exploit hingegen wird direkt auf dem Computersystem des Opfers ausgeführt. Eine auf den ersten Blick harmlos wirkende Datei kann beispielsweise mit einem bösartigen Codefragment versehen sein, der beim Ausführen der Datei eine Schwachstelle des Systems ausnutzt. Bei Denial-of-Service-Exploits (DoS-Exploits) wird kein eigener Programmcode auf den angegriffenen Computersystemen ausgeführt, sondern ein solcher Exploit verursacht eine Überlastung der Anwendung. Webanwendungen, die SQL-Datenbanken als Datastore verwenden, sind unter Umständen für Injection-Exploits anfällig. Ein Zero-Day-Exploit ist eine Sicherheitslücke, die erst kürzlich entdeckt wurde und die dem Hersteller des Computersystems noch nicht bekannt ist. Diese Art  ist besonders tückisch. Da sie frühestens beim ersten Angriff auf ein System entdeckt werden kann und für die kein entsprechendes Sicherheitsupdate existiert. Da die Hersteller erst einen Patch für den Exploit entwickeln müssen, erhalten die Angreifer mehr Zeit, um eine größere Zahl von Systemen zu infiltrieren und großen Schaden anzurichten.

Exploits als Hacker Tools

Exploits werden in vielen Fällen zusammengepackt, sodass der Hacker ein System auf eine große Zahl von Sicherheitslücken prüfen kann. Sollten eine oder mehrere Sicherheitslücken entdeckt werden, kommen die entsprechenden Exploits zum Einsatz. Solche Pakete verwenden zudem clevere Verschlüsselungsverfahren wie die sogenannte „Code-Obfuskation“, um es Sicherheitsforschern zu erschweren, ihre Funktionsweise nachzuvollziehen. Zu den bekanntesten und meistgenutzten Paketen gehören:

–     Neutrino: Hierbei handelt es sich um ein russisches Kit, das einige für die Java-Plattform enthält.

–     Nuclear Pack: Dieser  befällt seine Opfer mit PDF– und Java-Exploits und infiziert befallene Computer auch mit dem tückischen Bank-Trojaner „Caphaw“.

–     Blackhole Kit: Hierbei handelt es sich um eine der größten Gefahren des Jahres 2012, die ältere Browser-Versionen von Chrome, Firefox, Safari und Internet Explorer  Millionen von Rechnern infiziert hat.

–     Angler: Bei diesem handelt es sich um eines der hoch entwickelsten Kits, die auf dem Underground-Markt erhältlich sind.

Schutzmaßnahmen

Um sich  zu schützen, sollten regelmäßig veröffentlichte Patches und Updates auf das Computersystem installiert werden. So können Sie sicherstellen, dass der Rechner vor bereits bekannten Exploits geschützt ist und dass Sicherheitslücken geschlossen sind. Es können Firewalls, leistungsstarke Virenscanner, oder Intrusion Detection und Intrusion Prevention Systeme eingesetzt werden, die Hacker-Angriffe rechtzeitig erkennen und ungewollten Datenverkehr aus dem Internet automatisch unterbinden. Das Ausnutzen bisher unbekannter Sicherheitsprobleme durch Zero-Day-Exploits lässt sich jedoch kaum verhindern. Diese Hacker-Angriffe lassen sich nur dann abwehren, wenn bei der Programmierung der Anwendungen hohe Qualitätskriterien beachtet wurden. Durch durchdachte Testverfahren und ein hohes Maß an Sorgfalt können Design- und Programmierfehler bereits während der Entwicklungsphase entdeckt und behoben werden.

Die Begriffe „IT-Sicherheit“ sowie „Informationssicherheit“ werden oftmals fälschlicherweise als Synonyme in unserem täglichen Sprachgebrauch verwendet. Schlimmer noch: Die Wahrscheinlichkeit ist groß, dass sich in einem Unternehmen falsch Begriffe etablieren und daraus ein ausgewachsenes Verständnisproblem entsteht. Eine klare Abgrenzung von IT-Sicherheit und Informationssicherheit ist daher zwingend notwendig und von international geltenden Standards auch genau so gewollt.

Die Informationssicherheit

Der Begriff Informationssicherheit ist unter Experten wohl die Bezeichnung, welcher an Bedeutung zukommt. Die Bezeichnung orientiert sich sowohl am IT-Grundschutzkatalog des Bundesamtes für Sicherheit in der Informationstechnik (BSI) sowie der internationale Sicherheitsstandard ISO 27001/27002. Im Vordergrund steht der Schutz von Daten und Informationen in analoger sowie digitaler Form, welche einen Bezug zu personenbezogenen Daten haben. Die IT-Sicherheit wird hierbei letztendlich als ein wichtiger Bestandteil der Informationssicherheit angesehen.

Die wichtigsten IT-Sicherheitsbegriffe

Grundsätzlich besteht die Informationssicherheit unter anderem aus den Schutzwerten der „Vertraulichkeit“, „Integrität“ und „Verfügbarkeit“, um Informationen ein angemessenes Schutzniveau zukommen zu lassen. Im Rahmen einer so genannten (Erweiterten) Bestandsanalyse/Schutzbedarfsanalyse, welche fester Bestandteil des BSI-Grundschutzkataloges sowie der ISO 27001 ist, werden alle IT-Systeme (Räume, Server, Anwendungen, Netzwerkkomponenten, etc.) erfasst und auf die erwähnten Schutzwerte hin in Kombination mit der Bedeutung für das Unternehmen bewertet. Darauf basierend gewinnen sowohl die Geschäftsleitung sowie alle jeweils betroffenen Abteilungen einen sehr genauen Überblick über die vorherrschende Unternehmensstruktur. Darüber hinaus sollte die hier erfassten Daten unbedingt für ein das anschließende Risikomanagement zur Verfügung stehen, um Informationen vor potentiell möglichen Gefahren einer „Akzeptanz“, „Minderung“, oder „Vermeidung“ unterordnen zu können.

 

Grundsätzlich lässt sich also festhalten, dass die Informationssicherheit nicht nur IT-Komponenten, sondern auch technische sowie nicht-technische System in ihrer Grundidee berücksichtigt. Das oberste Ziel ist hierbei in einer so genannten Sicherheitsleitlinie festzuhalten, welche den Schutz vor Gefahren und Bedrohungen sowie wirtschaftlichen Schäden beinhaltet.

Die IT-Sicherheit in Unternehmen

Auch wenn die IT-Sicherheit lediglich einen Teil der Informationssicherheit darstellt, ist sie nicht weniger wichtig und vielmehr als ein notwendiger Baustein für den optimalen Schutz vor Gefahren und Bedrohungen (personenbezogener) Daten und Informationen. IT-Sicherheit beschränkt sich ausschließlich auf elektronisch gespeicherte Informationen sowie IT-Systeme. Oft sind IT-Abteilungen der Auffassung, dass die IT-Sicherheit ausnahmslos dem Schutz des technischen Verarbeitungsvorgangs von Informationen dient. Fakt ist jedoch, dass bei der IT-Sicherheit eine möglichst fehlerfreie und zuverlässige Funktion aller zum Einsatz kommenden IT-Systeme im Mittelpunkt steht.

Unter Berücksichtigung der oben erwähnten Schutzwerte „Vertraulichkeit“, „Integrität“ und „Verfügbarkeit“ beinhaltet die IT-Sicherheit alle hierfür notwendigen Planungen, Maßnahmen sowie Kontrollmechanismen, welche letztendlich dem Schutz der IT-Infrastruktur dienen. Alle IT-Komponenten unterliegen im Idealfall dem Business-Continuity-Management, welches seinerseits die Aufrechterhaltung des Geschäftsbetriebs zum Ziel hat.

IT-Sicherheit in der Praxis

Im Gegensatz zur Datensicherheit oder Informationssicherheit orientiert sich die IT-Sicherheit nicht nur am Schutz personenbezogener Daten. Vielmehr steht bei der IT-Sicherheit alle Informationen im Fokus, die einem bestimmten Schutzbedürfnis aus der Bestandsanalyse/Schutzbedarfsanalyse unterliegen.

Sicherheit für die internen Systeme

In der Praxis berücksichtigt die IT-Sicherheit in der Regel Desktop-PCs, Tablet und Smartphones sowie Notebooks, welche Mitarbeiter eines Unternehmens zur Erfüllung ihrer Aufgaben erhalten. Zusammengefasst handelt es sich hierbei um Endpoint Security. Im Bereich der Betriebssystemsicherheit sowie Applikationssicherheit spielen, wie die Bezeichnung bereits vermuten lässt, alle auf den Endgeräten installierten Betriebssystem sowie Anwendungen eine wichtige Rolle.

Aufgrund der zunehmenden Komplexität von IT-Systemen gilt es heutzutage als obligatorisch, dass Endgeräte sowie Anwendung weit über das Unternehmensnetzwerk hinaus über das Internet kommunizieren. Dieser Umstand ist ebenfalls ein wichtiger Faktor im Rahmen der IT-Sicherheit, welcher in all seinen Facetten von den Verantwortlichen sowie der Geschäftsleitung in gemeinsamer Abstimmung beleuchtet werden muss.

Firewall

Vom Grundsatz her ist eine Firewall ein Schutzmechanismus, der geschaffen worden ist, um verschiedene Netzwerke und deren Bereiche voneinander zu trennen bzw. die Festplatte Ihres Rechners in verschiedene Segmente zu teilen. Das bedeutet – zum besseren Verständnis – dass sie permanent Ihre eingehenden und abgehenden Daten auf gefährliche Inhalte hin prüft, die Ihrem Computer schaden können.

Die Firewall leitet die jeweiligen Daten in die richtige Richtung, so dass diese auch nur in den jeweiligen Bereichen ankommen. Bevor dieser Schutz aber greifen kann, sind im Vorfeld Regeln zu definieren, nach denen Datenein– und –ausgänge entsprechend überwacht, gefiltert und geöffnet werden können.

Wozu benötige ich eine einen solchen Schutz?

Sie brauchen die Firewall aus einem einzigen Grund: Ihren PC und Ihr Netzwerk vor schädlichen Daten zu schützen. Sie ist die Basis eines jeden Sicherheitskonzeptes im IT-Bereich, sowohl für Software als auch für Hardware.

Durch die Nutzung dieses Instruments verhindern Sie den Angriff auf Ihre gespeicherten Daten. Denken Sie einmal zurück! Zu Beginn des Internets war es normal, dass ein PC direkt mit dem Netz verbunden war. Damals wurden Viren und Angriffe in Sekundenschnelle gestartet und durchgeführt. Ihr PC war offen für jeden Angriff und den Diebstahl Ihrer Daten. Mit einer entsprechenden Sicherheitslösung wären die damals berühmt, berüchtigten Viren und Würmer wie beispielsweise der SQL-Slammer gar nicht erst bis zu Ihrem Computer vorgedrungen.

Heute sind Firewalls obligatorisch

Heute gehört es zum Standard in der Grundausstattung, da fast jeder PC vom Grunde her bereits über eine entsprechende Firewall-Software verfügt. Aber auch Router und Server sind mittlerweile mit entsprechenden Mitteln modifiziert, so dass Schadsoftware auf dem direkten Wege kaum noch eine Chance hat. Auch weil die meisten Anwender sich gar nicht erst mit dieser Materie befassen möchten.

Die Firewall erleichtert Ihnen also das PC-Leben ungemein. Voraussetzung einer ständigen Sicherheit ist jedoch, dass Sie dieses Instrument niemals ausschalten. Wenn Sie diese Regel befolgen, haben Sie schon einen ausreichend großen Schutz und offene Ports etc. sind Nebensache.

Aber nicht nur der eingehende Verkehr kann geblockt werden. Die Firewall arbeitet auch nach außen hin. Das ist beispielsweise dann der Fall, wenn Schadsoftware versucht, einen Kontrollserver zu erreichen. Es ist also festzuhalten, dass die Firewall durchaus sehr starken Einfluss auf Ihren Netzverkehr haben kann.

Wo liegt die Firewall?

FirewallDer Schutzmechanismus kann an verschiedenen Orten hinterlegt sein. In der Regel finden Sie ihn in Ihrem privaten heimischen Netzwerk direkt auf Ihrem PC. Hier ist sie als Bestandteil der Sicherheitslösung direkt installiert.

Zusätzlich kann es sein, dass Sie eine weitere Firewall auf Ihrem Router finden. Solche Router werden auch als Hardware-Firewall bezeichnet. Somit wird im Endeffekt Ihr eigenes Netzwerk vom Rest der Welt getrennt und geschützt.

Hardware-Firewalls lassen sich zudem häufig in Firmennetzwerken finden. Diese haben zwar den gleichen Auftrag wie Ihre heimische Firewall, sind aber wesentlich umfangreicher gestaltet. Zudem werden hierbei auch noch gesonderte Geräte mit einbezogen.

Auch kann es hier vorkommen, dass das gesamte Netzwerk in mehrere kleinere Bereiche aufgeteilt wird. So werden kontrollierte Übergänge geschaffen und verschiedene Segmente voneinander getrennt. Private Hardware kann aufgrund dieser Spezifikationen beispielsweise nicht auf Daten des Firmennetzwerks zugreifen.

Einrichtung

Netzwerke eintragen

Hier können Sie alle Netzwerke eintragen, mit denen Ihr PC verbunden ist und auf welche Sie zugreifen möchten oder müssen. Sie definieren auch die Firewall für jedes einzelne Netzwerk individuell. So können Sie je nach Netzwerk unterschiedliche Schutzfunktionen einrichten und nutzen.

Den Sicherheitsgrad selbst bestimmen

Sie haben die Möglichkeit, Ihren Schutz selber zu definieren. Bei den Einstellungen finden Sie die Möglichkeit, dies festzulegen. Sie können die Firewall automatisch arbeiten lassen oder eigene Regeln definieren.

Auch die Sicherheitsstufe können Sie hier nach Ihrem jeweiligen Bedarf anpassen. Diese reicht von niedrig bis hoch. Sie sollten diese Einstellung davon abhängig machen, ob Sie sich einem gesicherten oder offenen Netz befinden.

Regeln festlegen

Unter diesem Punkt haben Sie die Möglichkeit, die Regeln für Ihre Firewall zu definieren. Mit Hilfe dieser Regeln können Sie verhindern, dass bestimmte Anwendungen auf das Internet und Programme aus dem Internet auf Ihre Daten zugreifen können.

Regeln für Nachfragen

Nachfragen helfen Ihnen dabei, inwieweit die Firewall selbständig arbeiten soll. Mit einer absoluten Selbständigkeit kann es durchaus vorkommen, dass Ihre Firewall Daten blockiert, auf die Sie aber Zugriff haben möchten. Mit der Funktion nachfragen können Sie hier endgültig selber das ok geben oder den Inhalt sperren.

Schädliche Veränderungen

Mit Hilfe der Referenzprüfung erkennt Ihre Firewall, ob es Veränderungen an Ihren Anwendungen und Programmen gab. Das ist vor allem dann der Fall, wenn ein Programm, dem Sie Zugriffe auf das Internet eingeräumt haben, mit einem Virus infiziert worden ist.

Was macht eine Firewall?

Die Frage nach der Arbeitsweise der Sicherheitslösungen ist auch für Sie als Anwender vom Grundsatz her interessant. Dabei sind die Funktionen sehr unterschiedlich. Zum besseren Verständnis sollten Sie einmal etwas abstrakt denken.

Stellen Sie sich das Programm als eine Art Türsteher vor. Eine standardisierte Variante arbeitet einfach nach statischen Regelsätzen. Diese Paketfilter schauen lediglich darauf, wer Absender bzw. Adressat des jeweiligen Datenpakets ist und entscheiden dann über den weiteren Fortlauf.

Die dynamische Methode

Eine andere Methode ist die stateful inspection. Hierbei handelt es sich um einen dynamischen Paketfilter. Die bereits erwähnten statischen Regeln können hier von Ihnen erweitert werden. Sie können hiermit auch den Verbindungsstatus des jeweiligen Datensatzes überprüfen.

Sie finden so heraus, ob der Adressat den Datensatz erhalten kann und auch will. Bei einer positiven Verbindung werden alle weiteren Schritte wieder nach bestimmten Gesichtspunkten geprüft.

Die Proxy-Firewall

Die nächste Option ist die Proxy-Firewall. Hier wird bereits auf der Ebene der Applikationen Ihre Prüfung vorgenommen. Nicht nur die Datensätze überprüft Ihre Firewall, sondern auch den jeweiligen Inhalt. Mit dieser Deep Packet Inspection können auch mehrere Datensätze vom Ihrer Sicherheitseinrichtung geblockt werden.

Eine endgültige Weitergabe erfolgt erst dann, wenn sicher ist, dass keine Gefahr vorliegt. Mit der Proxy-Lösung ist es Ihnen möglich, aktive Webseiteninhalte zu sperren. Somit ist das Risiko eines Virenbefalls Ihres Rechners oder Netzwerkes noch einmal drastisch reduziert.

Woher kommt der Name?

Der Begriff stammt aus der Historie. Früher wurden Städte und Gebäudekomplexe mit sogenannten Brandschutzmauern verstärkt. Diese hatten eine ähnliche Funktion wie die Sicherheiutssoftware auf Ihrem Rechner.

Die Mauer trennt verschiedene Abschnitte voneinander und verhindert so, dass beide gleichzeitig Feuer fangen. Wie bereits erläutert, macht die Firewall das gleiche auf Ihrem PC oder in Ihrem Netzwerk. Sie bewirkt, dass ein Übergreifen eines Virus von einem Bereich in den anderen unterbleibt.

Einleitung zu IPsec

Wer als Linux- oder Windows-Administrator in Firmen Netzwerke verwaltet, der muss meistens unterschiedliche Netzwerke miteinander verbinden. Etwa mehrere Außenstellen oder Filialen an eine Zentrale (der Firma) .  Um dies zu eralisieren, kommt heute sehr oft IPSec als Basis für ein VPN (virtual private network) zum Einsatz. In diesem Tutorial im Rahmen unserer Reihe zur Linux-Administration lernen Sie:

  • Wie Verschlüsselung grundsätzlich funktioniert
  • Wie ein Verbindungsaufbau für ein IPSec-VPN  prinzipiell abläuft
  • Wie IPsec auf der Opensource Firewall pfsense implementiert ist.

IPsec (Internet Protocol Security) ist heute ein de-fakto Standard für die Verschlüsselung von Datenverkehr im Internet. IPSec ist auf allen gängigen Betriebssystem-Plattformen sowie in den allermeisten Firewalls vorhanden. IPsec wird heute vor allem zur Koppelung von unterschiedlichen IP-Netzwerken – etwa hinter Firewalls – verwendet.

Hinweis: Für das Verständnis der Implementierung von IPSec auf einer pfsense-Firewall sollten, Sie die Grundlagen der Netzwerk-Technik verstehen und die Basics der pfsense-Firewall verstanden haben. Über beide Themen haben wir hier im Blog der Biteno GmbH ausführliche Tutorials.

Lesetipps dazu:

Technische Komponenten für ein VPN

Damit ein VPN mit IPsec einwandfrei funktioniert, benötigen wir auf der Firewall mehrere Elemente:

  • Eine Hash-Funktion,
  • Eine Schlüsselverwaltung
  • Einen Verschlüsselungsalgorithmus

Hashes / Prüfwerte

Ein Hash-Wert dient zur Berechnung eines eindeutigen Prüfwerts für beliebige digitale Daten (Nachrichten). Hashes sind außerdem  Grundlage zur Erstellung einer digitalen Signatur.

Der Prüfwert wird verwendet, um die Integrität einer Nachricht bzw. einer beliebigen Zeichenkette zu sichern.

Wenn zwei Nachrichten den gleichen Prüfwert ergeben, soll die Gleichheit der Nachrichten nach normalem Ermessen garantiert sein. Darum fordert man von einer kryptologischen Hashfunktion die Eigenschaft der Kollisionssicherheit: es soll praktisch unmöglich sein, zwei verschiedene Nachrichten mit dem gleichen Prüfwert zu erzeugen.

(Quelle: Wikipedia: https://de.wikipedia.org/wiki/Secure_Hash_Algorithm)

Die Eigenschaften eines Hash-Wertes:

  • Jeder Hashwert einer identischen Zeichenkette muss immer denselben Output (=Hashwert) ergeben.
  • Eine Rückrechnung – also ein Knacken des Hashes soll möglichst unmöglich sein

Anwendung für Prüfsummen:

Hashwerte werden immer dann verwendet, um etwa Passwörter zu vergleichen. So werden in modernen Anwendungen nicht die Passwörter gespeichert, sondern deren Hash-Werte.

Nach der Eingabe eines Passworts durch den Anwender wird der Hash-Wert ermittelt und mit dem gespeicherten Hash-Wert verglichen. Sind beide gleich, dann stimmten die Passwörter überein.

MD5

Der Message-Digest Algorithm 5 (MD5) ist eine weit verbreitete kryptographische Hashfunktion, die aus einer beliebigen Nachricht einen 128-Bit-Hashwert erzeugt. Dies erlaubt beispielsweise die leichte Überprüfung eines Downloads auf Korrektheit. Der MD5 wurde 1991 von entwickelt.

Bsp. Zu MD5

1
„Hallo mein Name ist Franz“ -&gt; <strong>53fd70b0411e0822625bbb08cd8d941b</strong>

MD5 Hash-Wert online erstellen: https://www.md5-generator.de/

Der MD5  gilt heute (2017/2018) als Hash-Wert nicht mehr als wirklich sicher, da es mit überschaubarem Aufwand möglich ist, unterschiedliche Nachrichten zu erzeugen, die den gleichen MD5-Hashwert aufweisen.

Dennoch findet sich der MD5 noch immer in vielen Software-Anwendungen bzw. Firewalls.

Weiterführende Informationen: https://de.wikipedia.org/wiki/Message-Digest_Algorithm_5

SHA-1 und Nachfolger

Der Secure Hash Algorithm (SHA bzw SHA-1) wurde 1993 entwickelt und galt bis Ende der 1990er sicher. Die Funktion ermittelt für jede beliebige Zeichenkette einen eineindeutigen Wert

Bsp. Zu SHA-1:

„Hallo mein Name ist Franz“ -> 9dcd46848cbb177296693eaa3de4f59ff603ae5f

Online selbst ausprobieren: http://www.sha1generator.de/

Da der SHA-1 in zwischen 2000 und 2010 mit sehr viel Aufwand mehrfach gebrochen werden konnte, empfiehlt man heute statt SHA-1 die Weiterentwicklungen der SHA-2-Familie (SHA-224, SHA-256, SHA-384, SHA-512) zu verwenden.

Sie unterscheiden sich von SHA-1 dadurch, daß die Berechnung komplexer und die Bitfolgen länger werden.

Bsp. Zu SHA-3

„Hallo mein Name ist Franz“ -> f83a982bbd010930076555a20dcf311c7cc89737736a3f48a0cd3de3001219b3ca18b721ed58ddd63955818da341ca56cfcb033dbc0b945ad03ca9221842b9b0

SHA-3 unterscheidet sich also sowohl von SHA-1 als auch MD5 von der deutlich längeren Zeichenkette.

Online checken: https://emn178.github.io/online-tools/sha3_512.html

Weitere Informationen zu SHA https://de.wikipedia.org/wiki/Secure_Hash_Algorithm

Schlüsselverwaltung

Damit zwei Gesprächspartner (Firewalls) in einem ungesicherten Raum (Internet) sicher miteinander kommunizieren können, müssen Sie sich zunächst gegeneinander mit Schlüsseln absichern.

Manuelle Schlüsselverwaltung

Prinzipiell können alle Schlüssel zwischen zwei Firewalls vorab über einen gesicherten Weg manuell (!) ausgetauscht werden. In der Praxis ist das aber meist nicht praktikabel.

Automatischer Schlüsselaustausch mit IKE

Das Internet-Key-Exchange-Protokoll (IKE) dient der automatischen Schlüsselverwaltung für IPsec. Es verwendet den Diffie-Hellman-Schlüsselaustausch für einen sicheren Austausch von Schlüsseln über ein unsicheres Netzwerk (z.B. Internet).

IKE definiert, wie Sicherheitsparameter vereinbart und gemeinsame Schlüssel (shared keys) ausgetauscht werden.

Beide Gesprächspartner benötigen also für den Aufbau ein gemeinsam und vorher bekanntes „Shared Secret“.

Weitere Informationen zu IKE: https://en.wikipedia.org/wiki/Internet_Key_Exchange

Diffie Hellmann Schlüsselaustausch

Die beiden Namensgeber Whitfield Diffie und Martin Hellman haben im Jahr 1976 den nach Ihnen bekannten Schlüsselaustausch beschrieben, auf dem heute ein Teil des Algorithmus für den Schlüsselaustausch bei IPsec erfolgt.

Im Wesentlichen beschreiben Sie dabei u.a. eine mathematische Einwegfunktion.

https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch

Verschlüsselungs-Algorithmen

Damit zwei Parteien (Menschen oder Firewalls) geheime Informationen sicher austauschen können, benötigen Sie einen gemeinsamen Ablauf (Algorithmus), um damit Nachrichten zu verschlüsseln. Dieser Algorithmus muss auf beiden Seiten eindeutig sein und gleich ablaufen.

DES & 3DES

Der Data Encryption Standard (DES) ist ein weit verbreiteter symmetrischer Verschlüsselungsalgorithmus.  Der DES-Algorithmus wurde als offizieller Standard für die US-Regierung   im Jahr 1977 bestätigt und wird seither international vielfach eingesetzt.  Heute wird DES aufgrund der verwendeten Schlüssellänge von nur 56 Bits für viele Anwendungen als nicht ausreichend sicher erachtet.

Weiterentwicklungen von DES sind 3DES oder Tripple-DES sowie AES (siehe unten)

AES (Rijndael)

Der Advanced Encryption Standard (AES) ist eine Blockchiffre, die als Nachfolger für DES im Oktober 2000 vom National Institute of Standards and Technology (NIST) als Standard bekanntgegeben wurde. Nach seinen Entwicklern Joan Daemen und Vincent Rijmen wird AES auch Rijndael-Algorithmus genannt.

Es handelt sich um ein symmetrisches Verschlüsselungsverfahren, d. h. der Schlüssel zum Ver- und Entschlüsseln ist identisch. Der Rijndael-Algorithmus besitzt variable, voneinander unabhängige Block- und Schlüssellängen von 128, 160, 192, 224 oder 256 Bit. Rijndael bietet ein sehr hohes Maß an Sicherheit; erst mehr als zehn Jahre nach seiner Standardisierung wurde der erste theoretisch interessante, praktisch aber nicht relevante Angriff gefunden.

Blowfish

Blowfish (deutsch Kugelfisch) ist ein symmetrischer Blockverschlüsselungsalgorithmus, der 1993 von Bruce Schneier entworfen und erstmals im April 1994 publiziert wurde. Er wurde als public domain veröffentlicht und kann frei verwendet werden.  Blowfish hat als Blockchiffre eine feste Blocklänge von 64 Bit, basiert auf einem Feistelnetzwerk, welches die Umkehrbarkeit zwischen Verschlüsselung und Entschlüsselung garantiert.

Mehr dazu. https://de.wikipedia.org/wiki/Blowfish

Weitere Begriffe

Encapsulating Security Payload (ESP) stellt Mechanismen zur Sicherstellung der Authentizität, Integrität und Vertraulichkeit der übertragenen IP-Pakete bereit. Im Unterschied zum AH wird der Kopf des IP-Paketes vom ICV (Integrity check value) nicht berücksichtigt, jedoch werden die Nutzdaten verschlüsselt übertragen. ESP basiert direkt auf IP und verwendet die Internet-Protokoll Nummer 50.

Quelle:  https://de.wikipedia.org/wiki/IPsec#Encapsulating_Security_Payload_(ESP)

Funktionsweise von IPsec

IPsec (kurz für Internet Protocol Security) ist eine Protokoll-Suite, die eine gesicherte Kommunikation über potentiell unsichere IP-Netze wie etwa das Internet ermöglichen soll.

IPsec arbeitet direkt auf der Internetschicht (Internet Layer) und ist eine Weiterentwicklung der IP-Protokolle. Das Ziel ist es, eine verschlüsselungsbasierte Sicherheit auf Netzwerkebene bereitzustellen.

IPsec bietet durch die verbindungslose Integrität sowie die Zugangskontrolle und Authentifikation der Daten diese Möglichkeit an. Zudem wird durch IPsec die Vertraulichkeit sowie Authentizität der Paketreihenfolge durch Verschlüsselung gewährleistet.

Weitere Informationen zu IPsec:

 

IPsec verwendet zwei Phasen, um eine VPN-Verbindung sicher aufzubauen. Diese heißen Phase 1 und Phase2.

Phase 1 von IPsec

Der erste Teil (Phase 1) eines IPsec ist der technisch komplexere Teil von IPsec. In der echten Welt ist das in etwa so, also würden sich ein Telefonanrufer und ein Angerufener, die sich beide nicht kennen und die nicht wissen ob der andere die eigene Sprache versteht, versuchen zu verständigen.

Die Phase 1 beginnt mit dem so genannten „Main Mode“. Er wird in der ersten Phase der Verschlüsselungsvereinbarung und Authentisierung (Internet Key Exchange) genutzt.

Im Main Mode handeln der Initiator (derjenige, der die Verbindung aufnehmen will) und der Antwortende (der Responder) miteinander eine ISAKMP-SA (kurz für Internet Security Association and Key Management Protocol – Security Association ; mehr: https://de.wikipedia.org/wiki/Internet_Security_Association_and_Key_Management_Protocol   ) aus.

 

Die Verhandlung geschieht in folgenden Schritten:

  1. Der Initiator sendet einen oder mehrere Vorschläge (engl. Proposal) mit Authentisierungs- und Verschlüsselungsalgorithmen.
  2. Der Responder wählt aus der Schnittmenge der angebotenen und der von ihm unterstützten Algorithmen den sichersten aus und sendet das Auswahlergebnis an den Initiator.
  3. Der Initiator sendet seinen öffentlichen Teil vom Diffie-Hellman-Schlüsselaustausch und einen zufälligen Wert (die Nonce).
  4. Der Responder sendet ebenfalls seinen öffentlichen Teil vom Diffie-Hellman-Schlüsselaustausch und einen zufälligen Wert.
    Dieser Wert dient weiter unten zur Authentisierung.

Da nun beide Firewalls (der Responder und der Initiator) die öffentlichen Bestandteile für den Diffie-Hellman-Schlüsselaustausch kennen, wird dieses Verfahren genutzt, um den geheimen Schlüssel zu berechnen.

Dieser wird dann für die Verschlüsselung nach dem vereinbarten Schlüsselverfahren für die folgenden Schritte verwendet. Der berechnete (Diffie-Hellman-)Schlüssel wird auch für die Erzeugung eines weiteren Schlüssels genutzt, der für die Authentifikation verwendet wird.

Der letzte Schritt hier  ist die Authentisierung. Dabei müssen sich beide Beteiligten als zugriffsberechtigt ausweisen. Hierbei kommen zwei unterschiedliche Verfahren zum Einsatz:

  1. die Authentisierung mittels vereinbartem Geheimnis (im englischen Pre-Shared-Keys, PSK) oder
  2. zertifikatsbasiert.

Phase 2 von IPsec

In der zweiten Phase von IKE wird der Quick Mode verwendet (Schutz durch die IKE SA). Die gesamte Kommunikation in Phase 2 erfolgt dabei bereits verschlüsselt.

Wie in der ersten Phase wird zunächst ein Vorschlag (Proposal) gemacht und zusammen mit einem Hashwert übertragen. Später werden die Schlüssel neu berechnet, und es fließen keinerlei Informationen aus den zuvor generierten SAs ein. Dies stellt sicher, dass niemand von den zuvor generierten Schlüsseln auf die neuen schließen kann (Perfect Forward Secrecy). Dies wird erreicht, indem ein zusätzlicher Diffie-Hellman-Austausch stattfindet. Die Geheimnisse zur Schlüsselbildung werden verworfen, sobald der Austausch abgeschlossen ist.

Mehrere „Quick Modes“ können zur gleichen Zeit stattfinden und durch die gleiche IKE SA geschützt sein. Um die verschiedenen Wechsel unterscheiden zu können, wird das Message-ID-Feld des ISAKMP-Headers herangezogen. Der Status eines solchen Austausches wird durch die Cookies identifiziert.

Quelle: https://de.wikipedia.org/wiki/IPsec

 

Implementierung von IPsec in der pfsense Firewall

Die Implementierung von IPsec lehnt sich an den Standard von IPsec mit Phase1 und Phase2 an. Es gibt je eine Maske für die Phase1 von IPsec und eine weitere für die Phase2.

Hinweis: Ein Ipsec-Tunnel kann mehrere Phase2 Einträge pro Verbindung haben. Das ist dort sinnvoll wo etwa mehrere Netze hinter einer Firewall über ein IPSec VPN gleitet werden.

Übersicht der Verbindungen auf der pfsense

Abbildung: Ein Tunnel mit IPsec auf der pfsense mit zwei Netzen und zwei Phase2 Einträgen

In der obigen Abbildung ist ein VPN-Tunnel (1) mit Phase 1 definiert. Dazu gehören zwei unterschiedliche Phase 2 Einträge (2) für jeweils ein Netzwerk.

Übersicht der Verbindungen mit IPSec auf einer pfsense

Übersicht der Verbindungen mit IPSec auf einer pfsense

Zur Übersicht der VPN-Tunnel auf einer pfsense gelangen Sie über

VPN -> IPsec -> Tunnel.

Um einen neuen VPN-Tunnel zu erstellen klicken Sie unten in der Übersicht auf „Add P1“. Sie beginnen anschließend mit den Einstellungen zu Phase1 von IPsec für ihren neuen Tunnel.

Einstellung von Phase 1 auf der pfsense

Die Einstellungen für die Phase 1 im Detail:

Einstellungen der Phase einer IPSec Verbindung

Einstellungen der Phase einer IPSec Verbindung

Als Authentication Method für die Phase 1 wählen Sie unter (1) entweder „Mutual PSK“ (PSK -> Preshared Key ) oder ein Zertifikat. In der Praxis ist das meistens ein PSK.

Unter (2) wählen Sie den Negatiation Mode. Das ist meistens „Main“. Die seltener verwendete Alternative heißt „Aggressive“.

Sofern Sie bei (1) „Mutual PSK“ gewählt haben, tragen Sie bei (3) ihren geheimen Schlüssel ein. Diesen Schlüssel müssen Sie exakt identisch auf der entfernten Firewall hinterlegen. Außerdem müssen sie sicherstellen, daß dieser Schlüssel niemals in falsche Hände gelangt

Tipp:

Unter https://www.gaijin.at/olspwgen.php können Sie online ein sicheres Passwort wählen. Nutzen Sie dort bitte die Einstellung mit min. 16 Zeichen oder länger.

Im zweiten Abschnitt wählen Sie unter (4) den eigentlichen Verschlüsselungs-Algorithmus (engl. Encryption Algorithm) aus. Dies wird in der Regel AES oder 3DES sein. Sofern Sie AES auswählen, müssen Sie (rechts daneben) die richtige Bit-Länge des Schlüssels auswählen. Auch diese muss auf der entfernten Firewall identisch sein.

Unter (5) wählen Sie den Hash-Algorithmus aus. Dies sollte SHA-1 oder höher (z.B. SHA-256 oder SHA-512) sein.

In der Auswahl bei (6) wählen Sie nun noch die für Sie passende Diffie-Hellman-Gruppe aus (also den Algorithmus für den Schlüsselaustausch).

Ebenso wichtig: Die Ablaufzeit (Lifetime) für die Phase 1 in Sekunden. Nach Ablauf dieser Zeitspanne verhandeln beide Firewalls wieder neu. Auch dieser Wert muss auf beiden Firewalls identisch sein.

Die Auswahl für die DH-Group unter (6) ist relativ groß. Je höher die Gruppe, desto höher die Bitlänge und damit die Stärke der Verschlüsselung. Beginnen Sie im Zweifel eher mit einer niedrigeren Schlüssellänge, bis Sie auf beiden Seiten eine stabile Verbindung haben. Danach können Sie (gemeinsam mit der Gegenstelle) die Schlüssellänge erhöhen.

Abbildung: Diffie Hellmann Gruppen auf der pfsense

Die diffie-hellmann-group Einstellungen in der Phase1 der IPSec VPN Verbindung

Die diffie-hellmann-group Einstellungen in der Phase1 der IPSec VPN Verbindung

 

 

Einstellung von Phase 2 auf der pfsense

In Phase 2 werden zwei wesentliche Einstellungen gemacht:

  • Die Definitionen der unterschiedlichen Netzwerke, die übertragen werden sollen.
  • Der Verschlüsselungs- und Sicherungsmechanismus

 

Phase 2: Netzwerk-Einstellungen

Phase2 IPsec Einstellungen auf der pfsense

Phase2 IPsec Einstellungen auf der pfsense

Unter „Mode“ (1) stellen Sie zunächst ein, on IPV4 oder IPv6 übertragen werden soll.

Unter (2) wählen Sie welches ihrer lokalen Netzwerke auf ihrer Seite des VPN später erreichbar sein wird.

Unter (3) legen Sie das entfernte Netzwerk bzw. eine Adresse fest. Sofern Sie bei (3) ein Netzwerk gewälht haben, definieren Sie bei (4) die Netz-Adresse sowie die Netzmaske.

Hinweis: Sofern Sie mehrere Netzwerke über ein VPN mit einer pfsense übertragen möchten, so müssen Sie mehrere Phase-2 Einträge für ein IPsec Tunnel erstellen. (wohl aber nur einen Eintrag für die Phase1)

 

Phase 2: Verschlüsselungs-Einstellungen

Im unteren Teil der Phase 2 finden Sie alle Einstellungen zum Schlüsselaustausch der Phase 2 sowie die Verschlüsselungs-Algorithmen:

Phase2 bei IPSec auf der pfsense: Verschlüsselungs-Einstellungen

Phase2 bei IPSec auf der pfsense: Verschlüsselungs-Einstellungen

Unter (1) wählen Sie entweder ESP (siehe Einleitung) oder AH (steht für Authentication Header). Am häufigsten wird ESP verwendet.

Unter (2) werden nun die zur Auswahl stehenden Verschlüsselungs-Mechanismen angewählt. Wichtig ist hier: Sie geben der Firewall eine Liste bzw. Auswahl mit. Mit dieser Liste verhandeln die beiden betroffenen Firewalls den passenden Verschlüsselungsmechanismus und dessen Schlüssellänge.

In der Praxis sollten Sie hier mit einem (in Worten: eins) Wert zur Auswahl beginnen, der bei beiden betroffenen Firewalls enthalten ist.

Unter (3) wählen Sie einen Hash-Algorithmus aus, der in Phase 2 zum Einsatz kommt. Vermeiden Sie dabei möglichst MD5. Besser ist ein (hoher) SHA-Algorithmus.

Bei (5) erhalten Sie die Auswahl für die Perfect Forward Secrecy. Das ist nichts anderes als der Schlüsselaustausch-Mechanismus. Sie haben im Wesentlichen die gleiche Auswahl wie bei der Diffie-Hellmann-Gruppe in Phase 1.

Wenn Sie auf Nummer sicher gehen wollen, wählen Sie hier wieder dieselbe Gruppe wie die DH-Group in Phase 1.

Unter (6) legen Sie wieder eine maximale Lebensdauer der verhandelten Schlüssel fest. Dieser Wert muss ebenfalls bei beiden Firewalls identisch sein. Nach Ablauf dieser Zeit in Sekunden fangen die Firewalls wieder neu an zu verhandeln.

Empfehlung für die Praxis:

IPsec VPN-Tunnel funktionieren in der Regel nur dann dauerhaft und vor allem stabil, wenn Sie auf beiden Seiten

  • Für die Einstellungen der relevanten Parameter die gleichen Werte verwenden
  • Kompatible Geräte auf beiden Seiten haben.

Kritik an IPsec

In ihrer Untersuchung über Ipsec von 1999 schrieben Niels Ferguson und Bruce Schneier “IPsec was a great disappointment to us. Given the quality of the people that worked on it and the time that was spent on it, we expected a much better result. We are not alone in this opinion; (…) Even with all the serious critisisms that we have on IPsec, it is probably the best IP security protocol available at the moment.”

An dieser Einschätzung hat sich vermutlich in den vergangenen Jahrzehnten wenig geändert. IPsec ist weiterhin ein sehr komplexer Mechanismus. Er ist aber offenbar selbst fast 20 Jahre nach dieser Kritik immer noch der de-facto Standard, der durch fast alle Hersteller von Security Software  und Hardware durchgängig unterstützt wird.

Verwendete Begriffe

AES: Symmetrischer Verschlüsselungs-Mechanismus mit variabler Bitlänge

DES / 3DES: Symmetrischer Verschlüsselungs-Mechanismus

IKE: Internet Key Exchange – Schlüsselaustausch über ein unsicheres Netz

MD5: Hash-Funktion, die mittlerweile als unsicher gilt

PFS: Perfect Forward Secrecy https://de.wikipedia.org/wiki/Perfect_Forward_Secrecy

SHA: Hash-Funktion, die mit unterschiedlicher Schlüssellänge eindeutige Hash-Werte erzeugt.

Shared Secret: Ein nur zwei Parteien bekannte, geheime Zeichenfolge.

Firewalld ist unter Centos 7 und RHEL 7 die Nachfolge von iptables. Es erlaubt Linux-Administratoren, neue Sicherheitsregeln zu setzen und sie zur Laufzeit zu aktivieren, ohne bestehende Verbindungen zu trennen.Wir haben im ausführlichen Tutorial zu firewalld schon einmal die unterschiedlichen Konzepte von firewalld unter Centos 7 beleuchtet. Hier sind die wichtigsten Kommandozeilen und Optionen von firewalld:

Firewalld

# firewall-cmd –state                                            gibt an, ob firewalld läuft

# systemctl status firewalld                                 im wesentlichen das Gleiche

# systemctl restart firewall-cmd                         firewalld-Dienst neu starten

# firewall-cmd –reload                                         firewalld-Regel neu laden ohne die bestehenden Verbindungen zu unterbrechen

 

Service firewalld starten / stoppen / aktivieren

# systemctl start firewalld.service

# systemctl stop firewalld.service

# systemctl status firewalld.service

Firewalld beim Systemstart (Boot) aktivieren und starten

Um den Firewall-Dienst zu aktivieren:

# systemctl enable firewalld

Um den Firewall-Dienst zu de-aktivieren:

systemctl disable firewalld

Zonen in firewalld anzeigen lassen:

# firewall-cmd –get-default-zone

# firewall-cmd –get-active-zones

# firewall-cmd –list-all

Schnittstellen / Interfaces zu Zonen zuordnen

Um das Netzwerk-Interface eth1 zu Zone „public“ hinzu zu fügen:

# firewall-cmd –zone=public –change-interface=eth1

Services in Zonen anzeigen

Alle verfügbaren Services anzeigen

# firewall-cmd –get-services

Um etwa “samba” und “samba-client” als Dienst einer bestimmten Zone hinzuzufügen. Hinweis: Der Zusatz „–permanent” hinter dem firewall-cmd Befehl macht die Änderungen dauerhaft (persistente Speicherung), so daß die Regeländerung auch nach dem Neustart des Dienstes oder dem Re-Boot greift.

# firewall-cmd –zone=public –add-service=samba –add-service=samba-client –permanent

Um die Services einer bestimmten Zone anzuzeigen:

# firewall-cmd –zone=public –list-service

Ports in einer Zone

# firewall-cmd –list-ports

# firewall-cmd –zone=public –add-port=5000/tcp

Durchstarten von Netzwerk und firewalld-Dienst

# systemctl restart network.service

# systemctl restart firewalld.service