web-dev-qa-db-fra.com

Certains logiciels peuvent-ils endommager physiquement le matériel?

Je sais qu'une question semblable à celle-ci a déjà été posée, mais il s'agissait d'installer un système d'exploitation 32 bits sur un ordinateur portable 64 bits. Ma question concerne plus d'endommager le matériel.

Je me demandais s’il existait un moyen de s’interfacer avec le matériel de la couche système ou terminal afin de l’endommager irrémédiablement (dommages physiques réels, pas seulement matériel défectueux).

  • Pourriez-vous contourner les mesures de sécurité et faire fonctionner un processeur si fort que la céramique se casse réellement?
  • Pourriez-vous écrire ou interfacer avec un disque dur de manière à causer des dommages physiques aux plateaux?
  • Pourriez-vous jouer avec la mémoire et fry RAM?
  • Pouvez-vous faire sauter une carte réseau?

Il est intéressant de connaître les limites du logiciel lorsque l’on considère un système dans son ensemble.

91
n0pe

Lors de l'exécution de programmes, la charge du processeur peut entraîner une augmentation de la température centrale. Bien que les nouvelles technologies aient un effet (mise à l'échelle dynamique de la fréquence et de la tension), cela est principalement dû au fait que certaines instructions utilisent des chemins électriques différents dans le microprocesseur (par opposition au fait que le processeur est simplement dans un état de veille ou à faible consommation). Il y a eu divers virus de puissance écrits dans le passé, qui profitent de ce fait pour exécuter de manière répétée un code machine spécifique qui tire le plus de puissance et produit ainsi le plus de chaleur (voir la question Un virus peut-il fondre le processeur? pour plus de détails).


Bien que vous puissiez également étendre cette idée à d’autres matériels du système (que je traiterai plus loin), un autre intéressant est celui des périphériques de stockage. Vous pouvez également écrire un virus pour lire et écrire en permanence des fichiers sur un lecteur, ce qui entraînera une usure plus rapide (disques durs mécaniques et disques SSD). Vous augmenterez le risque de défaillance mécanique sur un disque dur et réduirez la longévité du lecteur d'un disque SSD. Si l'utilisateur n'est pas conscient de ces cycles de lecture-écriture constants, vous pouvez probablement endommager ses disques en l'espace d'une semaine environ si vous l'avez correctement implémenté.

De plus, certains ordinateurs portables Apple ont un microcontrôleur intégré dans la batterie. Rien de spécial, mais dans le passé, ils ont publié un correctif qui met à jour le micrologiciel - et à son tour, maintenant , les batteries elles-mêmes sont sujettes aux piratages du micrologiciel .


Revenons maintenant aux dégâts de chaleur. Certaines nouvelles cartes mères incluent la possibilité de modifier les paramètres du BIOS sous Windows. Vous pourriez théoriquement écrire un virus qui augmenterait les tensions dans le système à des limites artificiellement élevées, risquant d'endommager les composants (RAM, CPU, ponts nord/sud). Augmenter la tension et/ou overclocker le bus PCIe pourrait également endommager certains de ces composants.

Un composant en particulier sur un bus PCIe/AGP que je voudrais aborder est la carte vidéo. En effet, la plupart des fabricants fournissent des outils d’overclocking pour augmenter la vitesse et la tension de base. En allant encore plus loin, vous pourriez aussi écrire un virus pour utiliser ces outils et élever ces deux choses à des niveaux dangereux. Vous pouvez donc le brûler, le surtension jusqu'à ce qu'il se dégrade, ou les deux!

Notez que la plupart du matériel informatique est doté d'une protection contre la surchauffe et qu'il atteindra un "arrêt thermique" avant que tout dommage ne survienne. En ce qui concerne la protection contre les surtensions, c'est possible mais beaucoup moins courant.


Le point : Il est possible d'écrire des virus qui tirent parti de n'importe quel système informatique. Si le système cible n'a pas accès à du matériel externe (ni même à son propre matériel), vous ne pouvez toutefois pas causer trop de dégâts. La meilleure analogie ici serait de tenter de pirater quelqu'un qui a retiré son câble Ethernet du mur - vous n'avez littéralement aucun accès à ce système.

Cela étant dit, la plupart des appareils de nos systèmes informatiques modernes ont accès à la modification des paramètres matériels physiques, à savoir la tension et la vitesse du cœur. Etant donné que ces éléments peuvent être modifiés, il est possible de permettre aux virus de tirer parti et éventuellement de perturber ou de détruire complètement leur fonctionnement.

