Във FreeBSD се разработва изолационен механизъм, подобен на plegde

Беше обявено, че е предложена имплементация на механизъм за изолиране на приложения за FreeBSD , наподобяваща системните извиквания foldde и unleave, разработени от проекта OpenBSD.

Изолирането в plegde се извършва чрез забрана на достъп до системни повиквания, които не се използват от приложението и разкриване чрез избирателно отваряне на достъп само до определени пътеки на файлове, с които приложението може да работи. За приложението се формира един вид бял списък със системни повиквания и пътеки на файлове, а всички други повиквания и пътища са забранени.

Разликата между `pledge` и `unveil` , разработени за FreeBSD , се свежда до осигуряване на допълнителен слой , който позволява приложенията да бъдат изолирани с минимални или никакви промени в кода им. Не забравяйте, че в OpenBSD `pledge` и `unlock` целят тясна интеграция с базовата среда и се реализират чрез добавяне на специални анотации към кода на всяко приложение.

За да опростите организацията на защитата, филтрите ви позволяват да избягвате подробности на ниво отделни системни повиквания и да манипулирате класове системни повиквания (вход/изход, четене на файл, запис на файл, сокети, ioctl, sysctl, стартиране на процеси и т.н.) . Функциите за ограничаване на достъпа могат да бъдат извикани в кода на приложението, когато се извършват определени действия, например достъпът до гнезда и файлове може да бъде затворен след отваряне на необходимите файлове и установяване на мрежова връзка.

Авторът на порта на FreeBSD за сгъване и разгъване има за цел да осигури възможност за изолиране на произволни приложения. За да постигне това, той предлага помощната програма curtain, която позволява прилагането на правила, дефинирани в отделен файл, към приложенията. Предложената конфигурация включва файл с основни настройки, които определят класовете системни извиквания и типични файлови пътища, специфични за определени приложения (работа със звук, мрежи, регистриране и др.), както и файл с правила за достъп за конкретни приложения.

Помощната програма за завеси може да се използва за изолиране на повечето помощни програми, сървърни процеси, графични приложения и дори цели сесии на работния плот, които не са били модифицирани. Поддържа се споделяне на завеса с механизмите за изолация, предоставени от подсистемите Jail и Capsicum.

Възможна е и вложена изолация , при която стартираните приложения наследяват правилата, установени от основното приложение, допълвайки ги с отделни ограничения. Някои операции на ядрото (инструменти за отстраняване на грешки, POSIX/SysV IPC, PTY) са допълнително защитени от бариерен механизъм, който предотвратява достъпа до обекти на ядрото, създадени от процеси, различни от текущия или основния процес.

Процесът може да конфигурира собствена изолация, като извика curtainctl или използва функциите pledge() и unveil(), предоставени от библиотеката libcurtain, подобни на тези в OpenBSD. Предвидена е sysctl библиотеката 'security.curtain.log_level' за проследяване на заключванията, докато приложението работи.

Достъпът до протоколите X11 и Wayland се активира отделно чрез посочване на опциите "-X"/"-Y" и "-W" при стартиране на завесата, но поддръжката за графични приложения все още не е достатъчно стабилизирана и има редица неразрешени проблеми ( проблеми се появяват главно при използване на X11, а поддръжката на Wayland е много по-добра). Потребителите могат да добавят допълнителни ограничения чрез създаване на файлове с локални правила (~/.curtain.conf). Например,

Реализацията включва модула на ядрото mac_curtain за задължителен контрол на достъпа (MAC), набор от пачове за ядрото на FreeBSD с внедряване на необходимите драйвери и филтри, библиотека libcurtain за използване на plegde и разкрити функции в приложения, завесата на помощната програма, показва конфигурация файлове, набор от тестове и корекции за някои програми в потребителското пространство (например за използване на $TMPDIR за унифициране на работата с временни файлове). Когато е възможно, авторът се опитва да сведе до минимум броя на промените, които изискват корекция на ядрото и приложенията.

И накрая, ако се интересувате да научите повече , можете да намерите подробностите на следния линк.


Добавяне като предпочитан източник в Google