Zum Hauptinhalt Zur Navigation Zur Suche

Programmiersprache: Täuschungswettbewerb soll Rust sicherer machen

Bei dem Wettbewerb Underhanded Rust sollen Programmierer vorsätzlich Fehler in ihrem Code verstecken, die einer Überprüfung durch das Kernteam der Community standhalten. Explizites Ziel des Wettbewerb ist es, die noch junge Sprache Rust weiter abzusichern.
/ Sebastian Grüner
16 Kommentare Auf Google folgen (öffnet im neuen Fenster)
Die Rust-Community startet einen eigenen Underhanded-Wetterbewerb. (Bild: Andrew Magill, flickr.com)
Die Rust-Community startet einen eigenen Underhanded-Wetterbewerb. Bild: Andrew Magill, flickr.com / CC-BY 2.0

In Anlehnung an Underhanded C(öffnet im neuen Fenster) und Underhanded Crypto(öffnet im neuen Fenster) startet die Community der Programmiersprache Rust den Wettbewerb Underhanded Rust(öffnet im neuen Fenster). Zwar ist die Sprache Rust so konzipiert, typische Fehler zu vermeiden, die Programmierer meist unbeabsichtigt begehen. Mit dem Wettbewerb will die Community aber überprüfen, wie gut Rust vor vorsätzlich eingebauten Sicherheitslücken schützt oder eben wie einfach doch absichtlich Fehler in Rust eingebaut werden können.

In dem Aufruf zu dem Wettbewerb heißt es: "Wir fordern euch dazu auf, Rust anzugreifen – mit verständlichem, leicht lesbarem Code. Kannst du 100% sicheren Rust-Code schreiben, der einen Logik-Bug verbirgt? Oder einen Exploit in unsafe Rust verstecken, der einen Audit übersteht? Jetzt hast du die Gelegenheit!" Überprüft werden sollen die Einreichungen von dem Kernteam sowie einigen Community-Mitgliedern, die an der Erstellung der Programmiersprache beteiligt sind.

Bei der Aufgabenstellung für den Wettbewerb spielt das Team mit gängigen Klischees. So sollen sich die Teilnehmer bei ihrem noch Arbeitgeber, einem Payment-Startup, rächen, in dem Code erstellt wird, der von jeder durchgeführten Transaktion einen kleinen Teil zur eigenen Bereicherung abzweigt. Dieser Vorgang darf aber eben nicht offensichtlich aus dem Quellcode hervorgehen, sondern muss eventuell Fehler in Rust selbst ausnutzen oder einfach sehr gut versteckt sein.

Je kürzer der eingereichte Code umso besser. Pluspunkte in der Bewertung gibt es auch für jene Lücken, die sich "plausibel als Flüchtigkeitsfehler beim Entwickeln erklären" lassen könnten. Ebenso gibt es Extrapunkte für wenn Werkzeuge zur statischen Codeanalyse, sogenannte Linter, den Fehler nicht finden.


Relevante Themen