10 bogues sérieux de logiciel informatique

10 bogues sérieux de logiciel informatique (La technologie)

La majorité des bogues logiciels sont de petits inconvénients qui peuvent être résolus ou contournés par l'utilisateur - mais il existe des cas notables dans lesquels une simple erreur a affecté des millions de personnes, à un degré ou un autre, et a même causé des blessures, voire des pertes de vies humaines.

Les logiciels sont écrits par des humains - et chaque logiciel comporte donc des bogues, ou «fonctionnalités non documentées», comme pourrait l'appeler un vendeur. C'est-à-dire que le logiciel fait quelque chose qu'il ne devrait pas ou ne fait pas ce qu'il devrait. Ces bogues peuvent être dus à une mauvaise conception, à l'incompréhension d'un problème ou à une simple erreur humaine - tout comme une faute de frappe dans un livre. Cependant, alors qu'un livre est lu par un humain qui peut généralement déduire le sens d'un mot mal orthographié, les logiciels sont lus par des ordinateurs, qui sont relativement stupides et ne font que ce qu'on leur dit.

Voici dix cas où les conséquences de ces insectes ont été énormes, d'une manière ou d'une autre:

10

Therac-25 1985-1987

Le Therac-25 était une machine pour administrer une radiothérapie, généralement pour traiter des patients cancéreux. Il y avait deux modes de fonctionnement. La première consistait en un faisceau d'électrons ciblant directement le patient à petites doses pendant une courte période. La seconde visait d’abord le faisceau d’électrons à haute énergie sur une «cible» métallique, ce qui le convertirait essentiellement en rayons X qui seraient ensuite transmis au patient.

Dans les modèles précédents de la machine Therac, pour ce second mode de fonctionnement, il existait des dispositifs de sécurité physiques garantissant la mise en place de cette cible, sans quoi des faisceaux de très haute énergie pourraient être déclenchés par erreur directement sur le patient. Dans le nouveau modèle, ces coffres-forts physiques ont été remplacés par des logiciels.

Malheureusement, il y avait un bug dans le logiciel: un «débordement arithmétique» se produisait parfois lors des contrôles de sécurité automatiques. En gros, cela signifie que le système utilisait un nombre trop grand pour être pris en charge dans ses calculs internes. Si, à ce moment précis, l'opérateur configurait la machine, les contrôles de sécurité échoueraient et la cible en métal ne serait pas mise en place. Le résultat a été que des faisceaux 100 fois plus élevés que la dose prévue seraient renvoyés vers un patient, ce qui lui causerait un empoisonnement par radiation. Cela s'est produit à 6 reprises connues, entraînant la mort ultérieure de 4 patients.

9

Glitch «Sang corrompu» de World of Warcraft 13 septembre 2005

Le très réussi World of Warcraft (WoW), un jeu en ligne créé par Blizzard Entertainment, a connu un embarras embarrassant à la suite d'une mise à jour de son jeu le 13 septembre 2005 - causant la mort (fictive) massive. Suite à une mise à jour du contenu du jeu, un nouveau personnage ennemi, Hakkar, a été introduit. Il était capable d'infliger une maladie, appelée Sang corrompu, aux personnages jouant qui perdraient leur santé au fil du temps. Cette maladie pouvait être transmise d’un joueur à l’autre, comme dans le monde réel, et pouvait tuer tout personnage qui la contractait. Cet effet devait être strictement localisé dans la zone de jeu habitée par Hakkar.

Cependant, une chose a été négligée: les joueurs ont pu se téléporter dans d'autres zones du jeu tout en restant infectés et transmettre la maladie à d'autres, ce qui est exactement ce qui s'est passé. Je ne trouve aucun chiffre sur le nombre de morts, mais des villes entières du monde du jeu étaient des zones interdites, avec des cadavres de joueurs morts jonchant les rues. Heureusement, la mort du joueur n’est pas permanente dans WoW et l’événement a vite pris fin lorsque les administrateurs du jeu ont réinitialisé les serveurs et appliqué d’autres mises à jour logicielles. La façon dont les réactions des joueurs dans le jeu peuvent refléter de près les réactions d’un incident similaire dans la vie réelle est particulièrement intéressante.

8

Blackout Blackout 14 août 2003

