Abo
  • Services:
Anzeige
Die Programmiersprache Crema verzichtet bewusst auf die sogenannte Turing-Vollständigkeit.
Die Programmiersprache Crema verzichtet bewusst auf die sogenannte Turing-Vollständigkeit. (Bild: Screenshot Golem.de)

Crema: Eine Programmiersprache ohne Turing-Vollständigkeit

Die Programmiersprache Crema verzichtet bewusst auf die sogenannte Turing-Vollständigkeit.
Die Programmiersprache Crema verzichtet bewusst auf die sogenannte Turing-Vollständigkeit. (Bild: Screenshot Golem.de)

Um Sicherheitsprobleme zu vermeiden, versucht die Programmiersprache Crema, viele problematische Dinge nicht zuzulassen. Crema verzichtet dabei bewusst auf die sogenannte Turing-Vollständigkeit, um die Analyse des Codes zu erleichtern.

Anzeige

Crema ist eine Programmiersprache, die viele Dinge nicht kann, die in anderen Programmiersprachen selbstverständlich sind. Was zunächst nicht gerade attraktiv klingt, hat seine Gründe: Crema verzichtet auf bestimmte Features, um dabei möglichst sicher zu sein und die formale Analyse des Codes zu erleichtern. Auf der Konferenz Bsides Las Vegas stellte der IT-Sicherheitsforscher Jacob Torrey Crema vor.

Bei Crema handelt es sich um eine Programmiersprache, die nicht Turing-vollständig ist. Die Turing-Vollständigkeit ist ein Konzept aus der theoretischen Informatik und bezieht sich auf das Modell einer Turingmaschine. Praktisch alle gewöhnlichen Programmiersprachen sind Turing-vollständig. Das bedeutet, dass sich - mit der Einschränkung von Speicherverbrauch und Geschwindigkeit - diese Programmiersprachen alle gegenseitig emulieren können.

Halteproblem macht formale Analyse unmöglich

Das Problem: Ein Programm in einer Turing-vollständigen Sprache formal zu analysieren, ist in vielen Fällen unmöglich. Dafür sorgt das sogenannte Halteproblem. Es ist eines der fundamentalen Grundprinzipien der theoretischen Informatik. Demnach lässt sich durch ein anderes Programm nicht zuverlässig entscheiden, ob ein in einer Turing-vollständigen Sprache geschriebenes Programm jemals enden wird. Formale Verifikationssysteme - Torrey erwähnt etwa das Tool KLEE - sind damit grundsätzlich nicht in der Lage, ein in einer Turing-vollständigen Sprache geschriebenes Programm komplett auf bestimmte Fehler zu prüfen.

Konkret bedeutet das, dass in der Programmiersprache Crema endlos laufende Schleifen oder unbeschränkte Rekursionen nicht möglich sind. Crema ist damit für bestimmte Anwendungsfälle nicht geeignet, beispielsweise für Serverdienste, die dauerhaft laufen und auf Verbindungen warten. Auch für Programme mit Benutzerinterface ist Crema generell nicht geeignet. Gedacht ist die Programmiersprache vor allem zur Entwicklung von Parsern für Protokolle und Dateiformate. Gerade hier finden sich meist auch sehr viele Sicherheitslücken - mit fehlerhaften Eingabedaten können Angreifer häufig das Verhalten eines Programms unerwünscht kontrollieren.

Modell der Walther-Rekursion

Crema basiert dabei auf einem theoretischen Modell, in dem sich das Programm immer in einem bestimmten Zustand befindet, aber niemals zu einem früheren Zustand zurückkehren kann. Schleifen sind zwar möglich, sie werden aber - zumindest im Modell - in Abhängigkeit der Eingabedaten als separate Codepfade modelliert. Crema folgt dabei einem Konzept namens Walther-Rekursion, ein Modell, das der Darmstädter Informatik-Professor Christoph Walther in den frühen 90ern an der Technischen Universität Darmstadt entwickelt hat.

Crema ist nicht der erste Versuch, eine Programmiersprache ohne Turing-Vollständigkeit zu implementieren. Doch laut Torrey waren die meisten derartigen Versuche bisher äußerst kompliziert zu nutzen und daher für Programmierer unattraktiv. Crema hat Ähnlichkeit mit C und soll möglichst einfach nutzbar sein. Codebeispiele findet man im Wiki von Crema.

Quellcode unter freier Lizenz

