Google təhlükəsiz KataOS əməliyyat sistemi üçün kodu açıb

Google, quraşdırılmış aparat üçün təhlükəsiz əməliyyat sisteminin yaradılmasına yönəlmiş KataOS layihəsi ilə bağlı inkişafların aşkar edildiyini elan etdi. KataOS sisteminin komponentləri Rust dilində yazılmışdır və seL4 mikrokernelinin üstündə işləyir, bunun üçün RISC-V sistemlərində etibarlılığın riyazi sübutu verilmişdir ki, bu da kodun rəsmi dildə göstərilən spesifikasiyalara tam uyğun olduğunu göstərir. Layihə kodu Apache 2.0 lisenziyası altında açıqdır.

Sistem RISC-V və ARM64 arxitekturalarına əsaslanan platformalara dəstək verir. Aparat üzərində seL4 və KataOS mühitinin işini simulyasiya etmək üçün inkişaf prosesində Renode çərçivəsi istifadə olunur. İstinad tətbiqi olaraq, OpenTitan platforması əsasında KataOS-u təhlükəsiz çiplərlə birləşdirən Sparrow proqram və aparat kompleksi təklif olunur. Təklif olunan həll məntiqi cəhətdən təsdiqlənmiş əməliyyat sistemi nüvəsini OpenTitan platforması və RISC-V arxitekturasından istifadə etməklə qurulmuş etibarlı aparat komponentləri (RoT, Root of Trust) ilə birləşdirməyə imkan verir. KataOS kodu ilə yanaşı, gələcəkdə bütün digər Sparrow komponentlərinin, o cümlədən aparat komponentinin açılması planlaşdırılır.

Platforma maşın öyrənməsi və məxfi məlumatların emalı üçün proqramları işə salmaq üçün nəzərdə tutulmuş, xüsusi qorunma səviyyəsini və nasazlıqların olmamasını təsdiqləyən xüsusi çiplərdə tətbiqi nəzərə alınmaqla hazırlanır. Bu cür tətbiqlərə misal olaraq insanların şəkillərini və səs yazılarını manipulyasiya edən sistemləri göstərmək olar. KataOS-un etibarlılığın yoxlanılmasından istifadə etməsi, sistemin bir hissəsi uğursuz olarsa, uğursuzluğun sistemin qalan hissəsinə və xüsusən də nüvəyə və kritik hissələrə yayılmamasını təmin edir.

seL4 arxitekturası nüvə resurslarını idarə etmək üçün hissələrin istifadəçi məkanına köçürülməsi və istifadəçi resursları kimi resurslar üçün eyni girişə nəzarət alətlərinin tətbiqi ilə diqqəti çəkir. Mikrokernel faylları, prosesləri, şəbəkə bağlantılarını və sairləri idarə etmək üçün hazır yüksək səviyyəli abstraksiyaları təmin etmir, bunun əvəzinə o, fiziki ünvan sahəsinə, kəsilmələrə və prosessor resurslarına girişi idarə etmək üçün yalnız minimal mexanizmləri təmin edir. Yüksək səviyyəli abstraksiyalar və hardware ilə qarşılıqlı əlaqə üçün drayverlər istifadəçi səviyyəsində tapşırıqlar şəklində mikro nüvənin üstündə ayrıca həyata keçirilir. Bu cür tapşırıqların mikrokerneldə mövcud olan resurslara çıxışı qaydaların müəyyən edilməsi yolu ilə təşkil edilir.

Əlavə qorunma üçün mikronüvədən başqa bütün komponentlər, boşaldıqdan sonra yaddaşa daxil olmaq, boş göstəricilərə istinadlar və buferin aşılması kimi problemlərə səbəb olan yaddaş səhvlərini minimuma endirən təhlükəsiz proqramlaşdırma üsullarından istifadə etməklə Rust-da yerli olaraq hazırlanmışdır. Rustda seL4 mühitində proqram yükləyicisi, sistem xidmətləri, proqramların işlənməsi üçün çərçivə, sistem çağırışlarına daxil olmaq üçün API, proses meneceri, dinamik yaddaşın ayrılması mexanizmi və s. yazılmışdır. Təsdiqlənmiş montaj seL4 layihəsi tərəfindən hazırlanmış CAmkES alət dəstindən istifadə edir. CAmkES üçün komponentlər də Rust-da yaradıla bilər.

Rust, istinad yoxlaması, obyekt sahibliyi və obyektin ömrünü izləmə (əhatə dairələri) vasitəsilə və icra müddətində yaddaşa girişlərin düzgünlüyünü qiymətləndirərək tərtib zamanı yaddaş təhlükəsizliyini təmin edir. Rust həmçinin tam ədədlərin daşmasına qarşı qoruma təmin edir, istifadə etməzdən əvvəl dəyişən dəyərlərin işə salınmasını tələb edir, defolt olaraq dəyişməz istinadlar və dəyişənlər konsepsiyasından istifadə edir və məntiqi səhvləri minimuma endirmək üçün güclü statik yazma təklif edir.

Mənbə: opennet.ru

Добавить комментарий