Affectant environ 55 millions de personnes, principalement dans le nord-est des États-Unis, mais également en Ontario et au Canada, il s’agit de l’une des plus grandes pannes de courant de l’histoire. Tout a commencé lorsqu'une centrale électrique située le long de la rive sud du lac Érié, dans l'Ohio, a été mise hors service en raison d'une demande élevée, ce qui a exercé une plus grande pression sur le reste du réseau électrique. Lorsque les lignes électriques sont soumises à une charge électrique plus lourde, elles chauffent, ce qui signifie que le matériau constituant le câble (généralement de l'aluminium et de l'acier) se dilate. Plusieurs lignes électriques pendaient plus bas lors de leur expansion et de la capture d'arbres, ce qui les abattait et soumettait le système à une pression accrue. Cela a conduit à un effet en cascade qui a finalement réduit le réseau électrique à 20% de la sortie normale.

Bien que les causes de cette panne n’aient rien à voir avec un bogue logiciel, elle aurait pu être évitée s’il n’y en avait pas un dans le système d’alarme du centre de contrôle. Dans ce que l'on appelle un scénario de «situation de concurrence», deux parties du système étaient en concurrence sur la même ressource et étaient incapables de résoudre le conflit, ce qui a provoqué le blocage du système d'alarme et l'arrêt du traitement des alertes. Malheureusement, le système d’alarme est tombé en panne «en silence», c’est-à-dire qu’il est tombé en panne, mais n’a pas averti qui que ce soit. Cela signifiait qu'aucune alerte sonore ou visuelle n'était transmise au personnel de la salle de contrôle, qui s'en remettait de plus en plus à la connaissance de la situation. Les séquelles ont été bien rapportées et ont laissé de nombreuses régions sans électricité pendant plusieurs jours et ont affecté l’industrie, les services publics et la communication. On a également reproché à ce dernier d'avoir contribué au moins à plusieurs décès.

7

Incident du USS Yorktown le 21 septembre 1997

Dans le monde du développement logiciel, les programmeurs rencontrent et doivent remédier à plusieurs problèmes connus. Un exemple de ce type est le bug "diviser par zéro", où un calcul est effectué qui divise un nombre quelconque par zéro.Un tel calcul ne peut pas être résolu, du moins sans utiliser des mathématiques avancées, et la plupart des logiciels - pour tout, des super-ordinateurs aux calculatrices de poche - sont conçus pour prendre en compte ce scénario.

C’est donc avec un certain embarras que l’USS Yorktown a subi une défaillance complète de son système de propulsion et est resté dans l’eau pendant près de 3 heures lorsqu'un membre de l’équipage a saisi un «0» dans le système de gestion de base de données embarqué. utilisé dans un calcul de division. Le logiciel a été installé dans le cadre d’une opération plus large consistant à utiliser des ordinateurs afin de réduire la main-d’œuvre nécessaire à la gestion de certains navires. Heureusement, le navire était engagé dans des manœuvres au moment de l'incident, plutôt que déployé dans un environnement de combat, ce qui aurait pu avoir des conséquences plus graves.

6

Explosion d'un gazoduc transsibérien 1982

C’est un peu exagéré et n’est peut-être jamais arrivé, mais, s’il est vrai, c’est un exemple frappant d’un bogue logiciel introduit délibérément qui a provoqué un incident majeur.

Pendant la guerre froide, alors que les relations entre les États-Unis et la Russie soviétique étaient un peu glaciales, la CIA aurait délibérément inséré des bogues dans un logiciel vendu par une entreprise canadienne - un logiciel utilisé pour contrôler le gazoduc transsibérien . La CIA a pensé que la Russie achetait ce système par l’intermédiaire d’une société canadienne afin d’obtenir secrètement la technologie américaine, ce qui serait une occasion de leur fournir du matériel défectueux.

Ces pratiques ont ensuite été mentionnées dans le «Dossier de départ» déclassifié, où, entre autres choses, il est allégué que des turbines défectueuses ont en fait été utilisées sur un gazoduc. L’ancien secrétaire de l’armée de l’air, Thomas C. Reed, a affirmé qu’une série de bugs avaient été introduits pour permettre au système de passer les tests mais de casser pendant l’utilisation effective. Les réglages pour les pompes et les vannes devaient dépasser les pressions auxquelles le pipeline pouvait résister, ce qui a conduit à une explosion dite la plus grande explosion non nucléaire jamais enregistrée.

