Plegde and unveil -tyyppistä eristysmekanismia kehitetään FreeBSD:lle

FreeBSD:lle ehdotetaan sovellusten eristysmekanismin toteutusta, joka muistuttaa OpenBSD-projektin kehittämiä plegde and unveil -järjestelmäkutsuja. Plegden eristäminen saavutetaan estämällä pääsy järjestelmäkutsuihin, joita ei käytetä sovelluksessa, ja paljastamalla selektiivisesti pääsy vain yksittäisille tiedostopoluille, 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ä.

Ero FreeBSD:lle kehitettävän plegden ja unveil-analogin välillä johtuu lisäkerroksen tarjoamisesta, jonka avulla voit eristää sovelluksia muuttamatta niiden koodia tai pienin muutoksin. Muista, että OpenBSD:ssä plegde ja unveil on tarkoitettu tiiviiseen integraatioon taustalla olevan ympäristön kanssa, ja niitä käytetään lisäämällä erityisiä huomautuksia kunkin sovelluksen koodiin. Suojauksen organisoinnin yksinkertaistamiseksi suodattimien avulla voit luopua yksityiskohdista yksittäisten järjestelmäkutsujen tasolla ja käsitellä järjestelmäkutsujen luokkia (syöttö/tulostus, tiedostojen lukeminen, tiedostojen kirjoitus, sockets, ioctl, sysctl, prosessin käynnistys jne.) . Käyttörajoitustoiminnot voidaan kutsua sovelluskoodissa tiettyjä toimintoja suoritettaessa, esimerkiksi pääsy pistokkeisiin ja tiedostoihin voidaan estää tarvittavien tiedostojen avaamisen ja verkkoyhteyden muodostamisen jälkeen.

Port of plegde and unveil for FreeBSD:n kirjoittaja aikoo tarjota mahdollisuuden eristää mielivaltaisia ​​sovelluksia, joille ehdotetaan curtain-apuohjelmaa, jonka avulla voit soveltaa sovelluksiin erillisessä tiedostossa määriteltyjä sääntöjä. Ehdotettu kokoonpano sisältää tiedoston, jossa on perusasetukset, jotka määrittelevät järjestelmäkutsut ja tyypilliset tiedostopolut tietyille sovelluksille (äänen kanssa työskentely, verkkovuorovaikutus, loki jne.), sekä tiedoston, joka sisältää pääsysäännöt tiettyjä sovelluksia varten.

Verho-apuohjelmaa voidaan käyttää useimpien muokkaamattomien apuohjelmien, palvelinprosessien, graafisten sovellusten ja jopa kokonaisten työpöytäistuntojen eristämiseen. Verhoa voidaan käyttää yhdessä Jail- ja Capsicum-alijärjestelmien tarjoamien eristysmekanismien kanssa. On myös mahdollista järjestää sisäkkäinen eristys, kun käynnistetyt sovellukset perivät pääsovellukselle asetetut säännöt täydentäen niitä yksittäisillä rajoituksilla. Jotkin ytimen toiminnot (virheenkorjauspalvelut, POSIX/SysV IPC, PTY:t) on lisäksi suojattu estomekanismilla, joka estää pääsyn ytimen objekteihin, joita ei ole luotu nykyisellä tai emoprosessilla.

Prosessi voi määrittää oman eristyksensä kutsumalla curtainctl tai käyttämällä libcurtainin plegde()- ja unveil()-funktioita, jotka ovat samanlaisia ​​kuin OpenBSD:ssä. Jos haluat seurata lukkoja sovelluksen ollessa käynnissä, tarjotaan sysctl 'security.curtain.log_level'. Pääsy X11- ja Wayland-protokolliin sallitaan erikseen määrittämällä "-X"/"-Y" ja "-W" valinnat verhoa suoritettaessa, mutta graafisten sovellusten tuki ei ole vielä riittävän vakiintunut ja siinä on useita ratkaisemattomia ongelmia ( ongelmat ilmenevät pääasiassa käytettäessä X11 , ja Wayland-tuki on toteutettu paljon paremmin). Käyttäjät voivat lisätä lisärajoituksia luomalla paikallisia sääntötiedostoja (~/.curtain.conf). Jos esimerkiksi haluat sallia kirjoittamisen vain Firfoxista ~/Lataukset/-hakemistoon, voit lisätä "[firefox]"-osion säännöllä "~/Lataukset/ : rw +".

Toteutus sisältää mac_curtain-ytimen moduulin pakollista pääsynhallintaa varten (MAC, Mandatory Access Control), joukon korjaustiedostoja FreeBSD-ytimelle, jossa on toteutettu tarvittavat käsittelijät ja suodattimet, libcurtain-kirjaston plegde- ja unveil-toimintojen käyttämiseen sovelluksissa, verho-apuohjelma, esimerkkimääritystiedostot, testisarja ja korjaustiedostot joillekin käyttäjäavaruudessa oleville ohjelmille (esimerkiksi $TMPDIR:n käyttämiseen väliaikaistiedostojen työn yhdistämiseen). Kirjoittaja pyrkii mahdollisuuksien mukaan minimoimaan ytimeen ja sovelluksiin korjauksia vaativien muutosten määrän.

Lähde: opennet.ru

Lisää kommentti