Microsoftilla on ollut aina ongelmia Windows-koodin tietoturvan kanssa. Yhtiön itsensä mukaan noin 70 prosenttia haavoittuvuuksista on liittynyt siihen, miten koodi käsittelee muistia. Nyt tästä halutaan eroon ja keinoksi on valittu Rust-kieli.
Microsoftin Rust-kokeiluista on vihjattu jo pidemmän aikaa, mutta vasta viime kuussa yhtiö kertoi tarkempia tietoja projekteistaan. Hyper-V-kehitystiimiin kuuluva Adam Burch kertoi blogissaan, miten C++-kielellä aiemmin koodattu komponentti vaihdettiin Rust-koodiin.
Asiasta kerrottiin myös Microsoftin keynotessa RustFest-tapahtumassa Barcelonassa. Burchin mukaan hänen tehtäväkseen annettiin uudelleen koodata yksi alemman tason Windows-komponentti Rustilla, joka on alusta asti suunniteltu nimenomaan käsittelemään muistia ja dataa turvallisella tavalla.
Burchin mukaan Rustin käännin takaa sen, että tuotettu koodi ohittaa muistin käyttöön liittyvät haavoittuvuudet. Tämä antaa koodaajalle palon aiempaa enemmän luottamusta. Kääntimen varoitukset ja virheviestit ovat erittäin hyvin kirjoitettuja, minkä ansiosta myös aloittelevat Rust-koodaajat voivat nopeasti tunnistaa ja ratkaista koodinsa ongelmia.
Burchin mukaan Rustin voi oppia hyvin nopeasti. Kokenut C++koodaaja pääsee sisään kieleen muutamassa viikossa. Verkossa löytyy lisäksi paljon tutoriaaleja, kuinka siirtyä C:stä Rustiin.
Burch myöntää, että helpointa on kirjoittaa Rustilla kokonaan uusia ohjelmistokomponentteja. Vanhan C++-koodin vaihtaminen Rustiin on haastavaa, sillä usein C++-koodissa abstraktiot valuvat tasoilta toisille.
Tämä tarkoittaa käytännössä myös sitä, että Windowsin valtavaa koodimassaa voida kovin nopeasti vaihtaa Rustiin. Burchin mukaan Rust-koodi voidaan aika suoraviivaisesti liittää C++-massaan C:n sovellusbinääriliitäntöjen kautta, mutta tämä on toki työlästä ja vaatii oman proseduurinsa.