NFsec Logo

Niektóre paczki z Ubuntu nie mają wszystkich łatek bezpieczeństwa

15/11/2023 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 879, ilość słów: 1090)

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, że 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, że to stwierdzenie odzwierciedla szersze nieporozumienie dotyczące aktualnego zarządzania pakietami w systemie Ubuntu. W skrócie można powiedzieć, że 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, że 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, że każdy, kto dołączy do odpowiedzialnej za to grupy mailingowej i wie jak tworzyć pakiety “.deb” dla swojego ulubionego oprogramowania – 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 nawet pomijane. Tym bardziej, że aktualizacje bezpieczeństwa w rozwoju oprogramowania 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 nadal mają problem z aktualizacją ze strony społeczności. Jeśli spojrzymy na rozkład pakietów to możemy przekonać się, że najczęściej wykorzystywane i krytyczne oprogramowanie w sieciach firmowych znajduje się w repozytorium “main”. Jeśli 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 universe

Publikacja 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.1

Po włączeniu repozytorium Ubuntu Pro:

# apt show ffmpeg
Package: ffmpeg
Version: 7:4.4.2-0ubuntu0.22.04.1+esm2

Kolejnym 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 ffmpeg

Systemy 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.patch

Każdy plik .patch reprezentuje poprawkę dotyczącej określonej luki bezpieczeństwa. Jeśli sprawdzimy oficjalną stronę projektu FFmpeg to zobaczymy, że są to CVE przeniesione z wersji 4.4.3 oraz 4.4.4. Potwierdza to tezę, że firma Canonical aktywnie łata pakiety ze społeczności i oferuje je w osobnej subskrypcji. Punktem spornym może być tutaj fakt, że 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śli 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 oprogramowania 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 oprogramowania open-source wykorzystywanego w domach i firmach. Dlatego jeśli 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, że 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

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , , , ,

Komentowanie tego wpisu jest zablokowane.