Wydanie OpenSSH 9.8 z wyłączeniem algorytmu DSA i dodatkowymi mechanizmami bezpieczeństwa

Została wydana wersja OpenSSH 9.8 – otwartoźródłowa wersja klienta i serwera przeznaczona do pracy z protokołami SSH 2.0 i SFTP. Oprócz usunięcia osobno ogłoszonej krytycznej luki w zabezpieczeniach (CVE-2024-6387), która umożliwia zdalne wykonanie kodu z uprawnieniami roota na etapie wstępnego uwierzytelniania, nowa wersja usuwa inną, mniej niebezpieczną lukę w zabezpieczeniach i proponuje kilka istotnych zmian mających na celu poprawę bezpieczeństwa.

Druga luka pozwala na ominięcie zabezpieczeń przed atakami typu side-channel dodanych w OpenSSH 9.5, które analizują opóźnienia pomiędzy naciśnięciami klawiszy na klawiaturze w celu odtworzenia danych wejściowych. Luka pozwala odróżnić pakiety tworzące aktywność w tle poprzez symulowanie fikcyjnych naciśnięć klawiszy od pakietów wysyłanych poprzez naciśnięcie prawdziwych klawiszy, co zmniejsza skuteczność mechanizmu ukrywania cech interaktywnego wprowadzania danych w ruchu SSH. Dane dotyczące naciśnięć klawiszy umożliwiają ataki polegające na rekonstrukcji wprowadzanych danych poprzez analizę opóźnień pomiędzy naciśnięciami klawiszy, które zależą od układu klawiszy na klawiaturze (na przykład napisanie litery „F” jest szybsze niż naciśnięcie „Q” lub „X”, ponieważ wymaga mniejszego ruchu palców).

Dodatkowo okazało się, że zaimplementowany algorytm wysyłania pakietów z prawdziwymi i fikcyjnymi kliknięciami obniża niezawodność innej metody ochrony przed atakami typu side-channel. Od czasu wydania
OpenSSH 2.9.9 Serwer Wysyłano pakiety zawierające fikcyjną sekwencję naciśnięć klawiszy do wprowadzania danych z konsoli w trybie wyłączenia echa, wykorzystywaną na przykład podczas wpisywania haseł w poleceniach su lub sudo. Nowa logika wysyłania fikcyjnych pakietów umożliwiła pasywnej analizie ruchu wyizolowanie pakietów zawierających rzeczywiste naciśnięcia klawiszy w trybie wyłączenia echa i oddzielenie ich od pozostałych. Dokładność informacji o czasie naciśnięcia klawisza jest jednak ograniczona, ponieważ po wpisaniu pakiety nie są wysyłane natychmiast, lecz w ustalonych odstępach czasu (domyślnie 20 ms).

Inne zmiany w OpenSSH 9.8:

  • Na etapie kompilacji obsługa podpisów cyfrowych opartych na algorytmie DSA jest domyślnie wyłączona. Implementacja DSA zostanie usunięta z bazy kodu na początku 2025 r. Powodem usunięcia jest to, że poziom ochrony w DSA nie spełnia współczesnych wymagań. Koszt dalszego utrzymywania niebezpiecznego algorytmu DSA nie jest tego wart, a jego usunięcie spowoduje, że inne implementacje SSH i biblioteki kryptograficzne przestaną obsługiwać DSA.
  • Aby zapewnić dodatkową ochronę przed metodami eksploatacji wymagającymi dużej liczby połączeń z sshd, wdrożono nowy tryb ochrony, który jest domyślnie włączony. Tryb ten pomaga również blokować zautomatyzowane ataki polegające na odgadywaniu haseł, w których boty próbują odgadnąć hasło użytkownika, wypróbowując różne typowe kombinacje. Ta ochrona jest realizowana poprzez blokowanie. Adresy IP, który rejestruje dużą liczbę nieudanych prób połączeń, sshd monitoruje stan zakończenia procesów potomnych, wykrywając sytuacje, w których uwierzytelnianie nie powiodło się lub proces został nieprawidłowo zakończony z powodu awarii. Po przekroczeniu określonego progu rozpoczyna blokowanie żądań z problematycznych adresów IP lub podsieci. Parametry PerSourcePenalties, PerSourceNetBlockSize i PerSourcePenaltyExemptList służą do konfigurowania progu blokowania, maski podsieci do zablokowania oraz listy wykluczeń.
  • sshd został podzielony na kilka oddzielnych plików wykonywalnych. Proces sshd-session jest oddzielony od sshd i wykonuje zadania związane z obsługą sesji. Proces sshd zachowuje funkcje odpowiedzialne za akceptowanie połączeń sieciowych, sprawdzanie konfiguracji, ładowanie kluczy hosta i zarządzanie uruchomionymi procesami zgodnie z parametrem MaxStartups. Dzięki temu plik wykonywalny sshd zawiera teraz minimalną funkcjonalność wymaganą do zaakceptowania nowego połączenia sieciowego i uruchomienia sesji sshd w celu obsługi sesji.
  • Zmieniono treść niektórych komunikatów o błędach zapisywanych w dzienniku. W szczególności pewna liczba wiadomości jest teraz wysyłana w imieniu procesu „sshd-session”, a nie „sshd”.
  • W narzędziu ssh-keyscan informacje o wersji protokołu i nazwie hosta są teraz wyprowadzane na standardowe wyjście, a nie na STDERR. Zaleca się użycie opcji „-q” w celu wyłączenia wyjścia.
  • Protokół SSH umożliwia wyłączenie opcji zastępczej z używania certyfikatu klucza hosta na rzecz używania zwykłych kluczy hosta za pomocą dyrektywy HostkeyAlgorithms.
  • Przenośna wersja sshd nie używa już wartości argv[0] do określania nazwy usługi PAM. Aby określić nazwę usługi PAM, do pliku sshd_config dodano nową dyrektywę „PAMServiceName”, która domyślnie jest ustawiona na „sshd”.
  • Przenośna wersja sshd umożliwia zapisywanie automatycznie generowanych plików (skryptu configure, config.h.in itp.) w gałęzi Git z wersjami (na przykład V_9_8), co pozwala na synchronizację składu cyfrowo podpisanych archiwów tar i gałęzi w Git.
  • Przenośna wersja ssh i ssh-agent zapewnia ustawienie trybu
    SSH_ASKPASS w obecności zmiennej środowiskowej WAYLAND_DISPLAY, podobnie jak zrobiono to dla X11 w obecności zmiennej środowiskowej DISPLAY.
  • Przenośna wersja sshd dodaje obsługę wysyłania powiadomień do systemd, gdy tworzone lub ponownie uruchamiane jest gniazdo sieciowe nasłuchujące, przy użyciu samodzielnego kodu, który nie wywołuje biblioteki libsystemd.

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster