Gentoo Logo

[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


9. Kernelsicherheit

Inhalt:

9.a. Entfernen von Funktionen

Eine grundlegende Regel ist die Entfernung von allem was Sie nicht brauchen. Das schafft einen kleinen Kernel und entfernt auch die Verwundbarkeiten die in Treibern oder anderen Funktionen liegen können.

Ziehen Sie auch in Betracht Unterstützung für das Laden von Modulen (loadable module support) auszuschalten. Auch wenn es möglich ist sogenannte Rootkits ohne diese Eigenschaft hinzuzufügen, wird es doch schwerer für den normalen Angreifer Rootkits über Kernelmodule zu installieren.

9.b. Das proc Dateisystem

Viele Parameter des Kernels können durch das /proc Dateisystem oder durch die Benutzung von sysctl verändert werden.

Um Kernelparameter und -variablen dynamisch zu ändern, muss CONFIG_SYSCTL in Ihrem Kernel definiert sein. Dies ist voreingestellt im Standard 2.4 Kernel.

Befehlsauflistung 2.1: IP-Forwarding deaktivieren

# /bin/echo "0" > /proc/sys/net/ipv4/ip_forward

Stellen Sie sicher, dass IP Forwarding deaktiviert ist. Dieses benötigen wir lediglich bei einem Rechner in mehreren Netzen. Es ist anzuraten, diese Einstellung vor allen anderen vorzunehmen, weil hiermit auch andere (de)aktiviert werden.

Befehlsauflistung 2.2: Entfernen von ping Paketen

# /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

Dies veranlasst den Kernel alle ping Pakete (auch bekannt als ICMP Typ 0 Pakete) zu ignorieren). Der Grund hierfür ist, dass IP Pakete, welche ICMP Nachrichten beinhalten auch andere Informationen beinhalten können als Sie denken. Administratoren benutzen ping als Diagnosewerkzeug und beschweren sich oft, wenn es deaktiviert ist; es gibt aber für einen Außenseiter keinen Grund in der Lage sein zu müssen, pings zu verwenden. Nichtsdestotrotz ist es manchmal nützlich intern ping benutzen zu können, dann können Sie ICMP Typ 0 Pakete in der Firewall deaktivieren (und es dadurch lokalen Administratoren erlauben ping zu verwenden).

Befehlsauflistung 2.3: Ignorieren von broadcast Pings

# /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Dies deaktiviert das Antworten auf ICMP Broadcasts und verhindern sog. Smurf-Angriffe. Diese verwenden eine ICMP Typ 0 (ping) Nachricht, welche an die Broadcast-Adresse eines Netzwerks gesendet wird, wobei der Angreifer typischerweise die Ursprungsadresse verschleiert. Sämtliche Rechner des Netzes werden nun auf diese Nachricht antworten und dabei den Computer der in Wirklichkeit die gefälschte Ursprungsadresse besitzt überfluten.

Befehlsauflistung 2.4: Sperren von quellbasierendem Paket-Routing

# /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route

Akzeptieren Sie keine Pakete mit quellbasierendem Routing. Angreifer können quellbasierendes Routen benutzen um Datenverkehr zu erzeugen, der vorgibt aus dem Netzwerk zu kommen, jedoch eigentlich über seinen Ursprungspfad zurück geroutet wird. Quellbasierendes Routing wird selten für legitime Zwecke eingesetzt, daher ist es sicher dies zu deaktivieren.

Befehlsauflistung 2.5: Annahme von Umleitungen verweigern

# /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects

Akzeptieren Sie keine ICMP Umleitungspakete. Diese können zur Veränderung der Routing Tables verwendet werden, möglicherweise mit einem böswilligen Ziel.

Befehlsauflistung 2.6: Schutz gegen falsche Fehlermeldungen

# /bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

Schalten Sie den Schutz gegen gefälschte Fehlermeldungen ein.

Befehlsauflistung 2.7: Reverse Pfadfilterung ermöglichen

# for i in /proc/sys/net/ipv4/conf/*; do
        /bin/echo "1" > $i/rp_filter
