Programmeertalen bevatten nu ook al lekken

IOActive ontdekte de fouten bij een onderzoek naar een weinig gebruikt type geautomatiseerde codetesters zogeheten extended differential 'fuzzers'. Uit het onderzoek blijkt dat Python, Perl, NodeJS, JRuby en PHP allemaal kwetsbaarheden bevatten die door hackers misbruikt kunnen worden.
Fuzzers
IOActive gebruikte voor het onderzoek hybrid 'fuzzers'. De meest gebruikte 'fuzzers' in beveiligingsonderzoek zijn geautomatiseerde codetesters die ongeldige invoer, onverwachte of random data genereren als input voor de te testen software. Vervolgens wordt gekeken of het programma gaat 'hangen' of geheugenlekken vertoont.
Daarnaast bestaan zogeheten 'differential fuzzers'. Die voeren twee of meer implementaties uit van de te testen code en analyseren wat het effect is van de 'fuzzy' data ten opzichte van normale uitvoer van het programma. Hoe wel er een harde scheidslijn lijkt te zijn tussen 'gewone' fuzzers en differential fuzzers, is er ook nog een hybride vorm waarbij de analysetechnieken van beiden worden ingezet. Het onderzoek van IOActive richtte zich op de inzet van een nieuw type hybrid fuzzer (extended differential fuzzer) die in staat is kwetsbaarheden te ontdekken in individuele stukken software en in verschillende stukken software die hetzelfde gedrag vertonen.
- Python bevat een aantal ongedocumenteerde methoden en variabelen voor gebruik in een local environment die kwaadwillenden in staat stelt opdrachten door het besturingssysteem te laten uitvoeren.
- Perl heeft een typemaps function die het mogelijk maakt code uit te voeren als eval().
- NodeJS geeft foutmeldingen die aangeven of een bestand op de server aanwezig is en bovendien de eerste regels code van bestanden op de server kunnen onthullen. Dat biedt hackers mogelijk handvatten voor verdere acties.
- JRuby kan remote code uitvoeren op een functie die niet ontworpen is voor het uitvoeren van remote code. De fout zit in de Java-implementatie van de Ruby programmeertaal en niet in de standaard versie.
- De PHP benaming van constanten kunnen misbruikt gebruikt worden om extern gegeven commando's uit te voeren op het besturingssysteem.
IOActive gaat er van uit dat de gevonden kwetsbaarheden het gevolg zijn van menselijke fouten of pogingen software-ontwikkeling te vereenvoudigen en dat er geen sprake is van opzettelijk geïntroduceerde kwetsbaarheden. Het probleem is dat deze kwetsbaarheden gevolgen hebben voor reguliere applicaties die met de betreffende interpreters worden geparsed. Fernando Arnaboldi, de senior security consultant van het beveiligingsbedrijf beveelt daarom een snelle reparatie van de interpreters aan.
Een uitgebreide documentatie van de fouten staat in de whitepaper die IOActive heeft gepubliceerd. Arnaboldi concludeert verder dat het gebruik van extended differential fuzzers heel geschikt is voor de foutanalyse van vergelijkbare implementaties zoals programmeertalen, software standaarden, webbrowsers en cryptografische libraries.
Bekijk ook de update
Python-bedenker Guido van Rossum: 'Veel IT-beveiligings-onderzoekers zijn aandachtszoekers'
Reacties
Om een reactie achter te laten is een account vereist.
Inloggen Word abonnee