Autor Thema: Zum Thema Mikrokernel  (Gelesen 33918 mal)

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« am: 25. May 2005, 19:53 »
Ich hab mal nen Beitrag gefunden auf einer Webseite, wo das nur nebenbei erwähnt wurde. Gibt mir aber sehr zu denken.

Quelle: http://www.edugrid.ac.in/webfolder/courses/os/os_faq14.htm

4. Microkernel
[...]
AmigaOS, for example, was a microkernel - and an unusual one: Since AmigaOS had no memory protection, its messaging was as quick as it could get (passing a pointer to memory), making the AmigaOS kernel one of the fastest ever devised. On the other hand, that lack of memory protection also meant that the microkernel architecture gave no added stability…
[...]

Vielleicht ist das eine Möglichkeit, das letzte aus der Hardware herauszuholen?

Svenska

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #1 am: 25. May 2005, 20:23 »
Für die Serveranwender sicher ja, weil die ja nur kontrollierte Sachen laufen lassen, aber für Heimanwender oder sowas total mies, jeder Virus kann alles matsche machen und kennst ja den DAU...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 25. May 2005, 20:39 »
Interessante Einstellung ;-) Aber ich würde doch eher sagen, dass auf einem Server ein Betriebsystem laufen sollte das stabil, zuverlässig und SICHER ist, weil es möglichst lange durchlaufen soll und ja allen möglichen Angriffen ausgesetzt ist. Da wäre ein OS ohne Memory Protection ja der blanke Hohn. Kann man auch gleich einen DOS oder Win95 Server aufsetzen :lol: . Den meisten Heimanwendern ist das glaub ich egal, wie gut ihr System gesichert ist, man braucht ja nur mal zu schauen wie viele den ganzen Tag als Admin arbeiten oder sich nicht um Firewalls,Systemupdates und ähnliches kümmern. Wo ein ungeschützes Betriebssystem wirklich Sinn macht sind einfache Spieleplattformen, damit die Performance auch ausgereizt wird. Da kann kein Virus oder Wurm stören, weil dass System eh von schreibgeschützten Medien geladen wird.
Agieren statt Konsumieren!

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #3 am: 26. May 2005, 00:47 »
Es geht ja nicht nur darum Viren zu verhindern, sondern viel mehr die Programme gegen andere und den Kernel abzuschotten.
Weil läuft eiin Programm nit rund ist das ganze System betroffen.

Daher ist ein OS ohne Memory Protection blödmist.
----------------------
Redakteur bei LowLevel

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #4 am: 26. May 2005, 01:43 »
Wieso bei Servern? Da kommt ja normal garnix rein, um ausgeführt zu werden! Folglich kann auch kein Speicherzugriff veranstaltet werden! Ein Apache-Server schickt einem nur die INet-Seiten, der startet doch nix, und wie soll sich ein Programm vom INet aus selber starten?
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #5 am: 26. May 2005, 02:27 »
Ich sag nur Buffer Overflow. So startet sich ein Programm selber. Und dann ist ohne Speicherschutz direkt alles verloren. Mit Speicherschutz erstmal nur das, was das Programm tun könnte (was bei guten System SEHR viel weniger sein sollte).

Lösung -> Eine Technik nehmen die Buffer Overflow Angriffe gar nicht erst ermöglicht.
*post*

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #6 am: 26. May 2005, 11:46 »
Na doll, werbe du halt für deine VMs ;)
Wie soll man bei einem Webserver ein Buffer Overflow erzeugen? Man bekommt doch nurn Request, verarbeitet den und schickt zurück...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 26. May 2005, 12:17 »
Zitat von: joachim_neu
Wie soll man bei einem Webserver ein Buffer Overflow erzeugen? Man bekommt doch nurn Request, verarbeitet den und schickt zurück...

indem der request oder ein teil davon ganz einfach zu lang ist? ;)
Dieser Text wird unter jedem Beitrag angezeigt.

DDR-RAM

  • Beiträge: 184
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 26. May 2005, 12:23 »
Zitat von: Legend
Ich sag nur Buffer Overflow. So startet sich ein Programm selber. Und dann ist ohne Speicherschutz direkt alles verloren. Mit Speicherschutz erstmal nur das, was das Programm tun könnte (was bei guten System SEHR viel weniger sein sollte).

Lösung -> Eine Technik nehmen die Buffer Overflow Angriffe gar nicht erst ermöglicht.


dieses göttliche gibt es mit dem amd64 :-)

MfG
DDR-RAM

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 26. May 2005, 12:32 »
Ja die No-Execute Option (NX) ist schon ein sehr nettes Feature der neuen AMD64. Nur das Betriebssystem muss es auch unterstützen. Es ist ja nicht wie in der Werbung angepriesen per se ein Virenschutz in der Hardware. Klingt immer so als ob der Prozessor Viren erkennt und killt ;-)
Agieren statt Konsumieren!

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #10 am: 26. May 2005, 12:45 »
Jop, NX-Bits sind auch eine Möglichkeit. Und bedenke das man ja bei dynamischen Webseiten auch noch mehr probieren könnte - ausser es sind JSP's oder php-skripte.

C/C++ - CGI Skripte wären auch eine mögliche Gefährdung! ;)
*post*

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #11 am: 26. May 2005, 17:38 »
Zum Thema BOF bei Servern, es gibt ja die lieben netten DOS-Attacken. Wenn die Anfragen zu schnell kommen, als dass sie der Server verarbeiten kann, kackt er irgendwann ab. Nur hat das mit Memory Protection direkt erstmal nix zu tun^^
Per se macht es nix wenn man ständig als Admin eingeloggt ist (zumindest bei Windows is das fast wurscht) wenn man sich nicht völlig DAU verhält, ich bin permanent als Admin angemeldet und habe keinerlei Probleme, abgesehen davon darf man als nicht-Admin unter Windows ja gar nix und da hätte ich ein Problem^^
Man hat auch schon vor dem amd64 die Möglichkeit gegen Buffer overflows zu agieren, nur etwas umständlicher mit dem BOUND Befehl.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