Anatoly Medetsky, une ancienne combattante du KGB, a toutefois contredit ces affirmations, affirmant que l'explosion avait été provoquée par une construction sous le pair plutôt que par un sabotage délibéré. Quelle que soit la cause, aucune victime connue n'a été signalée, l'explosion s'étant produite dans une région très éloignée.





5

Crise des missiles de la guerre froide 26 septembre 1983

Stanislav Petrov était l'officier de service d'un bunker secret près de Moscou chargé de surveiller le système de satellites d'alerte précoce soviétiques. Juste après minuit, ils ont été alertés par le lancement par les États-Unis de cinq missiles balistiques intercontinentaux Minuteman. Dans le cadre de la doctrine de destruction mutuellement assurée mise en vigueur pendant la guerre froide, la réponse à une attaque d'une puissance constituerait une attaque de vengeance de l'autre.

Cela signifiait que si l'attaque était réelle, ils devaient réagir rapidement. Cependant, il semblait étrange que les États-Unis attaquent avec seulement une poignée d’ogives: bien qu’elles causent des dégâts énormes et des pertes en vies humaines, cela ne suffirait même pas à éliminer l’opposition soviétique. De plus, les stations radar au sol ne détectaient aucun contact, bien que celles-ci ne puissent pas détecter au-delà de l'horizon à cause de la courbure de la Terre, ce qui aurait pu expliquer le retard.

Un autre élément à prendre en compte était le système d’alerte précoce lui-même, qui présentait des défauts et qui avait été mis en service d’emblée. Petrov a pesé tous ces facteurs et a décidé de déclarer l'alerte comme une fausse alerte. Bien que Petrov n’ait pas mis le doigt sur le bouton nucléaire en tant que tel, s’il avait recommandé à ses supérieurs de prendre l’attaque comme une réalité, cela aurait pu conduire à une guerre nucléaire totale. Que ce soit basé sur l'expérience, l'intuition ou simplement la chance, la décision de Petrov était la bonne.

Il a été déterminé par la suite que le logiciel de détection précoce avait capté la réflexion du soleil depuis le sommet des nuages ​​et l'avait mal interprétée comme un lancement de missile.

4

Sony CD Protection contre la copie malveillante

La guerre apparemment sans fin entre les médias et les pirates fluctue chaque année. Dès que de nouvelles méthodes de protection et de distribution sécurisée des supports sont trouvées, de nouvelles méthodes pour contourner et compromettre ces mesures sont découvertes.

Certains diront que Sony BGM est allé trop loin en 2005, en introduisant une nouvelle forme de protection contre la copie sur certains de ses CD audio. Lorsqu'ils sont lus avec un ordinateur Windows, ces CD installent un logiciel appelé «rootkit». Un rootkit est une forme de logiciel qui pénètre profondément dans un ordinateur et modifie certains processus fondamentaux. Bien qu’il ne soit pas toujours malveillant par nature, un rootkit est souvent utilisé pour installer furtivement des logiciels malveillants et difficiles à détecter (ou supprimer), tels que des virus, des chevaux de Troie, etc. Dans le cas de Sony BMG, l’objectif était de contrôler le fonctionnement d’un ordinateur Windows. ont utilisé les CD Sony pour empêcher leur copie ou leur conversion en MP3, ce qui les aiderait à réduire le piratage de leurs supports.

Le rootkit a atteint cet objectif - mais en prenant des mesures pour se cacher de l'utilisateur, il a permis aux virus et autres logiciels malveillants de se cacher. La mise en œuvre mal conçue et la perception croissante selon laquelle Sony BMG n’a aucune raison de manipuler sournoisement les ordinateurs des utilisateurs ont eu pour effet que tout le projet s’est retourné contre lui. De nombreuses sociétés de sécurité informatique ont classé le rootkit en tant que programme malveillant, ainsi que plusieurs poursuites judiciaires et un rappel de produit des CD incriminés.

3

Patriot Missile Bug le 25 février 1991

Au cours de l'opération Desert Shield, l'armée américaine a déployé le système de missiles Patriot comme défense contre les avions et les missiles - en l'occurrence des missiles irakiens Al Hussein (SCUD).Le logiciel de suivi du missile Patriot utilise la vitesse de sa cible et l'heure actuelle pour prédire où la cible se trouvera d'un instant à l'autre. Étant donné que diverses cibles peuvent se déplacer à des vitesses pouvant atteindre MACH 5, ces calculs doivent être très précis.

