Ihre spezifischen Fragen
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?
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.
Greifen diese Viren sowohl Windows- als auch Mac- und Linux-Benutzer an oder sind Mac / Linux-Benutzer immun?
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 ...
Sind die Viren in JavaScript programmiert?
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:
Spoofing (of user identity)
Tampering
Repudiation
Information disclosure (privacy breach or Data leak)
Denial of Service (D.o.S.)
Elevation of privilege
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.