done

Stellen Sie reverse Pfadfilterung an. Dies hilft durch automatisches Ablehnen von Quelladressen, die nicht mit dem Netzwerkinterface übereinstimmen, sicherzustellen, dass Pakete legitime Quelladressen benutzen. Dies hat Sicherheitsvorteile, da es IP Spoofing verhindert. Wir müssen es für alle net/ipv4/conf/* aktivieren, da sonst die Validierung der Quelle nicht voll funktionsfähig ist.

Warnung: Die Nutzung von reverser Pfadfilterung kann auch ein Problem darstellen, wenn Sie asymmetrisches Routing benutzen (Pakete von Ihnen zu einem Host nehmen einen anderen Weg als Pakete vom Host zu Ihnen) oder wenn Sie einen Non-Routing Host betreiben, der verschiedene IP-Adressen an verschiedenen Interfaces hat.

Befehlsauflistung 2.8: Protokollieren aller Pakete die gespoofed sind, quellbasierendes Routing haben oder umleiten

# /bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

Protokollieren von Paketen die gespoofed sind, quellbasierendes Routing verwenden oder Umleitungen sind.

Alle diese Einstellungen werden zurückgesetzt, wenn die Maschine neu gestartet wird. Daher schlage ich vor, dass Sie jene in /etc/sysctl.conf eintragen. Diese Datei wird vom /ect/init.d/bootmisc Init-Skript ausgelesen.

Die Syntax für /etc/sysctl.conf ist recht gradlinig. Entfernen Sie das /proc/sys/ von den eben angesprochenen Pfadnamen und ersetzen Sie / mit .:

Befehlsauflistung 2.9: Verwendung in sysctl.conf

(Manuell durch echo):
/bin/echo "0" > /proc/sys/net/ipv4/ip_forward

(Automatisch in sysctl.conf:)
net.ipv4.ip_forward = 0

9.c. Grsecurity

Der Patch von Grsecurity ist Standard in den sys-kernel/hardened-sources, aber per Voreinstellung deaktiviert. Konfigurieren Sie Ihren Kernel wie gewohnt und konfigurieren Sie dann die Grsecurity-Optionen. Eine ausführliche Erläuterung zu den verfügbaren Grsecurity-Optionen ist auf der Seite des Gentoo Hardened Projekt verfügbar.

Die aktuellen hardened-sources enthalten die 2.* Version von Grsecurity. Für weitere Informationen zu diesem verbessertem Patchsatz konsultieren Sie bitte die Dokumentation auf der Grsecurity Homepage.

9.d. Kerneli

Kerneli ist ein Patch der Verschlüsselung zum existierenden Kernel hinzufügt. Durch Patchen des Kernel erhalten Sie neue Optionen wie: Kryptographische Chiffrierung, Zusammenfassungsalgorithmen und Kryptographische-Schleifenfilter.

Warnung: Der Kerneli Patch ist momentan nicht in einer stabilen Version für den neuesten Kernel verfügbar, also Vorsicht beim Gebrauch.

9.e. Andere Kernel Patches

Und es gibt wahrscheinlich viele weitere.


[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


Drucken

Alles ansehen

Seite aktualisiert 2. April 2010

Die Originalversion dieses Dokuments wurde zuletzt am 17. Dezember 2013 aktualisiert

Zusammenfassung: Sichern Sie Ihren Kernel ab.

Kim Nielsen
Autor

John P. Davis
Bearbeiter

Eric R. Stockbridge
Bearbeiter

Carl Anderson
Bearbeiter

Jorge Paulo
Bearbeiter

Sven Vermeulen
Bearbeiter

Benny Chuang
Bearbeiter

Sune Jeppesen
Bearbeiter

Tiemo Kieft
Bearbeiter

Zack Gilburd
Bearbeiter

Dan Margolis
Bearbeiter

Joshua Saddler
Bearbeiter

Jan Hendrik Grahl
Übersetzer

Tobias Scherbaum
Übersetzer

Matthias Geerdsen
Übersetzer

Tobias Heinlein
Übersetzer

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.