61
Breakthrough

Il y avait toujours cet avertissement que des moniteurs CRT plus anciens, s’ils recevaient un signal vidéo au-delà des fréquences qu’ils pouvaient gérer, pourraient être endommagés. Je ne sais pas lesquels, mais il s'agissait d'un avertissement courant lors de l'ajustement des taux de rafraîchissement ou des paramètres de résolution manuels.

Fondamentalement, à moins qu'un système ne soit pas correctement refroidi ou alimenté, vous ne pouvez pas casser un processeur en le travaillant trop fort. Le refroidissement et l'alimentation avec lesquels il est installé devraient le maintenir à une utilisation à 100%.

Cependant tous les processeurs modernes, toutes les mises à jour du microcode. Intel a toujours exigé que son microcode soit crypté, mais pas AMD (je ne sais pas si cela a changé). Pourrait être possible de télécharger un microcode sur un processeur qui fait quelque chose de méchant.

La mémoire flash peut être usée avec des écritures répétées. Il est probablement possible de "graver" une puce flash BIOS avec cette méthode.

Je suis sûr que les fabricants de disques durs conçoivent leurs périphériques avec des verrouillages matériels et aucune possibilité de réglage de la vitesse du moteur, car le moteur du disque dur tourne à vitesse constante. Cependant, le retournement et le retournement d’un disque dur lui causent du stress et une usure prématurée, ce qui peut être fait au moyen d’un logiciel. En outre, il est probablement possible de "graver" le microprogramme flash/EEPROM d'un disque dur avec des mises à jour répétées ou un microprogramme piraté qui écrit de manière répétée dans une mémoire flash ou EEPROM accessible en interne. De même pour les lecteurs de CD-ROM.

Il est possible de désactiver les ventilateurs à l'aide d'un logiciel, mais de nombreux processeurs modernes s'arrêtent automatiquement lorsqu'une température trop élevée est atteinte. Les processeurs plus anciens ne bénéficiaient pas de cette protection, mais ces cartes mères ne disposaient pas non plus du contrôle des ventilateurs.

15
LawrenceC

Votre alimentation électrique, si elle explose, ne fera pas autant de dégâts que celle de Die Hard. Désolé de décevoir.

Un article engageant mettant en évidence une variante du logiciel causant des dommages matériels est récemment apparu dans Wired concernant le virus Stuxnet . Logiciel qui endommage physiquement les centrifugeuses nucléaires par un logiciel de commande et de contrôle. C'est juste un peu incroyable.

10
music2myear

Historiquement, il y a eu quelques cas où des défauts de conception matérielle ont permis d'endommager directement et immédiatement une machine. Dans un cas, une instruction sur une seule ligne pourrait provoquer un court-circuit et un incendie de l'ordinateur, IIRC. Mais les cas dont j'ai entendu parler étaient sur des micros anciens 8 bits.

Apparemment, le terme est "Killer Poke", mais je viens de le dire dans un rapide Google.

Je ne serais pas surpris que cela se produise dans les systèmes embarqués avec des pilotes de buggy pour le matériel, mais cela devrait être difficile à réaliser sur les plates-formes matérielles les plus courantes - d'abord parce que l'accès direct au matériel est contrôlé, et ensuite parce que ces problèmes devraient être résolus. inhabituel et très spécifique aux plates-formes matérielles exactes de toute façon. Par exemple, un poke de carte graphique ne fonctionnera probablement que pour une carte graphique spécifique.

Voir - http://en.wikipedia.org/wiki/Killer_poke

