Red Hat Enterprise Linux 3: Sicherheitshandbuch | ||
---|---|---|
Zurück | Kapitel 9. Intrusion Detection | Nach vorne |
Netzwerk-basierte Intrusion Detection Systeme funktionieren anders als host-basierte IDS. Die Design-Philosophie einer netzwerk-basierten IDS ist das Scannen von Netzwerkpaketen am Router oder Host, Prüfen von Paket-Informationen und das Logging jeglicher verdächtiger Pakete in einer speziellen Log-Datei mit erweiterten Informationen. Basierend auf diesen verdächtigen Paketen kann ein netzwerk-basiertes IDS deren eigene Datenbank mit Signatur bekannter Netzwerkattacken scannen und einen Schwerheitsgrad für jedes Paket festlegen. Übersteigt der Schwerheitsgrad einen bestimmten Wert, wird eine Warn-E-Mail oder eine Nachricht über Pager an die Mitarbeiter des Sicherheitsteams abgeschickt, so dass diese die Anomalie weiter prüfen können.
Netzwerk-basierte IDS werden mit wachsendem Internet immer beliebter. IDS, die große Mengen an Netzwerkaktivitäten scannen und verdächtige Übertragungen erfolgreich mit Tags versehen können, sind in der Sicherheitsindustrie hoch angesehen. Durch die Unsicherheit des TCP/IP-Protokolls wurde es unumgänglich, Scanner, Schnüffler und andere Netzwerkprüf- und Erkenntools zu entwickeln, die Sicherheitsbrüche durch unter anderem folgende Netzwerkaktivitäten verhindern:
IP-Spoofing
Denial-of-Service Attacken
arp Cache-Poisoning
DNS-Name-Korruption
Man-in-the-Middle Attacken
Die meisten netzwerk-basierten IDS erfordern, dass das Netzwerkgerät des Hostsystems auf Promiscuous gesetzt wird, was dem Gerät erlaubt, jedes Paket im Netzwerk abzufangen. Der Promiscuous-Moduskann durch den Befehl ifconfig z.B. wie folgt gesetzt werden:
ifconfig eth0 promisc |
Das Ausführen von ifconfig ohne Optionen zeigt, dass eth0 sich nun im Promiscuous-Modus (PROMISC) befindet.
eth0 Link encap:Ethernet HWaddr 00:00:D0:0D:00:01 inet addr:192.168.1.50 Bcast:192.168.1.255 Mask:255.255.252.0 UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:6222015 errors:0 dropped:0 overruns:138 frame:0 TX packets:5370458 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:2505498554 (2389.4 Mb) TX bytes:1521375170 (1450.8 Mb) Interrupt:9 Base address:0xec80 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:21621 errors:0 dropped:0 overruns:0 frame:0 TX packets:21621 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1070918 (1.0 Mb) TX bytes:1070918 (1.0 Mb) |
Durch das Verwenden eines Tools wie tcpdump (mit Red Hat Enterprise Linux ausgeliefert) können wir den Verkehr im Netzwerk sehen:
tcpdump: listening on eth0 02:05:53.702142 pinky.example.com.ha-cluster > \ heavenly.example.com.860: udp 92 (DF) 02:05:53.702294 heavenly.example.com.860 > \ pinky.example.com.ha-cluster: udp 32 (DF) 02:05:53.702360 pinky.example.com.55828 > dns1.example.com.domain: \ PTR? 192.35.168.192.in-addr.arpa. (45) (DF) 02:05:53.702706 ns1.example.com.domain > pinky.example.com.55828: \ 6077 NXDomain* 0/1/0 (103) (DF) 02:05:53.886395 shadowman.example.com.netbios-ns > \ 172.16.59.255.netbios-ns: NBT UDP PACKET(137): QUERY; BROADCAST 02:05:54.103355 802.1d config c000.00:05:74:8c:a1:2b.8043 root \ 0001.00:d0:01:23:a5:2b pathcost 3004 age 1 max 20 hello 2 fdelay 15 02:05:54.636436 konsole.example.com.netbios-ns > 172.16.59.255.netbios-ns:\ NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST 02:05:56.323715 pinky.example.com.1013 > heavenly.example.com.860:\ udp 56 (DF) 02:05:56.323882 heavenly.example.com.860 > pinky.example.com.1013:\ udp 28 (DF) |
Beachten Sie, dass die Pakete, die nicht für unseren Computer bestimmt waren(pinky.example.com), noch von tcpdump gescannt und geloggt werden.
Auch wenn tcpdump ein nützliches Prüftool darstellt, wird es nicht als wahres IDS betrachtet, da es Pakete nicht auf Anomalien analysiert und markiert. tcpdump druckt alle Paketinformationen auf dem Ausgabebildschirm oder in einer Logdatei, ohne Analyse oder Ausarbeitung. Ein richtiges IDS analysiert die Pakete, markiert potentiell schädliche Pakete und speichert diese in einem formatierten Log.
Snort ist ein IDS, das für umfassendes und akkurates Logging von bösartigen Netzwerkaktivitäten und Benachrichtigung von Administratoren bei potentiellen Brüchen entwickelt wurde. Snort verwendet die Standard-libcap-Bibliothek und tcpdump als Paket-Logging-Backend.
Das beste Feature von Snort, zusätzlich zur Funktionalität, ist das flexible Attacken-Signatur-Subsystem. Snort hat eine ständig aktualisierte Attacken-Datenbank, die über das Internet ergänzt und aktualisiert werden kann. Benutzer können Signaturen basierend auf Netzwerkattacken erstellen und diese an die Snort-Signatur-Mailinglisten weitergeben (unter http://www.snort.org/lists.html), so dass alle Benutzer von Snort hiervon profitieren. Diese Ethik der Community, Informationen zu teilen, hat Snort zu einem der aktuellsten und robustesten netzwerk-basierten IDS gemacht.
![]() | Hinweis |
---|---|
Snort wird nicht mit Red Hat Enterprise Linux ausgeliefert und wird nicht unterstützt. Es wurde in diesem Handbuch als Referenz für Benutzer, die Interesse an der Evaluation dieses Tools haben, gegeben. |
Weitere Informationen zu Snort finden Sie auf der offiziellen Webseite unter http://www.snort.org/.
Zurück | Zum Anfang | Nach vorne |
Host-basierte IDS | Nach oben | Vorfallsreaktion |