Programmiersprache: Täuschungswettbewerb soll Rust sicherer machen
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.
- Anzeige Hier geht es zu Programmierung sicherer Systeme mit Rust bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.