Google xavfsiz KataOS operatsion tizimi uchun kodni ochdi

Google kompaniyasi o'rnatilgan apparatlar uchun xavfsiz operatsion tizim yaratishga qaratilgan KataOS loyihasi bilan bog'liq ishlanmalar kashf etilganini e'lon qildi. KataOS tizimining komponentlari Rust tilida yozilgan va seL4 mikroyadrosining tepasida ishlaydi, buning uchun RISC-V tizimlarida ishonchlilikning matematik isboti taqdim etilgan, bu kod rasmiy tilda ko'rsatilgan spetsifikatsiyalarga to'liq mos kelishini ko'rsatadi. Loyiha kodi Apache 2.0 litsenziyasi ostida ochiq.

Tizim RISC-V va ARM64 arxitekturalariga asoslangan platformalarni qo'llab-quvvatlaydi. Uskuna ustidagi seL4 va KataOS muhitining ishlashini simulyatsiya qilish uchun ishlab chiqish jarayonida Renode ramkasi qo'llaniladi. Malumot uchun dastur sifatida KataOS-ni OpenTitan platformasidagi xavfsiz chiplar bilan birlashtirgan Sparrow dasturiy-apparat kompleksi taklif etiladi. Taklif etilayotgan yechim mantiqiy tasdiqlangan operatsion tizim yadrosini OpenTitan platformasi va RISC-V arxitekturasi yordamida qurilgan ishonchli apparat komponentlari (RoT, Root of Trust) bilan birlashtirish imkonini beradi. KataOS kodidan tashqari, kelajakda Sparrow boshqa barcha komponentlarini, shu jumladan apparat komponentini ochish rejalashtirilgan.

Platforma maxsus himoya darajasini va nosozliklar yoʻqligini tasdiqlashni talab qiluvchi maxfiy maʼlumotlarni mashinada oʻrganish va qayta ishlash dasturlarini ishga tushirish uchun moʻljallangan ixtisoslashtirilgan chiplarda qoʻllanilishini hisobga olgan holda ishlab chiqilmoqda. Bunday ilovalarga misol sifatida odamlar tasvirlari va ovozli yozuvlarni boshqaradigan tizimlar kiradi. KataOS ishonchliligini tekshirishdan foydalanish, agar tizimning bir qismi ishlamay qolsa, buzilish tizimning qolgan qismiga, xususan, yadro va muhim qismlarga tarqalmasligini ta'minlaydi.

seL4 arxitekturasi yadro resurslarini boshqarish uchun qismlarni foydalanuvchi maydoniga ko'chirish va foydalanuvchi resurslari kabi resurslarga kirishni boshqarish vositalarini qo'llash bilan ajralib turadi. Mikroyadro fayllarni, jarayonlarni, tarmoq ulanishlarini va shunga o'xshashlarni boshqarish uchun tayyor yuqori darajadagi abstraktsiyalarni ta'minlamaydi, aksincha, u jismoniy manzil maydoniga, uzilishlar va protsessor resurslariga kirishni boshqarishning minimal mexanizmlarini taqdim etadi. Yuqori darajadagi abstraktsiyalar va apparat bilan o'zaro ta'sir qilish uchun drayverlar foydalanuvchi darajasidagi vazifalar shaklida mikroyadroning tepasida alohida amalga oshiriladi. Bunday vazifalarning mikroyadroda mavjud bo'lgan resurslarga kirishi qoidalarni aniqlash orqali tashkil etiladi.

Qo'shimcha himoya qilish uchun mikroyadrodan tashqari barcha komponentlar Rust-da xavfsiz dasturlash usullaridan foydalangan holda ishlab chiqilgan bo'lib, ular bo'shatilgandan so'ng xotiraga kirish, null ko'rsatkichni yo'qotish va buferni haddan tashqari oshirib yuborish kabi muammolarga olib keladigan xotira xatolarini minimallashtiradi. Rustda seL4 muhitidagi ilovalarni yuklovchi, tizim xizmatlari, ilovalarni ishlab chiqish uchun ramka, tizim chaqiruvlariga kirish uchun API, jarayon menejeri, dinamik xotira ajratish mexanizmi va boshqalar yozilgan. Tasdiqlangan yig'ilish seL4 loyihasi tomonidan ishlab chiqilgan CAmkES asboblar to'plamidan foydalanadi. CAmkES uchun komponentlar Rustda ham yaratilishi mumkin.

Rust kompilyatsiya vaqtida xotira xavfsizligini mos yozuvlarni tekshirish, ob'ektga egalik qilish va ob'ektning ishlash muddatini kuzatish (ko'lamlar) va ish vaqtida xotiraga kirishning to'g'riligini baholash orqali amalga oshiradi. Rust shuningdek, butun sonlarning to'lib ketishidan himoya qiladi, foydalanishdan oldin o'zgaruvchan qiymatlarni ishga tushirishni talab qiladi, sukut bo'yicha o'zgarmas havolalar va o'zgaruvchilar tushunchasidan foydalanadi va mantiqiy xatolarni minimallashtirish uchun kuchli statik yozishni taklif qiladi.

Manba: opennet.ru

a Izoh qo'shish