it-swarm.com.de

Ist HTML5 / JavaScript für einen Endbenutzer sicherer als Flash?

Ich spreche nicht von serverseitiger Sicherheit oder sogar unbedingt von XSS-Sicherheitslücken, da dies Angriffe auf anfällige Dienste sind und keine bereits vorhandenen Sicherheitslücken auf der Clientseite verwenden, um einen Endbenutzer zu betreffen. Sie werden existieren, solange Webentwickler anfällige Webanwendungen erstellen.

Ich möchte mich in diesen beiden unterschiedlichen Szenarien auf die Sicherheit des Endbenutzers konzentrieren:

  1. Flash installiert und aktiviert, aber JavaScript deaktiviert
  2. JavaScript aktiviert, Flash nicht installiert oder aktiviert

Ich interessiere mich für die Antworten, die ich erhalten könnte, wenn ich eine Art von Frage stelle, die den Vergleich zweier fast völlig unterschiedlicher (intern), aber konkurrierender Technologien hinsichtlich der Sicherheit der Endbenutzer erfordert.

45
Jonathan Gray

Wenn alle Server und Verbindungen zu ihnen vollkommen sicher (unmöglich) und vertrauenswürdig (nicht wahr) wären, wäre theoretisch keiner "sicherer" als der andere - hauptsächlich, weil die Entwickler der Website die volle Kontrolle über sie haben den Inhalt der Website. Da Flash und JS an Clients bereitgestellt werden, muss der Server dem Endbenutzer schädlichen Inhalt bereitstellen, damit der Endbenutzer betroffen ist.

Leider leben wir nicht in einer perfekten Welt, und JS ist im Falle eines Server-Kompromisses tendenziell sicherer - seine Fähigkeit, den Client zu beeinflussen, ist weitaus eingeschränkter. Viele Flash-Schwachstellen können beliebigen Code ausführen, was weitaus schädlicher ist als Browser-Exploits, bei denen häufig mehrere Schwachstellen erforderlich sind, um aus der Sandbox auszubrechen. Dies bedeutet, dass JS-Exploits den Client häufig nur manipulieren können, während der Client diese Seite anzeigt, und normalerweise nach dem Schließen nicht mehr bestehen können, während Flash-Exploits Clients mit RATs oder anderer Malware infizieren können, wodurch der Angreifer die Kontrolle über den Client hat Client auch nach dem Schließen des Browsers.

Ein weiterer Vorteil der Verwendung von JS besteht darin, dass die Quelle für Clients sichtbar ist. Jemand, der die Site verwendet, bemerkt möglicherweise etwas Verdächtiges in der Quelle und benachrichtigt die Entwickler, sodass das Eindringen leichter erkannt werden kann. Im Fall von Flash kann ein böswilliger Angreifer schädlichen Code in eine vorhandene SWF-Datei einfügen. Da Benutzer die Quelle nicht anzeigen können, ohne die SWF-Datei zu zerlegen, wird böswilliger Code möglicherweise länger unentdeckt bleiben.

Für einen Endbenutzer Szenario 2:

JavaScript aktiviert, Flash nicht installiert oder aktiviert

wäre aus den oben genannten Gründen und angesichts der Exploit-Geschichte von Adobe Flash viel sicherer. Eine Suche in der NVD zeigt insgesamt 610 Schwachstellen , 0 davon zwischen Januar 2014 und Dezember 2015. Die meisten JS-bezogenen Exploits sind in der Regel browserspezifisch, was sich verringert die Anzahl der betroffenen Clients, während Flash plattformübergreifend sein soll, was die Anzahl der betroffenen Clients erhöht (heutzutage weniger, wenn man bedenkt, dass viele Menschen Flash deaktiviert haben).

TLDR: Halten Sie Flash ausgeschaltet und verwenden Sie stattdessen JS.

54
WillS

Neben der hervorragenden Antwort von WillS gibt es noch einige weitere Unterschiede, die sich auf die Sicherheit auswirken:

  • Flash ist ein Produkt, während HTML5/Javascript eine Spezifikation ist. Bei einem Produkt (und insbesondere bei einem Closed-Source-Produkt) sind Sie immer auf den Anbieter angewiesen, um ein Schlag ins Maul zu spielen (was Adobe bewundernswert macht, aber auf lange Sicht ist es ein verlorener Kampf). Eine Spezifikation kann bei Bedarf erneut implementiert werden (es sei denn, die Spezifikation selbst weist einen Fehler auf - aber selbst dieser kann normalerweise behoben werden).
  • Endbenutzer verfügen möglicherweise nicht über die neueste Version von Flash und können möglicherweise kein Upgrade durchführen. Zum Beispiel sind die Implementierungen von Linux und Android] uralt und werden nicht unterstützt.
  • Flash ist sehr alt; Es wurde zum ersten Mal im letzten Jahrhundert geschaffen. Jede Software in diesem Alter ist zu diesem Zeitpunkt wahrscheinlich ein riesiger Klebebandball. Dies ist wiederum hauptsächlich eine Folge davon, dass Flash eher ein Produkt als eine Spezifikation ist. HTML und Javascript stammen ebenfalls aus dieser Zeit, leiden jedoch nicht unter diesem Problem, zumindest nicht in gleichem Maße.

pdate Zwei zusätzliche Probleme mit Flash:

  • Flash kann seine eigenen TCP -Verbindungen) herstellen. Wenn sich herausstellt, dass eine Verschlüsselung oder ein Hash anfällig ist, wird sie vom Browser möglicherweise nicht mehr unterstützt, aber Flash verwendet sie möglicherweise weiterhin. Adobe ist in der Regel recht gut darin, solche Verbindungen zu beheben Probleme (zumindest auf unterstützten Plattformen), aber es verdoppelt immer noch den Whack-a-Mole-Faktor.
  • Flash verfügt über eigene Cookies, die von Browser-Cookies getrennt sind. Dies ist meistens mehr ein Datenschutzproblem als ein Sicherheitsproblem, aber viele Leute betrachten diese beiden Probleme als miteinander verbunden.
31
Kevin Keane

Aus der Perspektive von "Kann das Ausführen von xx über Ihren Browser Ihren Computer zum Absturz bringen oder Ihre Sicherheit gefährden" ist die Antwort klar: Flash ist eine alte Technologie, die nicht mehr gut unterstützt wird und eine lange Geschichte von Exploits aufweist. Es ist also bekannt, dass es potenziell gefährlich ist.

HTML5, Javascript und andere derzeit beliebte Technologien sind an sich nicht sicherer - sie führen Code aus, der von Dritten auf Ihrem Computer geschrieben wurde. Es wird versucht, die Möglichkeiten einzuschränken, aber die Effektivität hängt von der Qualität der Implementierungen sowie vom zugrunde liegenden Design ab. Exploits sind unvermeidlich.

0
ddyer