Ein wissenschaftliches Hintergrundpaper zu Crema hat Torrey zusammen mit Mark Bridgman im Mai auf dem Langsec-Workshop der IEEE veröffentlicht. Crema nutzt das LLVM-Compiler-Framework und ist selbst in C++ geschrieben. Der Quellcode steht als freie Software unter der MIT-Lizenz auf Github zur Verfügung.


eye home zur Startseite
irata 05. Aug 2015

Soweit schon richtig. Nur Planeten zur Explosion bringen kann man damit nicht. Dafür...

hw75 05. Aug 2015

Der gravierende Unterschied besteht darin, dass nur for-Schleifen möglich sind, aber...

hw75 05. Aug 2015

Der Vorteil ist doch klar beschrieben: man kann ein solches Programm dann vollständig...



Anzeige

Stellenmarkt
  1. VBL. Versorgungsanstalt des Bundes und der Länder, Karlsruhe
  2. über Ratbacher GmbH, Raum Frankfurt
  3. eins energie in sachsen GmbH & Co. KG, Chemnitz
  4. Alfred Kärcher GmbH & Co. KG, Winnenden bei Stuttgart


Anzeige
Spiele-Angebote
  1. 29,99€
  2. 4,99€
  3. 22,90€ inkl. Versand

Folgen Sie uns
       

Anzeige
Whitepaper
  1. Sicherheitskonzeption für das App-getriebene Geschäft
  2. Sicherheitsrisiken bei der Dateifreigabe & -Synchronisation
  3. Kritische Bereiche der IT-Sicherheit in Unternehmen


  1. Apple

    Aktivierungssperre des iPads lässt sich umgehen

  2. Amazon

    Downloader-App aus dem Fire-TV-Store entfernt

  3. Autonomes Fahren

    Apple zeigt Interesse an selbstfahrenden Autos

  4. Sicherheit

    Geheimdienst warnt vor Cyberattacke auf russische Banken

  5. Super Mario Bros. (1985)

    Fahrt ab auf den Bruder!

  6. Canon EOS 5D Mark IV im Test

    Grundsolides Arbeitstier mit einer Portion Extravaganz

  7. PSX 2016

    Sony hat The Last of Us 2 angekündigt

  8. Raspberry Pi

    Schutz gegen Übernahme durch Hacker und Botnetze verbessert

  9. UHD-Blu-ray

    PowerDVD spielt 4K-Discs

  10. Raumfahrt

    Europa bleibt im All



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Nach Angriff auf Telekom: Mit dem Strafrecht Router ins Terrorcamp schicken oder so
Nach Angriff auf Telekom
Mit dem Strafrecht Router ins Terrorcamp schicken oder so
  1. 0-Day Tor und Firefox patchen ausgenutzten Javascript-Exploit
  2. Pornoseite Xhamster spricht von Fake-Leak
  3. Mitfahrgelegenheit.de 640.000 Ibans von Mitfahrzentrale-Nutzern kopiert

Digitalcharta: Operation am offenen Herzen der europäischen Demokratie
Digitalcharta
Operation am offenen Herzen der europäischen Demokratie
  1. EU-Kommission Mehrwertsteuer für digitale Medien soll sinken
  2. Vernetzte Geräte Verbraucherminister fordern Datenschutz im Haushalt
  3. Neue Richtlinie EU plant Netzsperren und Staatstrojaner

Garamantis: Vorsicht Vitrine, anfassen erwünscht!
Garamantis
Vorsicht Vitrine, anfassen erwünscht!
  1. Gentechnik Mediziner setzen einem Menschen Crispr-veränderte Zellen ein
  2. Zarm Zehn Sekunden schwerelos
  3. Mikroelektronik Wie eine Vakuumröhre - nur klein, stromsparend und schnell

  1. Re: Es sind immer die Ausländer

    Prinzeumel | 05:23

  2. Re: Verschränkung von Polizei und Geheimdienst...

    Rulf | 05:18

  3. Re: "... viele Millionen Unfälle jährlich...

    Prinzeumel | 05:15

  4. Re: Memristor fehlt noch

    Ach | 04:40

  5. Re: Noch umständlicherer Kopierschutz

    regiedie1. | 04:20


  1. 12:54

  2. 11:56

  3. 10:54

  4. 10:07

  5. 08:59

  6. 08:00

  7. 00:03

  8. 15:33


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel