Linux. Dlaczego NIE korzystać z PPA. Instalacja oprogramowania, Snap i Flatpak a bezpieczeństwo systemu

Instalacja aplikacji nie jest niczym skomplikowanym w Linuksie. Większość potrzebnych programów znajduje się w domyślnym repozytorium, a nawet jeżeli nie – z pomocą przychodzą pakiety Snap, Flatpak, Appimage czy porady z internetu zawierające instrukcje prostej instalacji po dodaniu dodatkowego repozytorium PPA.

Właśnie – te ostatnie. Rzecz jest banalna – wklejamy dwie komendy do terminala i gotowe. Wyglądają one w ten sposób:

sudo add-apt-repository ppa:slimbook/slimbook
sudo apt install slimbookbattery

Pierwsza komenda dodaje repozytorium, druga instaluje aplikację. Bułka z masłem. Wielu użytkowników nie wie natomiast z czym wiąże się dodanie repozytorium do systemu w kwestii bezpieczeństwa.

Terminal sprawdzający repozytoria w trakcie aktualizacji

Czym jest repozytorium?

W największym skrócie i uproszczeniu jest to miejsce, w którym znajdują się pakiety. Jeżeli chcesz zainstalować program VLC, odpowiednie pakiety składające się na program są pobierane z repozytorium na Twój komputer.

Podobnie działa mechanizm aktualizacji. Komputer porównuje wersje pakietów w repozytorium z tymi na Twoim komputerze. Jeżeli w repozytorium znajduje się program o wyższej wersji niż zainstalowany u Ciebie, np. VLC w wersji 1.0 podczas gdy Ty posiadasz VLC 0.9, zostanie on zaktualizowany.

Domyślnie system zawiera repozytoria, którymi opiekują się twórcy dystrybucji. W przypadku dużych dystrybucji takich jak Ubuntu możemy mieć pewność, że posiadają one odpowiednie procedury bezpieczeństwa, a także wiele osób kontrolujących to, co w repozytoriach się dzieje.

Co jest nie tak z PPA?

Problem z PPA (skrót od Personal Package Archive), czyli prywatnymi repozytoriami, polega na tym, że mają one takie same uprawnienia do Twojego komputera jak repozytoria systemowe. W przypadku PPA, którymi opiekuje się jeden człowiek lub garstka nieznanych nam osób rodzi to ryzyko zarówno dotyczące bezpieczeństwa systemu, jak i jego stabilności (chociażby problemy z nieudaną aktualizacją systemu wynikają często z bałaganu, jaki narobiło trefne PPA)

Prosty przykład – posiadamy 12 aktywnych repozytoriów w systemie. Wystarczy, że tylko jedno z nich – nawet jeżeli użyliśmy go tylko do zainstalowania prostej aplikacji do notatek – posiadałoby zainfekowany lub uszkodzony plik, aby wyrządzić nam szkodę.

Nawet jeżeli bezpośrednio osoby posiadające i zarządzające dostępem do konkretnego PPA nie miałyby złych intencji, zawsze istnieje ryzyko, że same staną się ofiarami ataku i dostęp do repozytorium uzyska osoba nieuprawniona.

Oczywiście ryzyko związane z posiadaniem PPA w systemie jest uzależnione od ich typu – można założyć, że PPA dużych projektów i firm są na tyle bezpieczne, na ile tylko mogą być. Dodanie PPA projektu Wine, Spotify czy Signala nie wiąże się z poważnym ryzykiem, choć oczywiście z prostego rachunku prawdopodobieństwa wynika, że każde kolejne źródło je zwiększa.

Jakie są alternatywy?

Powyżej widać, że PPA nie nadają się jako rozwiązanie do aktualizowania oprogramowania w dzisziejszych czasach, gdy bezpieczeństwo systemów i danych jest ważniejsze niż kiedykolwiek.

Z tego też powodu powstały inicjatywy takie jak Snap i Flatpak, które nadal posiadają swoje problemy, ale są bezpieczniejszym i prostszym rozwiązaniem dla przeciętnego użytkownika niż dodawanie PPA. Przeczytasz o nich więcej tutaj:

Co jeżeli program, który chcę zainstalować jest dostępny tylko w PPA?

Pobierając jakikolwiek program z internetu, niezależnie czy jest to plik .deb, .rpm czy .exe na Windowsie musimy zaufać, że źródło jest sprawdzone. Podstawowa różnica między nimi a dodaniem repozytorium jest fakt, że w ich przypadku ryzyko dotyczy tylko konkretnego momentu instalacji – w przypadku repozytorium aktywnego w systemie natomiast to ryzyko jest obecne bez przerwy, przy każdym sprawdzaniu aktualizacji.

Dlatego w przypadku programów, które nie wymagają regularnych aktualizacji (w przeciwieństwie do np. przeglądarek), rozwiązaniem jest dodanie PPA jedynie na moment instalacji.

Następnie wyłączyć dodane repozytorium możemy za wybierając z menu aplikacji Oprogramowanie, przechodząc do karty Inne oprogramowanie i odznaczając dodane chwilę wcześniej repozytorium.

Zainteresowani edycją manualną źródeł mogą tego dokonać w pliku /etc/apt/sources.list

Jeżeli to możliwe, bezpieczniejszym rozwiązaniem jest korzystanie z domyślnych repozytoriów systemowych lub pakietów Snap czy Flatpak – posiadają one możliwość odizolowania (sandbox) aplikacji od wrażliwych elementów systemu , a także dają nam opcję modyfikowania uprawnień programu.

Decydując się na korzystanie z PPA warto robić to z głową i mieć świadomość z czym się to wiąże.


Postaw mi kawę na buycoffee.to

Jeżeli ten wpis jest Twoim zdaniem wartościowy, a także interesuje Cię technologia ze szczególnym uwzględnieniem prywatności, wolnego oprogramowania i kwestii etycznych zamiast sponsorowanych artykułów o kolejnych produktach, które „musisz mieć” i chciał*byś, żeby blog dalej istniał i się rozwijał – dodaj blog do subskrybowanych na platformach społecznościowych (linki poniżej) lub RSS, poleć lub podaj dalej link gdzieś w internecie (to naprawdę dużo!), a jeśli sytuacja finansowa Ci na to pozwala – rozważ postawienie mi kawy. Każde wsparcie motywuje, aby pchać ten wózek dalej. 🙂 Dzięki!

Linki do social media GeekOrganic:

12 myśli na temat “Linux. Dlaczego NIE korzystać z PPA. Instalacja oprogramowania, Snap i Flatpak a bezpieczeństwo systemu

  1. Bardzo fajny i potrzebny wpis. Od siebie mogę dodać, że na przykład w Linux Mint dodane repozytoria możemy znaleźć w: „Zasoby oprogramowania”. Tam warto zaglądnąć w „Osobiste Archiwum Pakietów (PPA), „Repozytoria dodatkowe” i „Klucze autoryzacji” i w razie wątpliwości podjąć działania.

    Polubione przez 1 osoba

  2. We wpisach na różnych stronach na temat paczek na linuxa w kółko krążą takie skojarzenia:
    deb/rpm/ppa/tar.xz/aur – mały plik instalacyjny, natywny, ale bez sandboxa
    flatpak/snap – duży plik instalacyjny, mniej natywny, z sandboxem
    A prawda jest taka że istnieje całkiem wygodna (może jeszcze nie tak łatwa jak regulowanie uprawnieniami snapów w menedżerze oprogramowania ubuntu/snap store albo flatseal dla flatpak) możliwość sandboxowania pakietów deb/rpm/ppa/tar.xz/aur czy nawet appimage, a służy do tego firejail dostępny w głównych repozytoriach wielu dystrybucji ( https://repology.org/project/firejail/versions )
    Wspomniałem jego przykładowe zastosowanie w komentarzach do tego wpisu:https://www.omgubuntu.co.uk/2020/06/change-snap-app-theme
    (najlepiej rozwinąć wszystkie komentarze a potem ctrl+f: firejail albo mój nick, bo jest sporo komentarzy xD )
    Polecam, i ciekaw jestem czy cię zainteresuje 🙂 W razie pytań jak tego używać / jak używam służę pomocą 🙂

    P.S.
    Uważam że AUR jest dobrą alternatywą dla PPA bo są sprawdzane/monitorowane przez „Trusted User”ów Arch Linuxa, a jak się nie ufa programiście albo paczkującemu dany pakiet można użyć firejaila 🙂
    np moja komenda do pakietu AUR do Microsoft Teams wygląda następująco:
    firejail –x11=xorg –private=/home/user/app/firejail-home/teams teams %U
    Tuż po instalacji pakietu z racji że używam KDE nie musiałem się grzebać z plikami .desktop tylko wchodzę w menu główne – prawym przyciskiem myszy klikam w Teams – edytuj programy – i podmieniam komendę uruchomienia programu 🙂 (warte uwagi że z flagą –x11=xorg zostanie uniemożliwione udostępnianie ekranu nieraz potrzebne na zajęciach 😀 )(folder home dla tego programu musiałem uprzednio ręcznie sam stworzyć)

    Polubione przez 1 osoba

    1. Dzięki za ten komentarz. Firejail oczywiście znam i nawet mam zamiar od dłuższego czasu o nim napisać, to super przydatne narzędzie.
      Słabością tego rozwiązania dla mnie jest to, że wymaga wiedzy i umiejętności od użytkownika; uważam, że potrzebujemy rozwiązań „by dafault”, dla każdego.

      Polubione przez 1 osoba

      1. Problem jest też taki że na topowych stronkach wrzucają tutoriale jak zainstalować jakiś program, jeśli da się też przez snap/flatpak to zaczyna się dyskusja że lepsze bo bezpieczniejsze a firejail nie zostaje wspomniany, gdyby dostał dobrą reklamę, byłby rozpoznawalny to znalazł by się chętny do odświeżenia gui firetools , a tak to pewnie mnóstwo osób w ogóle nie wie o istnieniu narzędzia. Ja je znalazłem bo drążyłem temat, czegoś takiego szukałem xD

        Polubienie

    2. A jeżeli chodzi o AUR to moim zdaniem pod względem bezpieczeństwa faktycznie może być jest półkę wyżej niż garść PPA, ale też nie jest modelem super bezpiecznym. Generalnie w kwestii bezpieczeństwa na Linuksie dla normalnego użytkownika, w stosunku chociażby do systemów mobilnych jest sporo do nadrobienia pod względem uprawnień, sandboxów… No i zastąpienie xorg waylandem. 🙂

      Polubione przez 1 osoba

      1. Z drugiej strony na systemach mobilnych są większe szanse na zainstalowanie złośliwego oprogramowania, więc tam było to niezbędne. Ale dane które np Facebook wyciągnął od użytkowników przed Androidem 5 Lollipop to już ma xD (kiedy przy instalacji trzeba było zaakceptować wszystkie uprawnienia wymagane przez aplikację, coś jak teraz uprawnienia dodatków w Firefoxie).
        Plus np dopiero zbliżająca się perspektywa ograniczenia dostępu aplikacji do całej pamięci urządzenia, ciekawe na ile skutecznie wejdzie scoped storage. Póki co łatam ten problem używając dla niektórych aplikacji Shelter’a.
        Więc na mobilnych może i uprawnienia się już upowszechniły ale Linux i bez nich wydawałby mi się znacznie bezpieczniejszym miejscem dzięki samemu open source.

        Noo właśnie siedzę na KDE Plazmie w sesji Wayland, czasami wywala panel, schowek jest trochę uciążliwy ale środowisko jest już używalne, wydajne i KDE zapowiada że w tym roku Plasma Wayland będzie „Production Ready”. Testowałem też dzisiaj Fedorę Rawhide (wayland by default) i widać że (nie wiem czy w gnome-shell czy w implementacji waylanda) poczynili duże kroki żeby system działał płynnie i wydajnie nawet na wolniejszym sprzęcie 🙂

        Polubione przez 1 osoba

      2. Też siedzę na KDE w tej chwili i czekam na pełną, stabilną obsługę Wayland – „ready” miało być już w 2020, ale miejmy nadzieję, że teraz się faktycznie uda. 🙂
        Co do bezpieczeństwa Linux vs Android – sam model Linuksa (i tym bardziej Windowsa) jest moim zdaniem „nieidiotoodporny”, tj. dla w miarę świadomego użytkownika jest bezpieczny, ale początkujący może go sobie dość łatwo podziurawić stosując się do niektórych dziwnych poradników w sieci. Wiadomo, to też kwestia balansu pomiędzy wolnością i bezpieczeństwem, ale jest jeszcze sporo do zrobienia na Linuksowym desktopie w tej materii.

        Polubione przez 1 osoba

  3. W świecie kerneli Linuxa z backdoorem na dzień dobry, naprawdę warto brać na poważnie takie artykuły jak ten w kwestii bezpieczeństwa. Większość osób pisząca te poradniki o ile są to osoby a nie bot-y, to zapychacze serwerów, przepraszam okien przeglądarki spamem.

    Polubienie

Dodaj komentarz