TETRA RustIEC
RustIEC is een VLAIO TETRA project (grant HBC.2021.0066) met als doel Vlaamse bedrijven de Rust programmeertaal te doen beheersen. Het project legt specifiek de focus op veiligheid in IoT systemen, veiligheid in edge computing en veiligheid in cloud computing.
Het RustIEC project wordt geleid door het Smartnets lab van de Vrije Universiteit Brussel en het DistriNet lab van de KU Leuven. Ontmoet het team!
Projectdoel
Problemen met geheugen, zoals geheugenlekken, buffer overflows en memory dumps, zijn heel gekende softwareproblemen die kunnen uitgebuit worden door aanvallers. Het aantal cyberaanvallen neemt jaar na jaar toe. Niet alleen grote bedrijven, maar ook kleine bedrijven worden steeds vaker het doelwit en kunnen hiervan heel nefaste gevolgen ondervinden.
Bij de meeste programmeertalen, zoals bijvoorbeeld C en C++, worden deze geheugenproblemen pas laattijdig opgemerkt, meestal wanneer ze tijdens het uitvoeren sporadisch optreden omdat ze bij compilatie of debuggen niet opvallen. Wanneer de problemen pas in productie optreden, kan er grote schade ondervonden worden. Het zoekproces naar de oorzaak kan trouwens zeer tijdrovend zijn.
De programmeertaal Rust biedt hierop een adequaat antwoord. De compiler laat de programmeur niet toe om onveilige code neer te schrijven. Inherent door ontwerp ligt het aantal softwarefouten in Rust geschreven programmeercode veel lager. Bijgevolg worden fouten reeds van in het begin van het proces vermeden, hetgeen het onderhoud van code veel doeltreffender maakt. Tevens laat Rust ook toe om performante code te genereren. De programmeertaal beschikt globaal gezien over goede documentatie en er zijn reeds veel bibliotheken ter beschikking, zowel voor ingebedde als niet ingebedde systemen.
De belangrijkste doelstelling van dit project is bedrijven kennis te laten maken met de voordelen die de Rust programmeertaal kan opleveren, zodat ze zelf een afweging kunnen maken voor toekomstige ontwikkelingen.
We hebben de volgende resultaten voor ogen:
- Twee uitgewerkte, gedocumenteerde gevalstudies, waarbij opstelling en code open beschikbaar worden gesteld.
- Benchmarks opgesteld voor het vergelijken van prestatie tussen Rust en gangbare programmeercode zoals C, C++, Python voor een aantal veel voorkomende en representatieve algoritmes in de domeinen van IoT-gedreven veilige webapplicaties.
- Uitgewerkt onderzoek naar de interoperabiliteit van Rust met andere programmeertalen en de overdraagbaarheid naar verschillende platformen.
- Onderzoek naar efficiëntie van C naar Rust conversietools zoals C2Rust en CRUST.
- Organisatie van één inleidende en één meer geavanceerde hands-on workshop om met Rust aan de slag te gaan en het ter beschikking stellen van het workshopmateriaal.
- Het integreren van de opgedane kennis in minstens drie cursussen voor beide onderzoeksinstellingen.
Het team
Het RustIEC project wordt geleid door het INDI/ETRO Smartnets lab van de Vrije Universiteit Brussel en het DistriNet lab van de KU Leuven.
Projectbegeleiders




Kris Steenhaut (Vrije Universiteit Brussel) heeft de ETRO/IRIS/Smartnets groep geleid vanaf 2005. Haar onderzoeksactiviteiten focussen op het ontwerp, de implementatie en de experimentele evaluatie van draadloze sensornetwerken en hun integratie op het Internet en het wereldwijde web. Onderwerpen van bijzondere belangstelling zijn voornamelijk interoperabiliteit, veiligheid en privacy en de interactie met fog en cloud. Kris Steenhaut heeft verschillende ITEA- en SBO-projecten en verschillende EU-projecten over Internet of Things, smart grid, slimme verlichting en milieubewaking begeleid. Zij speelt een actieve rol in de ontwikkelingssamenwerking met Cuba en Vietnam.
An Braeken (Vrije Universiteit Brussel) werd professor in 2007 aan de Erasmushogeschool Brussel, since 2013 aan de Vrije Universiteit Brussel in het departement Industriële Wetenschappen. Haar huidige interesses omvatten security- en privacyprotocols voor IoT, cloud, fog, blockchain en 5G security. Ze nam deel en coordineerde in meer dan 12 nationale en internationale projecten.
Jorn Lapon (KU Leuven) is een Research Manager in Secure Software van de DistriNet Research Group van de KU Leuven campus in Gent. Hij is zowel in de industrie als in de academische wereld actief geweest en doctoreerde in 2012 op Anonymous Credential Systems. Onderwerpen van bijzonder belang zijn IoT-beveiliging, met een focus op veilige ontwikkeling en beveiligingstesten. Zijn nauwe samenwerking met de industrie is waardevol gebleken voor zowel de bedrijven als het academisch onderzoek.
Stijn Volckaert (KU Leuven) is an assistant professor at imec-DistriNet, KU Leuven - Technology Campus Ghent. His research currently focuses on exploit mitigations, software diversity, multi-variant execution, and automated migration of legacy code to safe languages.
Projectmedewerkers


Ruben De Smet (Vrije Universiteit Brussel) gebruikt actief Rust sinds 2016 en heeft bijgedragen aan meerdere Rust "crates", onder meer in het asynchrone ecosysteem, in cryptografische bibliotheken en in de "qmetaobject" bibliotheek. Hij onderhoudt mede een reeks Signal bibliotheken en ontwikkelt een Signal client. Voor zijn doctoraatsonderzoek werkt hij aan peer-to-peer technologie. Ruben vervoegde de Belgium Rust User Group in 2017 en organiseert deze sinds 2020.
Diana Deac (Vrije Universiteit Brussel) begon onlangs software te ontwikkelen in Rust na het werken met Contiki-NG dat geschreven is in de C programmeertaal. Ze ontwierp een adaptieve scheduler voor Time Slotted Channel Hopping (TSCH) voor Contiki-NG. Momenteel werkt ze aan de implementatie van het RPL-protocol in Rust. De focus van haar doctoraatsonderzoek is het verbeteren van protocollen voor draadloze sensornetwerken met het oog op veiligheid.
Projectbijdragers



Thibaut Vandervelden (Vrije Universiteit Brussel) draagt bij aan verschillende Rust crates sinds 2019. Zijn hoofdzakelijke focus ligt op het schrijven van software voor ingebedde apparaten die gebruikmaken van laagvermogen draadloze protocols, zoals IEEE802.15.4. Hij draagde bij aan de smoltcp crate, waarin hij de 6LoWPAN implementatie voorzag. Hij werkt momenteel aan een RPL protocol implementatie. De prestaties van de Rust programmeertaal op ingebedde apparaten is de focus van zijn doctoraatsonderzoek.
Robrecht Blancquaert (Vrije Universiteit Brussel) werkt aan snelle, veilige implementaties van elliptische krommen voor laagvermogen ingebedde apparaten, met automatische specialisatie voor verschillende CPU architecturen.
Alicia Andries (KU Leuven) is een doctoraatsonderzoeker aan de imec-DistriNet onderzoeksgroep van de KU Leuven onder leiding van Stijn Volckaert. Ze werkt aan het semi-automatisch migreren van code in onveilige systeemprogrammeertalen naar veiligere alternatieven, zoals Rust. Zo werkt ze aan het vertalen van drivers naar Rust, waarbij ze de huidige beperkingen van bestaande automatische migratietools en Rust for Linux onderzoekt.
Workshops
Deel van de doelstelling van het RustIEC project is het organiseren van minstens één inleidende en twee geavanceerde hands-on workshops om met Rust aan de slag te gaan.
RustIEC 101
RustIEC 101 is onze beginnerscursus Rust, gebaseerd op de A-modules van de cursus "101-rs" door Tweede Golf. De materialen zijn beschikbaar in het Engels op https://101.rustiec.be/, en de broncode is beschikbaar op https://gitlab.com/etrovub/smartnets/rustiec-101/. Deze cursus wordt gedoceerd in vorm van een workshop op:
- 14 maart 2023 op de VUB campus;
- 27 maart 2023 op de VUB campus;
- 28 maart 2023 op de VUB campus;
aan in totaal 35 verwachte deelnemers.
Contact
Voor vragen die verband houden met de onderzoeksdomeinen van een medewerker of bijdrager, contacteert u gerust direct het relevante teamlid.
Algemene vragen, of project vervoegen

Wenst u met uw bedrijf het project te vervoegen, kan u contact opnemen met An Braeken, op an.braeken@vub.be.
Inhoudelijke vragen
Voor vragen en suggesties betreffende de inhoud van het project, kan u rechtstreeks de medewerkers en bijdragers contacteren.
Web, cloud en async

Betreffende cloud en webtechnologie neemt u contact op met Ruben De Smet op rubedesm@vub.be, alsook voor asynchroon programmeren.
Ingebedde software


Betreffende ingebedde software kan u contact opnemen met Thibaut Vandervelden en Diana Deac.
Automatische vertaling en Linux kerneldrivers


Omtrent automatische vertaling of vragen rond Linux kerneldriver ontwikkeling in Rust, neemt u contact op met Stijn Volckaert en Alicia Andries.
Kick-off meeting 24 november 2022
Ruben De Smet: RustIEC kick-off
Download slides "kick-off introduction"

Stijn Volckaert: Safe Systems Programming in Rust
Download slides "Safe Systems Programming in Rust"

Ruben De Smet & Thibaut Vandervelden: the Rust ecosystem
Download slides "Rust Ecosystem"

