Warum haben Browser so viele mögliche Exploits?

715
Humphrey Bogart

Beim Surfen bekomme ich gelegentlich Warnungen zu Seiten, die Malware enthalten, die "meinen Computer beschädigen können". Ich bin zutiefst verblüfft, warum Browser 2010 noch mögliche Exploits haben und geknackt werden können.

Meine Frage lautet "Warum?". Ich gehe davon aus, dass dies auf die schnelle Entwicklung der Browserkriege zurückzuführen ist, die nicht ausreichend getestet wurden, aber ich bin unsicher. Sicherlich hätte WebKit alle Probleme in KHTML gepatcht, oder Gecko hat die Fehler in der Netscape-Engine behoben und die IE-Codierer durch ihre Codebasis sortiert, um mögliche Fehler zu beseitigen.

(In gewissem Zusammenhang: Welcher Browser ist am sichersten? (Forschung und praktisch) .)

7
Dies liegt daran, dass die Erstellung einer sicheren Methode, die Drittanbietern die Ausführung von Software auf Ihrem Computer ohne Ihre ausdrückliche Erlaubnis oder Zustimmung erlaubt, sehr schwierig ist. Zoredache vor 14 Jahren 8
Sie haben eine Menge Fehler, die man ausnutzen kann Ivo Flipse vor 14 Jahren 0

8 Antworten auf die Frage

11
dmckee

Komplexität, Komplexität, Komplexität.

Ein moderner Browser unterstützt

  • Daten über mehrere Protokolle abrufen (http, https, ftp, ...)
  • Rendern mehrerer unterschiedlicher Auszeichnungssprachen (einfaches HTML (in mehreren Versionen), Xhtml, HTML mit CSS ...)
  • Speichern von Daten und Abrufen von Daten auf Anforderung von Remote-Benutzern (Cookies)
  • Zwei (oder mehr!) Turing-Programmierumgebungen, um den von außen bereitgestellten Code auszuführen (Javascript, Java, möglicherweise Flash ...)
  • Eine Art interne Datenbank für Optionen
  • (aus gestohlener Antwort von broam gestohlen, also stimme dafür ab ) unterstütze eine Plug-In-Architektur, die den Zugriff von Drittanbietern auf die Browser-Interna erlaubt

und es wird erwartet, dass es schnell ist, geschickte Zwischenspeicherung hat, um es schneller zu machen, und eine ausdrucksstarke und leistungsstarke Schnittstelle haben.

Es gibt eine Menge Leute, und es sind große, komplexe Teile von Software.

Deshalb verwende ich Lynx, wenn ich absolut sicher sein will. Es gibt sehr wenig Angriffsfläche in einem Nur-Text-Browser. Es gibt auch eine Menge Dinge, die es nicht kann. David Thornley vor 14 Jahren 0
@ David: Ich würde sagen, dass Lynx wahrscheinlich genauso unsicher ist. Seine Sicherheit ist weniger getestet und viele Angriffsvektoren sind Pufferüberläufe und ähnliche Löcher. Georg Schölly vor 14 Jahren 1
8
Broam

Ein Vektor, den die Leute nicht erwähnt haben: Plugins. Der Browser ist zwar sicher, aber das Plugin kann weite Löcher haben ... und mit allgegenwärtigen Plugins wie Flash ... nutzen Sie eine gute Kameradschaft aus.

Ich hätte vielleicht meine Frage verfeinern sollen; Ich bezog mich auf die Kernelemente des Browsers (Layout, Javascript, usw.). Humphrey Bogart vor 14 Jahren 0
Sie könnten - aber ich hätte das trotzdem angesprochen. Ich bin in meinen Freundeskreisen als "Technologieludite" bekannt, weil ich Flash nicht installiert habe. Die Tatsache, dass IMO in Linux auf Eis stinkt, ist nur ein Teil davon. Broam vor 14 Jahren 2
3
Unfundednut

