Eldono de Bubblewrap 0.6, tavolo por krei izolitajn mediojn

Eldono de iloj por organizi la laboron de izolitaj medioj Bubblewrap 0.6 estas disponebla, kutime uzata por limigi individuajn aplikojn de senprivilegiaj uzantoj. En praktiko, Bubblewrap estas uzata de la Flatpak-projekto kiel tavolo por izoli aplikojn lanĉitajn de pakaĵoj. La projektkodo estas skribita en C kaj estas distribuita sub la permesilo LGPLv2+.

Por izolado, tradiciaj Linuksaj uj-virtualigaj teknologioj estas uzataj, surbaze de la uzo de cgrupoj, nomspacoj, Seccomp kaj SELinux. Por plenumi privilegiajn operaciojn por agordi ujon, Bubblewrap estas lanĉita kun radikrajtoj (efektivebla dosiero kun suid flago) kaj tiam restarigas privilegiojn post kiam la ujo estas pravalorigita.

Aktivigo de uzantnomspacoj en la nomspacsistemo, kiu permesas vin uzi vian propran apartan aron da identigiloj en ujoj, ne estas bezonata por funkciado, ĉar ĝi ne funkcias defaŭlte en multaj distribuoj (Bubblewrap estas poziciigita kiel limigita suid efektivigo de subaro de uzantnomspacoj-kapabloj - por ekskludi ĉiujn uzant- kaj procezidentigilojn de la medio, krom la nuna, la CLONE_NEWUSER kaj CLONE_NEWPID-reĝimoj estas uzataj). Por plia protekto, programoj ekzekutitaj sub Bubblewrap estas lanĉitaj en la PR_SET_NO_NEW_PRIVS reĝimo, kiu malpermesas la akiron de novaj privilegioj, ekzemple, se la setuid flago ĉeestas.

Izoliteco ĉe la dosiersistemnivelo estas plenumita kreante novan muntan nomspacon defaŭlte, en kiu malplena radikdisko estas kreita uzante tmpfs. Se necese, eksteraj FS-diskoj estas alkroĉitaj al ĉi tiu subdisko en la reĝimo "mount —bind" (ekzemple, kiam oni lanĉas per la opcio "bwrap —ro-bind /usr /usr", la /usr-disko estas plusendita de la ĉefa sistemo. en nurlegebla reĝimo). Retaj kapabloj estas limigitaj al aliro al la loopback-interfaco kun retstaka izoliteco per la flagoj CLONE_NEWNET kaj CLONE_NEWUTS.

La ŝlosila diferenco de la simila Firejail-projekto, kiu ankaŭ uzas la setuid-lanĉan modelon, estas, ke en Bubblewrap la ujo-kreadtavolo inkluzivas nur la necesajn minimumajn kapablojn, kaj ĉiujn altnivelajn funkciojn necesajn por ruli grafikajn aplikaĵojn, interagi kun la labortablo kaj filtri petojn. al Pulseaudio, transdonita al la Flatpak-flanko kaj efektivigita post kiam la privilegioj estis rekomencigitaj. Firejail, aliflanke, kombinas ĉiujn rilatajn funkciojn en unu rulebla dosiero, kio malfaciligas revizii kaj konservi sekurecon sur la taŭga nivelo.

En la nova eldono:

  • Aldonita subteno por la Meson kunigsistemo. Subteno por konstruado kun Autotools estas konservita nuntempe, sed estos forigita en estonta eldono.
  • Efektivigita "--add-seccomp" opcio por aldoni pli ol unu seccomp-programon. Aldonis averton ke se vi specifas la opcion "--seccomp" denove, nur la lasta parametro estos aplikita.
  • La majstra branĉo en la git-deponejo estis renomita al ĉefa.
  • Aldonita parta subteno por la REUSE-specifo, kiu unuigas la procezon de precizigado de licencaj kaj kopirajtaj informoj. Multaj kodaj dosieroj havas SPDX-License-Identifier-titolojn aldonitajn. Sekvante la REUSE-gvidliniojn faciligas aŭtomate determini kiu permesilo aplikas al kiuj partoj de la aplika kodo.
  • Aldonita kontrolanta la valoron de la komandlinia argumenta nombrilo (argc) kaj efektivigita kriz-elirejo se la nombrilo estas nulo. La ŝanĝo helpas bloki sekurecajn problemojn kaŭzitajn de malĝusta uzado de pasigitaj komandliniaj argumentoj, kiel CVE-2021-4034 en Polkit.

fonto: opennet.ru

Aldoni komenton