À l'époque, le logiciel de ciblage contenait un bogue qui signifiait qu'avec le temps, l'horloge interne «dériverait» (comme toute horloge) par rapport à l'heure exacte, plus le système fonctionnerait longtemps. En fait, le bogue était déjà connu et il a simplement été corrigé en redémarrant régulièrement le système, ce qui a réinitialisé l'horloge système.

Malheureusement, les responsables ne comprenaient pas clairement à quel point ils devaient «régulièrement» redémarrer le système. Le système a été laissé en marche pendant 100 heures. Lorsqu'un missile irakien a été lancé contre un aérodrome américain à Dhahran, en Arabie Saoudite, il a été détecté par le système de missiles Patriot. Cependant, à ce moment-là, l'horloge interne avait dérivé de 0,34 seconde, alors quand elle a essayé de calculer la position du missile, elle regardait une zone du ciel située à plus d'un demi-kilomètre du véritable emplacement des missiles. Il a rapidement supposé qu'il n'y avait pas de missile ennemi après tout et a annulé l'interception. Le missile a été emporté à destination où il a tué 28 soldats et en a blessé 98 autres.

2

Bogue du millénaire


Le bogue du millénaire, ou Y2K, est le bogue le plus connu de cette liste et celui dont beaucoup d'entre nous se souviennent avoir entendu parler à l'époque. Fondamentalement, ce bogue résultait de la myopie combinée des professionnels de l'informatique au cours des décennies précédant l'an 2000. Dans de nombreux systèmes informatiques, deux chiffres étaient utilisés pour indiquer la date, par exemple. 98 au lieu de 1998, une pratique qui semblait raisonnable et qui précède de quelque temps les ordinateurs.

Cependant, beaucoup ne pensaient pas qu'il pourrait y avoir un problème lorsque la date dépasserait l'an 2000. En utilisant les systèmes actuels, l'an 2000 ne pourrait être représenté que par «00», ce qui pourrait prêter à confusion pour les ordinateurs et faire croire que cela signifiait 1900. Une telle chose irait à l’encontre de tous les calculs portant sur plusieurs années qui ont traversé le millénaire. Par exemple, il est possible que la personne née en 1920 et décédée en 2001 ait moins 19 ans.

En réponse à ce problème, les éditeurs de logiciels ont rapidement mis à jour leurs produits, qui contrôlaient déjà à peu près tout, des opérations bancaires et de la paie aux ordinateurs des hôpitaux et aux systèmes de tickets de train. En outre, en reconnaissance de sa nature mondiale, le Centre international de coopération pour le passage à l’an 2000 a été créé en février 1999 afin de coordonner les travaux nécessaires à la préparation du nouveau millénaire entre gouvernements et organisations, le cas échéant. En fin de compte, le Nouvel An s'est passé sans trop d'incidents, outre la gueule de bois universelle.

Il est difficile de dire à quel point ce succès est le résultat du travail effectué pour atténuer le problème, ou si le problème avait été exagéré dans les médias au départ - probablement un mélange des deux.

1

Année 2038


Bien que l'an 2000 soit adopté, nous ne sommes pas encore au bout de nos peines. Tous les ordinateurs ne traitent pas les dates de la même manière, et de nombreux ordinateurs basés sur le système d'exploitation UNIX gèrent les dates en comptant le nombre de secondes depuis une date depuis le 01/01/1970. Par exemple, la date du 01/01/1980 est 315 532 800 secondes après le 01/01/1970. Ce numéro est stocké sur ces ordinateurs en tant qu '«entier signé 32 bits», dont la taille est limitée à 2147483647. Cela signifie en gros qu'il ne peut gérer que les dates jusqu'à 2147483647 secondes après le 01/01/1970 - ce qui ne nous prend que jusqu'au 19 janvier 2038, après quoi nous risquons d'avoir de nouveau des problèmes.

Cela est particulièrement vrai lorsque nous considérons que les logiciels UNIX sont plus couramment utilisés dans des "systèmes embarqués" que sur un PC domestique, c'est-à-dire des systèmes ayant une fonction très spécifique étroitement liée à leur matériel, tels que les logiciels pour lignes d'assemblage robotisées. , horloges numériques, routeurs de réseau, systèmes de sécurité, etc.

En outre, il faudra bien que nous réfléchissions à ce que nous allons faire le 1er janvier 10 000. Pas moi cependant.