NFsec Logo

Powrót luk bezpieczeństwa w SCP po 36 latach

16/01/2019 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 676, ilość słów: 739)

H

arry Sintonen odkrył zestaw 36-letnich w implementacji protokołu Secure Copy Protocol (SCP) wielu aplikacji klienckich. Luki te mogą zostać wykorzystane przez złośliwe serwery do nieautoryzowanego nadpisania dowolnych plików w katalogu docelowym klienta SCP. Dla przypomnienia: SCP, zwany również “bezpieczną kopią”, jest protokołem sieciowym, który umożliwia użytkownikom bezpieczne przesyłanie plików pomiędzy lokalnym, a zdalnym hostem przy użyciu protokołu RCP (ang. Remote Copy Protocol) oraz protokołu SSH (ang. Secure Shell. Innymi słowy, SCP (pochodzący z 1983 roku) jest bezpieczną wersją RCP, która wykorzystuje uwierzytelnianie i szyfrowanie protokołu SSH do przesyłania plików między serwerem, a klientem.

Odkryte przez Harry’ego (aktualnie pracujący jako starszy konsultant bezpieczeństwa firmy F-Secure) luki występują z powodu słabych walidacji przeprowadzanych przez klientów SCP, które mogą zostać nadużyte przez złośliwe serwery lub pośredników w ataku typu “man-in-the-middle” (MiTM) w celu wrzucenia lub nadpisania dowolnych plików w systemie klienta.

“Wielu klientów SCP nie sprawdza, czy obiekty zwrócone przez serwer SCP pasują do tych, o które prosiło. Problem ten pochodzi jeszcze z RCP z 1983 roku, na którym opiera się SCP. Odrębny błąd w kliencie pozwala na arbitralną zmianę atrybutów katalogu docelowego. I na koniec dwie luki w zabezpieczeniach klientów mogą umożliwić serwerowi fałszowanie danych wyjściowych klienta.” – wyjaśnił Sintonen.

W określonym scenariuszu ataku, serwer kontrolowany przez atakującego może wrzucić np. specjalnie spreparowany plik .bash_aliases / .bash_profile do katalogu domowego ofiary, co spowoduje, że system wykona złośliwe polecenia w jego obrębie, gdy tylko użytkownik Linuksa uruchomi ponownie nową powłokę. Nagranie demonstrujące ten scenariusz możemy znaleźć tutaj. Transfer dodatkowych plików jest ukryty przez wysyłanie sekwencji sterujących ANSI na stderr.

Zgodnie z poradnikiem wymienione luki zostały odkryte w sierpniu zeszłego roku, a następnie odpowiedzialnie ujawnione developerom wrażliwych klientów: OpenSSH, PuTTY i WinSCP.

  • 1. CWE-20: nieprawidłowe sprawdzanie nazwy katalogu przez klienta SCP [CVE-2018-20685] – klient SCP umożliwia serwerowi modyfikowanie uprawnień katalogu docelowego za pomocą pustego ("D0777 0 \n") lub jako kropki ("D0777 0 .\n) nazwy katalogu.
  • 2. CWE-20: brak sprawdzania poprawności nazwy otrzymanego obiektu przez klienta SCP [CVE-2019-6111] – ze względu na implementację SCP pochodzącą pierwotnie od RCP w 1983 roku to serwer wybiera, które pliki / katalogi są wysyłane do klienta. Jednak klient SCP tylko pobieżnie sprawdza poprawność zwróconej nazwy obiektu (głównie zapobiega atakom Directory Traversal). Dzięki czemu złośliwy serwer SCP może nadpisywać dowolne pliki w katalogu docelowym klienta SCP. Jeśli operacja jest wykonywana rekursywnie (-r) serwer może manipulować również podkatalogami np. nadpisać .ssh/authorized_keys. Ta sama luka w zabezpieczeniach klienta WinSCP została oznaczona CVE-2018-20684.
  • 3. CWE-451: fałszowanie klienta SCP przez nazwę obiektu [CVE-2019-6109] – z powodu braku kodowania znaków na ekranie postępu kopiowania można użyć nazwy obiektu do manipulowania danymi wyjściowymi klienta. Na przykład zastosować kody ANSI, aby ukryć dodatkowo przesyłane pliki.
  • 4. CWE-451: fałszowanie klienta SCP przez stderr [CVE-2019-6110] – z powodu akceptacji i wyświetlania dowolnych danych na stderr z serwera SCP przez klienta – złośliwy serwer może manipulować danymi wyjściowymi klienta. Na przykład zastosować kody ANSI, aby ukryć dodatkowo przesyłane pliki.

Ponieważ luki mają wpływ na implementację protokołu SCP – dotyczy to wszystkich aplikacji klienckich SCP, w tym OpenSSH, PuTTY i WinSCP, które używają SCP jako standardu do przesyłania plików. Następujące pakiety oprogramowania mają niektóre lub wszystkie błędy:

                   ver      #1  #2  #3  #4
OpenSSH scp        < =7.9    x   x   x   x
PuTTY PSCP         ?         -   -   x   x
WinSCP scp mode    <=5.13    -   x   -   -

CVE-2018-20685 zostało załatane w listopadzie, jeśli chodzi o implementację protokołu SCP przez OpenSSH. Niestety poprawka nie została jeszcze oficjalnie wydana. Pozostałe trzy luki pozostają niezałatane w wersji 7.9 - wydanej w październiku. Jeśli obawiamy się możliwości trafienia na złośliwy serwer SCP możemy skonfigurować swoje systemy, aby używały SFTP lub nałożyć przygotowaną przez Harry'ego łatkę.

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

Tagi T a g i : , , , ,

Komentowanie tego wpisu jest zablokowane.