Google avas turvalise operatsioonisüsteemi KataOS koodi

Google teatas KataOS-projektiga seotud arenduste avastamisest, mille eesmärk on luua manustatud riistvara jaoks turvaline operatsioonisüsteem. KataOS süsteemi komponendid on kirjutatud Rust keeles ja töötavad seL4 mikrokerneli peal, mille usaldusväärsuse kohta on RISC-V süsteemides esitatud matemaatiline tõend, mis näitab, et kood vastab täielikult formaalses keeles määratud spetsifikatsioonidele. Projekti kood on avatud Apache 2.0 litsentsi all.

Süsteem toetab RISC-V ja ARM64 arhitektuuridel põhinevaid platvorme. SeL4 ja KataOS-i keskkonna toimimise simuleerimiseks riistvara peal kasutatakse arendusprotsessis Renode raamistikku. Võrdlusrakendusena on välja pakutud Sparrow tarkvara- ja riistvarakompleks, mis ühendab KataOS-i OpenTitani platvormil põhinevate turvaliste kiipidega. Pakutud lahendus võimaldab ühendada loogiliselt kontrollitud operatsioonisüsteemi tuuma usaldusväärsete riistvarakomponentidega (RoT, Root of Trust), mis on ehitatud OpenTitani platvormi ja RISC-V arhitektuuri abil. Lisaks KataOS-koodile on tulevikus plaanis avada ka kõik teised Sparrow komponendid, sealhulgas riistvarakomponent.

Platvormi arendamisel võetakse arvesse rakendusi spetsiaalsetes kiipides, mis on loodud masinõppeks ja konfidentsiaalse teabe töötlemiseks mõeldud rakenduste käitamiseks, mis nõuavad erilist kaitsetaset ja rikete puudumise kinnitamist. Selliste rakenduste näidete hulka kuuluvad süsteemid, mis manipuleerivad inimeste kujutisi ja helisalvestisi. KataOS-i töökindluse kontrolli kasutamine tagab, et kui üks süsteemi osa ebaõnnestub, ei levi tõrge ülejäänud süsteemile ja eelkõige tuumale ja kriitilistele osadele.

SeL4 arhitektuur on tähelepanuväärne selle poolest, et liigutab osi kerneli ressursside haldamiseks kasutajaruumi ja kasutab sellistele ressurssidele samu juurdepääsukontrolli tööriistu kui kasutajaressurssidele. Mikrotuum ei paku valmis kõrgetasemelisi abstraktsioone failide, protsesside, võrguühenduste jms haldamiseks, selle asemel pakub see vaid minimaalseid mehhanisme juurdepääsu kontrollimiseks füüsilisele aadressiruumile, katkestustele ja protsessori ressurssidele. Kõrgetasemelised abstraktsioonid ja draiverid riistvaraga suhtlemiseks rakendatakse mikrokerneli peale eraldi kasutajataseme ülesannete kujul. Selliste ülesannete juurdepääs mikrokernelile kättesaadavatele ressurssidele on korraldatud reeglite määratlemise kaudu.

Täiendava kaitse tagamiseks on kõik komponendid peale mikrokerneli algselt välja töötatud Rustis, kasutades turvalisi programmeerimistehnikaid, mis minimeerivad mäluvigu, mis põhjustavad probleeme, nagu mälu juurdepääs pärast vabastamist, nullkursori viited ja puhvri ülekoormus. Rustis kirjutati seL4 keskkonnas rakenduste laadija, süsteemiteenused, raamistik rakenduste arendamiseks, API süsteemikutsete juurdepääsuks, protsessihaldur, dünaamilise mälujaotuse mehhanism jne. Kontrollitud koost kasutab CAmkES-i tööriistakomplekti, mille on välja töötanud seL4 projekt. CAmkES-i komponente saab luua ka Rustis.

Rooste tagab mälu ohutuse kompileerimise ajal, kontrollides viidet, objektide omandiõigust ja objekti eluea jälgimist (ulatusalasid) ning hinnates mälupöörduste õigsust käitusajal. Rooste pakub ka kaitset täisarvude ülevoolu eest, nõuab muutujate väärtuste initsialiseerimist enne kasutamist, kasutab vaikimisi muutumatute viidete ja muutujate kontseptsiooni ning pakub tugevat staatilist tippimist loogiliste vigade minimeerimiseks.

Allikas: opennet.ru

Lisa kommentaar