• Det vi gjør
  • Prosjekter
  • Aktuelt
  • Om oss
  • Bli med
Kontakt
Kontakt
Tilbake til aktuelt

Rust: fremtiden for sikker kode

På kort tid har Rust eliminert flere av sikkerhetsproblemene til C/C++. Hvorfor følger ikke C/C++ etter, og øker fokuset på sikkerhet?

Rust representerer en ny æra i systemspråk. Med sin åpne utviklingsmodell og fokus på effektivitet uten ekstra runtime-kostnader, skiller Rust seg tydelig ut fra mengden. Det som virkelig gjør det til et godt valg, er kombinasjonen av ytelse og uovertruffen sikkerhet.

Rust: fremtiden for sikker kode

Sikkerhetsutfordringer i C/C++

C/C++ har lenge dominert landskapet for systemprogramvare. Men det kommer også med flere betydelige sikkerhetsutfordringer. Ta for eksempel «use-after-free»-feil, hvor frigjort minne feilaktig blir brukt igjen, som kan føre til uforutsigbar atferd og systemkrasj. Eller bufferoverflyt, hvor data skrives utenfor tildelt minneområde. Det kan åpne for hacking og datatap.

Et godt eksempel er da en sårbarhet i Androids Binder-driver ble utnyttet av NSO Group, for å oppnå root-tilgang til Android-enheter, som tillot dem å overvåke telefoner. Dette understreker risikoen ved direkte minnehåndtering og C/ C++ sin kompleksitet.

Et annet eksempel på en sikkerhetsrisiko i systemprogrammering, er Heap Exploitation. Denne sårbarheten oppstår når noen finner svakheter i hvordan et program håndterer minnet sitt, og bruker disse til å kjøre sin egen kode. Dette kan føre til både hacking av systemer og stjeling av data.

I tillegg har C/C++ vært utsatt for andre alvorlige sårbarheter, som Integer Overflows og Format String Vulnerabilities. Det kan føre til alt fra systemkrasj til uautorisert dataaksess og kodeeksekusjon.

Rust – et sikrere alternativ

I motsetning til C/C++, tilbyr Rust en løsning som eliminerer mange av disse problemene. Ved å legge vekt på minnesikkerhet og forebygging av datakappløp, unngår Rust mange av de vanligste sårbarhetene som utfordrer C/C++. Dette blir spesielt tydelig i behandlingen av minneallokering og bufferhåndtering, hvor potensielt skadelige feil håndteres mye mer robust enn i C/C++. Noe som også er grunnen til at den nevnte Binder-driveren skrives om i Rust.

Rust skiller også mellom safe og unsafe. Det gjør det mulig å begrense bruken av utrygg kode til der det er strengt nødvendig. Dette gjør det mindre sannsynlig at det oppstår feil, samtidig som det gir utviklere friheten til å jobbe med mer komplekse oppgaver når det trengs.

Veksten til Rust innebærer også integrasjon i Linux-kjernen. Det er en milepæl i deres vekst og påvirkning da dette er det første språket noensinne (bortsett fra C) som får bli brukt i Linux-kjernen. Dette understreker industriens tiltro til Rust, når det gjelder å håndtere kritiske systemoppgaver med en høyere grad av sikkerhet og pålitelighet.

Hvorfor kan ikke C/C++ følge Rust?

Et naturlig spørsmål er hvorfor C/C++ ikke oppdaterer sine sikkerhetssystemer for å eliminere noen av sikkerhetsutfordringene. Svaret ligger nok dels i lang historie, dels i omfattende bruk. Endringer i kjerneegenskapene kan bryte kompatibiliteten med enormt mange eksisterende kode og systemer.

I tillegg er C/C++ sin kompleksitet og fleksibilitet både en styrke og en svakhet. Det gir stor kraft og kontroll, men øker risikoen for feil og sikkerhetsproblemer. Å gjøre radikale endringer for å etterligne Rust sin sikkerhetsmodell, ville kreve en grunnleggende omskriving av språket. Dette er en enorm oppgave både teknisk og praktisk. Som igjen fordrer et ønske om å endre seg – men vil de egentlig det?

Ikke en erstatter

Selv om Rust ikke vil erstatte C/C++ i alle sammenhenger, representerer det en betydelig endring i hvordan utviklere kan tilnærme seg systemprogrammering med større vekt på sikkerhet og pålitelighet. Denne endringen er avgjørende for fremtidens programvareutvikling.

Ta kontakt for en uforpliktende kaffeprat

Fremtidens programvareutvikling

Kontakt oss

Sammen gjør vi verden litt bedre, prosjekt for prosjekt.

Solwr – Plukkerobot som kommer til overalt

Evoy – Helelektriske båtmotorer

Spilka – En sirkulerbar fasade-løsning

Location:
Date: 24.04.2022
Kongsberg-Logo
Tomra-Logo
Nomono-Logo
Mars-Exploration-Logo
Merdslippen-Logo
Spilka-logo
Skiforbund-Logo
Roros-Produkter-Logo
Oskar-Sylte-Logo
Eelume-Logo
  • Det vi gjør
  • Prosjekter
  • Om oss
  • Bli med
  • Kontakt oss
  • Aktuelt
  • Åpenhetsloven
  • Personvern
  • Fakturainformasjon
Ønsker du siste nytt fra Inventas rett i innboksen?

Meld deg på nyhetsbrev for å få små og store oppdateringer på arrangementer i nærheten, nytt faglig innhold og trender i din bransje. Vi tar ditt personvern på alvor. Les mer om våre rettigheter her.

Vi er Inventas. Norges ledende produktutviklingsbyrå.

  • Facebook
  • Instagram
  • LinkedIn