DDR-RAM

  • Beiträge: 184
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 26. May 2005, 18:09 »
BOUND-Befehl? Verstehe nicht so ganz was der macht, irgendwas mit arraygrenzen checken? Ich raff den Befehl nicht ganz, kann mir den mal wer erklären, vielleicht mit Beispiel :D

Man könnte sich auch schützten, indem man nicht segmentierung "ausschaltet", sondern mit günstigen limits und bases fürs cs-segment.

Aber segmentierung ist fürn Ar***.

MfG
DDR-RAM

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 26. May 2005, 19:39 »
Was BOUND bei AMD64 macht, weiss ich nicht. Beim 286er checkt er
einfach die Arraygrenzen, ob diese halt zwischen zwei Registerwerten
liegen und löst sonst eine Exception aus.

Wenn ein Apache bspw. einfach nur die ersten xy Zeichen akzeptiert und
wenn mehr kommt, halt die Anfrage killt, ist auch kein Buffer Overflow
möglich :) Aber wie gesagt, dass läuft dann wieder auf PHP, Perl, CGI und
so raus. Da ist es etwas komplizierter, das Design dagegen zu sichern :)

Und der Amiga war ja hauptsächlich eine Spielekonsole. Aber wenn der
Speicher zermatscht wurde, gab es eine Meldung "Press Left Mouse
Button to continue" [continue = reset ^^].
Also hat schon gemerkt, dass da was faulig war :)

Wenn man Buffer Overflows im Design verhindern könnte (bzw. mit Hilfe
des Prozessors), dann ist ein solcher Ansatz auf Servern sicherlich von
Vorteil. Schliesslich geht es da ja um Leistung und Sicherheit - letztere ist
dann mehr oder weniger gegeben.

Auf der Seite stand auch noch, dass Microkernel langsamer sind als
Monolithische Kernel, jedenfalls im Allgemeinen (ein schrottiges Design
macht jeden Geschwindigkeitsverlust wett - hab mal was von nem
Vergleich Basic <=> Asm gelesen... optimiert Basic war schneller als
unoptimiert Asm)

Also fuer gewisse Zwecke mag ein solcher Memoryprotectionfreier Ansatz
auch vorteilhaft sein...

Svenska

DDR-RAM

  • Beiträge: 184
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 26. May 2005, 22:39 »
hm, der BOUND-Befehl, ist das nicht so, man übergibt nen index und nen pointer auf zwei dwords bzw. zwei words

und dann wird geprüft, ob der index dazwischen liegt, wenn nicht, gibs bound exceeded exception oder so.

Aber wozu das ganze?
Das ist ja kein Schutz vom System her, sondern vom Anwendungsprogrammier bzw. vom Compiler

man kann doch auch einfach so den index auf gültigkeit prüfen und muss nicht erst ne exception generieren oder gleicher overflow frei Programmieren. :D

Also SICHERHEIT sollte heutzutage ziehmlich groß geschrieben werden. ;-)

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #15 am: 27. May 2005, 09:28 »
Zitat von: Roshl
Zum Thema BOF bei Servern, es gibt ja die lieben netten DOS-Attacken. Wenn die Anfragen zu schnell kommen, als dass sie der Server verarbeiten kann, kackt er irgendwann ab. Nur hat das mit Memory Protection direkt erstmal nix zu tun^^


Liegt daran das DoS-Attacken erstmal nichts mit Buffer Overflows zu tun haben, ausser ich finde einen Puffer der z.B. bei zu vielen IP-Verbindungen überlaufen könnte. Aber in den meistens Fällen werden Buffer Overflows durch einzelne, spezielle Datenpakete ausgelöst.
*post*

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #16 am: 27. May 2005, 12:07 »
Dos heisst erstmal Denial of Service also Dienstverweigerung, und den kann man schliesslich auf vielen wegen generieren. Wenn ein BOF erzeugt wird, wird der Dienst sicherlich auch verweigert;) Bei DoS wird der Server ja einfach mit Anfragen bombardiert->irgendwann geht dem Server der Speicher aus->Buffer Overflow
Aber mit Security ist das sowieso ne komplizierte Sache. Man kann ja soooooo viel kaputt machen wenn man nur will^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #17 am: 27. May 2005, 12:38 »
Jo, aber (D)DoS geht meistens über Server vollmüllen mit der mehr Bandbreite als der selber hat. Und wenn der Speicher voll ist, hast du evtl. nen DoS geschafft, aber noch keinen Buffer Overflow in dem Sinne das du probieren könntest Code einzuschleusen. Dazu musst du Puffer suchen über deren Grenzen hinaus geschrieben werden könnte. Die Funktion gets ist so ein Beispiel für den Anfang - gets auf nen Array auf den Stack angewendet und du kannst über den Array hinaus die Rücksprungaddresse oder andere Variablen abändern. Das exakt ist ein Buffer Overflow Angriff - wenn die Kiste stattdessen abschmiert, nun gut, dann ist der Dienst auch weg, stimmt schon. ;)
*post*

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #18 am: 27. May 2005, 12:43 »
Wie der DoS letztlich erreicht wird ist doch Wurscht:P
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #19 am: 27. May 2005, 12:45 »
Bei nem DoS schon, aber der ist ja noch richtig harmlos im Vergleich zum Buffer Overflow - damit könnte man System ja nicht nur vorrübergehend lahm legen, sonder infizieren, das macht direkt noch viel mehr Spass! ;)
*post*

 

Einloggen