[Generic/Snort] Heapüberlaufschwachstelle im Snort-Modul zur TCP-Reassemblierung
(2003-04-16 22:35:17.154746+00)
Quelle:
http://www.coresecurity.com/common/showdoc.php?idx=313&idxseccion=10
Ein Pufferüberlaufschwachstelle im Snort-Pluginmodul Stream4 Preprocessor
ermöglicht es einem Angreifer, durch Versenden entsprechend formulierter TCP-Pakete einen Heapüberlauf zu provozieren und subsequent beliebigen Code mit den Privilegien des Snort-Prozesses auszuführen.
Betroffene Systeme
- Snort 2.0 Versionen bis RC4
- Snort 1.9.x
- Snort 1.8.x
Nicht betroffene Systeme
- Snort 2.0 Release
- Systeme, die mit entsprechenden Vendor-Patches zur Behebung der Schwachstelle versehen sind, die aber i.d.R. nicht die Versionsnummer ändern.
Vulnerability ID
Einfallstor
Senden speziell formulierter TCP-Pakete, wobei es genügt, daß Snort die Pakete sieht.
Auswirkung
Kompromittierung des beherbergenden Rechnersystems
(remote root compromise)
Typ der Verwundbarkeit
heap overflow bug
Gefahrenpotential
sehr hoch
(Hinweise zur Einstufung des Gefahrenpotentials.)
Kontext
Snort ist ein weitverbreitetes Open-Source-Intrusion Detection System (IDS) zur Echtzeitanalyse von Netzwerkverkehr. Es kann als Packet Sniffer, Packet Logger (z. B. für das Debugging in Netzwerken) oder als vollwertiges Intrusion Detection System zur Erkennung netzwerkbasierter Angriffe eingesetzt werden.
Beschreibung
Das Modul Stream4 Preprocessor
, führt die Reassemblierung von TCP-Paketen durch, bevor die Pakete zur weiteren Analyse intern weitergereicht werden. Eine Pufferüberlaufschwachstelle in diesem Modul kann durch einen Angreifer durch das Senden speziell formuierter TCP-Pakete dazu ausgenuzt werden, einen Heapüberlauf zu provozieren und subsequent beliebigen Programmcode mit den Privilegien des Snort-Prozesses auszuführen. Da ein IDS Zugriff auf Netzwerkressourcen benötigt, läuft Snort üblicherweise unter der UID=0 (root)
, so daß die erfolgreiche Ausnutzung dieser Schwachstelle zur Kompromittierung des beherbergenden Rechnersystems führt.
Für die Ausnutzung ist es in vielen Fällen nicht nötig, die IP-Adresse eines Zieles zu wissen, da IDS meist so aufgestellt sind, daß sie den Verkehr zu mehreren Systemen oder zu einem Subnetz überwachen können. Daher ist es in solchen Fällen ausreichend, entsprechend formulierte Pakete an ein Netz zu schicken, von dem bekannt ist, daß es durch ein Snort-System überwacht wird, um dieses erfolgreich anzugreifen.
Workaround
Deaktivierung des Moduls Stream4 Preprocessor
in der Snort-Konfigurationsdatei snort.conf
.
Achtung! Diese Maßnahme führt dazu, daß die Reassemblierung von TCP-Paketen nicht mehr funktioniert und Snort dadurch beispielsweise Angriffe mit fragmentierten Paketen nicht erkennen kann. Weitere unerwünschte Seiteneffekte können auftreten. Die Maßnahme führt zu starken Betriebseinschränkungn.
Es wird daher dringend empfohlen, so bald wie möglich die im nächsten Paragraphen aufgeführten Gegenmaßnahmen zu ergreifen.
Die nötigen Schritte zur Deaktivierung des Moduls Stream4 Preprocessor
sind hier exemplarisch für UNIX-Betriebssysteme beschrieben:
- werden Sie
root
$ su Password: #
- Editieren Sie die Datei
/usr/local/etc/snort.conf
(der Pfad kann je nach Distribution und Konfiguration variieren)# vi /usr/local/etc/snort.conf
- Suchen Sie die Zeile
preprocessor stream4_reassemble
und kommentieren sie sie durch Voranstellen eines Doppelkreuzes ('#
') aus# preprocessor stream4_reassemble
- Speichern Sie die Änderung mit dem
vi
-Kommando:wq!
ab. Das Kommando beendet den Editor. - Senden Sie ein
HUP
-Signal an den laufenden snort-Prozeß# kill -HUP <PID des Snort-Prozesses>
Gegenmaßnahmen
Exploit Code
- Proof of Concept Code wurde veröffentlicht
Weitere Information zu diesem Thema
- Core Security Advisory CORE-2003-0307
- Snort Homepage
Weitere Artikel zu diesem Thema:
- [Generic/Snort] Pufferüberlaufschwachstelle in Snort (2003-03-03)
Das IDS-Werkzeug Snort weist eine Pufferüberlaufschwachstelle auf, über die Angreifer das beherbergende System kompromittieren können. Die heute erschienene Version 1.9.1 behebt dieses kritische Problem.
Hinweis
Die in diesem Text enthaltene Information wurde für die Mitglieder der Universität Stuttgart recherchiert und zusammengestellt. Die Universität Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel darf ausschließlich in unveränderter Form und nur zusammen mit diesem Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine Veröffentlichung unter diesen Bedingungen an anderer Stelle ist ausdrücklich gestattet.
Copyright © 2022 RUS-CERT, Universität Stuttgart, https://cert.uni-stuttgart.de/
https://cert.uni-stuttgart.de/ticker/article.php?mid=1099