EDIT - Je n'ai trouvé aucune référence au court-circuitage de micros en mode 8 bits et à l'incendie d'un tueur - c'est peut-être juste un mythe urbain I ramassé le long du chemin quelque part. Mais les notes sur les instructions du processeur HCG (Halt and Catch Fire) ( http://en.wikipedia.org/wiki/Halt_and_Catch_Fire ) sont amusantes. Le processeur Motorola 6809 était utilisé dans le Dragon 32, IIRC, alors c’est peut-être ce dont je me souviens vaguement.

8
Steve314

En plus de surtaxer le matériel , il existe des virus de microprogramme susceptibles de vous détruire matériel en ne l'endommageant pas physiquement, mais simplement en le rendant inutilisable (qui pourrait aussi bien être "physique", puisque le matériel ne peut plus être utilisé dans aucun système) .

Une fois, j'ai endommagé un lecteur de disquette, en programmant un code d'assemblage pour déplacer la tête hors des limites habituelles. Le lecteur a cessé de fonctionner et je pouvais le faire avec 2 autres lecteurs.

Mais beaucoup de gens en doutent à ce moment-là et je n'ai plus jamais prêté attention à ce sujet.

On s'interroge sur la question de savoir si la réécriture d'un BIOS (comme le faisait un ancien virus) est un dommage physique, mais de nombreuses personnes (y compris moi-même) s'en prennent aux problèmes que vous avez mentionnés.

6
woliveirajr

faire fonctionner un processeur si fort que la céramique se casse réellement

Non, il est impossible de faire quoi que ce soit avec un processeur dans un logiciel qui provoque "la rupture de la céramique". Bien qu'il soit possible sur certains processeurs de changer de mode de contrôle de fréquence ou de puissance tel que , la matrice surchauffe , ou de modifier les sorties telles que les transistors absorbent ou génèrent trop de courant (ce qui dépend de l'interface des composants externes); l'un ou l'autre endommagera le silicium ou les plaquettes. La céramique ne sera pas affectée.

Il est également possible sur une CPU disposant de registres de configuration EEPROM (parfois appelés "fusibles") de bricoler la CPU. Par exemple, les processeurs intégrés ( et non pas la classe x86 comme dans la question initiale ) avec mémoire flash interne fournissant des options de protection du code ou d'autres options (par exemple, Microchip PIC) qui, s'ils sont définis de manière incorrecte, peut provoquer la rupture du code (si la protection du code est activée et que le logiciel tente de lire la mémoire du programme, il renvoie tous les zéros au lieu des valeurs réelles). Cela "bricolerait" le système et une reprogrammation à l'aide d'un programmateur à puce externe pourrait être nécessaire (peut-être même un retrait du circuit imprimé pour y parvenir).

5
jcline

Une fois que vous quittez des ordinateurs de bureau ordinaires, même des erreurs logicielles non malveillantes peuvent entraîner des pannes matérielles spectaculaires:

  • L'orbiteur climatique Mars - plus de 500 millions de dollars dépensés en investissements, détruit par une erreur de conversion métrique en impérial.

  • Ariane 5 Vol 501 - détruit par un bug de débordement d’entier, entraînant la perte de roquettes et d’engins spatiaux à bord coûtant plus de 370 millions de dollars.

  • Deux avions F-22 Raptor de 150 millions de dollars se bloquent - en raison de différents bugs .

  • Des bogues dans le logiciel FADEC de l'hélicoptère Chinook étaient au moins en partie responsables du crash de ZD576 et de la mort de 29 personnes.

3
Colin Pickard

La plupart d'entre nous n'écrivons que du code pour de petits ordinateurs simples et il est peu probable que cela se produise. Lorsque vous vous connectez à des machines mécaniques, cela devient plus probable.

Récemment, le ver Stuxnet a été créé pour attaquer le logiciel Siemens contrôlant les centrifugeuses à gaz utilisées dans le processus d'enrichissement de l'uranium. Cela ferait tourner les centrifugeuses à des vitesses conçues pour les endommager.

3
sjbotha

Il y a de nombreuses années, j'avais un lecteur DAT (cassette audio numérique) configuré en tant que lecteur de sauvegarde d'ordinateur. Vous ne pouvez y écrire que indirectement, via Retrospect (logiciel de sauvegarde). Ensuite, j'ai trouvé un logiciel qui vous permettait de monter le disque - utilisez-le comme un disque dur. Cela a fonctionné ... pendant quelques semaines ... et puis le lecteur de bande a grillé. Les têtes de lecture n’étaient tout simplement pas conçues pour un accès aléatoire, contrairement à un disque dur, et tout ce qui s’écroulait autour d’elles les détruisait.

Alors oui, les logiciels peuvent endommager (voire détruire) le matériel.

3
Typist

Mandrake Linux avait un bug avec LG CDROM il y a quelques années http://www.linux.com/archive/feed/32318 . Le bogue était célèbre à l'instant.

3
Rufo El Magufo

Le moyen le plus simple d’endommager le matériel est dans le cas de systèmes embarqués, où vous pouvez accéder aux broches individuelles d’un microcontrôleur. Vous pouvez simplement définir une entrée comme sortie ou inversement, et provoquer un court-circuit. La seule façon dont je peux imaginer que cela soit utile pour endommager un PC est si vous avez un accès et si vous pouvez modifier le micrologiciel de certains composants matériels.

2
vsz

Cela dépend en partie des contraintes imposées au matériel lors de sa conception. Si l'ordinateur est connecté à une bombe qu'il a été conçu pour déclencher, vous pouvez probablement assez efficacement détruire le matériel avec le logiciel. Empêchez l'accès direct au détonateur, cependant, et le matériel est sécurisé.

Pour endommager le matériel, avec le logiciel, il vous faudrait:

  • un matériel capable de s'endommager
  • un moyen pour le logiciel de contrôler cette capacité (ex: une interface utilisateur, une API, un accès de bas niveau ou des restrictions d'accès)
  • un moyen de modifier/manipuler/installer/exécuter un logiciel
2
bhinesley

Oui, du moins pour le matériel mal conçu. Cependant, les matériels modernes doivent respecter diverses règles de sécurité, ce qui limite leur capacité à s’endommager. Le processeur moderne s’éteindra en cas de surchauffe, le lecteur de disque dur/CD/DVD/Blu-ray moderne a une vitesse prédéfinie, etc. les fabricants de matériel ont mis en place toutes sortes de mécanismes de sécurité pour empêcher les logiciels défectueux (y compris les pilotes et les microprogrammes défectueux) d’endommager le matériel.

Bien que ces mécanismes de sécurité ne soient en aucun cas infaillibles, il est très difficile d’endommager un matériel bien conçu uniquement par logiciel. Le logiciel peut au mieux utiliser le matériel de manière à augmenter l'usure de manière optimale.

2
Lie Ryan

Certes, il est possible d’endommager de nombreux systèmes si vous pouvez accéder aux commandes au niveau du BIOS. Le simple fait d'éteindre le ventilateur, puis de lancer un programme de calcul intensif endommagera de nombreux systèmes (même si certains contiennent des limiteurs thermiques câblés). Dans certains systèmes, vous pouvez ajuster les tensions via un programme, etc., et dans quelques cas, vous pouvez ajuster les cycles de service du processeur et autres. (Ceci est particulièrement vrai pour les ordinateurs portables, où la logique de contrôle de l'alimentation est souvent très étendue.)

