Ilmoitettiin, että FreeBSD:lle on ehdotettu sovellusten eristämismekanismin toteutusta , joka muistuttaa OpenBSD-projektin kehittämiä foldde- ja unhave-järjestelmäkutsuja.
Plegden eristäminen tehdään estämällä pääsy järjestelmäkutsuihin, joita sovellus ei käytä, ja paljastamalla valikoivasti pääsy vain tiettyihin tiedostopolkuihin, joiden kanssa sovellus voi toimia. Sovellusta varten muodostetaan eräänlainen valkoinen lista järjestelmäkutsuista ja tiedostopoluista, ja kaikki muut kutsut ja polut ovat kiellettyjä.
FreeBSD:lle kehitettyjen `pledge`- ja `unveil`-komentojen ero on pohjimmiltaan siinä, että ne tarjoavat ylimääräisen kerroksen , jonka avulla sovellukset voidaan eristää muista muutoksilla koodiin minimaalisesti tai ilman muutoksia. Muista, että OpenBSD:ssä `pledge` ja `unlock` pyrkivät tiiviiseen integrointiin perusympäristön kanssa ja ne toteutetaan lisäämällä erityisiä merkintöjä kunkin sovelluksen koodiin.
Suojauksen organisoinnin yksinkertaistamiseksi suodattimien avulla voit välttää yksityiskohtia yksittäisten järjestelmäkutsujen tasolla ja muokata järjestelmäkutsujen luokkia (syöttö/tulostus, tiedoston luku, tiedoston kirjoitus, sockets, ioctl, sysctl, prosessien aloitus jne.) . Käyttörajoitustoiminnot voidaan kutsua sovelluskoodissa tiettyjen toimintojen suorittamisen yhteydessä, esimerkiksi pääsy pistokkeisiin ja tiedostoihin voidaan sulkea tarvittavien tiedostojen avaamisen ja verkkoyhteyden muodostamisen jälkeen.
FreeBSD:n porttauksen, jossa käytetään folding- ja unfolding-ominaisuutta, tekijä pyrkii tarjoamaan mahdollisuuden eristää mielivaltaisia sovelluksia. Tämän saavuttamiseksi he ehdottavat curtain-apuohjelmaa, jonka avulla sovelluksiin voidaan soveltaa erillisessä tiedostossa määriteltyjä sääntöjä. Ehdotettu kokoonpano sisältää tiedoston, jossa on perusasetukset, jotka määrittelevät järjestelmäkutsujen luokat ja tyypilliset tiedostopolut tietyille sovelluksille (äänen käsittely, verkko, lokikirjaus jne.), sekä tiedoston, jossa on sovelluskohtaisia käyttöoikeussääntöjä.
Verho-apuohjelmaa voidaan käyttää useimpien apuohjelmien, palvelinprosessien, graafisten sovellusten ja jopa kokonaisten työpöytäistuntojen eristämiseen, joita ei ole muokattu. Verhon jakaminen Jail- ja Capsicum-alijärjestelmien eristysmekanismien kanssa on tuettu.
Myös sisäkkäinen eristäminen on mahdollista, jossa käynnistetyt sovellukset perivät pääsovelluksen asettamat säännöt ja täydentävät niitä erillisillä rajoituksilla. Jotkin ytimen toiminnot (virheenkorjaustyökalut, POSIX/SysV IPC, PTY) on suojattu edelleen estemekanismilla, joka estää pääsyn muiden prosessien kuin nykyisen tai pääprosessin luomiin ytimen objekteihin.
Prosessi voi määrittää oman eristyksensä kutsumalla curtainctl-funktiota tai käyttämällä libcurtain-kirjaston tarjoamia pledge()- ja univeral()-funktioita, jotka ovat samanlaisia kuin OpenBSD:ssä. Sysctl 'security.curtain.log_level' -funktiota käytetään lukkojen seuraamiseen sovelluksen ollessa käynnissä.
Pääsy X11- ja Wayland-protokolliin otetaan käyttöön erikseen määrittämällä "-X"/"-Y" ja "-W" valinnat verhoa käynnistettäessä, mutta graafisten sovellusten tuki ei ole vielä tarpeeksi vakiintunut ja siinä on useita ratkaisemattomia ongelmia ( ongelmat ilmenevät pääasiassa käytettäessä X11:tä, ja Wayland-tuki on paljon parempi). Käyttäjät voivat lisätä lisärajoituksia luomalla paikallisia sääntötiedostoja (~/.curtain.conf). Esimerkiksi,
Toteutus sisältää mac_curtain-ytimen moduulin pakollista pääsynhallintaa (MAC) varten, joukon korjaustiedostoja FreeBSD-ytimelle tarvittavien ajureiden ja suodattimien toteutuksella, libcurtain-kirjaston plegde- ja paljastettujen toimintojen käyttämiseen sovelluksissa, apuverhon, näyttää asetukset tiedostot, testisarja ja korjaustiedostot joillekin käyttäjäavaruusohjelmille (esimerkiksi $TMPDIR:n käyttämiseksi väliaikaisten tiedostojen työskentelyn yhtenäistämiseksi). Aina kun mahdollista, kirjoittaja yrittää minimoida ytimen ja sovellusten korjausta edellyttävien muutosten määrän.
Lopuksi, jos olet kiinnostunut oppimaan lisää , löydät tiedot seuraavasta linkistä.