Vreemde insecten en de verhalen erachter

Skurrile Bugs und die Geschichten dahinter

Als je op het World Wide Web zoekt naar vreemde, verbazingwekkende en grappige bugs, zul je veel interessante verhalen vinden.
In dit artikel willen we een aantal beroemde bugs samenvatten – van amusant tot zeer destructief.
Overigens is de ontdekking en oplossing vaak net zo interessant als de bug zelf.

De 500-mijl e-mail bug

Een van de meest merkwaardige bugs werd ontdekt in een e-mailsysteem van een universiteit.
Een professor merkte dat e-mails naar ontvangers binnen een straal van 500 mijl zonder problemen werden afgeleverd, terwijl e-mails naar ontvangers verder weg nooit aankwamen.

Hoe kon dat?
Na veel wikken en wegen in de code bleek dat de fout zat in een time-out parameter die gebaseerd was op een tijdsperiode waarin lichtsignalen een bepaalde afstand konden afleggen.
Aangezien de ontwikkelaars de lichtsnelheid hadden gebruikt in de berekening, resulteerde dit in een zeer reële, zij het onbedoelde, “horizon” van 500 mijl voor e-mailcommunicatie.
Na het aanpassen van de time-out parameter was de bug verholpen.

Overigens is deze bug ook verantwoordelijk voor de naam van een nieuwsbrief en blog die alleen over absurde softwarebugs gaat.
De nieuwsbrief, die zeker het lezen waard is, heet 500 Mile Email en is opgericht door Harley Hicks.

De Mars Klimaat Orbiter

De Mars Climate Orbiter was een NASA-sonde die in 1999 naar Mars werd gestuurd als onderdeel van het Discovery-programma, maar uiteindelijk gewoon opbrandde door een even beroemde als eenvoudige softwarebug.
Dit roemloze einde van wat destijds een high-tech systeem was, werd veroorzaakt door een simpele verwisseling van eenheden: terwijl het navigatieteam zijn berekeningen uitvoerde in metrische eenheden, gebruikte de software van de orbiter Anglo-Amerikaanse meeteenheden.
Het gebruikte daarom eenheden zoals pounds (voor gewicht), inches en feet (voor lengte) en gallons (voor volume), die verschilden van metrische eenheden zoals kilogram, meter en liter.
Door deze discrepantie vloog de orbiter veel dichter naar Mars dan gepland en verbrandde uiteindelijk in de Martiaanse atmosfeer.

Wat kunnen we hiervan leren?
Het incident laat ons zien hoe belangrijk het is om gemeenschappelijke standaarden en communicatievormen af te spreken bij softwareontwikkeling en om consequent vast te houden aan de afgesproken standaarden.

De Pentium FDIV-bug

Een ander zeer beroemd voorbeeld is de FDIV-bug in Intels Pentium-processors in het midden van de jaren negentig.
Deze bug in de drijvende-kommadeling zorgde ervoor dat de processor voor bepaalde delingen onjuiste resultaten teruggaf.
Hoewel de bug alleen onder zeer specifieke omstandigheden optrad en de meeste gebruikers het waarschijnlijk nooit zouden hebben opgemerkt, leidde de publieke aandacht die het kreeg er uiteindelijk toe dat Intel een vervangingscampagne startte.
Dit incident demonstreerde het belang van nauwkeurigheid bij de ontwikkeling van hardware en het groeiende bewustzijn van het publiek voor technische details.

Overigens is de fout zo bekend dat er een apart Wikipedia-artikel over bestaat, dat je hier kunt lezen.

De millenniumbug

Een van de beroemdste en mogelijk catastrofaalste bugs in de geschiedenis van de technologie was de Y2K-bug, ook bekend als het Jaar 2000-probleem.
De bug kwam voort uit de gewoonte om het jaar in computersystemen met slechts twee cijfers te coderen (bijvoorbeeld “99” voor 1999) om geheugenruimte te besparen.
Dit leidde tot de wijdverspreide angst dat computersystemen bij de overgang van 1999 naar 2000 het jaar “00” zouden interpreteren als 1900 in plaats van 2000, wat zou kunnen leiden tot foutieve berekeningen en storingen in alles van banksystemen tot controlesystemen van elektriciteitscentrales.

Wereldwijd werden miljarden geïnvesteerd in het oplossen van het probleem door software bij te werken en systemen te testen om er zeker van te zijn dat ze het nieuwe millennium goed aankonden.
Dankzij deze inspanningen bleven de gevreesde catastrofale gevolgen grotendeels uit en dient de millenniumbug nu als waarschuwing voor het belang van vooruit plannen bij softwareontwikkeling.

De Heartbleed-bug

Heartbleed was een ernstig beveiligingslek in de OpenSSL-softwarebibliotheek dat in april 2014 werd ontdekt.
OpenSSL wordt veel gebruikt om de SSL- en TLS-protocollen voor internetcommunicatie te implementeren en biedt encryptie voor verschillende diensten om gevoelige gegevens zoals wachtwoorden en persoonlijke informatie te beschermen.

De bug stelde aanvallers in staat om het geheugen van webservers te lezen en zo toegang te krijgen tot een grote hoeveelheid gevoelige en vertrouwelijke gegevens zonder sporen achter te laten.
Het verontrustende in dit geval was niet alleen het gemak waarmee de bug kon worden uitgebuit, maar ook het feit dat de bug ongeveer twee jaar lang volledig onontdekt bleef.

Als gevolg hiervan leidde Heartbleed tot meer investeringen in de beveiliging van open source software en een beter begrip van het belang van beveiliging in de digitale wereld.

Conclusie

Deze anekdotes laten zien dat bugs in softwareontwikkeling soms bizarre vormen kunnen aannemen.
Dit zou ons eraan moeten herinneren dat ondanks alle vooruitgang in de technologie er nog steeds ruimte is voor (door de mens gemaakte) fouten, slordigheden en misverstanden die verstrekkende gevolgen kunnen hebben.
De verhalen over deze bugs zijn niet alleen vermakelijk, maar dienen ook als waardevolle lessen over het belang van zorgvuldigheid en grondige controle van werkproducten voordat ze worden vrijgegeven (d.w.z. vooral goed testen van software).