Teoretycznie są nawet spoko. Ale… sam fakt niskiej integracji z systemem - kwestie themowania, czy dostępu do (ostatnio używanych) plików wystarcza, żebym nie chciał ich ruszać. Może czegoś nie wiem i da się to jakoś ogarniać?
Technologia ta ma swoje wady i zalety. Niższa integracja z motywami - brak współdzielenia bibliotek z innymi aplikacjami.
Z zalet to ta technologia pozwala na dużo większą kontrolę uprawnień nad aplikacją przez użytkownika - na przykład już teraz interfejsy typu GNOME pozwalają użytkownikowi na zdecydowanie czy dana aplikacja tego typu ma pozwolenie na używanie Mikrofonu, Kamery itp.
Dzieje się tak za sprawą, że aplikacje Flatpack i Snap są uruchamiane w konternerach i co za tym idzie izolowane poprzez mechanizmy jądra Linux. To trochę przypomina kontenery OCI/Docker, które na serwerach także dają ogromne możliwości izolacji - sieciowych, procesów, wywołań systemowych, systemu plików itp.
Dla mnie snapy i flatpaki to pomyłka. To próba przeniesienia modelu bezpieczeństwa z Androida czy iOS na desktop. @ZSP_Wroclaw@szmer.info ma rację, że ma to pewne zalety jeśli idzie o bezpieczeństwo, ale:
- kontenery nie są tak dużo bardziej bezpieczne → jakimś dodatkowym zabezpieczeniem są, ale… wciąż największym problemem są bugi w jądrze systemu i wkomplilowanych w nie lub załadowanych sterownikach sprzętu, a to jest to samo dla systemu hosta i w kontenerze;
- można to zrobić lepiej od strony UI/UX → np. w QubesOS masz widżet, który pozwala Ci kontrolować, który cube (maszyna wirtualna) ma obecnie dostęp do mikrofonu, kamery, danego urządzenia USB, itp… Nie mówię, że QubesOS jest ideałem przyjaznego interfejsu, ale to konkretne rozwiązanie jest, moim zdaniem, znacznie lepsze (przynajmniej na desktopach/laptopach), niż model “dawania apkom uprawnień”, choćby dlatego, że te uprawnienia apek stają się niewidzialne i nieprzejrzyste bardzo szybko.
Generalnie snapów i flatpaków unikam jak ognia.
Nie ma co porównywać QubesOS do Snap, to zupełnie innego typu rozwiązania oraz dla innych grup docelowych. QubesOS opiera się na wirtualizacji, co ma sporo większy narzut i przy tym jest dużo bardziej skomplikowane dla osoby mniej technicznej. Snap działa out-of-the-box jako kontener na warstwie jądra, do tego przy integracji z “Snap store” pozwala osobie nietechncznej na zainstalowanie na przykład przeglądarki internetowej z pełną akceleracją sprzętową przy zachowaniu lepszej izolacji np. przeglądarka może mieć zablokowany dostęp do innych katalogów niż “Pobrane”.
Odnośnie bugów w jądrze to trochę takie gadanie bez pokrycia, ile takich podatności w ostatnim czasie było wykorzystywanych? Kontenery są wykorzystywane w największych systemach świata, w środowiskach air-gap, wirtualek nikt nie używa poza drobnymi projektami.
Doprawdy nie wiem, czego nie zrozumiałeś w “nie mówię, że QubesOS jest ideałem przyjaznego interfejsu”? Wydawało mi się, że dość jasno napisałem, że chodziło mi tylko i wyłącznie o zwrócenie uwagi na ciekawe rozwiązanie dot. zarządzania zasobami i ich dostępnością w QubesOS, nie o porównywanie snapów/flatpaków z QubesOSem.
Z tą integracją to też trochę śmiesznie brzmi w kontekście postu, pod którym odpowiadasz, w którym @harcesz@szmer.info literalnie narzeka na słabą integrację snapów/flatpaków. 👀
Odnośnie bugów w jądrze to trochę takie gadanie bez pokrycia, ile takich podatności w ostatnim czasie było wykorzystywanych?
Masz CVE na jajko co kilka dni: https://www.cvedetails.com/vulnerability-list/vendor_id-33/product_id-47/year-2022/Linux-Linux-Kernel.html
A na “ile było wykorzystywanych” można odpowiedzieć pytaniem: a o ilu jeszcze nie wiemy?
Kontenery są wykorzystywane w największych systemach świata, w środowiskach air-gap, wirtualek nikt nie używa poza drobnymi projektami.
O czym Ty rozmawiasz? Każdy VPS to wirtualka, a tych nie brakuje na rynku.
W “środowiskach airgap” masz fizycznie oddzielne maszyny. Jeśli nie, to to po prostu nie jest airgap, z definicji. Obczaj też jak SecureDrop (ludzie, którzy znają się na kwestiach bezpieczeństwa jak mało kto) przerzuca się z fizycznych maszyn na QubesOS.
I żeby nie było, oczywiście w faktycznie (fizycznie) airgapowanych środowiskach używa się i kontenerów, i wirtualek, i Windowsa czasem. Tyle że nie używa się ich w celu wymuszenia separacji. W sensie, to że tam może i jest kontener czy pięć nie ma nic wspólnego z bezpieczeństwem. To trochę jakby twierdzić, że basha “używa się sie w środowiskach airgap”. No używa się, ale nie w celu wymuszenia separacji.
Kontenerów “w największych systemach świata” nie używa się stricte dla bezpieczeństwa, ale przede wszystkim dla ułatwienia deployowania. Proszę, prosto od operatora “największych systemów świata”:
There’s one myth worth clearing up: containers do not provide an impermeable security boundary, nor do they aim to. They provide some restrictions on access to shared resources on a host, but they don’t necessarily prevent a malicious attacker from circumventing these restrictions. Although both containers and VMs encapsulate an application, the container is a boundary for the application, but the VM is a boundary for the application and its resources, including resource allocation.