Vos questions spécifiques
Je comprends que je peux évidemment attraper un virus en téléchargeant et en exécutant un fichier .exe dans Windows, mais comment puis-je attraper un virus simplement en accédant à un site Web?
Votre navigateur exécute du code tout le temps (il est composé de code). Lorsqu'il télécharge des pages Web, ce code télécharge et affiche des données arbitraires (pixels, caractères, etc.).
Le code est également des données (au niveau du processeur).
Comme le code est constitué de données, si votre navigateur tente d’exécuter les données (quelle que soit l’extension ou le format du fichier), il se peut qu’il s’exécute réellement (s’il est conçu correctement).
Normalement, votre navigateur ne sera pas assez stupide pour essayer d'exécuter des données aléatoires qu'il a téléchargées. Cependant, cela peut arriver.
Une façon de procéder consiste à former les données de manière à ce que, une fois lues, elles «fuient» et écrasent les données constituant le programme exécutable du navigateur. Ceci nécessite que le navigateur ait un bogue (le plus souvent dans ce cas, autorisant un dépassement de tampon ).
Votre navigateur exécute également des programmes sur des pages Web. Comme vous l'avez dit, Javascript est un de ces types de code. Mais il y en a des dizaines. ActiveX, Flash, les add-ons, les scripts Grease Monkey, etc. sont tous du code que vous exécutez lorsque vous visitez des pages Web. Ce code peut contenir des bogues causant des problèmes de sécurité.
Ces virus attaquent-ils les utilisateurs de Windows, Mac et Linux ou les utilisateurs de Mac / Linux sont-ils immunisés?
Aucune plate-forme que nous utilisons n'est totalement à l'abri des bugs, car ils utilisent tous des processeurs qui traitent les données comme du code. C’est simplement ainsi que fonctionne notre architecture informatique existante.
La raison de ce mythe est que les taux d’adoption des systèmes Mac et Linux sont bien inférieurs à ceux des ordinateurs Windows (au niveau du bureau). Les logiciels de bureau sur ces machines ne constituent donc pas une cible aussi courante pour les fabricants de virus.
Les virus ne surviennent pas par magie, ni par évolution aléatoire (comme les virus biologiques). C'est un logiciel écrit par des individus, ou des équipes de développeurs. Et ils veulent cibler la plus grande part du marché, de la même manière que les éditeurs de logiciels classiques.
Quant à savoir si un virus peut cibler plusieurs plates-formes; Tous les navigateurs utilisent un code différent, ils auront donc différents bogues (même le même navigateur sur différentes plates-formes). Cependant, certaines bibliothèques de code sont partagées sur plusieurs plates-formes. Si une telle bibliothèque contient le bogue, il est possible que l'exploit existe sur plusieurs plates-formes.
Toutefois, en fonction du type d’attaque, un virus écrit pour un Mac non-Intel peut ne pas fonctionner sur un Mac Intel, et inversement, car ils ont des processeurs différents. Pour différents processeurs, les données qui représentent le code ont un format différent.
Lorsque vous parlez d'une machine virtuelle ou d'un langage de script, les attaques peuvent être indépendantes de la plate-forme. Cela nous amène à la prochaine question ...
Les virus sont-ils programmés en JavaScript?
Certains virus sont. Les informations que j'ai mentionnées ci-dessus (sur les exploits de dépassement de tampon) seraient généralement utilisées comme une attaque en dehors de Javascript, mais pourraient également s'appliquer à un virus conçu pour attaquer un exploit dans un interpréteur Javascript.
Javascript aura également son propre ensemble d’exploits, à un niveau d’exploitation supérieur aux dépassements de mémoire tampon. Il existe une multitude de façons d’attaquer n’importe quel logiciel. Plus le logiciel est volumineux (lignes de code), plus il est susceptible de recevoir une variété d'entrées utilisateur (dans ce cas, des types de code), et plus il peut contenir de bugs.
En outre, plus un logiciel en cours d’exécution (par exemple un logiciel exécutant un serveur) est exposé, plus il est vulnérable aux attaques.
En général, cela s'appelle surface d'attaque
Exploits en général
Microsoft a un mnémonique pour les types d’exploit communs, et ils ont tous leurs propres propriétés intéressantes et différents niveaux de logiciels qu’ils peuvent attaquer - STRIDE , qui signifie:
Spoofing (of user identity)
Tampering
Repudiation
Information disclosure (privacy breach or Data leak)
Denial of Service (D.o.S.)
Elevation of privilege
Certains d'entre eux sont plus susceptibles d'être utilisés dans une attaque basée sur Javascript que d'autres, certains sur des serveurs, d'autres sur des fichiers de données (tels que des images).
Mais la sécurité est un domaine vaste et en évolution. Il y a vraiment trop d'informations pour répondre complètement à toutes vos questions.