Google je otvorio kod za sigurni operativni sustav KataOS

Google je najavio izdanje otvorenog koda svog projekta KataOS, čiji je cilj stvaranje sigurnog operativnog sustava za ugrađeni hardver. Sistemske komponente KataOS-a napisane su u Rustu i rade na mikrojezgri seL4, koja ima matematički dokaz pouzdanosti na RISC-V sustavima, demonstrirajući potpunu usklađenost sa specifikacijama koda definiranim u formalnom jeziku. Kod projekta je otvorenog koda pod licencom Apache 2.0.

Sustav podržava platforme temeljene na RISC-V i ARM64 arhitekturama. Renode framework se koristi tijekom razvoja za simulaciju seL4 i KataOS okruženja koje radi na hardveru. Kao referentna implementacija predložen je Sparrow hardverski i softverski sustav, koji kombinira KataOS sa sigurnim čipovima temeljenim na OpenTitan platformi. Ovo rješenje kombinira logički verificiranu jezgru operativnog sustava s pouzdanim hardverskim komponentama (RoT ili Root of Trust) izgrađenim korištenjem OpenTitan platforme i RISC-V arhitekture. Osim KataOS koda, planirano je da sve ostale Sparrow komponente, uključujući hardver, budu otvorenog koda.

Platforma se razvija s ciljem korištenja u specijaliziranim čipovima dizajniranim za pokretanje strojnog učenja i aplikacija za obradu osjetljivih podataka koje zahtijevaju posebnu razinu zaštite i provjere kvarova. Primjeri takvih aplikacija uključuju sustave koji manipuliraju ljudskim slikama i glasovnim snimkama. KataOS-ova upotreba provjere pouzdanosti osigurava da ako jedan dio sustava zakaže, to se neće proširiti na ostatak sustava, posebno na jezgru i kritične komponente.

Arhitektura seL4 značajna je po premještanju upravljanja resursima jezgre u korisnički prostor i primjeni istih mehanizama kontrole pristupa za te resurse kao i za korisničke resurse. Mikrojezgra ne pruža gotove apstrakcije visoke razine za upravljanje datotekama, procesima, mrežnim vezama i slično; umjesto toga pruža samo minimalne mehanizme za upravljanje pristupom fizičkom adresnom prostoru, prekidima i procesorskim resursima. Apstrakcije visoke razine i upravljački programi za interakciju s hardverom implementirani su zasebno na vrhu mikrojezgre kao zadaci koji se izvode na korisničkoj razini. Pristup resursima mikrojezgre od strane ovih zadataka organiziran je kroz definiciju pravila.

Radi dodatne zaštite, sve komponente osim mikrokernela inicijalno su razvijene u Rustu korištenjem sigurnih tehnika programiranja koje minimiziraju pogreške u memoriji koje mogu dovesti do problema poput pristupa memoriji nakon što je oslobođena, dereferenciranja nultih pokazivača i prekoračenja međuspremnika. Rust se također koristi za program za učitavanje aplikacija u seL4 okruženju, sistemske usluge, okvir za razvoj aplikacija, API za pristup sistemskim pozivima, upravitelj procesa, mehanizam dinamičke alokacije memorije i druge komponente. CAmkES alat, koji je razvio seL4 projekt, koristi se za verificirane verzije. Komponente za CAmkES također se mogu napisati u Rustu.

Rust osigurava sigurnost memorije tijekom kompajliranja putem provjere referenci, praćenja vlasništva objekata i obračuna životnog vijeka (opsega) objekata, kao i putem procjene valjanosti pristupa memoriji tijekom izvođenja. Rust također pruža zaštitu od prekoračenja cijelih brojeva, zahtijeva obveznu inicijalizaciju vrijednosti varijabli prije upotrebe, implementira koncept nepromjenjivih referenci i zadanih varijabli te nudi snažno statičko tipiziranje kako bi se smanjile logičke pogreške.

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster