FreeBSD-д зориулж plegde and unveil-тай төстэй тусгаарлах механизмыг боловсруулж байна

FreeBSD-ийн хувьд OpenBSD төслийн боловсруулсан plegde болон unveil системийн дуудлагуудыг санагдуулам програм тусгаарлах механизмыг хэрэгжүүлэхийг санал болгож байна. Plegde-д тусгаарлалт нь програмд ​​ашиглагдаагүй системийн дуудлагууд руу нэвтрэхийг хориглох замаар, харин програмын ажиллах боломжтой тусдаа файлын замд хандах хандалтыг нээх замаар хийгддэг. Програмын хувьд системийн дуудлага, файлын замуудын нэг төрлийн цагаан жагсаалт үүсдэг бөгөөд бусад бүх дуудлага, замыг хориглодог.

FreeBSD-д зориулан хөгжүүлж буй plegde болон unveil-ийн аналог хоёрын ялгаа нь програмуудыг кодонд нь өөрчлөлт оруулахгүйгээр эсвэл хамгийн бага өөрчлөлтөөр тусгаарлах боломжийг олгодог нэмэлт давхаргаар хангагдсантай холбоотой юм. OpenBSD-д plegde болон unveil нь үндсэн орчинтой нягт уялдаатай байх зорилготой бөгөөд програм бүрийн кодонд тусгай тэмдэглэгээ нэмэх замаар ашиглагддаг гэдгийг санаарай. Хамгаалалтын зохион байгуулалтыг хялбарчлахын тулд шүүлтүүрүүд нь системийн дуудлагын түвшний нарийвчлалыг арилгах, системийн дуудлагын ангиллыг (оролт/гаралт, файл унших, файл бичих, залгуур, ioctl, sysctl, процесс эхлүүлэх гэх мэт) удирдах боломжийг олгодог. . Тодорхой үйлдлүүд хийгдэж байгаа тул хандалтын хязгаарлалтын функцийг програмын кодонд дуудаж болно, жишээлбэл, шаардлагатай файлуудыг нээж, сүлжээний холболт үүсгэсний дараа залгуурууд болон файлуудад хандах эрхийг хориглож болно.

Plegde болон FreeBSD-д зориулсан портын зохиогч нь хөшигний хэрэглүүрийг санал болгож буй дурын програмуудыг тусгаарлах боломжийг олгохыг зорьж байгаа бөгөөд энэ нь танд тусдаа файлд тодорхойлсон дүрмийг програмуудад хэрэглэх боломжийг олгодог. Санал болгож буй тохиргоонд системийн дуудлагын ангиллыг тодорхойлсон үндсэн тохиргоо, тодорхой програмуудад зориулагдсан ердийн файлын замыг (дуутай ажиллах, сүлжээний харилцан үйлчлэл, бүртгэл хөтлөх гэх мэт) тодорхойлсон файл, түүнчлэн тодорхой програмуудад хандах дүрэм бүхий файл орно.

Хөшигний хэрэгслийг ихэнх өөрчлөгдөөгүй хэрэгслүүд, серверийн процессууд, график програмууд, тэр ч байтугай бүхэл бүтэн ширээний сессүүдийг тусгаарлахад ашиглаж болно. Хөшгийг Jail болон Capsicum дэд системүүдээс тусгаарлах механизмтай хамт ашиглаж болно. Ашигласан програмууд нь эцэг эхийн програмд ​​заасан дүрмийг өвлөн авч, тэдгээрийг тус тусад нь хязгаарлалтаар нэмж, үүр тусгаарлалтыг зохион байгуулах боломжтой. Зарим цөмийн үйлдлүүд (дибаг хийх хэрэгсэл, POSIX/SysV IPC, PTYs) нь одоогийн болон эх процессоор үүсгэгдээгүй цөмийн объектуудад хандахаас сэргийлдэг саадын механизмаар нэмэлт хамгаалалттай байдаг.

Процесс нь curtainctl-г дуудаж эсвэл OpenBSD-д байдагтай адил libcurtain-ийн plegde() болон unveil() функцуудыг ашиглан өөрийн тусгаарлалтыг тохируулж болно. Аппликешн ажиллаж байх үед түгжээг хянахын тулд "security.curtain.log_level" sysctl-г өгсөн болно. X11 болон Wayland протоколуудад хандах хандалтыг хөшиг ажиллуулах үед "-X"/-Y" болон "-W" сонголтуудыг тусад нь идэвхжүүлдэг боловч график програмуудын дэмжлэг хараахан хангалттай тогтворжоогүй байгаа бөгөөд хэд хэдэн шийдэгдээгүй асуудалтай байна ( X11 ашиглах үед асуудал ихэвчлэн гарч ирдэг бөгөөд Wayland дэмжлэг илүү сайн хэрэгждэг). Хэрэглэгчид дотоод дүрмийн файлуудыг (~/.curtain.conf) үүсгэснээр нэмэлт хязгаарлалт нэмж болно. Жишээлбэл, Firfox-оос зөвхөн ~/Татаж авах/ сан руу бичихийг зөвшөөрөхийн тулд та “~/Татаж авах/: rw +” дүрмээр “[firefox]” хэсгийг нэмж болно.

Энэхүү хэрэгжилт нь зайлшгүй хандалтын хяналтад зориулсан mac_curtain цөмийн модуль (MAC, Mandatory Access Control), шаардлагатай зохицуулагч, шүүлтүүрийг хэрэгжүүлсэн FreeBSD цөмд зориулсан нөхөөсүүдийн багц, plegde болон unveil функцуудыг програмуудад ашиглах libcurtain номын сан, хөшигний хэрэгсэл, жишээ тохиргооны файлууд, хэрэглэгчийн орон зай дахь зарим програмын тест, засварууд (жишээ нь, түр зуурын файлуудтай ажлыг нэгтгэхийн тулд $TMPDIR ашиглах). Боломжтой бол зохиогч цөм болон програмуудад засвар хийх шаардлагатай өөрчлөлтүүдийн тоог багасгахыг зорьж байна.

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

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