Einzelnen Beitrag anzeigen
Alt 09.10.2005, 09:53   #14 (permalink)
Qndre
Stickstoff Junkie
 

Registriert seit: 06.07.2004
Beiträge: 3.814

Qndre wird schon bald berühmt werden

Standard AW: Microsofts Patchverhalten und Linux

Natürlich gibt es in Linux auch Sicherheitslücken. Nur gibt es dort im wesentlichen folgende Unterschiede:

- Der Quelltext ist offen und die Lücken können auch von anderen als den ursprünglichen Entwicklern entdeckt und gefixt werden.

- Bei Linux lässt sich fast jede Komponente mit fast jeder anderen Komponente verwenden (weiß ich, weil ich alles (kernel, init, freetype, x11, bison, expat, flex, fontconfig, ncurses, perl, zlib, ...) von Sourcecode compiliere und dort fast alle Versionen zueinander kompatibel sind, es sei denn in der BUILD Datei sind einzelne Konstillationen explizit ausgeschlossen, was selten vorkommt), somit kann der Angreifer, wenn er zum Beispiel weiß, dass Du Kernel 2.6.11 verwendest, nicht wissen, dass Du auch expat-1.95.8 verwendest (vorrausgesetzt Du verwendest keine fertige Distribution).

- Jeder Prozess hat bestimmte Rechte, die vom Administrator explizit definiert werden können. Dabei gilt: So viele Rechte wie nötig, damit der Prozess arbeiten kann, so wenige Rechte wie möglich. Dabei wird sowohl Verschlüsselung verwendet, die wirklich sichert, als auch DRM-ähnliche Ansätze (diese haben hier den schlechten Ruf nicht, da Root wirklich die volle Kontrolle über diese Flags hat und damit kein Kopierschutz-Müll betrieben werden kann). Wenn ein Angreifer eine Sicherheitslücke in einem Prozess ausnutzen kann, hat er nur maximal die selben Rechte wie der Prozess, den er kompromittiert hat.

Kurz und knapp: Linux ist viel zu flexibel. Ein Angreifer kann sich nie sicher sein, woran er ist. Es gibt unzählige Kombinationsmöglichkeiten für grundlegende Softwarekomponenten, vor allem wenn der Kernel auch noch selbst compiliert wird. Hier sind unzählige Möglichkeiten vorhanden, wie der Anwender die Kernel an genau sein System anpassen kann, um maximale Performance und Stabilität zu erhalten. Dadurch entsteht für jede mögliche Kombination (und auch für verschiedene Plattformen, zum Beispiel i586, i686 oder 686_64) eine andere Binary, deren Routinen dann an völlig anderen Speicheradressen stehen, etc. Für einen Angreifer unüberschaubar.

Einen Unterschied, der die unterschiedlichen Sicherheitsmentalitäten deutlich macht ist die Art des Firewallings: Unter Windows sind nach Installation einer Firewall meist alle Ports geschlossen. Anwendungen fragen darauf nach Zugriffsrechten, dadurch werden einzelne Ports geöffnet. Unter Linux sind nach Konfiguration der Firewall alle Ports offen und können von jeder Anwendung verwendet werden. Einzelne Ports, von denen Gefährdungen ausgehen könnten, werden geschlossen. Die große Masse der Ports bleibt offen und kann von den Anwendungen und Systemdiensten genutzt werden. Das liegt daran, dass unter Linux offene Ports kaum eine Bedrohung darstellen, während unter Windows hartnäckig versucht wird, die Löcher quasi "möglichst großflächig zu überdecken" anstatt sie wirklich zu beseitigen (die kurieren die Symptome, nicht die Krankheit).

Geändert von Qndre (09.10.2005 um 09:59 Uhr)
Qndre ist offline   Mit Zitat antworten