Duplication possible:
un ordinateur peut-il être infecté par un logiciel malveillant via un navigateur Web?
Il est de notoriété publique que vous pouvez contracter un virus simplement en visitant un site Web. Mais comment est-ce possible?
Ces virus attaquent-ils les utilisateurs de Windows, Mac et Linux ou les utilisateurs de Mac / Linux sont-ils immunisés?
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?
Les virus sont-ils programmés en JavaScript? (Cela aurait du sens puisqu'il s'agit d'un langage de programmation qui s'exécute localement.) Si oui, quelles fonctions JavaScript sont celles couramment utilisées?
Réponses:
Exemples en parens. Il y a un bug dans le navigateur (IE), l'interpréteur javascript ou dans un plugin (comme flash ou java). Ce bogue conduit à l'exécution de code - cette partie peut être très compliquée, mais elle implique souvent un bogue use-after-free et une manipulation de tas .
Ensuite, j'ai un shellcode en cours d'exécution. Le shellcode doit échapper aux protections dont dispose le navigateur - pour un bogue V8 / Chrome, vous devez échapper au bac à sable de Chrome et vaincre DEP et ASLR. Pour IE, vous devez battre DEP et ASLR, puis sortir du mode de faible intégrité. Pour Java, vous devez ... ne rien faire - vous êtes tous d'or. (C'est pourquoi il y a eu une vague de bugs Java.)
Alors maintenant que j'ai du code arbitraire sur votre machine, car vous (vous ne travaillez pas en tant qu'administrateur, n'est-ce pas?), Je peux télécharger un fichier sur Internet et l'exécuter en supprimant des logiciels malveillants sur votre machine.
Plus précisément - non. Javascript est un vecteur d'attaque que les gens vont utiliser pour trouver un bug dans un navigateur. Ils pourraient également utiliser Flash, Java ou Silverlight comme vecteur d’attaque. Dans le cas de javascript, ils écrivent du javascript pour déclencher le bogue du navigateur, puis le virus est finalement extrait d'Internet.
la source
Malheureusement et perversement, cela pourrait se produire de différentes manières.
Vous avez absolument raison de vous étonner qu'un "lecteur", comme un navigateur, puisse manipuler activement votre propre système (et faire du mal). Lire un livre n'épuise votre compte bancaire et ouvrir un journal ne fait pas de mal à vos enfants, alors pourquoi l'ouverture d'un site Web peut-elle faire tout cela et plus encore?
Le problème se produit chaque fois qu'il est possible que des données étrangères provenant d'Internet, dont nous devons toujours supposer qu'elles ont été conçues avec la plus grande intention malveillante, parviennent en quelque sorte à être exécutées par votre système.
Si vous restez sur la ligne de commande et que vous tapez
wget http://evil.com/hitme.php
, le client HTTP wget écrira simplement un dump binaire de la demande sur votre disque et rien de mal ne s’est produit (à part peut-être que votre disque se remplit). Mais si vous tapez l'adresse dans votre navigateur, celui-ci est libre de faire ce qu'il veut : formater votre disque dur, envoyer les détails de votre carte de crédit, etc. C'est à vous de faire confiance à votre navigateur pour ne pas le faire. La plupart des navigateurs tentent en effet de ne pas faire ces mauvaises choses, mais nous, les utilisateurs demoutons, avons exigé que les navigateurs soient capables de faire de plus en plus "d'astuces intelligentes" et d'afficher un comportement automatique basé sur les instructions fournies par Internet.. Nos demandes ont conduit à la création de technologies d’exécution de code côté client telles que JavaScript et Flash, qui téléchargent du code arbitraire, étranger, non fiable, malveillant et l’exécutent, le tout pour notre plus grand plaisir.La raison pour laquelle les concepteurs de ces technologies n’ont pas été immédiatement lynchés, c’est parce que a) les lapins ont dansé sur nos écrans et b) ils ont affirmé avoir mis suffisamment de contrôles de sécurité dans la conception pour empêcher le code malveillant arbitraire de manipuler le système local (par exemple, ne pas autoriser la lecture / écriture des disques locaux, lire / écrire le presse-papiers, lire / écrire des champs de formulaire dans d'autres onglets).
Malheureusement, l’approche de conception consistant à «tout autoriser, puis à masquer de façon nuancée quelques problèmes que nous pouvons imaginer» est fondamentalement imparfaite, et nous sommes maintenant confrontés à un flot ininterrompu de nouvelles façons dont nos fonctionnalités de confort côté client peuvent être utilisé pour compromettre nos systèmes.
La seule solution modérément sûre consiste à désactiver JavaScript et les plugins dans votre navigateur. Coffre-fort comme nous étions en 1995.
la source
Le point qui a vraiment été éludé dans ces réponses, que je veux vraiment vaincre chez moi, est le suivant: la raison pour laquelle un virus peut provenir d’une page Web est qu’un logiciel que vous utilisez présente un bogue - une faille de sécurité .
À chaque étape du processus de création du logiciel, les créateurs de Flash; de votre navigateur de votre système d’exploitation ont tenté de s’assurer que des codes malveillants aléatoires d’Internet ne permettent pas de trouver un moyen de s’exécuter. Malheureusement, c'est difficile . Vraiment dur .
Ainsi, comme tous les humains, les développeurs de ce logiciel sont tenus de commettre des erreurs: l'analyseur HTML écrase accidentellement un octet dans la pile lorsque vous terminez le code HTML
</p
. Ils ont accidentellement utilisé unsigned int
au lieu d'ununsigned int
. Le compilateur JIT javascript tente accidentellement de déréférencer un tableau-index en un pointeur nul. Toutes ces vulnérabilités, ainsi que des millions d'autres, apparaissent constamment dans les logiciels, soit par manque de connaissances en matière de sécurité, soit par inadvertance, soit même par une simple erreur. Le logiciel est tout simplement façon trop complexe pour les attraper tous.De ce fait, les systèmes d’exploitation disposent de mécanismes intégrés pour éviter d’endommager le système, même en cas de découverte d’une vulnérabilité. Votre système d'exploitation a probablement DEP et ASLR . Les programmes peuvent avoir diverses protections ajoutées par le compilateur. Les navigateurs fonctionnent à des niveaux inférieurs. Les programmes sont exécutés via des analyses et des tests automatiques capables de détecter un grand nombre de ces vulnérabilités.
Ce que je veux dire, c'est que personne ne le laisse faire - mais il est impossible de concevoir un logiciel entièrement sécurisé, tout comme il est impossible de concevoir un coffre-fort totalement sécurisé. Quelqu'un qui dispose de suffisamment de temps, de connaissances, d'argent et d'incitatifs trouvera toujours le moyen de le résoudre. Et le problème avec ce coffre-fort est qu’une fois que des hackers ont ouvert leur copie, ils peuvent facilement en ouvrir d’autres partout dans le monde sans quitter leur chambre.
la source
Vos questions spécifiques
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é.
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 ...
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:
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.
la source
Le terme s'appelle "Drive By Download"
Voici un bel exemple de la façon dont cela se passe sans que vous ne fassiez que visiter un site Web.
la source
L'astuce est que les fabricants de virus et les experts en sécurité trouvent des failles dans les navigateurs. En termes simples, ils trouvent un trou dans la sécurité du navigateur et ils peuvent utiliser ce trou pour faire quelque chose pour votre système. Il y a des cas où Adobe Flash avait des trous et avec un code spécifique, il pourrait être exploité. Il existe également des chaînes javascript qui peuvent déclencher ces failles de sécurité.
Néanmoins, si vous maintenez votre navigateur à jour, il est très peu probable que vous soyez infecté simplement en visitant un site Web (télécharger des fichiers et les exécuter est une autre histoire!)
la source
Des virus comme ceux qui vous infectent en visitant un site Web exploitent une faille du système de visite. Par exemple, un navigateur ou un plug-in peut avoir une faille dans sa programmation, de sorte qu'une image peut être autorisée (accidentellement, du point de vue du développeur du navigateur) à exécuter une commande arbitraire sur l'ordinateur visiteur.
En tant que tel, chaque système d'exploitation est censé être une victime potentielle, mais les auteurs de virus définissent généralement leurs attaques en fonction d'économies d'échelle: plus il y a d'utilisateurs, mieux c'est. C'est pourquoi Windows et Internet Explorer sont plus souvent ciblés.
Toute partie d'un navigateur ou d'un plug-in peut être ciblée par un virus. L'image susmentionnée qui a provoqué un virus était un exemple réel. Flash est une cible commune. Le moteur JavaScript dans les navigateurs est aussi. Il y a beaucoup de choses différentes qui peuvent aller mal.
Votre meilleur pari est d’exécuter un scanner de virus de qualité. J'ai utilisé NOD32 par Eset . Aussi, ne cliquez pas sur quelque chose si c'est trop beau pour être vrai. Utilisez NoScript dans Firefox et AdBlock .
la source
Si un site Web parvient à enfreindre la sécurité de votre navigateur, il risque de perdre tout ce qui vous appartient sur votre ordinateur. Cependant, s’il peut augmenter ses privilèges et obtenir un accès administratif, il pourrait alors s’en remettre à tout ce qui se trouve sur le système.
On a longtemps soutenu qu'il était plus difficile d'obtenir des privilèges d'administration sur une machine Unix (par exemple, Linux, Mac ou BSD) que sur Windows. Cependant, la récente refonte (à partir de Windows Vista) des fonctionnalités de sécurité de Microsoft a peut-être rendu Windows beaucoup plus sécurisé qu'auparavant - ou du moins, c'est ce qu'ils vous ont fait croire.
la source