FreeBSD tiek izstrādāts izolācijas mehānisms, kas līdzīgs plegde un unveil

Attiecībā uz FreeBSD tiek piedāvāta lietojumprogrammu izolācijas mehānisma ieviešana, kas atgādina OpenBSD projekta izstrādātos sistēmas izsaukumus plegde and unveil. Plegde izolēšana tiek panākta, aizliedzot piekļuvi sistēmas izsaukumiem, kas netiek izmantoti lietojumprogrammā, un atklājot, selektīvi atverot piekļuvi tikai atsevišķiem failu ceļiem, ar kuriem lietojumprogramma var strādāt. Lietojumprogrammai tiek izveidots sava veida sistēmas izsaukumu un failu ceļu baltais saraksts, un visi citi zvani un ceļi ir aizliegti.

Atšķirība starp plegde un unveil analogu, kas tiek izstrādāts priekš FreeBSD, ir saistīts ar papildu slāņa nodrošināšanu, kas ļauj izolēt lietojumprogrammas, neveicot izmaiņas to kodā vai ar minimālām izmaiņām. Atgādinām, ka OpenBSD versijā plegde un unveil ir paredzēti ciešai integrācijai ar pamatā esošo vidi un tiek izmantoti, pievienojot katras lietojumprogrammas kodam īpašas anotācijas. Lai vienkāršotu aizsardzības organizēšanu, filtri ļauj iztikt bez detaļām atsevišķu sistēmas izsaukumu līmenī un manipulēt ar sistēmas izsaukumu klasēm (ievade/izvade, failu lasīšana, failu rakstīšana, ligzdas, ioctl, sysctl, procesa palaišana utt.) . Piekļuves ierobežošanas funkcijas var izsaukt lietojumprogrammas kodā, jo tiek veiktas noteiktas darbības, piemēram, pēc nepieciešamo failu atvēršanas un tīkla savienojuma izveides var tikt liegta piekļuve ligzdām un failiem.

Port of plegde and unveil for FreeBSD autors plāno nodrošināt iespēju izolēt patvaļīgas lietojumprogrammas, kurām tiek piedāvāta aizkara utilīta, kas ļauj lietotnēm piemērot atsevišķā failā definētos noteikumus. Piedāvātajā konfigurācijā ir iekļauts fails ar pamata iestatījumiem, kas nosaka sistēmas izsaukumu klases un tipiskus failu ceļus, kas raksturīgi noteiktām lietojumprogrammām (darbs ar skaņu, tīkla mijiedarbība, reģistrēšana utt.), kā arī fails ar piekļuves noteikumiem noteiktām lietojumprogrammām.

Aizkaru utilītu var izmantot, lai izolētu lielāko daļu nemodificēto utilītu, servera procesus, grafiskās lietojumprogrammas un pat visas darbvirsmas sesijas. Aizkaru var izmantot kopā ar izolācijas mehānismiem, ko nodrošina apakšsistēmas Jail un Capsicum. Ir iespējams arī organizēt ligzdoto izolāciju, kad palaistās lietojumprogrammas pārmanto vecāklietojumprogrammai noteiktos noteikumus, papildinot tos ar atsevišķiem ierobežojumiem. Dažas kodola darbības (atkļūdošanas iespējas, POSIX/SysV IPC, PTY) papildus aizsargā barjeras mehānisms, kas neļauj piekļūt kodola objektiem, kas nav izveidoti pašreizējā vai vecākprocesā.

Process var konfigurēt savu izolāciju, izsaucot curtainctl vai izmantojot libcurtain funkcijas plegde () un unveil (), kas ir līdzīgas tām, kas atrodamas OpenBSD. Lai izsekotu bloķēšanu, kamēr lietojumprogramma darbojas, tiek nodrošināts sysctl 'security.curtain.log_level'. Piekļuve X11 un Wayland protokoliem tiek iespējota atsevišķi, norādot “-X”/”-Y” un “-W” opcijas, palaižot aizkaru, taču atbalsts grafiskajām lietojumprogrammām vēl nav pietiekami stabilizēts un tam ir vairākas neatrisinātas problēmas ( problēmas galvenokārt rodas, izmantojot X11 , un Wayland atbalsts tiek ieviests daudz labāk). Lietotāji var pievienot papildu ierobežojumus, izveidojot vietējo noteikumu failus (~/.curtain.conf). Piemēram, lai atļautu rakstīt no Firfox tikai direktorijā ~/Lejupielādes/, varat pievienot sadaļu “[firefox]” ar noteikumu “~/Lejupielādes/ : rw +”.

Ieviešanā ietilpst mac_curtain kodola modulis obligātajai piekļuves kontrolei (MAC, Obligātā piekļuves kontrole), FreeBSD kodola ielāpu komplekts ar nepieciešamo apdarinātāju un filtru ieviešanu, libcurtain bibliotēka plegde un unveil funkciju lietošanai lietojumprogrammās, aizkaru utilīta, konfigurācijas failu piemēri, testu un ielāpu komplekts dažām programmām lietotāja telpā (piemēram, $TMPDIR izmantošanai, lai apvienotu darbu ar pagaidu failiem). Ja iespējams, autors plāno samazināt to izmaiņu skaitu, kurām nepieciešami kodola un lietojumprogrammu ielāpi.

Avots: opennet.ru

Pievieno komentāru