|          1988 -- Buffer overflow          in Berkeley Unix finger daemon. The first internet worm (the so-called        Morris Worm) infects between 2,000 and 6,000 computers in less than a          day by taking advantage of a buffer overflow. The specific code is a function          in the standard input/output library routine called gets() designed to          get a line of text over the network. Unfortunately, gets() has no provision          to limit its input, and an overly large input allows the worm to take          over any machine to which it can connect.         Programmers respond          by attempting to stamp out the gets() function in working code, but they         refuse to remove it from the C programming language's standard input/output          library, where it remains to this day.         1988-1996 -- Kerberos          Random Number Generator. The authors of the Kerberos security system         neglect to properly "seed" the program's random number generator          with a truly random seed. As a result, for eight years it is possible          to trivially break into any computer that relies on Kerberos for authentication.          It is unknown if this bug was ever actually exploited.         January 15, 1990          -- AT&T Network Outage. A bug in a new release of the software          that controls AT&T's #4ESS long distance switches causes these mammoth          computers to crash when they receive a specific message from one of their          neighboring machines -- a message that the neighbors send out when they          recover from a crash.         One day a switch in          New York crashes and reboots, causing its neighboring switches to crash,          then their neighbors' neighbors, and so on. Soon, 114 switches are crashing          and rebooting every six seconds, leaving an estimated 60 thousand people          without long distance service for nine hours. The fix: engineers load          the previous software release.         1993 -- Intel Pentium          floating point divide. A silicon error causes Intel's highly promoted          Pentium chip to make mistakes when dividing floating-point numbers that          occur within a specific range. For example, dividing 4195835.0/3145727.0          yields 1.33374 instead of 1.33382, an error of 0.006 percent. Although          the bug affects few users, it becomes a public relations nightmare. With          an estimated 3 million to 5 million defective chips in circulation, at          first Intel only offers to replace Pentium chips for consumers who can          prove that they need high accuracy; eventually the company relents and          agrees to replace the chips for anyone who complains. The bug ultimately          costs Intel $475 million.  
 
 1995/1996 -- The          Ping of Death. A lack of sanity checks and error handling in the IP          fragmentation reassembly code makes it possible to crash a wide variety          of operating systems by sending a malformed "ping" packet from          anywhere on the internet. Most obviously affected are computers running          Windows, which lock up and display the so-called "blue screen of          death" when they receive these packets. But the attack also affects          many Macintosh and Unix systems as well.         June 4, 1996 -- Ariane          5 Flight 501. Working code for the Ariane 4 rocket is reused in the          Ariane 5, but the Ariane 5's faster engines trigger a bug in an arithmetic          routine inside the rocket's flight computer. The error is in the code          that converts a 64-bit floating-point number to a 16-bit signed integer.          The faster engines cause the 64-bit numbers to be larger in the Ariane          5 than in the Ariane 4, triggering an overflow condition that results          in the flight computer crashing.         First Flight 501's backup          computer crashes, followed 0.05 seconds later by a crash of the primary        computer. As a result of these crashed computers, the rocket's primary          processor overpowers the rocket's engines and causes the rocket to disintegrate          40 seconds after launch.        November 2000 --          National Cancer Institute, Panama City. In a series of accidents,          therapy planning software created by Multidata Systems International,          a U.S. firm, miscalculates the proper dosage of radiation for patients          undergoing radiation therapy.         Multidata's software          allows a radiation therapist to draw on a computer screen the placement          of metal shields called "blocks" designed to protect healthy          tissue from the radiation. But the software will only allow technicians          to use four shielding blocks, and the Panamanian doctors wish to use five.                  The doctors discover          that they can trick the software by drawing all five blocks as a single          large block with a hole in the middle. What the doctors don't realize          is that the Multidata software gives different answers in this configuration          depending on how the hole is drawn: draw it in one direction and the correct          dose is calculated, draw in another direction and the software recommends          twice the necessary exposure.         At least eight patients          die, while another 20 receive overdoses likely to cause significant health         problems. The physicians, who were legally required to double-check the          computer's calculations by hand, are indicted for murder.  | 
No comments:
Post a Comment