symlink.ch
Wissen Vernetzt - deutsche News für die Welt
 
symlink.ch
FAQ
Mission
Über uns
Richtlinien

Moderation
Einstellungen
Story einsenden

Suchen & Index
Ruhmeshalle
Statistiken
Umfragen

Redaktion
Themen
Partner
Planet

XML | RDF | RSS
PDA | WAP | IRC
Symbar für Opera
Symbar für Mozilla

Freunde
Benutzergruppen
LUG Switzerland
LUG Vorarlberg
LUGen in DE
SIUG
CCCZH
Organisationen
Wilhelm Tux
FSF Europe
Events
LinuxDay Dornbirn
BBA Schweiz
CoSin in Bremgarten AG
VCFe in München
Menschen
maol
Flupp
Ventilator
dawn
gumbo
krümelmonster
XTaran
maradong
tuxedo

 
Warum Windows unsicherer als GNU/Linux ist
Veröffentlicht durch Ventilator am Samstag 06. Mai 2006, 08:58
Aus der Der-Doktor-und-das-liebe-Win Abteilung
Security Doener schreibt: "Richard Stiennon vergleicht in seinem Blog auf ZDNet die Anzahl der nötigen Systemaufrufe, die ein Apache-Webserver unter Linux bzw. Microsofts IIS unter Windows benötigt. Wie zwei Grafiken zeigen, ist der Anzahl der benötigten Systemaufrufe unter dem Gespann Windows/IIS sehr viel größer als unter einem Linux-System mit Apache."

"Jeder benötigte Systemaufruf sei aus Angreifer-Sicht ein potentielles Einfallstor für Pufferüberläufe, so Stiennon. Daher kommt er zu dem Schluss, dass Windows mit IIS per Design schwerer sicher zu bekommen sei als GNU/Linux mit dem Apache-Server. (via yigg.de)"

Geschichte Nacherleben | Druckausgabe | Nerd sucht Nerdine  >

 

 
symlink.ch Login
Login:

Passwort:

