Google vil, men får ikke til, å kvitte seg med C++

75 prosent av feil brukt i nulldagsangrep knyttes til minnesikkerhet. Google mener de likevel ikke klarer å bli helt kvitt ikke-minnesikre språk.

Google har jobbet lenge for å bytte ut C og C++ med minnesikre språk som Rust eller Go, men innrømmer nå at de neppe kommer helt i mål med det første. 📸: NTB / Reuters
Google har jobbet lenge for å bytte ut C og C++ med minnesikre språk som Rust eller Go, men innrømmer nå at de neppe kommer helt i mål med det første. 📸: NTB / Reuters Vis mer

Google har i flere år jobbet med å øke bruken av minnesikre språk som Rust, for å redusere risikoen for minnerelaterte sårbarheter som gjerne forbindes med språk som C og C++.

Men helt kvitt C og C++ blir de ikke. Det går frem av en bloggpost skrevet av fire Google-utviklere, melder The Register.

– Gitt den mengden C++-kode vi bruker, så forventer vi at det i uoverskuelig fremtid vil gjenstå en del moden og stabil kode som ikke er minnesikker, skriver Google.

75 prosent av sårbarheter

Ifølge Googles egne tall, er 75 prosent av sårbarheter ("CVE-er") som brukes i nulldagsangrep relatert til nettopp minnesikkerhet.

Nulldagsangrep er når noen utnytter en såkalt nulldags-sårbarhet ("zero-day vulnerability"), en svakhet i programvare som ikke er kjent fra før.

Rundt 70 prosent av alvorlige feil i store kodebaser har ifølge dem med minnesikkerhet å gjøre.

– I Google har vi vært oppmerksomme på dette i over to tiår, og er i ferd med å øke minnesikkerheten i programvaren vi bruker og lager, skriver Google.

Selskapet skriver at de fra starten av begynte å ta i bruk minnesikre språk som Java og Python, og senere lagde programmeringsspråket Go. I dag er en stor andel av Googles kodebase skrevet i disse språkene.

I den senere tid har imidlertid Google satset stadig mer på Rust som minnesikkert programmeringsspråk, og har til og med skrevet om en del av sin egen Go-kode til Rust.

Må lære å leve med koden

Google skriver at deres langsiktige strategi for å håndtere problemer knyttet til minnesikkerhet, er å integrere minnesikre språk i Googles kodebaser samtidig som de faser ut ikke-minnesikker kode i nyutviklet kode.

Men det vil altså fortsatt være en del C- og C++-kode som de kommer til å beholde.

Google sier imidlertid at de er nødt til å sørge for at denne koden blir så sikker som mulig. Dette skal gjøres blant annet gjennom det Google kaller "C++ hardening".

Mengden kode skrevet i ikke-minnesikre språk vil gradvis avta – men ikke bli helt borte. 📸: Google
Mengden kode skrevet i ikke-minnesikre språk vil gradvis avta – men ikke bli helt borte. 📸: Google Vis mer

– Vi bygger på sikkerhet i stor skala i vår ikke-minnesikre kode, basert på vår erfaring med å eliminere sårbarheter på web.

– Selv om vi ikke vil gjøre C og C++ minnesikre, eliminerer vi undergrupper av sårbarheten i koden vi eier, samt reduserer risikoen for gjenværende sårbarheter gjennom ulike tiltak.

💡 Få også med deg denne: Under NDC TechTown på Kongsberg tidligere i høst snakket Helge Penne i Thales Norway om hvordan C++ ikke er laget for å håndtere dagens sikkerhetstrusler – og at språket kan forsvinne: