Overslaan en naar de inhoud gaan

54 jaar oud lek in Turing Machine

De Zweedse hoogleraar computerwetenschappen Pontus Johnson heeft een lek gevonden in de universele Turing Machine (UTM), dat 54 jaar onontdekt is gebleven. Het lek zit in de referentie-implementatie van Minsky uit 1967.
vergrootglas
© Shutterstock
Shutterstock

Johnson is hoogleraar computerwetenschappen aan de Kungliga Tekniska högskolan in Zweden. Hij heeft zijn bevindingen gepubliceerd in een paper op ArXiv. Het lek heeft van Mitre de vermelding CVE-2021-32471 toebedeeld gekregen.

Johnson kon de Minsky-versie van de UTM zo ver krijgen om een programma te draaien dat hij zelf had gemaakt. Dat lukte goed doordat deze UTM-versie geen functionaliteit heeft voor inputvalidatie. Gebrek aan controle op input is een bekend beveiligingsprobleem, waardoor externe data-invoer kan leiden tot het uitvoeren van kwaadaardige code.

Begin van de tape

Volgens de specificaties van Minsky is zijn UTM een op tape gebaseerde machine die zeer eenvoudige programma’s leest en uitvoert vanaf een gesimuleerde tape. Gebruikers kunnen input creëren bij het begin van de tape, maar in het UTM-model mogen ze vervolgens geen wijzigingen meer aanbrengen in het programma dat dan volgt. De beveiliging bestaat uit een enkel getal dat de machine meldt dat de input van de gebruiker op een bepaald punt eindigt. Alles wat daarna komt is uitvoerbaar met de parameters die het systeem net daarvoor heeft gelezen. Johnson kon dit eenvoudig omzeilen.

Tegenover nieuwssite The Register meldt hij dat hier net als bij veel modernere systemen “het lek gebaseerd is op het verwarren van de machine. Wij wetenschappers beginnen graag met het basisprincipe dat als je iets kunt aantonen voor een klein, eenvoudig systeem er een kans is dat het ook voor grotere systemen geldt.” Het lek dat hij gevonden heeft in de Turing Machine heeft bijvoorbeeld wel wat weg van een SQL-injectielek.

Beter beveiligen met add-ons

Het lek werpt de vraag op of security by design wel mogelijk is: op welk punt in het ontwerpproces zou je beveiligingsfunctionaliteit moeten inbouwen? Volgens Johnson toont zijn experiment aan dat het geen zin heeft om dat tijdens het ontwerpproces te doen. “Alle mitigaties die ik maar kan bedenken hiervoor moeten add-ons zijn. Die kun je niet in het systeem inbouwen. En als dit de moeder aller computers is, dan kun je dus beveiliging niet van tevoren in een systeem inbouwen.”

Als troost meldt Johnson dat het lek niet bruikbaar is in de ‘echte wereld’ omdat het specifiek is voor de UTM-implementatie uit 1967.

Reacties

Om een reactie achter te laten is een account vereist.

Inloggen Word abonnee

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in