Najnowsza kompilacja 1803 w końcu wnosi natywną obsługę klienta aplikacji OpenSSH w Windows 10 do generowania i zarządzania kluczami SSH oraz logowania się do zdalnych hostów za pomocą polecenia „ssh login@IP -port
”. To spore ułatwienie dla administratorów i bardziej wymagających użytkowników, którzy nie będą już musieli korzystać w większości zastosowań z niezbyt intuicyjnego Putty oraz PPK. Natywna obsługa aplikacji OpenSSH pozwala od teraz szybciej logować się za pomocą klucza (lub bez) do zdalnych hostów, w taki sam wygodny sposób, jak w systemie Linux. Niestety Ronnie Flather udowodnił, że Microsoft nieodpowiednio zabrał się za domyślne zabezpieczenie wygenerowanych kluczy, które są przekazywane do usługi „ssh-agent
” podczas próby logowania się do serwera z użyciem klucza prywatnego.
Na szczęście nie każdy wierzy na słowo Microsoftowi. W serwisie MSDN w artykule opisującym nową funkcję czytamy coś takiego:
Microsoft słusznie zwraca uwagę na problem z kluczami prywatnymi: „trzeba je przechowywać w bezpiecznym miejscu i nie przekazywać osobom postronnym”. O konsekwencjach nie ma co nawet wspominać.
Przechowywanie kluczy i szybkie logowanie się realizowane jest przez usługę ssh-agent. Wszystkie aplikacje, które są używane w ramach OpenSSH, znajdują się w lokalizacji „c:\windows\system32\openssh
”:
Artykuł na blogu MSDN poucza, w jaki sposób wykorzystać zintegrowanego klienta OpenSSH z systemem Windows — używamy polecenia ssh-agent i ssh-add do przechowywania klucza prywatnego w uruchomionej sesji. Zabezpieczenie kluczy podczas przekazywania ich do klienta realizowane jest za pomocą DPAPI (Data Protection Application Programming Interface) w taki sposób, że klucze prywatne są zakodowane w Base64 i zapisywane w rejestrze: HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\Agent\Keys
.
Teraz możliwe jest wyciągnięcie binarnych obiektów typu blob z rejestru i przekształcenie ich w oryginalne, niezaszyfrowane klucze prywatne RSA, które są domyślnie zapisywane w lokalizacji „%userprofile%
”.
Dostęp do rejestru wymaga podwyższonych uprawnień, ale nie jest to zadanie skomplikowane. Taki atak jest możliwy do przeprowadzenia. Jeżeli cyberprzestępcy zaatakują wybraną organizację, to będą potrzebowali wirusa, który będzie sprawdzała czy ssh-agent jest uruchomiony, a jeżeli tak, to spróbuje uzyskać dostęp do rejestru, wykraść klucze prywatne RSA, które są zakodowane łatwym do przekształcenia do postaci oryginalnej szyfrem Base64 oraz odczytać adresy połączeń.
Autor udowodnił, że kopiując klucz na system operacyjny Linux, możliwe jest zalogowanie się do serwera bez podawania hasła zabezpieczającego (passphrase) dostępu do klucza.
Microsoft tym zagraniem ułatwił zadanie przestępcom, którzy po przechwyceniu klucza prywatnego nie będą musieli łamać hasła dostępu, co nie zawsze byłoby możliwe przy wysokiej entropii.
Czy ten artykuł był pomocny?
Oceniono: 1 razy