Google-ийн нээлттэй эх сурвалжийн аюулгүй үйлдлийн систем KataOS

Google компани суулгагдсан техник хангамжийн аюулгүй үйлдлийн системийг бий болгоход чиглэсэн KataOS төсөлтэй холбоотой бүтээн байгуулалтуудыг илрүүлснээ зарлалаа. KataOS системийн бүрэлдэхүүн хэсгүүд нь Rust хэл дээр бичигдсэн бөгөөд seL4 бичил цөм дээр ажилладаг бөгөөд RISC-V системүүд дээр найдвартай байдлын математик нотолгоог өгсөн бөгөөд код нь албан ёсны хэл дээр заасан техникийн үзүүлэлтүүдэд бүрэн нийцэж байгааг харуулж байна. Төслийн код нь Apache 2.0 лицензийн дагуу нээлттэй байна.

Систем нь RISC-V болон ARM64 архитектурт суурилсан платформуудад дэмжлэг үзүүлдэг. Техник хангамжийн дээд талд seL4 болон KataOS орчны ажиллагааг дуурайхын тулд хөгжүүлэлтийн явцад Renode хүрээг ашигладаг. Лавлагааны хэрэгжилтийн хувьд Sparrow програм хангамж, техник хангамжийн цогцолборыг санал болгож байна, KataOS-ийг OpenTitan платформ дээр суурилсан аюулгүй чипүүдтэй хослуулсан. Санал болгож буй шийдэл нь логикийн хувьд баталгаажсан үйлдлийн системийн цөмийг OpenTitan платформ болон RISC-V архитектур ашиглан бүтээгдсэн найдвартай техник хангамжийн бүрэлдэхүүн хэсгүүдтэй (RoT, Root of Trust) нэгтгэх боломжийг танд олгоно. Ирээдүйд KataOS кодоос гадна Sparrow-ийн бусад бүх бүрэлдэхүүн хэсгүүд, түүний дотор техник хангамжийн бүрэлдэхүүн хэсгүүдийг нээхээр төлөвлөж байна.

Тус платформыг тусгай түвшний хамгаалалт, алдаа дутагдалгүй эсэхийг баталгаажуулах шаардлагатай машин сурах, нууц мэдээллийг боловсруулах программуудыг ажиллуулах зориулалттай тусгай чипүүдэд ашиглах үүднээс боловсруулж байна. Ийм програмын жишээнд хүмүүсийн зураг, дуут бичлэгийг удирдах систем орно. KataOS-ийн найдвартай байдлын баталгаажуулалтыг ашиглах нь системийн аль нэг хэсэг нь доголдсон тохиолдолд алдаа нь системийн бусад хэсэгт, ялангуяа цөм болон чухал хэсгүүдэд тархахгүй гэдгийг баталгаажуулдаг.

seL4 архитектур нь цөмийн нөөцийг хэрэглэгчийн орон зайд удирдах хэсгүүдийг хөдөлгөж, хэрэглэгчийн нөөцийн адил хандалтын хяналтын хэрэгслүүдийг ашигладаггаараа онцлог юм. Микро цөм нь файлууд, процессууд, сүлжээний холболтууд болон бусад зүйлсийг удирдахад бэлэн өндөр түвшний хийсвэрлэлүүдийг өгдөггүй бөгөөд үүний оронд физик хаягийн зай, тасалдал, процессорын нөөцөд хандах хандалтыг хянах хамгийн бага механизмаар хангадаг. Техник хангамжтай харьцах өндөр түвшний хийсвэрлэл, драйверуудыг хэрэглэгчийн түвшний даалгавар хэлбэрээр микро цөмийн дээд талд тусад нь хэрэгжүүлдэг. Ийм даалгаврыг бичил цөмд байгаа нөөцөд хандах хандалтыг дүрмийн тодорхойлолтоор дамжуулан зохион байгуулдаг.

Нэмэлт хамгаалалтын үүднээс бичил цөмөөс бусад бүх бүрэлдэхүүн хэсгүүдийг аюулгүй програмчлалын техникийг ашиглан Rust программ дээр хөгжүүлсэн бөгөөд энэ нь санах ойг чөлөөлсний дараа санах ойд нэвтрэх, хоосон заагчийг хаах, буфер хэт ачаалах зэрэг асуудлуудад хүргэдэг санах ойн алдааг багасгадаг. seL4 орчин дахь хэрэглүүр дуудагч, системийн үйлчилгээ, програм хөгжүүлэх хүрээ, системийн дуудлагад хандах API, процессын менежер, динамик санах ой хуваарилах механизм гэх мэт зүйлсийг Rust дээр бичсэн. Баталгаажсан угсралтын хувьд seL4 төслөөс боловсруулсан CAmkES хэрэгслийг ашигладаг. CAmkES-д зориулсан бүрэлдэхүүн хэсгүүдийг Rust-д бас үүсгэж болно.

Rust нь лавлагаа шалгах, объектын эзэмшил болон объектын ашиглалтын хугацааг хянах (хамрах хүрээ), ажиллах үед санах ойн хандалтын зөв байдлыг үнэлэх замаар эмхэтгэх үед санах ойн аюулгүй байдлыг хангадаг. Rust нь бүхэл тоон хэтрэхээс хамгаалж, ашиглахын өмнө хувьсагчийн утгуудыг эхлүүлэхийг шаарддаг, өөрчлөгддөггүй лавлагаа ба хувьсагчийн ойлголтыг анхдагчаар ашигладаг бөгөөд логик алдааг багасгахын тулд хүчтэй статик бичвэрийг санал болгодог.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх