Vos questions spécifiques
Je comprends qu'il est évident que je peux 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 en permanence (il est fait 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 une donnée (au niveau du processeur).
Le code étant une donnée, si votre navigateur tente d'exécuter les données (quelle que soit l'extension ou le format du fichier), il est possible qu'il s'exécute (s'il est correctement conçu).
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.
L'un des moyens d'y parvenir consiste à former les données de telle sorte que, lorsqu'elles sont lues, elles "fuient" et écrasent les données qui constituent le programme exécutable du navigateur. Pour ce faire, il faut que le navigateur présente un bogue (le plus souvent, dans ce cas, il s'agit de permettre à un utilisateur d'accéder à une page Web). Dépassement de mémoire tampon ).
Votre navigateur exécute également des programmes au-dessus des pages web. Javascript, comme vous l'avez mentionné, est l'un de ces types de code. Mais il en existe des dizaines. ActiveX, Flash, add-ons, grease monkey scripts, etc. sont autant de codes que vous exécutez lorsque vous visitez des pages web. Ce code peut contenir des bogues qui entraînent des failles 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 plateforme que nous utilisons n'est totalement à l'abri des bogues, car elles utilisent toutes des processeurs qui traitent les données comme du code. C'est tout simplement ainsi que fonctionne notre architecture informatique actuelle.
La raison de ce mythe est que les Mac et Linux ont des taux d'adoption beaucoup plus faibles que les machines Windows (au niveau des ordinateurs de bureau). Les logiciels de bureau sur ces machines ne sont donc pas une cible aussi courante pour les créateurs de virus.
Les virus n'apparaissent pas par magie, ni par évolution fortuite (comme les virus biologiques). Il s'agit de logiciels écrits par des individus ou des équipes de développeurs. Et ils veulent cibler la plus grande part de marché, comme le font les vendeurs de logiciels ordinaires.
Quant à savoir si un virus peut cibler plusieurs plates-formes, tous les navigateurs exécutent un code différent et présentent donc des bogues différents (même le même navigateur sur différentes plates-formes). Cependant, certaines bibliothèques de code sont partagées par plusieurs plates-formes. Si une telle bibliothèque contient le bogue, il est possible que l'exploit existe sur plusieurs plateformes.
Mais, selon le type d'attaque effectué, un virus écrit pour un Mac non Intel pourrait ne fonctionne pas sur un Mac Intel, et vice-versa, parce qu'ils ont des processeurs différents. Pour les différents processeurs, les données qui représentent le code ont un format différent.
En revanche, lorsqu'il s'agit 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 question suivante...
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 tout aussi bien s'appliquer à un virus conçu pour attaquer un exploit dans un interpréteur Javascript.
Javascript aura également sa propre série d'exploits, à un niveau d'exploitation supérieur à celui des dépassements de tampon. Il existe toute une série de moyens d'attaquer n'importe quel logiciel. Plus le logiciel est volumineux (lignes de code), plus il est susceptible de recevoir de variétés d'entrées utilisateur (dans ce cas, des types de code) et plus il peut contenir de bogues.
En outre, plus un logiciel en cours d'exécution (par exemple, un logiciel fonctionnant sur un serveur) est exposé, plus il est vulnérable aux attaques.
En général, on appelle cela Surface d'attaque
Exploits en général
Microsoft dispose d'un moyen mnémotechnique pour les types d'exploitation les plus courants, et ils ont tous leurs propres propriétés intéressantes, ainsi que 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 évolutif. Il y a vraiment trop d'informations pour répondre à toutes vos questions.