Teilweise ist es die Tatsache, dass einige Updates schneller ausgerollt werden, als sie sein sollten. Aber eine vorherrschende Tatsache ist ein Blogeintrag, den Jeff vor einiger Zeit hier gepostet hat, als als Administrator alles passieren konnte. Da jeder Computer unterschiedlich ist und unterschiedliche Dinge ausführt, hat nicht immer der Browser einen Exploit. Manchmal ist es ein Plugin eines Drittanbieters wie Flash.

Nizza Link. Ich wusste, dass jemand wie Jeff Atwood einen Beitrag dazu haben würde. Humphrey Bogart vor 14 Jahren 0
Im Zusammenhang mit "schneller ausgerollt als sie sein sollten" ist es so, dass Browserhersteller auf das Neueste und Beste setzen und manchmal neue Funktionen einführen, die schneller sind, als sie ausreichend getestet werden können. Vielleicht ein seltener Fall, in dem zu viel Konkurrenz eine schlechte Sache sein kann? Michael Itzoe vor 14 Jahren 0
3
ChrisF

Ein Teil des Problems ist, dass die Leistung von Browsern (wie Textverarbeitungsprogramme und CAD-Programme) in hohem Maße von den Daten abhängt. Da es (nahezu) eine unendliche Vielfalt an Daten geben kann, können die Entwickler nicht jede einzelne Kombination testen um zu sehen, ob es unerwünschte Ergebnisse gibt.

Ein weiterer Aspekt ist, dass Benutzer und (was noch wichtiger ist) Websitebesitzer die Interaktivität erhalten möchten, die die Browser Code ausführen müssen. Dies ist ein weiterer schwacher Punkt.

3
chris

Viele Antworten hier, alle aus verschiedenen Gründen, aber die grundlegende Antwort lautet: "Da ist das Geld".

Viele andere Software-Programme haben wahrscheinlich ähnliche oder mehr Fehler, sind aber normalerweise nicht ausnutzbar, da Sie einen Benutzer davon überzeugen müssen, sie dem wilden Internet auszusetzen.

2
Dan Rosenstark

Die Antwort von dmckee ist richtig, aber alles lässt sich mit einer Sache zusammenfassen: komplexe Interaktion mit unerwarteten Eingaben. Ihr Browser muss Code / Markup, Plugins usw. ausführen, Benutzereingaben verarbeiten, Plugins ausführen, die Code ausführen usw. Es ist unmöglich, alle Interaktionen zu testen, da Sie das gesamte Internet - Gegenwart und Zukunft - benötigen Ihre Testsuite.

Wenn Sie Software testen, testen Sie gegen eine Reihe normaler und abnormaler Eingaben, und dann sind Sie bereit für die Beta. Das ist also alles Teil der unendlichen Beta-Phase :)

Wie chris sagt, ist das Geld genau dort, was bedeutet, dass Browser ein sehr interessantes Ziel sind.

1
Felix

Tatsache ist, dass jede Software ihre Schwachpunkte hat. Keiner ist fehlerfrei. Durch das Beheben von Fehlern werden neue eingeführt.

Der andere Punkt ist, dass der Browser eine der am häufigsten verwendeten Anwendungen ist und Sie eine Vielzahl von Personen problemlos erreichen können. Auch das macht es für Angreifer interessant, die Schwachstellen zu finden.

0
JohnFx

Möglicherweise haben Sie Recht, wenn alle Aktualisierungen für Browser lediglich Fehlerkorrekturen und Anpassungen an der Originalversion waren. Mit jeder neuen Version werden jedoch weitere Funktionen hinzugefügt, die das Potenzial für Fehler und Sicherheitslücken erhöhen.

Außerdem stehen Sicherheit und Benutzerfreundlichkeit oftmals an einem entgegengesetzten Punkt und Kompromisse bieten mehr Software als das Fehlen von Sicherheitsproblemen.