Sonntag, 12. Februar 2012 |
Dies ist die 100. (nummerierte) Folge von "About Security", und die Serie wird gleichzeitig 2 Jahre alt: Die erste Folge erschien am 14.4.2005. Zeit, einen Überblick über die behandelten Themen zu geben.
Am Anfang stellt sich die Frage "IT-Sicherheit – Was ist das eigentlich?". Eine einfache Antwort darauf gibt es nicht, dafür drei Grundziele, anhand derer IT-Sicherheit definiert wird: Vertraulichkeit, Verfügbarkeit und Integrität. Diese werden anhand einiger beispielhafter Angriffsszenarien näher erläutert, bevor Gegenmaßnahmen vorgestellt werden. Die dabei erwähnte Möglichkeit, einen Trojaner über eine zugeschickte Diskette oder CD in Verbindung mit etwas Social Engineering einzuschleusen, ist inzwischen veraltet: Inzwischen werden dafür USB-Sticks verwendet. Zum Abschluss der Einführung geht es um die Gefahren durch mitgebrachte Hardware wie z.B. USB-Massenspeicher.
Als Nächstes wird eine typische Schwachstelle vorgestellt: Der Pufferüberlauf. Es folgt die Beschreibung seiner Ausnutzung sowie mögliche Gegenmaßnahmen. Anschließend wird beschrieben, wie Entwickler Pufferüberlaufschwachstellen verhindern können. Um mögliche Schwachstellen zu finden, gibt es zwei Möglichkeiten: Bei Sourcecode Audits wird der Quelltext untersucht, bei Software Audits werden die Binärdateien analysiert.
Die Sicherheit von Webanwendungen wird u.a. durch SQL Injection
bedroht, was man durch Prüfen der Benutzereingaben
oder den Einsatz von Stored Procedures
verhindern kann. Auch Cross-Site Scripting
ist ein weit verbreitetes Problem, dem man durch eine Filterung der Benutzereingaben
begegnen kann. Eine besonders für PHP-Skripte gefährliche
Schwachstelle ist das unerwünschte Einbinden von Dateien.
Im Fall von PHP-Skripte liegt das Problem darin, dass in der
eingebundenen
Datei enthaltene PHP-Befehle ausgeführt werden. Im Falle anderer
Sprachen kann so zumindest JavaScript-Code eingeschleust werden. Beim
Einbinden lokaler Dateien kann der Angreifer u.U. sensitive
Informationen
ausspähen, z.B. wenn er eine Datei mit Zugangsdaten ausgeben lassen
kann.
Eine relativ neue Klasse von Angriffen ist das HTTP Request Smuggling,
von dem es verschiedene Spielarten gibt, z.B. das Request Hijacking
oder die Täuschung
von Firewalls und Intrusion-Detection- bzw. -Prevention-Systemen.
Angriffe
können auf TCP-Ebene erkannt
und z.B. durch eine Firewall (#29)
oder ein Intrusion-Prevention-System
(#49)
verhindert werden. HTTP Response Splitting
nutzt Schwachstellen in Webanwendungen, um statt einer Antwort derer
zwei
zu erschleichen. Dadurch lassen sich z.B. Webcaches vergiften.
Auch der Browsercache
kann als Ziel dienen.
Weitere Spielarten
sind Cross-Site-Scripting-Angriffe und das indirekte Vergiften von
Cache-
und Proxy-Servern. Auch lassen sich durch HTTP Response Splitting Webseiten entführen:
Die für einen anderen Benutzer bestimmten HTTP-Responses werden zum
Angreifer umgeleitet. Es gibt mehrere Möglichkeiten, derartige Angriffe
zu verhindern.
Webanwendungen
sind noch
einigen anderen Gefahren ausgesetzt, ebenso wie
Webserver.
N E U ! Security
aktuell
Täglich aktuelle Security-Infos!
Wichtig in diesem Zusammenhang ist auch die Wahl des richtigen Standorts für den Webserver. Und das ist auch die Überleitung zum nächsten Thema:
Zuerst wird als Grundlage das TCP/IP-Schichtenmodell beschrieben. Die einfachste Form einer Firewall ist der Paketfilter, der auf der Netzzugangs-, Netzwerk- und Transportschicht des TCP/IP-Schichtenmodells arbeitet. Ein Problemfall sind FTP-Verbindungen. Sonderfälle der Paketfilter sind zustandsorientierte und dynamische Paketfilter. Nach einer Gegenüberstellung von Vor- und Nachteilen der Paketfilter geht es weiter zur zweiten Kategorie von Firewall-Systemen: Application Level Gateways arbeiten auf der Anwendungsschicht des TCP/IP-Schichtenmodells. Dabei wird zwischen Application Level Proxies und Circuit Level Proxies unterschieden. Auch Application Level Gateways haben Vor- und Nachteile. Paketfilter und Application Level Gateways können sehr gut miteinander kombiniert werden. Dabei kann auch eine demilitarisierte Zone eingerichtet werden, in die dann z.B. der Webserver stationiert werden kann.
Beim Betrieb der Firewall fallen Logfiles an, die besser ausgewertet werden sollten. Daher folgt als nächstes Thema die
Zuerst einmal stellt sich die Frage, welche Daten gespeichert werden sollen. Eine Möglichkeit, die Logfiles zu verarbeiten, ist die automatische Auswertung. Das funktioniert zwar im Allgemeinen ganz gut, trotzdem kommt man ab und zu nicht um eine manuelle Auswertung der Paketfilter-Logfiles herum. Das gilt auch für die HTTP-Proxy-Logfiles. Ein Mensch erkennt manche möglichen Angriffe besser als jede Automatik.
Die Firewall soll den Angreifer aus dem zu schützenden Netz fern halten. Falls doch mal einem ein Eindringen gelingt, muss das erkannt werden. Dazu dienen
Man unterscheidet nach dem Funktionsprinzip
zwischen hostbasierten und netzwerkbasierten Systemen, die entsprechend
ihren Anforderungen unterschiedlich positioniert
werden müssen. Dabei wird auch wieder an den Standort des Webservers
(#28)
und die DMZ (#36)
angeknüpft. Verteilte Systeme sind auf eine interne Kommunikation
zwischen den Sensoren und dem Managementsystem angewiesen. Probleme
bereiten hochverfügbare Netze. Da das IDS den Angreifer natürlich
im Wege ist, ist es selbst Angriffen ausgesetzt.
Zu guter Letzt werden einige Beispiele für IDS-Regeln
zur Erkennung früher beschriebener Angriffe vorgestellt. Diese werden
dann
für das Open-Source-Intrusion-Detection-System Snort
konkret formuliert.
Soll das IDS Angriffe nicht nur erkennen, sondern auch aktiv abwehren,
ist es ein
Intrusion Prevention System (IPS).
Um Informationen über Angriffe zu sammeln, werden Honeypots
eingesetzt. Ein derartiges System ist Honeyd.
Jetzt ist es Zeit, das Zusammenwirken von Firewall, IDS, IPS und Honeypot zu betrachten. Um die technischen Möglichkeiten sinnvoll einzusetzen, wird ein organisatorisches Konzept benötigt:
Nach einer Beschreibung der Grundlagen folgt als praktisches Beispiel die Entwicklung der Sicherheitsrichtlinie der "Bratkartoffel KG" mit verschiedenen organisatorischen und administrativen Maßnahmen und einer Risikoanalyse.
Um einen ganz anderen Problembereich geht es im folgenden Thema:
Die Grundlagen von TCP/IP wurden bereits beschrieben (#29,
#30),
daher kann
es gleich um erste Angriffe darauf gehen: Spoofing.
Hilfreich dabei sind Denial-of-Service-Angriffe,
die u.a. auch zum Lahmlegen von IDS und IPS genutzt werden können.
Weitere mögliche Angriffe sind TCP-Hijacking
und ARP-Spoofing. Auch das Domain Name
System (DNS) ist angreifbar: Durch DNS-Spoofing.
Weitere mögliche Angriffe sind das Vergiften des DNS-Caches und HTTP-Hijacking.
Gefürchtet sind auch Distributed Denial of Service (DDoS-)Angriffe,
die meist von
Botnets
ausgehen. Abschließend werden noch allgemeine Schutzmaßnahmen
für TCP/IP und die Erkennung von Systemen anhand ihres TCP/IP- oder HTTP-Fingerprints
beschrieben.
Etwas braucht man im Bereich der IT-Sicherheit immer wieder:
Dies ist ein sehr umfangreiches Thema, das nur relativ kurz
behandelt
wird... von #66
bis #82.
Klingt ironisch, ist aber nicht so gemeint.
Tatsächlich fehlen noch einige eigentlich benötigte Themen, aber
würden die alle ausreichend gewürdigt, müsste man die Serie
wohl in "About Cryptography" umbenennen. Los geht es mit den
Grundlagen und einigen klassischen Verfahren: Substitution,
Transposition,
polyalphabetische Substitution,
Vernam-Chiffre
und das einzige beweisbar sichere Verschlüsselungsverfahren, das One-Time-Pad.
Die ersten vorgestellten aktuellen Verfahren sind Feistel-Netzwerke.
Diese werden z.B. im Data Encryption Standard (DES)
eingesetzt. Da DES inzwischen unsicher ist, musste es verbessert
werden. DES ist eine Blockchiffre, d.h. es werden immer Blöcke einer
bestimmten Größe verarbeitet. Für derartige Chiffren gibt
es verschiedene Betriebsarten.
Nach der ganzen Theorie wird es Zeit für ein paar Anwendungsbeispiele
für DES. Der offizielle Nachfolger von DES ist der Advanced Encryption Standard AES.
Dessen Sicherheit und Anwendung
wird näher betrachtet. Alle bisher betrachteten Verfahren waren
symmetrische Verfahren: Für Ver- und Entschlüsselung werden die
gleichen Schlüssel verwendet. Asymmetrische Verfahren
nutzen dafür getrennte Schlüssel, von denen nur einer geheim
gehalten werden muss. Ein solches Verfahren ist RSA,
das auch als Authentikationssystem
oder digitales Signatursystem eingesetzt werden kann. Aus der
Kombination
von symmetrischen und asymmetrischen Verfahren erhält man hybride Verfahren,
die die Vorteile beider Verfahren vereinen.
Ein praktisches Problem der Kryptographie ist die Identitätsprüfung. Dafür gibt es zwei Ansätze: Das Web of Trust, das ohne hierarchische Institutionen auskommt, und hierarchische Zertifizierungssysteme. Als praktisches Beispiel wird der Einsatz von Zertifikaten in SSL/TLS beschrieben, ein Problem, das später wieder vorkommen wird.
Als Beispiel für eine praktische Anwendung der Kryptographie wird wieder die Bratkartoffel KG verwendet. Dabei geht es um Aufbau und Betrieb einer
Nach der Beschreibung des allgemeinen Aufbaus folgt die Beschreibung der Zertifizierungsstelle (Certificate Authority, CA). Ein erste praktische Anwendung der PKI ist der geschützte Versand von E-Mails mithilfe von S/MIME. Auch sicheres Einloggen mit Single Sign-On ist dank PKI möglich. Der Sicherheit dieses Ansatzes ist ein eigener Text gewidmet.
Ohne Kryptographie ebenfalls unmöglich wäre die sichere Verbindung von Systemen oder Netzen über
Nach der Beschreibung der Grundlagen
wird eine konkrete Implementierung vorgestellt: IPsec
(Fortsetzung).
Für den für den Betrieb von IPsec notwendigen Austausch
von Schlüsseln wird das Internet Key Exchange Protocol IKEv2
verwendet (1. Fortsetzung,
2. Fortsetzung).
Ein Beispiel
schließt die Beschreibung von IKEv2 ab, gefolgt von einer anschaulichen Beschreibung
von IPsec.
Ein weiteres VPN-Protokoll ist das Point-to-Point Tunneling Protocol PPTP
PPTP. Auch auf Grundlage des bereits in #73
sowie #81
und
#82
vorgestellten SSL/TLS kann ein VPN aufgebaut werden: Entweder als Clientless TLS-VPN oder als TLS-Tunnel.
Ein konkrete Implementierung eines TLS-Tunnels in OpenVPN.
Abgeschlossen wird der Thema VPN mit einem Vergleich der vorgestellten VPN-Ansätze.
In der nächsten Folge wird ein schon mehrmals erwähntes Verfahren aus der Kryptographie vorgestellt: der Diffie-Hellmann-Schlüsselaustausch.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!