In isolaasjemeganisme fergelykber mei plegde en unveil wurdt ûntwikkele foar FreeBSD

Foar FreeBSD wurdt in ymplemintaasje fan in applikaasje-isolaasjemeganisme foarsteld, dy't tinkt oan 'e plegde en ûntbleate systeemoproppen ûntwikkele troch it OpenBSD-projekt. Isolaasje yn plegde wurdt berikt troch it ferbieden fan tagong ta systeemoproppen dy't net brûkt wurde yn 'e applikaasje, en yn ûntbleate troch selektyf tagong te iepenjen allinich foar yndividuele triempaden wêrmei de applikaasje kin wurkje. Foar de applikaasje wurdt in soarte fan wite list mei systeemoproppen en triempaden foarme, en alle oare oproppen en paden binne ferbean.

It ferskil tusken de analoog fan plegde en unveil wurdt ûntwikkele foar FreeBSD komt del op it oanbieden fan in ekstra laach wêrmei jo applikaasjes isolearje kinne sûnder feroaringen oan har koade te meitsjen of mei minimale feroarings. Tink derom dat yn OpenBSD, plegde en ûntbleate binne rjochte op strakke yntegraasje mei de ûnderlizzende omjouwing en wurde brûkt troch it tafoegjen fan spesjale annotaasjes oan 'e koade fan elke applikaasje. Om de organisaasje fan beskerming te ferienfâldigjen, kinne filters jo ôfbrekke fan detail op it nivo fan yndividuele systeemoproppen en klassen fan systeemoproppen manipulearje (ynfier / útfier, lêsbestannen, skriuwbestannen, sockets, ioctl, sysctl, prosesstart, ensfh.) . Tagongsbeheiningsfunksjes kinne wurde neamd yn 'e applikaasjekoade as bepaalde aksjes wurde útfierd, bygelyks tagong ta sockets en bestannen kinne wurde wegere nei it iepenjen fan de nedige bestannen en it oprjochtsjen fan in netwurkferbining.

De skriuwer fan 'e haven fan plegde en ûntbleate foar FreeBSD is fan doel om de mooglikheid te jaan om willekeurige applikaasjes te isolearjen, wêrfoar't it gerdynprogramma wurdt foarsteld, wêrtroch jo regels kinne tapasse definieare yn in apart bestân foar applikaasjes. De foarstelde konfiguraasje omfettet in bestân mei basisynstellingen dy't klassen fan systeemoproppen definiearje en typyske triempaden spesifyk foar bepaalde applikaasjes (wurkje mei lûd, netwurkynteraksje, logging, ensfh.), En ek in bestân mei tagongsregels foar spesifike applikaasjes.

It gerdynprogramma kin brûkt wurde om de measte net-feroare nutsfoarsjenningen, serverprosessen, grafyske applikaasjes, en sels folsleine buroblêd-sesjes te isolearjen. Gerdyn kin brûkt wurde yn kombinaasje mei de isolaasjemeganismen levere troch de subsystemen Finzenis en Capsicum. It is ek mooglik om geneste isolaasje te organisearjen, as lansearre applikaasjes de regels erfje ynsteld foar de âlderapplikaasje, se oanfolje mei yndividuele beheiningen. Guon kernel operaasjes (debuggen fasiliteiten, POSIX / SysV IPC, PTYs) wurde boppedat beskerme troch in barriêre meganisme dat foarkomt tagong ta kernel objekten dy't net makke troch de hjoeddeiske of âlder proses.

In proses kin syn eigen isolaasje konfigurearje troch curtainctl op te roppen of troch de funksjes plegde () en unveil () fan libcurtain te brûken, fergelykber mei dy fûn yn OpenBSD. Om slûzen te folgjen wylst de applikaasje rint, wurdt de sysctl 'security.curtain.log_level' levere. Tagong ta de X11- en Wayland-protokollen is apart ynskeakele troch de opsjes "-X"/"-Y" en "-W" op te jaan by it rinnen fan gerdyn, mar stipe foar grafyske applikaasjes is noch net genôch stabilisearre en hat in oantal net oploste problemen ( problemen ferskine benammen by it brûken fan X11, en Wayland-stipe wurdt folle better ymplementearre). Brûkers kinne ekstra beheiningen taheakje troch it meitsjen fan lokale regelsbestannen (~/.curtain.conf). Om bygelyks skriuwen fan Firfox allinich ta te stean nei de ~/Downloads/-map, kinne jo in seksje "[firefox]" tafoegje mei de regel "~/Downloads/: rw +".

De ymplemintaasje omfettet de mac_curtain kernel module foar ferplichte tagongskontrôle (MAC, Ferplichte tagongskontrôle), in set patches foar de FreeBSD kernel mei de ymplemintaasje fan de nedige handlers en filters, de libcurtain bibleteek foar it brûken fan de plegde en ûntbleate funksjes yn applikaasjes, it gerdyn utility, foarbyld konfiguraasje triemmen, in set tests en patches foar guon programma yn brûker romte (Bygelyks, foar in gebrûk $ TMPDIR foar in unify wurk mei tydlike triemmen). Wêr mooglik is de auteur fan doel om it oantal wizigingen te minimalisearjen dy't patches nedich binne foar de kernel en applikaasjes.

Boarne: opennet.ru

Add a comment