FreeBSD-le on areneb isolatsiooni mehhanism, mis sarnaneb plegde ja unveil'iga

FreeBSD jaoks on välja pakutud rakenduste isoleerimise mehhanismi rakendamine, mis sarnaneb OpenBSD projekti välja töötatud süsteemikõnedele pledge ja unveil. Isoleerimine pledge'is toimub keeldumise kaudu pääseda rakenduses mittekasutatavatele süsteemikõnedele, samas kui unveil'is avatakse ligipääs ainult eraldi failiteedele, millega rakendus saab töötada. Rakendusele luuakse sarnane süsteemikõnede ja failiteede valgeliste loetelu, ning kõik teised kõned ja teed keelatakse.

FreeBSD analooge, nagu plegde ja unveil, eristamiseks pakutakse lisakihti, mis võimaldab isoleerida rakendusi ilma nende koodi muutmata või minimaalsete muudatustega. Tuletame meelde, et OpenBSD-s on plegde ja unveil mõeldud tihedaks integreerimiseks põhikeskkonnaga ning neid rakendatakse spetsiaalsete annotatsioonide lisamise kaudu iga rakenduse koodis. Kaitse korraldamist lihtsustavad filtrid võimaldavad vältida üksikute süsteemikõnede detailide määratlemist ja manipuleerida süsteemikõnede klassidega (sisend/väljund, failide lugemine, failide kirjutamine, sokid, ioctl, sysctl, protsesside käivitamine jne). Juurdepääsupiirangute funktsioone saab rakenduse koodis kutsuda üles täites teatud toiminguid, näiteks võib juurdepääs sokkidele ja failidele sulgeda pärast vajalike failide avamist ja võrguühenduse loomist.

Pledge ja Unveil'i FreeBSD porti autor plaanib võimaldada juhuslike rakenduste isoleerimist, mille jaoks on ette nähtud utiliit Curtain, mis võimaldab rakendustele rakendada reegleid, mis on määratletud eraldi failis. Ettepanek sisaldab faili põhiseadistustega, mis määravad süsteemikutsungite klassid ja tüüpilised teed, mis on spetsiifilised teatud rakendustele (nt heli töötlemine, võrguside, logifailide väljastamine jne), samuti fail konkreetsete rakenduste juurdepääsureeglitega.

Curtain utiliiti saab kasutada enamikust modifitseerimata utiliitide, serveriprotsesside, graafiliste rakenduste ja isegi täiste töölaudade isoleerimiseks. Curtain on kooskõlas isoleerimisvõimalustega, mida pakuvad Jail ja Capsicum alamsüsteemid. Samuti on võimalik korraldada pesastatud isoleerimist, kus käivitatavad rakendused pärivad vanemrakendusele kehtestatud reeglid, täiustades neid eraldi piirangutega. Mõned südamikuoperatsioonid (silumisvahendid, POSIX/SysV IPC, PTY-d) kaitstakse täiendavalt barjääri mehhanismi abil, mis takistab juurdepääsu südamiku objektidele, mida ei ole loonud praegune ega vanemprotsess.

Protsess suudab iseseisvalt seadistada oma isoleerimist, kasutades curtainctl'i käsku või kasutades raamatukogu libcurtain funktsioone pledge() ja unveil(), mis on sarnased OpenBSD's leiduvate funktsioonidega. Rakenduse töö ajal blokeeringute jälgimiseks on ette nähtud sysctl 'security.curtain.log_level'. X11 ja Waylandi protokollide ligipääs lubatakse eraldi, määrates curtain'i käivitamisel valikud „-X”/„-Y” ja „-W”, kuid graafiliste rakenduste tugi ei ole veel piisavalt stabiilne ja tal on rida lahendamata probleeme (probleemid avalduvad peamiselt X11 kasutamisel, samas kui Waylandi tugi on oluliselt parem). Kasutajad saavad kehtestada täiendavaid piiranguid, luues kohalikke reeglite faile (~/.curtain.conf). Näiteks, et lubada Firefoxi kirjutamist ainult kausta ~/Downloads/, võib lisada jaotise „[firefox]” koos reegliga „~/Downloads/ : rw +”.

Teostus sisaldab MAC-i (kohustuslik juurdepääsukontroll) jaoks mõeldud mac_curtain tuuma moduuli, FreeBSD tuuma patchide komplekti vajalike töötlejate ja filtrite rakendamiseks, libcurtain raamatukogu pledge ja unveil funktsioonide kasutamiseks rakendustes, curtain utiliiti, konfiguratsioonifailide näidiseid, testimistöid ja patše mõnede kasutajaruumi programmide jaoks (näiteks $TMPDIR kasutamise ühtlustamine ajutiste failidega). Autor kavatseb võimalusel vähendada tuuma ja rakendustega seotud muudatuste arvu, mis vajavad patšide rakendamist.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster