Un mecanismu di isolamentu simili à plegde and unveil hè sviluppatu per FreeBSD

Per FreeBSD, hè pruposta una implementazione di un mecanismu di isolamentu di l'applicazioni, chì ricorda u plegde and unveil system calls sviluppatu da u prughjettu OpenBSD. L'isolamentu in plegde hè ottenutu da pruibisce l'accessu à e chjama di u sistema chì ùn sò micca utilizati in l'applicazione, è in unveil aprendu l'accessu selettivu solu à i percorsi di file individuali chì l'applicazione pò travaglià. Per l'appiecazione, hè furmatu un tipu di lista bianca di chjama di sistema è percorsi di schedari, è tutti l'altri chjamati è camini sò pruibiti.

A diffarenza trà l'analogicu di plegde è unveil chì hè sviluppatu per FreeBSD vene à a pruvisione di una capa addiziale chì permette di isolà l'applicazioni senza fà cambiamenti à u so codice o cù cambiamenti minimi. Ricurdativi chì in OpenBSD, plegde è unveil sò destinati à una integrazione stretta cù l'ambienti sottostanti è sò usati aghjunghjendu annotazioni speciali à u codice di ogni applicazione. Per simplificà l'urganizazione di a prutezzione, i filtri permettenu di dispensà i dettagli à u livellu di e chjama di u sistema individuale è manipule classi di chjama di u sistema (input / output, lettura di schedari, scrittura di schedari, sockets, ioctl, sysctl, lanciamentu di prucessu, etc.) . E funzioni di restrizzioni di l'accessu ponu esse chjamati in u codice di l'applicazione cum'è certe azzioni sò realizati, per esempiu, l'accessu à i sockets è i schedari ponu esse denegati dopu avè apertu i schedari necessarii è stabilisce una cunnessione di rete.

L'autore di u portu di plegde è unveil per FreeBSD hà intenzione di furnisce l'abilità di isolà l'applicazioni arbitrarie, per quale l'utilità di cortina hè pruposta, chì permette di applicà regule definite in un schedariu separatu à l'applicazioni. A cunfigurazione pruposta include un schedariu cù paràmetri di basa chì definiscenu classi di chjami di sistema è percorsi tipici di file specifichi per certe applicazioni (travagliu cù sonu, interazzione di rete, logging, etc.), è ancu un schedariu cù reguli d'accessu per applicazioni specifiche.

L'utilità di cortina pò esse aduprata per isolà a maiò parte di l'utilità micca mudificate, i prucessi di u servitore, l'applicazioni grafiche, è ancu e sessioni di desktop intere. Curtain pò ièssiri usatu in cunjunzione cù i miccanismi di isolamentu furnite da i subsystems Jail è Capsicum. Hè ancu pussibule d'urganizà l'isolamentu nidificatu, quandu l'applicazioni lanciate ereditanu e regule stabilite per l'applicazione parent, supplementendu cù restrizioni individuali. Alcune operazioni di u kernel (instalazioni di debugging, POSIX / SysV IPC, PTYs) sò ancu prutetti da un mecanismu di barriera chì impedisce l'accessu à l'uggetti di u kernel chì ùn sò micca creati da u prucessu attuale o parent.

Un prucessu pò cunfigurà u so propiu isolamentu chjamendu curtainctl o usendu e funzioni plegde() è unveil() di libcurtain, simili à quelli truvati in OpenBSD. Per seguità i serrature mentre l'applicazione hè in esecuzione, u sysctl 'security.curtain.log_level' hè furnitu. L'accessu à i protokolli X11 è Wayland hè attivatu separatamente specificendu l'opzioni "-X"/"-Y" è "-W" quandu si esegue a cortina, ma u supportu per l'applicazioni grafiche ùn hè micca abbastanza stabilizatu è hà una quantità di prublemi senza risolve ( I prublemi appariscenu principalmente quandu si usa X11, è u supportu Wayland hè implementatu assai megliu). L'utilizatori ponu aghjunghje restrizioni supplementari creendu schedarii di regule lucali (~/.curtain.conf). Per esempiu, per permette di scrive da Firfox solu à u repertoriu ~/Downloads/, pudete aghjunghje una sezione "[firefox]" cù a regula "~/Downloads/: rw +".

L'implementazione include u modulu di kernel mac_curtain per u cuntrollu di l'accessu obligatoriu (MAC, Mandatory Access Control), un inseme di patch per u kernel FreeBSD cù l'implementazione di i gestori è i filtri necessarii, a libreria libcurtain per aduprà e funzioni plegde è unveil in applicazioni, l'utilità di cortina, esempi di schedarii di cunfigurazione, un set di teste è patches per certi prugrammi in u spaziu di l'utilizatori (per esempiu, per aduprà $TMPDIR per unificà u travagliu cù i schedarii tempuranee). Quandu hè pussibule, l'autore intende di minimizzà u numeru di cambiamenti chì necessitanu patches à u kernel è l'applicazioni.

Source: opennet.ru

Add a comment