Dlaczego "zamrożone" jądro dystrybucji Linuksa nie jest najbezpieczniejszym wyborem z punktu widzenia bezpieczeństwa?

Jeremy Allison - Sam (czytelnik Slashdot #8,157) jest wybitnym inżynierem w Rocky Linux, twórcy CIQ. W tym tygodniu opublikował post na blogu, w którym odpowiedział na obietnice dystrybucji Linuksa "starannie wybierając tylko najbardziej dopracowane i nieskazitelne łatki open source z surowego jądra Linuksa w celu stworzenia bezpiecznego jądra dystrybucji, na którym polegasz w swojej firmie".

Ale czy starannie dobrane poprawki oprogramowania (zastosowane do znanego "zamrożonego" jądra Linuksa) naprawdę zapewniają większe bezpieczeństwo? "Po ciężkiej pracy i analizie danych przeprowadzonej przez moich kolegów z CIQ, Ronniego Sahlberga i Jonathana Maple'a, w końcu mamy odpowiedź na to pytanie. Nie." *Dane pokazują, że "zamrożone" jądra Linuksa dostawców, utworzone przez rozgałęzienie od punktu wydania, a następnie przy użyciu zespołu inżynierów w celu wybrania określonych poprawek do ponownego przeniesienia do tej gałęzi, są bardziej podatne na błędy niż "stabilne" jądro Linuksa stworzone przez Grega Kroah-Hartmana. Jak to możliwe? Jeśli chcesz poznać wszystkie szczegóły, link do białej księgi znajduje się poniżej. Ale wyniki analizy nie mogą być jaśniejsze.

  • "Zamrożone" jądro dostawcy jest jądrem niezabezpieczonym. Jądro dostawcy wydane później w harmonogramie wydań jest podwójnie niebezpieczne.

  • Liczba znanych błędów w "zamrożonym" jądrze dostawcy rośnie z czasem. Wzrost liczby błędów nawet przyspiesza w czasie.

  • Istnieje zbyt wiele otwartych błędów w tych jądrach, aby można było je przeanalizować lub nawet sklasyfikować....

Myślenie, że dokonujesz bezpieczniejszego wyboru, używając "zamrożonego" jądra dostawcy, nie jest luksusem, na który wciąż możemy sobie pozwolić. Jak wyraźnie powiedział Greg Kroah-Hartman w swoim wykładzie "Demystifying the Linux Kernel Security Process": "Jeśli nie używasz najnowszego stabilnego / długoterminowego jądra, twój system nie jest bezpieczny. " CIQ opisuje swój raport jako "zliczenie wszystkich znanych błędów z jądra upstream, które zostały wprowadzone, ale nigdy nie zostały naprawione w RHEL 8". Dla najnowszych jąder RHEL 8, w chwili pisania tego tekstu, liczby te wynoszą RHEL 8.6 : 5034 RHEL 8.7 : 4767 RHEL 8.8 : 4594

W RHEL 8.8 mamy w sumie 4594 znanych błędów z poprawkami, które istnieją upstream, ale dla których znane poprawki nie zostały wstecznie przeniesione do RHEL 8.8. Sytuacja jest gorsza w przypadku RHEL 8.6 i RHEL 8.7, ponieważ zostały one wycofane wcześniej niż RHEL 8.8, ale oczywiście nie zapobiegło to odkrywaniu nowych błędów i naprawianiu ich upstream...

Ta biała księga nie ma na celu krytyki inżynierów pracujących u któregokolwiek z dostawców Linuksa, którzy są oddani tworzeniu wysokiej jakości pracy w swoich produktach w imieniu swoich klientów. Problem ten jest niezwykle trudny do rozwiązania. Wiemy, że jest to tajemnicą poliszynela wśród wielu osób w branży i chcielibyśmy przedstawić konkretne liczby opisujące ten problem, aby zachęcić do dyskusji. Mamy nadzieję, że producenci Linuksa i cała społeczność opowiedzą się za stabilnymi jądrami kernel.org jako najlepszym długoterminowym rozwiązaniem. Jako inżynierowie wolelibyśmy, aby pozwolono nam poświęcić więcej czasu na naprawianie błędów specyficznych dla klienta i zgłaszanie ulepszeń funkcji w górę strumienia, zamiast niekończącej się harówki polegającej na wstecznym transporcie zmian w górę strumienia do jąder dostawców, co może wprowadzić więcej błędów niż naprawić.

ZDNet nazywa to "otwartym sekretem społeczności linuksowej". Nie wystarczy korzystać z długoterminowej wersji wsparcia. Musisz używać najbardziej aktualnej wersji, aby być tak bezpiecznym, jak to tylko możliwe. Niestety, prawie nikt tego nie robi. Niemniej jednak, jak wyjaśnił Kees Cook, inżynier jądra Google Linux: "Co więc może zrobić sprzedawca? Odpowiedź jest prosta: chociaż to bolesne: nieustannie aktualizować do najnowszej wersji jądra, głównej lub stabilnej". Dlaczego? Jak wyjaśnił Kroah-Hartman, "każdy błąd może potencjalnie stanowić błąd bezpieczeństwa na poziomie jądra....".

Chociaż programiści CIQ zbadali konkretnie RHEL 8.8, jest to ogólny problem. Takie same wyniki uzyskaliby, gdyby zbadali SUSE, Ubuntu lub Debian Linux. Dystrybucje Linuksa typu Rolling Release, takie jak Arch, Gentoo i OpenSUSE Tumbleweed, stale wydają najnowsze aktualizacje, ale nie są używane w firmach.

ELI5: Jeremy Allison, znany inżynier w firmie Rocky Linux, opublikował post na blogu przekazujący, że korzystanie z najnowszych i stabilnych wersji jądra Linuksa, takich jak te tworzone przez Grega Kroah-Hartmana, jest ważne dla zapewnienia bezpieczeństwa. Badanie przeprowadzone przez CIQ wykazało, że "zamrożone" jądra dostawców, mimo starannie wybranych poprawek, są bardziej podatne na błędy i zwiększają ryzyko dla systemów. Zaleca się więc regularne aktualizacje jądra, aby zapewnić bezpieczeństwo systemu.

Źródła: