UtgÄvan av Bubblewrap 0.9, ett grÀnssnitt för att skapa isolerade miljöer

Efter ett Ärs utveckling har den nya versionen av verktyget för hantering av isolerade miljöer, Bubblewrap 0.9, publicerats. Detta verktyg anvÀnds för att begrÀnsa individuella applikationer för obehöriga anvÀndare. I praktiken anvÀnds Bubblewrap av projektet Flatpak som ett lager för isolering av applikationer som körs frÄn paket. Projektkoden Àr skriven i C och distribueras under LGPLv2+-licensen.

För isolering anvÀnds traditionella Linux-teknologier för containervirtualisering, baserade pÄ anvÀndning av cgroups, namnrymder (namespaces), Seccomp och SELinux. För att utföra privilegierade operationer för att konfigurera containern körs Bubblewrap med root-rÀttigheter (exekverbara filer med suid-flagga) och ÄterstÀller privilegierna efter att containern har initierats.

Aktivering av anvĂ€ndarnamnrymd (user namespaces) i systemet, vilket möjliggör anvĂ€ndning av en separat uppsĂ€ttning identiteter inom containrar, krĂ€vs inte för drift, eftersom den inte Ă€r aktiverad som standard i mĂ„nga distributioner (Bubblewrap positioneras som en begrĂ€nsad suid-implementation av ett urval av funktionerna i anvĂ€ndarnamnrymder — för att utesluta alla anvĂ€ndar- och processidentiteter frĂ„n miljön, förutom den aktuella, anvĂ€nds lĂ€gena CLONE_NEWUSER och CLONE_NEWPID). För extra skydd körs program som körs under Bubblewrap i lĂ€get PR_SET_NO_NEW_PRIVS, som förhindrar förvĂ€rv av nya privilegier, till exempel nĂ€r det finns en setuid-flagga.

Isoleringen pĂ„ filsystemsnivĂ„ sker genom att skapa ett nytt namnrymd för montering (mount namespace) som standard, dĂ€r ett tomt rotpartition skapas med tmpfs. I detta partition monteras externa filsystem vid behov i lĂ€get "mount —bind" (till exempel, vid körning med alternativet "bwrap —ro-bind /usr /usr" kopplas /usr frĂ„n huvudsystemet i skrivskyddat lĂ€ge). NĂ€tverksmöjligheterna begrĂ€nsas till Ă„tkomst till loopback-grĂ€nssnittet med isolering av nĂ€tverksstacken via flaggorna CLONE_NEWNET och CLONE_NEWUTS.

Den avgörande skillnaden frÄn det liknande projektet Firejail, som ocksÄ anvÀnder en setuid-baserad körmodell, Àr att Bubblewrap:s lager för att skapa containrar endast inkluderar nödvÀndiga minimimöjligheter. Alla utökade funktioner som krÀvs för att köra grafiska applikationer, interagera med skrivbordet och filtrera anrop till Pulseaudio hanteras av Flatpak och utförs efter att privilegier har avlÀgsnats. Firejail Ä sin sida samlar alla tillhörande funktioner i en enda körbar fil, vilket försvÄrar granskningen och att bibehÄlla sÀkerhetsnivÄn.

I den nya utgÄvan:

  • Filerna som genererades av Autotools har tagits bort frĂ„n paketet med kĂ€llkoder. För att bygga rekommenderas nu att anvĂ€nda byggsystemet Meson. Stödet för Autotools Ă€r kvar för tillfĂ€llet, men planeras att tas bort i framtida versioner.
  • En ny option "—argv0" har lagts till för att stĂ€lla in vĂ€rdet för det första kommandoradsargumentet (argv[0] — namnet pĂ„ den körbara filen, till exempel "—argv0 /usr/bin/test").
  • Alternativet "—symlink" aktiveras nu endast nĂ€r den symboliska lĂ€nken redan finns och pekar pĂ„ den avsedda mĂ„lfilen.
  • Alternativet "—cap-add" har dokumenterats, vilket anvĂ€nds för att stĂ€lla in capability-flaggor, till exempel "CAP_DAC_READ_SEARCH".
  • Felmeddelandena som visas vid monteringsfel har blivit mer informativa.
  • Processen för att skapa enhetstester har förenklats.
  • Stöd för gamla versioner av Python har tagits bort i anvĂ€ndningsexemplen.
  • Minnesslotsoperationer har förbĂ€ttrats.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster