PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RAW-Sockets und SP2 - das "Sicherheitsverständnis" von Microsoft


GloomY
2004-08-30, 17:12:57
Mit Hilfe von RAW-Sockets kann man in einem Netzwerk einzelne Datenpakete verschicken oder manipulieren, auf die man sonst keinerlei Zugriff hat. Normalerweise stellen unter Windows bestimmte API-Funktionen die Netzwerkmöglichkeiten bereit, um z.B. eine TCP/IP-Verbindung zu einem anderen Rechner aufzubauen. Die dafür nötigen TCP Pakete kann man aber - ohne RAW Sockets - nicht selbst beeinflussen, denn das Verschicken selbiger übernimmt das Betriebssystem - genauer gesagt dessen TCP/IP Implementierung (auch "TCP/IP Stack" genannt).
Die Möglichkeit einzelne low-level Pakete zu verschicken oder z.B. einzelne Bits in den Headern zu verändern, birgt eine gewisse Gefahr, denn viele Angriffsarten in Netzwerken (IP-Spoofing, SYN-Flood, redirected distributed DOS usw.) haben als Vorraussetzung die Manipulation einzelner Pakete bzw. das Senden vieler gleichartiger Pakete.
Für eine Applikation, die einfach nur Daten über das Netzwerk austauschen möchte, ist dies komplett uninteressant, denn es gibt schlichtweg keinerlei Notwendigkeit dafür. Man kann ALLES für eine Applikation notwendige ohne RAW Sockets erledigen. Einzig für Netzwerkadministratoren, die zu Testzwecken einzelne Pakete mit genau festgelegten Inhalten verschicken wollen, ergibt sich ein Nutzen aus den Möglichkeiten, welche RAW Sockets zur Verfügung stellen. Für den Homeuser ist das aber komplett irrelevant.

Insofern schien es ziemlich komisch, als Microsoft in Windows 2000 einen RAW Socket implementierte und dies bei Windows XP fortsetzte. Ein Consumer-Betriebssystem für den Heimanwender mit den mächtigen Fähigkeiten, die man sonst nur von professionellen Betriebssystemen wie Linux oder Unix kannte, wurde daraufhin millionenfach in der Welt verbreitet. Ein "WinXP Home" oder ein "Win2k Proffessional", das vorrangig vielleicht zum Schreiben von Briefen oder zum Spielen verwendet wird, hatte auf einmal RAW Socket Unterstützung.
Profis, die wirklich tief in ein Netzwerk und dessen verschiedene Protokoll-Ebenen eintauchen und dafür RAW Sockets benötigen, sind meist eh mit irgendwelchen Unixen vertraut, welche seit eh und je diese Möglichkeiten bieten. Ich persönlich weiss bis zum heutigen Tage nicht, welchen Nutzen ein RAW Socket für einen Windows Rechner haben soll. Die paar Netzwerkadministratoren, die von den fehlenden RAW Sockets betroffen sind, können z.B. auch mal eben ein Knoppix booten und von dort ihre Testpakete losschicken. Man braucht RAW Sockets wie erwähnt nicht im alltäglichen Gebrauch sondern nur zu Testzwecken.


