I
taka jest brzydka prawda. W serwisie IntelTechniques został opublikowany tekst ostrzegający swoich czytelników i użytkowników systemu Ubuntu przed subskrybowaniem usługi Ubuntu Pro. Powierzchowne użytkowanie tego systemu doprowadziło redakcję do fałszywego przekonania, iż standardowe oprogramowanie zainstalowane przy użyciu polecenia apt jest „aktualne” i „bezpieczne” pomimo wyświetlania ostrzeżeń dotyczących o dostępnych pakietach aktualizujących ich bezpieczeństwo. Cytat z ich publikacji:
[Wyszczególnione pakiety Ubuntu] „w dostępnej wersji” to dokładnie ten sam produkt, co aktualnie zainstalowane oprogramowanie. Ta aktualizacja nic nie wnosi.
Do całej dyskusji, która rozwinęła się w serwisie HackerNews odniósł się jeden z programistów o imieniu Alex tłumacząc, iż to stwierdzenie odzwierciedla szersze nieporozumienie dotyczące aktualnego zarządzania pakietami w systemie Ubuntu. w uproszczeniu można powiedzieć, iż problem pojawia się, gdy włączymy repozytorium universe w dystrybucji typu LTS (Long Term Support – typ specjalnych wydań systemu Ubuntu o przedłużonym okresie wsparcia), co może narazić nas na problemy związane z bezpieczeństwem chyba, iż jesteśmy zainteresowani subskrypcją usługi „Pro”.
System Ubuntu oferuje standardowe repozytorium o nazwie „main” i to ono otrzymuje automatycznie aktualizacje bezpieczeństwa dla pakietów, które się w nim znajdują. Dla przykładu pakietami w tej gałęzi są „nginx”, czy „python3”. Natomiast w repozytorium „universe” znajdują się pakiety, które zostały dodane i są utrzymywane przez społeczność. Oznacza to, iż każdy, kto dołączy do odpowiedzialnej za to grupy mailingowej i wie jak tworzyć pakiety „.deb” dla swojego ulubionego systemu – może proponować i przesyłać paczki do tej gałęzi. Zgłoszenia te są nadzorowane przez opiekunów tej społeczności, a nie bezpośrednio przez firmę Canonical stojącą oficjalnie za dystrybucją Ubuntu. Jak możemy się domyślić wkład społeczności w utrzymanie tych paczek jest różny. Czasami aktualizację zabezpieczeń w wydanych wersjach są bardzo szybkie, a czasami opóźnione lub choćby pomijane. Tym bardziej, iż aktualizacje bezpieczeństwa w rozwoju systemu są najczęściej powiązane z kolejnymi wersjami i nowymi funkcjami, co może prowadzić do problemów w aktualnie używanych aplikacjach. Na przykład: błąd bezpieczeństwa w programie NFsec v0.1, który został użyty w systemie NFsecOS 66.04 LTS został naprawiony w wersji NFsec v0.2, który przy okazji uprościł interfejs linii poleceń. Osoba, która stworzyła pakiet dla programu w wersji 0.1 musi teraz przenieść poprawkę kodu uwzględnioną w wersji 0.2. Nie może podnieść wersji i uwzględnić jej w poprawionej paczce, ponieważ ta posiada już zmiany mogące popsuć logikę, którą użytkownicy aktualnie użyli w swoich skryptach, łańcuchach poleceń itd.
I tutaj wchodzi cała na biało subskrypcja Ubuntu Pro (darmowa dla indywidualnych użytkowników). Ma ona na celu dostarczenie aktualizacji bezpieczeństwa specjalnie dla repozytorium „universe” – wyodrębnienie i zastosowanie poprawek dla paczek, które przez cały czas mają problem z aktualizacją ze strony społeczności. jeżeli spojrzymy na rozkład pakietów to możemy przekonać się, iż najczęściej wykorzystywane i krytyczne oprogramowanie w sieciach firmowych znajduje się w repozytorium „main”. jeżeli chcemy sprawdzić jakie pakiety są w naszym systemie z universe możemy wydać polecenie:
dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}' | grep -v /var/lib/dpkg/status| sed -e 's/://' | awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep universePublikacja w IntelTechniques jako przykład podała pakiet: ffmpeg. Aby zrozumieć zmiany wprowadzone przez Ubuntu Pro Alex na początku zainstalował wspomniany pakiet, a później zapisał system do subskrypcji. Po aktualizacji dostępnych pakietów apt rzeczywiście wskazał możliwość aktualizacji pakietu z repozytorium ESM:
# apt show ffmpeg Package: ffmpeg Version: 7:4.4.2-0ubuntu0.22.04.1Po włączeniu repozytorium Ubuntu Pro:
# apt show ffmpeg Package: ffmpeg Version: 7:4.4.2-0ubuntu0.22.04.1+esm2Kolejnym krokiem było pobranie kodu źródłowego paczki ffmpeg użytej do zbudowania wersji „+esm2” poprzez odkomentowanie repozytorium deb-src w pliku /etc/apt/sources.list.d/ubuntu-esm-apps.list
sudo apt update sudo apt install dpkg-dev sudo apt-get source ffmpegSystemy oparte na Debianie wykorzystują system zarządzania źródłami o nazwie quilt. Poprawki zastosowane w pakiecie, które nie pochodzą od oryginalnych autorów, można znaleźć w ścieżce każdego pakietu /debian/patches/series. Podgląd tego pliku ukazuje, które CVE zostały zaadresowane:
# cat ffmpeg-4.4.2/debian/patches/series 0001-avcodec-arm-sbcenc-avoid-callee-preserved-vfp-regist.patch 0002-configure-arm-Don-t-add-march-to-the-compiler-if-no-.patch CVE-2022-3109.patch CVE-2022-3341.patch CVE-2022-3964.patch CVE-2022-48434.patchKażdy plik .patch reprezentuje poprawkę dotyczącej określonej luki bezpieczeństwa. jeżeli sprawdzimy oficjalną stronę projektu FFmpeg to zobaczymy, iż są to CVE przeniesione z wersji 4.4.3 oraz 4.4.4. Potwierdza to tezę, iż firma Canonical aktywnie łata pakiety ze społeczności i oferuje je w osobnej subskrypcji. Punktem spornym może być tutaj fakt, iż są to zasadniczo przeniesione poprawki bezpieczeństwa opracowane przez społeczność open-source, które sprzedaje się firmom jako część wsparcia dla systemu Linux. Ważne jest jednak, aby zachować różną perspektywę w tej kwestii. jeżeli opiekunowie konkretnych pakietów wywiązują się z zadań ich utrzymania nie są potrzebne takie „darmowo płatne” aktualizacje. W przeciwnym wypadku pracownicy firmy Canonical muszą podjąć się zadania zarządzania takimi pakietami, co może być dość złożonym zadaniem. Od poznania konkretnych narzędzi po poruszaniu się po piekle zależności. Jak wcześniej wspomniałem proces ten może obejmować przystosowywanie łatek do konkretnych wersji, obsługę środowisk wykonawczych starszych języków lub radzenie sobie z przestarzałymi kompilatorami i dbanie o stabilność wydania LTS.
Przypadek ten pokazuje różnorodność krajobrazu systemu open-source. Różne organizacje i projekty w różny sposób publikują oraz podchodzą do aktualizacji bezpieczeństwa. Niektóry wydają aktualizację tylko z nowymi wersjami, a inni robią to dla wszystkich stabilnych wersji jakie dotychczas wydali itd. Czasami drobne aktualizację nieumyślnie psują i spowalniają funkcjonalność pakietów, a czasami ciężkie zmiany upraszczają i przyśpieszają ich działanie. Stabilizacja wydania wymaga od zespołu pakującego selektywnego wyodrębniania poprawek bezpieczeństwa z historii systemów kontroli wersji, co jest procesem z natury podatnym na błędy. Tutaj znalazła się przestrzeń, którą Canonical próbuje wypełnić dla systemu open-source wykorzystywanego w domach i firmach. Dlatego jeżeli natchniemy się na tej komunikat:
$ sudo apt upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done Get more security updates through Ubuntu Pro with 'esm-apps' enabled: vlc-plugin-qt libvlc5 vlc-data libvlccore9 vlc vlc-bin vlc-110n libavdevice58 ffmpeg libpostproc55 vlc-plugin-samba libavcodec58 vlc-plugin-notify libavutil56 libswscale5 vlc-plugin-access-extra vlc-plugin-skins2 vlc-plugin-video-splitter libswresample3 vlc-plugin-video-output libavformat58 libvlc-bin vlc-plugin-base vlc-plugin-visualization libavfilter7 Learn more about Ubuntu Pro at https://ubuntu.com/pro o upgraded, o newly installed, o to remove and 0 not upgraded.Oznacza to, iż w naszym systemie znajdują się pakiety z repozytorium „universe”, które otrzymały aktualizację zabezpieczeń za pośrednictwem usługi Ubuntu Pro. Dla użytkowników innych niż przedsiębiorstwa aktualizacja do tej subskrypcji jest rozsądnym wyborem, ponieważ jest bezpłatna (dla 5’ciu maszyn) i zapewnia łatki bezpieczeństwa. Dla użytkowników biznesowych jest to jak zawsze wybór oparty o wielkość kosztów (ilość serwerów) i ocenę ryzyka możliwości wykorzystania danej podatności.
Więcej informacji: Rodzaje repozytoriów w Ubuntu, Ubuntu Pro enters general availability, The following security updates require Ubuntu Pro with 'esm-apps’ enabled