Aż 4 podatności znalezione w jednym z najbezpieczniejszych systemów operacyjnych

Maciej Olanicki , 05.12.2019 r.
klodka

Można odnieść wrażenie, że przechwałki dotyczące bezpieczeństwa jakiegoś sprzętu czy oprogramowania najczęściej szybko kończą się kompromitacją chwalącego się. Zupełnie jakby za każdym razem, gdy ktoś zapewnia o najskuteczniejszej możliwej ochronie, ktoś inny mówił: „sprawdzam”. Jednym z chlubnych wyjątków wśród systemów operacyjnych jest OpenBSD, uchodzące za jeden z najbezpieczniejszych OS-ów w ogóle.

Oczywiście tak imponujących rezultatów nie osiągnięto bez wyrzeczeń. Swoje bezpieczeństwo OpenBSD zawdzięcza umyślnej rezygnacji z części funkcji czy optymalizacji. Nie będzie przesady w twierdzeniu, że bezpieczeństwo OpenBSD jest nadrzędne w stosunku do funkcjonalności systemu czy jego wydajności. Przykładem może być reakcja społeczności rozwijającej OpenBSD na podatności w mechanizmie predykcji procesorów x86. Gdy w styczniu 2018 roku ujawniono luki Spectre/Meltdown, twórcy błyskawicznie zdecydowali, że na gruncie OpenBSD intelowski hyperthreading będzie całkowicie wyłączony. Zupełnie nie liczono się ze spadkami wydajności, bo bezpieczeństwo było najważniejsze.

Nawet oficjalna strona systemu wita nas wyświetlanym na czerwono komunikatem: „tylko dwie zdalne luki w domyślnej instalacji od cholernie dawna”. Niestety, grudnia 2019 roku twórcy OpenBSD nie będą wspominali ciepło, gdyż w rozwijanym przez nich systemie odnaleziono nie jedną, lecz cztery luki bezpieczeństwa. Sytuacja jest tym bardziej poważna, że oszacowano je jako na podatności wysokiego ryzyka, a jedną z nich można wykorzystać zdalnie. Wygląda na to, że dni motto wyświetlanego na stronie głównej OpenBSD są policzone. Przyjrzyjmy się więc bliżej odnalezionym właśnie lukom.

openbsd

CVE-2019-19521 pozwala na ominięcie mechanizmów uwierzytelniania podczas logowania za pośrednictwem protokołów smtpd, ldapd, radiusd. Bezpieczne mają być natomiast su i sshd, niemniej ta ostatnia usługa pozwala na zdalne sprawdzenie, czy dana maszyna jest podatna. Sama luka bierze się z mechanizmów parsowania danych logowania. Atakujący może uzyskać dostęp do usług po wpisaniu w nazwy użytkownika z frazą -schallenge lub -schallenge: passwd, które zamiast jako login są przez parsery interpretowane jako parametr w wierszu poleceń. Pozwala to manipulować parserem i w najczarniejszym scenariuszu całkowicie ominąć uwierzytelnianie.

Pozostałe podatności nie są już tak groźne. Przede wszystkim dlatego, że do ich wykorzystania konieczny jest lokalny dostęp do urządzenia. CVE-2019-19520 za pośrednictwem manipulacji ścieżkami wykorzystywanych przez dlopen() i xlock pozwala na eskalacje uprawnień do poziomu auth. CVE-2019-19522 z kolei to znów podatność pozwalająca na eskalację uprawnień, ale tkwi w mechanizmach S/Key i YubiKey, które nie są domyślnie wykorzystywane. W tym przypadku atakujący z uprawnieniami auth może uzyskać roota. Ostatnia podatność wynika z błędu w obsłudze logiki przez su.

Szczegółowe informacje o wszystkich lukach znaleźć można w zbiorczej analizie opublikowanej przez grupę Qualys. Wszystkie podatności zostały już załatane przez twórców OpenBSD, którzy zalecają aktualizację systemu za pośrednictwem syspatch.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: