image

Onderzoeker ontdekt 20-jaar oude bug in Mars Rover

vrijdag 27 juni 2014, 10:55 door Redactie, 4 reacties

Een onderzoeker heeft in een populair compressiealgoritme een 20-jaar oude bug ontdekt, die ook in de Mars Curiosity Rover aanwezig blijkt te zijn. Via de bug is het in de meeste gevallen mogelijk om een Denial of Service te veroorzaken, hoewel in sommige gevallen ook het uitvoeren van code mogelijk is.

De bug bevindt zich in het Lempel-Ziv-Oberhumer (LZO) algoritme, dat in 1994 door Markus Oberhumer werd ontwikkeld. Het is een zeer geraffineerd en efficiënt compressiealgoritme. Het zit zo goed in elkaar dat het vier tot vijf keer sneller is dan andere compressie-oplossingen zoals zlib en bzip.

Vanwege de snelheid en efficiëntie wordt het algoritme in zowel gesloten als opensourceprojecten gebruikt. Het is bijvoorbeeld aanwezig in vliegtuigen, automotive-systemen en andere ingebedde systemen. Ook OpenVPN, MPlayer2, Libav, FFmpeg, de Linux-kernel, Juniper Junos en nog veel meer programma's en systemen maken er gebruik van.

Bug

Onderzoeker Don Bailey ontdekte echter een subtiele bug in de code, die ontstaat als er een "Literal Run" wordt verwerkt. Dit is een stuk gecomprimeerde data die in werkelijkheid niet gecomprimeerd is. Literals zijn ongecomprimeerde bytes waarvan de gebruiker heeft besloten dat ze niet gecomprimeerd moeten worden.

Als het algoritme een Literal Run te verwerken krijgt ontstaat er een integer overflow die bij de meeste implementaties voor een Denial of Service zorgt. Op sommige architecturen is echter ook het uitvoeren van code mogelijk. Het gaat dan met name om op Libav/FFmpeg-gebaseerde software en projecten. Bailey waarschuwde de aanbieders van LZO, die inmiddels allemaal een update hebben uitgebracht.

Veilige code

De onderzoeker merkt op dat het spannend is om een lek te ontdekken dat al twee decennia bestaat, maar dat het ook iets zegt over de manier waarop geprogrammeerd wordt. Ondanks het belang van veilige code en de steeds groter wordende impact van software, zou veilig programmeren en security nog steeds als aparte discipline worden gezien. Maar de één kan niet zonder de ander, stelt Bailey. "Zonder engineering kun je je gebruikers geen security bieden en zonder security kan engineering geen stabiel platform bieden."

Reacties (4)
27-06-2014, 11:16 door Anoniem
Uit de reactie van de oorspronkelijke programmeur volgt dat het lek al een jaar bekend was en gerapporteerd door iemand anders, die niet gecredit wordt door Bailey. Ook blijkt het lek vrijwel onmogelijk te misbruiken:
http://fastcompression.blogspot.fr/2014/06/debunking-lz4-20-years-old-bug-myth.html
27-06-2014, 11:27 door Anoniem
"De onderzoeker merkt op dat het spannend is om een lek te ontdekken dat al twee decennia bestaat"...

Als je dat al spannend vindt... De meeste bugs die gevonden worden in software die bestaan al lang. Als een stuk
software al lang in gebruik is dan betekent dat niet dat er geen bugs in zitten, zeker niet als je het hebt over het soort
bugs wat hier bedoeld wordt (dwz bugs waar je bij normaal gebruik geen last van hebt).

En je kunt nog zoveel regeltjes opstellen over "veilig programmeren", het overgrote deel van iedere programmeerklus
bestaat toch altijd uit het gebruiken van spullen die anderen al eerder gemaakt hebben. Of het nou je tools zijn of
libraries.

Zelfs bij totaal nieuwe versies van programma's, waarbij de verkopers uitkramen dat het "allemaal herschreven is", is
een groot deel van de code copy-paste. Dat merk je altijd als er security problemen gevonden worden en deze ineens
zowel de oude als de totaal herschreven versie blijken te raken :-)
27-06-2014, 13:12 door Anoniem
De kop suggereert dat het erom gaat dat de bug in de Mars-rover zit. Het gaat erom dat de bug in een veel gebruikt algoritme zit dat zo wijd verspreid is dat het (als smeuïg voorbeeld) zelfs in de Mars-rover aanwezig is. Het risico voor de rover zal wel meevallen, ik betwijfel of kwaadwillenden over de middelen beschikken om daar een netwerkverbinding mee op te zetten.
28-06-2014, 09:29 door Anoniem
Stel dat die rover ineens terminator bleek te worden.... Kon je hem mooi uitzetten hiermee.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.