Et bien sûr, avec les anciens moniteurs, il existait un moyen de les endommager en fournissant un taux de rafraîchissement incorrect, voire en coupant complètement la vidéo. (La plupart des moniteurs modernes contiennent une logique d'auto-protection.) Et, comme quelqu'un l'a mentionné, sur certains lecteurs de disquettes, vous risquez d'endommager la tête. (J'ai rencontré ce problème.)

J'avais un téléphone Nokia n97mini dont l'affichage avait été endommagé par une surchauffe, lorsque le processeur était pris dans une boucle serrée et surchauffé. La chaleur a provoqué la séparation des couches de l'écran. Je suppose que d’autres téléphones présentent des risques similaires.

2
Daniel R Hicks

Seulement si le matériel est mal conçu. Par exemple, le logiciel contrôle la vitesse du moteur électrique en modifiant la tension. Toutefois, le moteur est conçu de manière à brûler si la tension la plus élevée utilisée dure plus d'une minute. Vous pouvez imaginer que les logiciels peuvent facilement dépasser cette limite. Cependant, si le moteur a un courant de découpage de circuit spécifique si sa température atteint une certaine limite, le moteur survivra à tout ce que le logiciel essaie de faire.

Revenant à mon autre post où je blâmais Windows 7 + BIOS Dell capable de faire griller un disque dur.

1
Dmitriy R

Il y a des années, j'ai lu un livre sur les virus informatiques et celui qui a le plus retenu mon attention est le virus de la Turquie , qui peut réellement tuer du matériel.

Une variante du virus focaliserait le faisceau dans un moniteur CRT de manière à ce qu’il s’éteigne. Par brûler, je ne parle pas seulement de phosphore, bien que c’était un effet secondaire, mais le canon à électrons échouerait, laissant le moniteur complètement mort.

Une autre variante du virus effectuerait des calculs mathématiques de manière à surcharger le coprocesseur et à provoquer son extinction.

Bien sûr, c'était il y a quelque temps, à l'époque du matériel ancien susceptible de subir ce type d'attaque. Heureusement, le matériel moderne est généralement conçu pour l’empêcher, mais cela ne va probablement pas arrêter une personne suffisamment déterminée.


En outre, il serait relativement facile pour un virus de tuer le BIOS. Il y a une raison pour laquelle les flasheurs du BIOS vous avertissent toujours de ne pas éteindre ni de réinitialiser le système pendant le clignotement; c'est parce qu'une écriture incomplète laisserait le BIOS corrompu, et puisque le BIOS est le Basic Input Output Le système de l'ordinateur, le corrompre rendrait le système inutilisable. Il était une fois, le BIOS ne pouvait être flashé qu'à partir du mode DOS pur, mais les flashers Windows existaient déjà depuis un certain temps. Rien n'empêche un virus d'écrire de mauvaises données dans le BIOS et de tuer ainsi le système. CIH/Tchernobyl a fait exactement cela en 1999.

Heureusement, certaines cartes mères sont livrées avec un double BIOS, de sorte que la sauvegarde peut être utilisée en cas de corruption du disque principal, tandis que d'autres permettent de réinitialiser ou de flasher de nouveau un BIOS corrompu, mais tous ne le font ni ne peuvent.

1
Synetech

Généralement, la réponse est que le logiciel ne peut pas endommager le matériel. Cependant, il y a des exceptions ... Quelqu'un se souvient-il qu'un logiciel installé sur l'ordinateur IBM d'origine pourrait endommager la carte adaptateur monochrome ou le moniteur? C'était vraiment une révélation.

Dans de nombreux cas, les logiciels ont maintenant le contrôle matériel des périphériques qui y sont connectés. Par conséquent, un logiciel défectueux peut endommager le matériel physique.

0
mdpc

Un terme pertinent à cet égard est le "coup de poing mortel" qui décrit la mise d'une valeur dans un registre (l'instruction "poke") que le matériel ne pouvait tolérer. La page Wikipedia pour "killer poke" répertorie plusieurs exemples.

Les premiers disques durs pourraient subir toutes sortes de dommages. Les têtes de lecture/écriture peuvent parfois être tellement éloignées du plateau qu’elles touchent l’axe de la broche ou le boîtier. Cela pourrait endommager les têtes de lecture/écriture ou les amener à se désaligner.

Les imprimantes et les scanners à encre modernes ont souvent un commutateur de limitation uniquement sur un côté de la piste de leur tête d'impression ou de leur barre CCD. Seul le micrologiciel les empêche de sortir de la plage prévue (et de pénétrer dans les objets). Théoriquement, une mise à jour du micrologiciel pourrait être conçue pour créer non seulement un tel périphérique, mais également causer des dommages physiques.

Il y a aussi de douces piqûres tueuses. La durée de vie d'un disque dur peut être considérablement réduite en maximisant le stress et la chaleur. Incidemment, Windows est livré avec une telle "fonctionnalité" - si vous créez plusieurs partitions RAID logicielles sur un disque dur, lorsque le RAID doit être synchronisé (après un redémarrage inattendu, par exemple), toutes les partitions seront synchronisées en même temps, faire avancer et reculer le lecteur entre des positions extrêmes à la vitesse maximale, probablement pendant plusieurs jours, car le débit dans cet état est minime. Les disques SSD, en revanche, nécessiteraient un maximum d'écritures soutenues pour échouer rapidement.

0
Cygon

L'ancien micro-ordinateur BBC était équipé d'un relais qui était utilisé pour démarrer et arrêter un lecteur de bande. En règle générale, vous devez activer le relais via une commande avant de charger un programme, puis le désactiver.

Lors de l'activation ou de la désactivation du relais, il y aurait un clic audible fort à l'intérieur du boîtier, et le basculement rapide de l'état du relais générerait un bourdonnement. Différentes fréquences d'activation et de désactivation généreraient différentes tonalités de bourdonnement. Vous pouvez ensuite l'utiliser pour jouer une mélodie.

Cependant, le relais n’était pas conçu pour autant de cycles d’alimentation, ce qui risquerait de l’endommager irrémédiablement, obligeant le propriétaire de l’ordinateur à en acheter un nouveau qui devra être soudé physiquement sur la carte mère au lieu de le vieux.

J'ai appris cela par expérience personnelle, mais je n'ai jamais remplacé le relais brisé, car j'avais un système à disque et basculer le relais était purement amusant.

Si je me souviens bien, il y avait même des avertissements à ce sujet dans le manuel de référence du programmeur fourni avec BBC Micro ...

0
braindigitalis