it-swarm.com.de

Unzählige Schwachstellen werden mithilfe von Schwachstellenscannern am TCP / 0-Port gefunden

Von Nessus wurde ein Sicherheitslücken-Scan mit Berechtigungsnachweisen auf Linux/Unix-Servern durchgeführt, und Tausende von Sicherheitslücken kamen aus Port tcp/. Wie kann ein reservierter IANA-Port (tcp/0) mit Datenverkehr umgehen? Sind diese Schwachstellen wirklich zählbar oder wurden sie als falsch positiv eingestuft? Wie sollen wir vorgehen, um die unter Port TCP/0 angezeigten Schwachstellen zu beheben?

12
Shakir

Wie kann ein reservierter IANA-Port (tcp/0) mit Datenverkehr umgehen?

Es kann. Im Allgemeinen bedeutet TCP (oder UDP) Port 0, der sich in einem reservierten Zustand befindet, nicht, dass er in der Praxis nicht verwendet werden kann. Obwohl wie Berkeley-Sockets entworfen sind Es ist nicht so einfach, an Port Null zu binden, es ist trotzdem möglich , es zu verwenden.

Allerdings ist es höchst unwahrscheinlich, dass dies in Ihrem Fall tatsächlich passiert ist. Sie verwenden nur den Nessus-Scanner, der Aktivitäten auflistet, die nicht eng mit einem bestimmten Port unter Port 0/TCP oder 0/UDP verbunden sind (siehe: "Sicherheitslücken nach Host" =). Dies ist einfach eine (unpraktische?) Konvention, um portlos Warnungen unter Port 0 anzuzeigen - ironischerweise, um Verwirrung zu vermeiden.

Beachten Sie, dass diese a) nicht unbedingt Schwachstellen sind, sondern nur Warnungen oder Vorschläge (z. B. Nichteinhaltung von die besten Microsoft-Praktiken beim Ausführen eines Scanners); b) sind nicht unbedingt falsch positiv. Versuchen Sie, Port Null selbst zu ignorieren, lesen Sie den Bericht sorgfältig durch und handeln Sie entsprechend.

16
ximaera

Wie kann ein reservierter IANA-Port (tcp/0) mit Datenverkehr umgehen?

Während die akzeptierte Antwort erklärt, dass Port 0 immer noch ein echter Port ist, kann es hilfreich sein zu verstehen, wie Ports in TCP funktionieren. Unten sehen Sie ein 32-Bit-breites Diagramm des a TCP - Pakets, um es zu skalieren. UDP ist ähnlich, wenn auch viel einfacher (nach den Ports hat es nur ein Längenfeld und ein Prüfsummenfeld vor den Daten).

 0 1 2 3 
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
 + ------------------------------- + ---------------- --------------- + 
 | Quellport | Zielport | 
 + ------------------------------- + --------- ---------------------- + 
 | Sequenznummer | 
 + ------------------------------------- ---------------------- + 
 | Bestätigungsnummer | 
 + ------- + ----------- + - + - + - + - + - + - + --------- ---------------------- + 
 | Daten | | U | A | P | R | S | F | | 
 | Offset | Reserviert | R | C | S | S | Y | I | Fenster | 
 | | | G | K | H | T | N | N | | 
 + ------- + ----------- + - + - + - + - + - + - + ----------- -------------------- + 
 | Prüfsumme | Dringender Zeiger | 
 + ------------------------------- + --------- ---------------------- + 
 | Optionen | Polsterung | 
 + -------------------------------------- ----- + --------------- + 
 | | 
/... Daten (optional) ... /
 | | 
 + --------------------------------------- -------------------- + 

Wie Sie sehen können, sind die Felder Quellport und Zielport beide 16 Bit breit. Dies bedeutet, dass 65536 verschiedene mögliche Zustände von 0 bis 65535 dargestellt werden können. Aus diesem Grund gibt es im Übrigen keine negativen Ports, da der Wert als vorzeichenlos behandelt wird. Das einzige, was verhindert, dass einer der Ports alle Null-Bytes sind (was Port 0 darstellt), ist ein IANA-Standard, der sagt, dass dies nicht getan werden soll. Es ist durchaus möglich, dass ein Paket mit einem der auf 0 gesetzten Ports gesendet wird. Der Zweck, Port 0 reserviert zu halten, besteht darin, zuzulassen, dass "Gib mir einfach einen beliebigen Port" durch eine 16-Bit-Ganzzahl dargestellt wird. Wenn versucht wird, eine Bindung an TCP/0 herzustellen, anstatt auf Pakete zu warten, deren Zielport auf Null gesetzt ist, soll das System an einen beliebigen verfügbaren Port binden.

3
forest