extrahierte Links
  • Was ist ein Weblog bzw. Blog?
  • Apache
  • GNU
  • Linux
  • Was ist ein Wiki?
  • Wikipedia
  • ZDNet
  • Doener
  • vergleicht in seinem Blog auf ZDNet
  • Apache-Webserver
  • IIS
  • yigg.de
  • Mehr zu Security
  • Auch von Ventilator
  • Diese Diskussion wurde archiviert. Es können keine neuen Kommentare abgegeben werden.
    Titel? (Score:3, Tiefsinnig)
    Von dino (neil@franklin.ch.remove) am Saturday 06. May 2006, 09:12 MEW (#1)
    (User #32 Info) http://neil.franklin.ch/
    Waer das nicht eher eine Analyse, warum IIS unsicherer als Apache ist?

    Wie steht es mit Apache unter Windows aus? Hat das gleich viele Aufrufe wie unter Linux? Oder zwingt der Windows Kernel jedem Webserver mehr Aufrufe auf?

    Trau keiner Statistik die du nicht selber gefaelscht hast :-).
    --
    GPL ist neo-amerikanische Freiheit: du bist gezwungen frei - von jeder Moeglicheit die sie schaedlich erachten

    Re: Titel? (Score:2)
    Von Doener am Saturday 06. May 2006, 14:45 MEW (#4)
    (User #2169 Info) http://fuckup.twoday.net/
    >Waer das nicht eher eine Analyse, warum IIS unsicherer als Apache ist? Stimmt. Allerdings hat Stiennon seinen Artikel selbst so überschrieben. >Wie steht es mit Apache unter Windows aus? Würde mich auch mal interessieren.
    Pufferüberläufe und Syscalls (Score:2, Informativ)
    Von gaga am Saturday 06. May 2006, 10:22 MEW (#2)
    (User #1559 Info)

    So wie ich das verstehe, versucht der Schreiberling auf ZDNet eher anhand der (leider unleserlichen) Syscall-Graphen nachzuweisen, dass die Code-Komplexitaet des ISS unter Windows deutlich hoeher ist als diese des Apache unter Linux. Daraus resultiert ein hoeheres Fehlerrisiko.

    Es ist jedoch unrealistisch, dass jemand über die Syscalls, die ein Webserver macht, in den Kernel einbricht. Schliesslich ist es deutlich einfacher, über die Pufferüberlaufsprobleme in der Userspace-Applikation erst mal die Applikation zu übernehmen, und dann gegebenenfalls dort mit einem vorgefertigten Kernel-Exploit "von der Stange" weiter zu machen. Der Zusammenhang zwischen der Anzahl der Syscalls und der Pufferüberlaufsprobleme ist somit eigentlich nicht vorhanden.

    Gruss, gaga


    Webserver? (Score:1)
    Von driAn am Saturday 06. May 2006, 12:50 MEW (#3)
    (User #1844 Info)
    Wie kann man nur die Sicherheit eines Betriebsystems auf den Webserverdienst reduzieren? Schwach.
    Ein Bild sagt mehr als tausend Worte (Score:0)
    Von Anonymer Feigling am Saturday 06. May 2006, 17:48 MEW (#5)
    Der Spruch wird auch nicht richtiger, wenn man ihn
    oft genug wiederholt. Gegenbeweis: Man fotografiere
    ein Wort. Sagt dieses Foto jetzt mehr aus als das Wort? Bilder sagen gar nichts, sie reden nur. Viele - wenn nicht sogar die meisten - Bilder lügen, in dem Sinne das sie dem Betrachter einen Eindruck aufdrängen oder nahelegen, der nicht den objektiven Fakten entspricht. Bilder sind perfekt um abzulenken und für Propaganda, weil der Mensch, ganz besonders der moderne ein Augentier ist. Wenn man etwas einigermaßen klar und deutlich ausdrücken möchte, dann nimmt man besser tausend Worte als ein Bild. Es könnte ja auch sein, dass man das Bild nur vorschiebt, weil man keine echten Argumente hat.

    Man müsste schon den Code sehen, um Apache und IIS fair zu vergleichen und den Code bezüglich der Fehleranfälligkeit und Wohlstruktiertheit beurteilen zu können. Die Performanz kann man auch ohne Code gut vergleichen. Nicht offentsichtliche Schwächen findet man eventuell nur durch Code-Inspektion, weil gewisse Fälle in der Realität
    nicht vorkommen.

    Unix hat eine recht kleine System-API, die wenig spezialisiert und dafür eher objekt-orientiert - lange bevor man meinte für OO bräuchte man dedizierte Sprachen. Bestes Beispiel sind read() und write(), die sich nicht darum scheren, ob der "file descriptor" einen Socket, eine reguläre Datei oder was auch immer darstellt. Die Windows-API mag hier unschöner sein, sie mag aber auch auf die spezifischen Eigenschaften der Objekte stärker eingehen, was sich in der Theorie für Optimierungen nutzen ließe. Windows hat ganz einfach eine andere Weltanschauung. Unter Windows sind Threads selbstverständlich, unter Unix - zumindest in C und C++ eher ein PITA. Threads sind aber sehr oft unnötig und werden nur aus Faulheit genutzt. Zudem
    haben auch Threads immer noch Overhead wie "context switches" und "locking". Die Komplexität des Codes
    steigt durch Threads in der Regel stark.

    Interessanterweise ist simple Server-Software ist vielen Fällen weit fehleranfälliger als die großen Varianten und wenn sie keine größeren Patzer enthalten ignorieren sie oft die halbe Spezifikation. Man möge mir einen "Mini-Webserver" zeigen, der RFC-konform ist, d.h. die Mindestanforderungen erfüllt. Einen einfachen Webserver kann im Prinzip jeder Idiot schreiben und das ist ja auch der Fall. Einen Webserver zu schreiben, der keine "buffer overflows", sowie sonstige Bugs enthält und einigermaßen performant ist, ist nicht sehr viel schwieriger, aber in der Realität schon seltener anzutreffen. Für einen performanten Server kommt man um epoll und kqueue nicht herum. Da kommen dann schon einige System-Calls dazu. Einige Aufrufe von setsocketopt() braucht man ebenfalls. Unter Unix ist letzteres immer genau ein System-Call. Unter Windows mag jedes Feature seinen eigenen System-Call haben. Das wäre aber weder komplexer noch gefährlicher, sondern einfach nur anders.
    Außer read() und write() braucht eventuell aber auch readv() und writev(), wobei erstere eigentlich überflüssig sind, da sie nur Spezialfälle von letzteren sind. Unter Umständen braucht man gar recvmsg() und sendmsg(). Also noch mehr System-Calls. Möglicherweise übersetzt die libc alle diese Varianten aber auch in eine generische Variante. Nicht alles was als System-Call deklariert ist, ist auf Kernel-Ebene wirklich ein unterschiedlicher System-Call.
    Unter Linux braucht man sogar dummerweise ein fcntl(fd, F_SETFL, flags | O_NONBLOCK) für jeden Socket den man per accept() erhält, weil unter Linux dieses "flag" nicht vom "listening" Socket geerbt wird. Macht das Linux jetzt unsicherer als BSD? Ich glaube es nicht.

    Letztlich muss man schon Apache zuzüglich aller gewöhnlichen Module mit IIS vergleichen. Nicht selten, wird eine Software es durch solche Zusatzmodule fehleranfällig. Man möge ganz einfach mal die Zusätze für Firefox unter die Lupe nehmen.
    Es ist ein leichtes Firefox per Plug-In gefährlicher als jeden IE zu machen.

    Man kann nicht davon ausgehen, dass die hohen die Standards, die (hoffentlich) für die Entwickler der Basis-Software gelten, auch von den Autoren der Zusatzmodule beachtet werden.
    Re: Ein Bild sagt mehr als tausend Worte (Score:0)
    Von Anonymer Feigling am Sunday 07. May 2006, 00:47 MEW (#6)
    Ich glaube auch nicht, dass man mit diesen Bildern eine hoehere Sicherheit bzw. geringere Fehlerrate nachweisen kann. Aber sollten diese Bilder einigermassen realistisch die Komplexitaet dieser beiden Webserver darstellen, dann kann man schon ein paar grobe Vermutungen anstellen.

    Gutes Softwaredesign erreicht man vorallem dadurch, dass man es so einfach wie moeglich (aber nicht einfacher!) macht. Solche Software zeichnet sich meistens durch Stabilitaet, Performance und manchmal auch durch erhoehte Sicherheit aus. Oft bringt aber auch Sicherheit einer erhoehte Komplexitaet mit sich, da man vielleicht viel mehr Code braucht.

    In erster Linie darf mal bezweifelt werden, ob diese Grafen ueberhaupt richtig sind. Danach sollte man hinterfragen, inwiefern man diese Darstellungen untereinander vergleichen kann. Dann kann man vielleicht Rueckschluesse auf irgendwas ziehen. Ohne Code Vergleich kann man aber vermutlich keine wirklich serioese Aussagen treffen.

    Re: Ein Bild sagt mehr als tausend Worte (Score:0)
    Von Anonymer Feigling am Sunday 07. May 2006, 01:37 MEW (#7)
    Die beiden Entwickler-Teams sollten einfach mal ihre UML-Diagramme vorzeigen.

    Vorsicht, Sarkusmus.

    Linux User Group Schweiz
    Durchsuche symlink.ch:  

    Never be led astray onto the path of virtue.
    trash.net

    Anfang | Story einsenden | ältere Features | alte Umfragen | FAQ | Autoren | Einstellungen