FreeBSD po zhvillon një mekanizëm izolimi të ngjashëm me plegde dhe të zbuluar

Për FreeBSD, propozohet një implementim i një mekanizmi izolimi të aplikacionit, që të kujton thirrjet e sistemit plegde dhe unveil të zhvilluara nga projekti OpenBSD. Izolimi në plegde arrihet duke ndaluar aksesin në thirrjet e sistemit që nuk përdoren në aplikacion dhe në zbulim duke hapur në mënyrë selektive aksesin vetëm në shtigjet individuale të skedarëve me të cilat aplikacioni mund të punojë. Për aplikacionin, formohet një lloj liste e bardhë e thirrjeve të sistemit dhe shtigjeve të skedarëve, dhe të gjitha thirrjet dhe shtigjet e tjera janë të ndaluara.

Dallimi midis analogut të plegde dhe unveil që po zhvillohet për FreeBSD vjen në sigurimin e një shtrese shtesë që ju lejon të izoloni aplikacionet pa bërë ndryshime në kodin e tyre ose me ndryshime minimale. Kujtojmë se në OpenBSD, plegde dhe zbulimi synojnë integrimin e ngushtë me mjedisin themelor dhe përdoren duke shtuar shënime të veçanta në kodin e secilit aplikacion. Për të thjeshtuar organizimin e mbrojtjes, filtrat ju lejojnë të shpërndani detaje në nivelin e thirrjeve individuale të sistemit dhe të manipuloni klasat e thirrjeve të sistemit (hyrje/dalje, leximi i skedarëve, shkrimi i skedarëve, prizat, ioctl, sysctl, nisja e procesit, etj.) . Funksionet e kufizimit të aksesit mund të thirren në kodin e aplikacionit kur kryhen veprime të caktuara, për shembull, qasja në priza dhe skedarë mund të refuzohet pas hapjes së skedarëve të nevojshëm dhe vendosjes së një lidhjeje rrjeti.

Autori i portit të plegde dhe zbulimit për FreeBSD synon të sigurojë mundësinë e izolimit të aplikacioneve arbitrare, për të cilat propozohet mjeti i perdes, i cili ju lejon të aplikoni rregullat e përcaktuara në një skedar të veçantë për aplikacionet. Konfigurimi i propozuar përfshin një skedar me cilësime bazë që përcaktojnë klasat e thirrjeve të sistemit dhe shtigjet tipike të skedarëve specifike për aplikacione të caktuara (punë me zë, ndërveprim në rrjet, regjistrim, etj.), si dhe një skedar me rregulla aksesi për aplikacione specifike.

Përdorimi i perdes mund të përdoret për të izoluar shumicën e shërbimeve të pandryshuara, proceset e serverit, aplikacionet grafike dhe madje edhe të gjitha sesionet e desktopit. Perde mund të përdoret në lidhje me mekanizmat e izolimit të ofruara nga nënsistemet Jail dhe Capsicum. Është gjithashtu e mundur të organizohet izolimi i mbivendosur, kur aplikacionet e lëshuara trashëgojnë rregullat e vendosura për aplikacionin prind, duke i plotësuar ato me kufizime individuale. Disa operacione të kernelit (mjetet e korrigjimit, POSIX/SysV IPC, PTY) mbrohen gjithashtu nga një mekanizëm pengues që parandalon aksesin në objektet e kernelit që nuk janë krijuar nga procesi aktual ose prind.

Një proces mund të konfigurojë izolimin e tij duke thirrur curtainctl ose duke përdorur funksionet plegde() dhe unveil() të libcurtain, të ngjashme me ato që gjenden në OpenBSD. Për të gjurmuar bllokimet gjatë ekzekutimit të aplikacionit, ofrohet sysctl 'security.curtain.log_level'. Qasja në protokollet X11 dhe Wayland mundësohet veçmas duke specifikuar opsionet "-X"/"-Y" dhe "-W" gjatë ekzekutimit të perdes, por mbështetja për aplikacionet grafike nuk është ende mjaftueshëm e stabilizuar dhe ka një numër problemesh të pazgjidhura ( problemet shfaqen kryesisht kur përdorni X11, dhe mbështetja e Wayland zbatohet shumë më mirë). Përdoruesit mund të shtojnë kufizime shtesë duke krijuar skedarë të rregullave lokale (~/.curtain.conf). Për shembull, për të lejuar shkrimin nga Firfox vetëm në direktorinë ~/Downloads/, mund të shtoni një seksion “[firefox]” me rregullin “~/Downloads/ : rw +”.

Implementimi përfshin modulin e kernelit mac_curtain për kontrollin e detyrueshëm të aksesit (MAC, Kontrolli i Detyrueshëm i Aksesit), një grup arnimesh për kernelin FreeBSD me implementimin e mbajtësve dhe filtrave të nevojshëm, bibliotekën libcurtain për përdorimin e funksioneve plegde dhe zbulimit në aplikacione, programi i perdes, skedarët e konfigurimit të shembullit, një grup testesh dhe arnimi për disa programe në hapësirën e përdoruesit (për shembull, për përdorimin e $TMPDIR për të unifikuar punën me skedarët e përkohshëm). Aty ku është e mundur, autori synon të minimizojë numrin e ndryshimeve që kërkojnë arna në kernel dhe aplikacione.

Burimi: opennet.ru

Shto një koment