Programmeringsspråket Rust skiller seg ut ved at det både skal egne seg for lavnivåprogrammering i operativsystemer og tar vare på minnesikkerheten, i tillegg til at det har andre egenskaper som bidrar til mer korrekt kode.
Dette gjør at språket stadig oftere trekkes fram som alternativ til C/C++, ikke minst i programvare hvor minnesårbarheter kan utnyttes til å gjøre stor skade. Digi.no har tidligere skrevet om flere programvareprosjekter som har tatt i bruk, eller vurderer å ta i bruk Rust i forbindelse med enkelte komponenter:
- Med Rust skal TLS-modulen til Apaches webserver gjøres langt sikrere
- Torvalds avviser ikke at det kan bli Rust i Linux-kjernen
- Derfor valgte Microsoft å skrive en ny sikkerhetskomponent med språket Rust
Rust i Android
Nå viser det seg at også Google har fått øyene opp for Rust. I et lengre blogginnlegg, som blant annet forteller at de fleste av de alvorlige sårbarhetene som oppdages i Android, er knyttet til minnesikkerhet, opplyses det at det allerede i 18 måneder har blitt jobbet med å legge til Rust-støtte i Android Open Source Project.
Denne støtten er tatt i bruk i noen få prosjekter som vil bli navngitt i månedene som kommer, og da trolig under utviklerkonferansen Google I/O, som arrangeres virtuelt i andre halvdel av mai.
Det opplyses at det vil ta flere år å utvide dette til større deler av operativsystemet, blant annet fordi verktøy, testinfrastruktur og mye annet må oppdateres.
Skal ikke erstatte gammel C/C++-kode
I blogginnlegget drøftes det også hvor det er fornuftig å bruke Rust. Det konkluderes raskt med at det ikke lar seg gjennomføre å skrive om millioner av kodelinjer fra C/C++ til Rust. Samtidig vises det til en analyse som viser at de aller fleste minnesikkerhetsrelaterte feilene oppdages i ny eller nylig modifisert kode. I mer enn 50 prosent av tilfellene er feilene blitt funnet i kode hvor endringene har blitt gjort for mindre enn et år siden.
Dermed vil det være mest aktuelt for Android-prosjektet å bruke Rust i forbindelse med utvikling av ny lavnivåfunksjonalitet i operativsystemet.
På de høyere nivåene i Android benyttes allerede Java eller Kotlin, som ikke har de samme, potensielle minnesikkerhetsproblemene som C og C++.