Mögliches Duplikat:
Kann ein Computer über einen Webbrowser mit Malware infiziert werden?
Es ist allgemein bekannt, dass Sie einen Virus nur durch den Besuch einer Website bekommen können. Aber wie ist das möglich?
Greifen diese Viren Windows-, Mac- und Linux-Benutzer an oder sind Mac / Linux-Benutzer immun?
Ich verstehe, dass ich offensichtlich einen Virus bekommen kann, indem ich eine .exe-Datei in Windows herunterlade und ausführe. Aber wie kann ich einen Virus bekommen, wenn ich nur auf eine Website zugreife?
Sind die Viren in JavaScript programmiert? (Es wäre sinnvoll, da es sich um eine lokal ausgeführte Programmiersprache handelt.) Wenn ja, welche JavaScript-Funktionen werden am häufigsten verwendet?
Antworten:
Beispiele in parens. Es gibt einen Fehler im Browser (IE), im Javascript-Interpreter oder in einem Plugin (wie Flash oder Java). Dieser Fehler führt zur Ausführung von Code - dieser Teil kann sehr kompliziert sein, beinhaltet jedoch häufig eine nachträgliche Fehler- und Heap-Manipulation .
Dann habe ich einen Shellcode am Laufen. Der Shellcode muss den Schutzmaßnahmen des Browsers entgehen - für einen V8 / Chrome-Fehler müssten Sie sich aus der Chrome-Sandbox entfernen und DEP und ASLR besiegen. Für den IE müssten Sie DEP und ASLR schlagen und dann den Modus für niedrige Integrität verlassen. Für Java müsstest du ... nichts tun - du bist alle golden. (Deshalb gab es eine Flut von Java-Bugs.)
Nachdem nun also beliebiger Code auf Ihrem Computer ausgeführt wird (Sie sind nicht als Administrator angemeldet, oder?), Kann ich eine Datei aus dem Internet herunterladen und ausführen und dabei Malware auf Ihrem Computer ablegen.
Speziell - nein. Javascript ist ein Angriffsvektor, mit dem Benutzer einen Fehler in einem Browser finden. Sie könnten auch Flash, Java oder Silverlight als Angriffsvektor verwenden. Im Falle von Javascript schreiben sie Javascript, um den Browser-Fehler auszulösen, und dann wird der Virus schließlich aus dem Internet entfernt.
quelle
Leider und pervers gibt es eine Reihe von Möglichkeiten, wie dies passieren könnte.
Sie sind absolut zu Recht erstaunt, dass ein "Lesegerät" wie ein Browser Ihr eigenes System aktiv manipulieren (und Schaden anrichten) kann. Das Lesen eines Buches belastet Ihr Bankkonto nicht und das Öffnen einer Zeitung schadet Ihren Kindern nicht. Warum kann das Öffnen einer Website all das und noch mehr?
Das Problem tritt immer dann auf, wenn die Möglichkeit besteht, dass fremde Daten aus dem Internet, von denen wir immer davon ausgehen müssen, dass sie mit grösster böswilliger Absicht erstellt wurden, von Ihrem System ausgeführt werden.
Wenn Sie sich nur an die Befehlszeile setzen und
wget http://evil.com/hitme.php
eingeben, schreibt der wget-HTTP-Client einfach einen binären Speicherauszug der Anforderung auf Ihre Festplatte, und es ist nichts Schlimmes passiert (außer dass die Festplatte möglicherweise voll ist). Wenn Sie jedoch die Adresse in Ihren Browser eingeben, kann Ihr Browser alles Mögliche tun - formatieren Sie Ihre Festplatte, senden Sie Ihre Kreditkartendaten ab usw. Es liegt an Ihnen, Ihrem Browser zu vertrauen , dass er dies nicht tut. Die meisten Browser versuchen tatsächlich, diese schlechten Dinge nicht zu tun, aber wir, dieSchafnutzer, haben gefordert, dass Browser immer mehr "clevere Tricks" ausführen und auf der Grundlage von Anweisungen aus dem Internet ein automatisches Verhalten zeigen. Unsere Forderungen haben zur Entwicklung clientseitiger Code-Ausführungstechnologien wie JavaScript und Flash geführt, die beliebigen, fremden, nicht vertrauenswürdigen, bösartigen Code herunterladen und ausführen, alles zu unserem Vergnügen.Der Grund, warum die Leute, die diese Technologien entwickelt haben, nicht sofort gelyncht wurden, ist, dass a) sie Hasen auf unseren Bildschirmen tanzen ließen und b) sie behaupteten, dass sie ausreichende Sicherheitsüberprüfungen im Design vorgenommen hätten, um zu verhindern, dass der willkürliche Schadcode manipuliert wird das lokale System (z. B. das Lesen / Schreiben der lokalen Datenträger, Lesen / Schreiben der Zwischenablage, Lesen / Schreiben von Formularfeldern in anderen Registerkarten nicht zulassen).
Leider ist der Designansatz, "erst alles zuzulassen und dann ein paar schlechte Stellen, an die wir denken können, lückenhaft zu vertuschen", grundlegend fehlerhaft, und jetzt sehen wir uns einem unendlichen Strom neuer Möglichkeiten gegenüber, die unsere clientseitigen Komfortfunktionen bieten können verwendet werden, um unsere Systeme zu gefährden.
Der einzige Ausweg ist die Deaktivierung von JavaScript und Plugins in Ihrem Browser. Sicher wie 1995.
quelle
Der Punkt, der in diesen Antworten wirklich umgangen wurde und den ich unbedingt überwinden möchte, ist der folgende: Der Grund, warum Sie einen Virus von einer Webseite bekommen können, ist, dass einige Software, die Sie ausführen, einen Fehler aufweist - eine Sicherheitslücke .
In jedem Schritt des Erstellungsprozesses der Software müssen die Ersteller von Flash; Ihres Browsers; Ihres Betriebssystems haben versucht sicherzustellen, dass zufälliger, böswilliger Code aus dem Internet nicht einfach einen Weg findet, sich selbst auszuführen. Dies zu tun ist leider schwierig . Wirklich schwer .
Wie alle Menschen auch, sind die Entwickler dieser Software verpflichtet, Fehler zu machen: Der HTML-Parser überschreibt versehentlich ein Byte im Stapel, wenn Sie den HTML-Code mit beenden
</p
. Sie haben versehentlich asigned int
anstelle von a verwendetunsigned int
. Der JavaScript-JIT-Compiler versucht versehentlich, einen Array-Index in einen Nullzeiger zu dereferenzieren. All diese Sicherheitslücken und Millionen weiterer Sicherheitslücken treten in der Software immer wieder auf, entweder aufgrund mangelnder Sicherheitskenntnisse, eines Versehens oder auch nur eines einfachen Fehlers. Software ist einfach viel zu komplex, um sie alle zu erfassen.Aus diesem Grund verfügen Betriebssysteme über integrierte Mechanismen, um Schäden am System zu verhindern, selbst wenn eine Sicherheitsanfälligkeit gefunden wird. Ihr Betriebssystem verfügt wahrscheinlich über DEP und ASLR . Programme können vom Compiler mit verschiedenen Schutzfunktionen versehen werden. Browser werden mit niedrigeren Berechtigungen ausgeführt. Programme werden automatisch analysiert und getestet , um viele dieser Sicherheitslücken zu schließen.
Mein Punkt ist, niemand wird im Stich gelassen dies geschehen - aber es ist unmöglich , vollständig sichere Software zu entwerfen, wie es unmöglich ist , ein absolut sicheres sicher zu gestalten. Jemand mit genügend Zeit, Wissen, Geld und Anreizen wird immer einen Weg finden, es zu knacken. Und das Problem mit diesem Tresor ist, dass einige Hacker, sobald sie ihre Kopie öffnen, problemlos andere Kopien auf der ganzen Welt öffnen können, ohne ihren Raum zu verlassen.
quelle
Ihre spezifischen Fragen
Ihr Browser führt ständig Code aus (er besteht aus Code). Wenn Webseiten heruntergeladen werden, werden mit diesem Code beliebige Daten (Pixel, Zeichen usw.) heruntergeladen und angezeigt.
Code ist auch Daten (auf Prozessorebene).
Da es sich bei Code um Daten handelt, wird Ihr Browser möglicherweise tatsächlich ausgeführt, wenn er versucht, die Daten auszuführen (unabhängig von der Dateierweiterung oder dem Dateiformat) (sofern er ordnungsgemäß erstellt wurde).
Normalerweise ist Ihr Browser nicht so dumm, zufällige heruntergeladene Daten auszuführen. Dies kann jedoch passieren.
Eine Möglichkeit, dies zu tun, besteht darin, die Daten so zu gestalten, dass sie beim Lesen "durchsickern" und die Daten überschreiben, aus denen das ausführbare Programm des Browsers besteht. Dies setzt voraus, dass der Browser einen Fehler aufweist (in diesem Fall wird meistens ein Pufferüberlauf zugelassen ).
Ihr Browser führt auch Programme über Webseiten aus. Javascript ist, wie Sie erwähnt haben, eine solche Art von Code. Aber es gibt Dutzende. ActiveX, Flash, Add-Ons, Grease Monkey-Skripte usw. sind alles Codes, die Sie beim Besuch von Webseiten ausführen. Dieser Code kann Fehler enthalten, die zu Sicherheitslücken führen.
Keine Plattform, die wir verwenden, ist vollständig immun gegen Fehler, da sie alle Prozessoren verwenden, die Daten als Code behandeln. So funktioniert einfach unsere bestehende Computerarchitektur.
Der Grund für diesen Mythos ist, dass Mac und Linux im Vergleich zu Windows-Computern (auf Desktop-Ebene) eine viel geringere Akzeptanz aufweisen. Deswegen ist Desktop-Software auf diesen Rechnern nicht so häufig ein Ziel für Virenhersteller.
Viren entstehen nicht durch Magie oder durch Zufallsentwicklung (wie biologische Viren). Es handelt sich um Software, die von Einzelpersonen oder Entwicklerteams geschrieben wurde. Und sie wollen den größten Marktanteil anstreben, genau wie es normale Softwareanbieter tun.
Wie kann ein Virus auf mehrere Plattformen abzielen? Alle Browser führen unterschiedlichen Code aus, daher treten unterschiedliche Fehler auf (sogar derselbe Browser auf verschiedenen Plattformen). Es gibt jedoch einige Codebibliotheken, die plattformübergreifend verwendet werden. Wenn eine solche Bibliothek den Fehler enthält, ist es möglich, dass der Exploit auf mehreren Plattformen vorhanden ist.
Abhängig von der Art des Angriffs funktioniert ein Virus, der für einen Nicht-Intel-Mac geschrieben wurde, möglicherweise nicht auf einem Intel-Mac und umgekehrt, da sie unterschiedliche Prozessoren haben. Für verschiedene Prozessoren haben die Daten, die den Code darstellen, ein anderes Format.
Wenn es sich jedoch um eine virtuelle Maschine oder eine Skriptsprache handelt, können Angriffe plattformunabhängig sein. Das führt uns zur nächsten Frage ...
Einige Viren sind. Die oben angegebenen Informationen (zu Buffer Overrun-Exploits) werden normalerweise als Angriff außerhalb von Javascript verwendet, können aber auch auf einen Virus angewendet werden, der einen Exploit in einem Javascript-Interpreter angreift.
Javascript wird auch seine eigenen Exploits haben, und zwar auf einer Betriebsebene, die über Pufferüberläufen liegt. Es gibt eine ganze Reihe von Möglichkeiten, um Software anzugreifen. Je größer die Software ist (Codezeilen), desto mehr Benutzereingaben (in diesem Fall Codetypen) werden wahrscheinlich empfangen und desto mehr Fehler können enthalten sein.
Außerdem ist eine laufende Software (z. B. Software, die einen Server ausführt) umso anfälliger für Angriffe.
Im Allgemeinen wird dies als Angriffsfläche bezeichnet
Exploits im Allgemeinen
Microsoft hat eine Kurzbezeichnung für gängige Exploit-Typen, und alle haben ihre eigenen interessanten Eigenschaften und verschiedene Softwareversionen, die sie angreifen können - STRIDE , was bedeutet:
Einige davon werden eher bei einem auf Javascript basierenden Angriff eingesetzt als andere, manche auf Servern, manche auf Datendateien (z. B. Bilder).
Aber Sicherheit ist ein großes und sich entwickelndes Feld. Es gibt wirklich zu viele Informationen, um alle Ihre Fragen vollständig zu beantworten.
quelle
Der Begriff heißt "Drive By Download"
Hier ist ein schönes Beispiel, wie es passiert, ohne dass Sie etwas anderes tun, als eine Website zu besuchen.
quelle
Der Trick ist, dass Virenhersteller / Sicherheitsexperten Schlupflöcher in Browsern finden. Mit einfachen Worten, sie finden eine Lücke in der Sicherheit des Browsers und sie können diese Lücke nutzen, um etwas an Ihrem System zu tun. Es gibt Fälle, in denen Adobe Flash Lücken aufweist und mit speziellem Code ausgenutzt werden kann. Es gibt auch Javascript-Zeichenfolgen, die diese Sicherheitslücken auslösen können.
Wenn Sie jedoch Ihren Browser auf dem neuesten Stand halten, ist es sehr unwahrscheinlich, dass Sie durch den bloßen Besuch einer Website infiziert werden (das Herunterladen und Ausführen von Dateien ist eine andere Geschichte!).
quelle
Viren wie die, die Sie durch den Besuch einer Website infizieren, nutzen einen Fehler im Besuchersystem aus. Beispielsweise kann ein Browser oder Plug-In einen Programmierfehler aufweisen, sodass ein Bild möglicherweise (aus Sicht des Browser-Entwicklers versehentlich) einen beliebigen Befehl auf dem aufgerufenen Computer ausführen kann.
Als solches ist angeblich jedes Betriebssystem ein potenzielles Opfer, aber Virenschreiber richten ihre Angriffe in der Regel nach Skaleneffekten aus - je mehr Benutzer, desto besser. Das ist der Grund, warum Windows und Internet Explorer häufiger betroffen sind.
Jeder Teil eines Browsers oder Plugins ist möglicherweise von einem Virus befallen. Das oben erwähnte Image, das einen Virus verursachte, war ein echtes Beispiel. Flash ist ein häufiges Ziel. Die JavaScript-Engine in Browsern ist auch. Es gibt viele verschiedene Dinge, die schief gehen können.
Am besten verwenden Sie einen hochwertigen Virenscanner. Ich habe NOD32 von Eset verwendet . Klicken Sie auch nicht auf etwas, wenn es zu schön ist, um wahr zu sein. Verwenden Sie NoScript in Firefox und AdBlock .
quelle
Wenn eine Website die Sicherheit Ihres Browsers verletzt, kann sie mit allem, was Ihnen gehört, auf dem Computer Mist bauen . Wenn es jedoch seine Berechtigungen erweitern und Administratorzugriff erlangen kann, kann es sich über alles im System lustig machen.
Es wurde lange Zeit festgestellt, dass es schwieriger ist, auf einem Unix-Computer (z. B. Linux, Mac oder BSD) Administratorrechte zu erlangen als unter Windows. Die jüngste Überarbeitung der Sicherheitsfunktionen durch Microsoft (ab Windows Vista) hat Windows jedoch möglicherweise viel sicherer gemacht als zuvor - oder zumindest glauben Sie, dass dies der Fall ist.
quelle