Die Unterstützung von RAW Sockets stieß bei einigen Leuten auf Missfallen, denn die RAW Sockets bieten wie oben erwähnt auch viele Möglichkeiten für Missbrauch und Angriffe. Einer von ihnen - Steve Gibson - hat Microsoft mehrfach darauf hingewiesen, wie auf seiner Homepage grc.com (http://grc.com/dos/winxp.htm) nachzulesen ist. Ich distanzieren mich jedoch von der meiner Meinung nach (und die vieler anderer Leute) sensationsgeilen Art und Weise wie Steve Gibson hier vorgegangen ist. Es gibt sogar eine Anti-Gibson Seite (grcsucks.com (http://grcsucks.com/)), die viele Dinge bei Gibsons Darstellung bemängelt. Die prinzipielle Sorge der Gefahr, die von RAW Sockets für ein Consumer Betriebssystem ausgeht, teile ich jedoch grundsätzlich. Ein gehackter Windows-Rechner stellte auf einmal eine deutlich höhere Bedrohung für andere Netzwerkteilnehmer als auch für das gesammte Netz (sowohl LAN als auch das Internet) da, wenn die WinAPI RAW Sockets zur Verfügung stellt.


Nachdem sich Microsoft lange gegen die Kritik gewehrt hat und nach Win2k sogar noch ein zweites Consumer Betriebssystem (WinXP) mit RAW Sockets herausgebracht hat, werden diese seit Service Pack 2 für WindowsXP nicht mehr unterstützt. Was hat Microsoft dazu bewegt, erst in Win2k RAW Sockets zu unterstützen und diese dann mit SP2 für XP wieder zu verbannen? War es vielleicht doch der nicht vorhande Nutzen, aber die gleichzeitige Geilheit auf Features, welche andere Betriebssysteme auch boten? Oder die DDOS Attacken, die gegen Yahoo, Google und andere große Firmen gestartet wurden - mutmaßlich vornehmlich von gehackten Windows-Rechnern? Muss erst großer Schaden entstehen, bis Microsoft bereit ist einzulenken?


Ich möchte hier nicht blind MS bashen, sondern deren Argumentation analysieren: Worauf Gibson u.a. auch nicht eingeht, ist die Feststellung von MS, dass mit den NDIS Treibern, die die meisten Netzwerkkarten zur Verfügung stellen, selbst ohne RAW Sockets Pakete manipulierbar sind (also z.B. auch unter Win98). Das ist korrekt, trotzdem ist es weitaus komplizierter dies über den NDIS Treiber zu programmieren, als über eine WinAPI Funktion, die jederzeit zur Verfügung steht. Wenn z.B. die Netzwerkkarte selbst kein NDIS Support bereitstellt, weil der Treiber diesen nicht mitbringt, dann ist es ohne RAW Sockets unmöglich, einzelne Pakete zu fälschen oder zu verändern.

Das Programmieren mit Hilfe der WinAPI sollte aber trotzdem deutlich leichter zu implementieren sein. Ich kenne mich nicht mit der NDIS Schnittstelle aus, aber ich könnte mir vorstellen, dass z.B. für verschiedene Netzwerkkarten unterschiedliche Programmierung notwendig ist, so dass das Verteilen eines Angriffsprogramms auf viele Rechner (z.B. für DDOS) nicht funktioniert, da diese alle ein angepasstes Programm für die jeweilige Hardware der Netzwerkkarte benötigen. Mit der WinAPI geht das alles deutlich einfacher, denn über diese kann man unabhängig von der verwendeten Hardware die Pakete losschicken.
Unterschiedliche Netzzugänge (z.B. Modem oder ISDN) bieten teilweise auch keine NDIS Treiber, da dies ein Feature von Netzwerkkarten ist. Von einem Rechner mit ISDN kann man mit Hilfe der RAW Sockets gefälschte Pakete verschicken, während dies ohne RAW Sockets wahrscheinlich gar nicht möglich wäre.

Die WinAPI mit RAW Socket Support macht die Programmierung nicht nur einfacher sondern auch einheitlich. Die Sache mit den NDIS Treibern ist ein Einwand von MS, der aber meiner Meinung nach keine Relevanz hat. Es ist einfach deutlich schwieriger diese zu nutzen und eben auch nicht einheitlich für jede Plattform das gleiche. Ein Missbrauch wird durch die Vorraussetzung guter Netzwerk- und Programmier-Kenntnis und die Vielseitigkeit der Plattformen verhindert. MS hat es sich IMHO zu leicht gemacht, das zeigt ja jetzt auch der Rückzug mit SP2. MS hat es anscheinend für sinnvoll erachtet, RAW Sockets wieder abzuschaffen. Warum denn eigentlich nicht gleich?

Great power means great responsibility (Zitat aus Spiderman)RAW Sockets sind ein mächtiges Feature und wer anderen Leuten mächtige Werkzeuge in die Hand gibt, muss auch dafür sorgen, dass diese vernünftig damit umgehen. Einem Kleinkind gibt man ja schliesslich auch keine laufende Kettensäge in die Hand.

Das in der Überschrift angesprochene "Sicherheitsverständnis" von Microsoft ist meiner Meinung nach katastrophal. MS ist genügend oft gewarnt worden, hat RAW Sockets trotzdem eingeführt und nun nach schlechten Erfahrungen diese wieder abgeschafft. Es muss wirklich erst etwas passieren (wie die DDOS Angriffe) bis MS reagiert, das natürlich viel zu spät, denn es gibt bereits Millionen von Windows-Rechnern, die über RAW Socket Support verfügen. Das wird sich erst in einigen Jahren reduziert haben, wenn die Leute von Win2k und XP auf irgendein kommendes Windows umsteigen, welches hoffentlich keine RAW Sockets mehr bietet.


Meinungen?

Gast
2004-08-30, 17:46:58
sagen wir so...ansich sind raw sockets wirklich sehr gut um zu administrieren, systemchecks usw. und wirklich schlimmes, wie die angesprochene ddos attacken (wobei dazu brauchst du nicht zwangsweise raw sockets), ist bisher nicht auf die raw sockets zurückzuführen gewesen, noch nie bisher...


zudem windows 2000 (prof) war nie ein end user os...sondern eher an firmenkunden gerichtet, sprich für die client pcs....allerdings muss man in weiten teilen bei xp recht geben, das war/ist wirklich ein consumer os...wobei hier wieder unter home/prof zu unterscheiden ist


und knoppix booten? ich bitte dich, für so n schwachsinn hat n sys admin seltenst zeit die zeit zu verschwenden um sein system zum testen und warten mal wieder knoppix cd einzulegen, dass hab ich lieber alles auf einem system alles zur verfügung...

dann noch die sache mit den "paar sys admins"....selbige lösen auch netzprobleme darüber was das betroffene clientel durchaus sehr groß werden lässt.

Gast
2004-08-30, 17:50:27
das sie komplett abgeschafft wurden halte ich nicht für gut aber auch nicht falsch...

HeldImZelt
2004-08-30, 18:10:02
Es mag falsch gewesen sein das jemals zu implementieren, das aber wieder rückgängig zu machen halte ich für noch schwachsinniger (nmap und andere Sicherheitstools werden jetzt wohl auf Sparflamme laufen). Wie schon angedeutet, es wird nie an einer Plattform mangeln, warum also dieser (unnötige) Schritt?
Früher oder später werden sowieso Kernel-mode Geräte Treiber auftauchen, warum also das ganze Theater.....

Leonidas
2004-08-30, 18:36:44
Alle Daumen hoch für diesen Beittrag von GloomY!

GloomY
2004-08-30, 19:36:02
sagen wir so...ansich sind raw sockets wirklich sehr gut um zu administrieren, systemchecks usw. und wirklich schlimmes, wie die angesprochene ddos attacken (wobei dazu brauchst du nicht zwangsweise raw sockets), ist bisher nicht auf die raw sockets zurückzuführen gewesen, noch nie bisher...Was für andere Möglichkeiten gibt es bei DDOS?

Das von mir angesprochene redirected DDOS kommt aber ohne Fälschen der Absende-IP nicht aus. Bei allen Angriffsarten, die die Herkunftsadresse fälschen, kommen RAW Sockets sehr gelegen.
zudem windows 2000 (prof) war nie ein end user os...sondern eher an firmenkunden gerichtet, sprich für die client pcs....allerdings muss man in weiten teilen bei xp recht geben, das war/ist wirklich ein consumer os...wobei hier wieder unter home/prof zu unterscheiden istWin2k ist (bzw. war) im Heimuser-Bereich auch weit verbreitet, auch wenn es von MS vielleicht nicht so vermarktet wurde. Es kommt wirklich eher darauf an, wie viele Leute Win2k einsetz(t)en, als in welcher Weise dies beworben wurde.
und knoppix booten? ich bitte dich, für so n schwachsinn hat n sys admin seltenst zeit die zeit zu verschwenden um sein system zum testen und warten mal wieder knoppix cd einzulegen, dass hab ich lieber alles auf einem system alles zur verfügung...Man kann Knoppix ja auch parallel auf einem zweiten Rechner laufen lassen. Ich wollte eigentlich damit ja nur sagen, dass entsprechende Alternativen für RAW Sockets existieren und es keinen Tag dauert, bis man diese installiert hat und benutzen kann.
Es mag falsch gewesen sein das jemals zu implementieren, das aber wieder rückgängig zu machen halte ich für noch schwachsinniger (nmap und andere Sicherheitstools werden jetzt wohl auf Sparflamme laufen). Wie schon angedeutet, es wird nie an einer Plattform mangeln, warum also dieser (unnötige) Schritt?
Früher oder später werden sowieso Kernel-mode Geräte Treiber auftauchen, warum also das ganze Theater.....Der Unterschied ist, dass du eben für jede Plattform mit unterschiedlicher Netzwerkhardware einen neuen Treiber schreiben musst und nicht eine systemweite Funktion in Anspruch nehmen kannst, die das alles für dich erledigt.

Vor allem kann kein gehackter Rechner einfach mal ein Programm ausführen, was gefälschte Pakete versendet sondern man muss für die entsprechende Hardware erst einen passenden Gerätetreiber programmieren, diesen installieren (Neustart?!) und kann ihn erst danach nutzen. Der Aufwandt für einen Missbrauch ist einfach weitaus größer.

Die Gefahr, die imho von RAW Sockets ausgeht, ist eben diese einheitliche Schnittstelle. Sicher kannst du jeden einzelnen Rechner so umprogrammieren, dass dieser Pakete fälschen kann, aber das muss man eben für jeden Rechner individuell machen und kann nicht ein Programm für alle schreiben, was einfach auf alle Opfer verteilt wird.

druggedApE
2004-08-30, 19:58:17
ich bin auch deiner meinung. ein enduser os braucht keine raw sockets, und wer die dringend unter windows braucht, weis soweit bescheid, das er sich n treiber dafür holen kann... irgendwie war das ganze nur n checklisten featurefür script kiddies

grüße
ape

Neo69
2004-09-05, 01:56:23
Hört sich nach einer gut begründeter Argumentation an. Ich weiß bloß nicht genau was du damit jetzt sagen möchtest. Siehst du es als ein Beispiel für die schlechte Sicherheitspolitik an?

Eine Frage habe ich da dann noch: Die DDOS Angriffe, die du erwähnst, aufgrund deren MS anscheinend die Funktion wieder abgeschafft hat, haben die tatsächlich die API so benutzt und würde ein Großteil davon ohne Raw Sockets nicht funktionieren?

Muh-sagt-die-Kuh
2004-09-05, 02:46:55
Per default aktive RAW-Sockets stellen ein gewisses Risiko dar, kein Zweifel. Ebenso stellen sie aber auch ein sinnvolles Feature dar.

Die, meiner Meinung nach, optimale Lösungwäre folgende: Per default aus dem System entfernen, aber die Möglichkeit zur nachträglichen Installation erhalten.