Luki w dostępie zdalnym poprzez aplikacje VNC

Nasi eksperci z zespołu ICS CERT odkryli 37 luk w czterech implementacjach rozwiązań VNC. Większość z nich została załatana przez producentów oprogramowania.

Dostęp zdalny jest wygodny, a czasami niezbędny. Jednak ma też swoje wady — może stanowić punkt wejścia do infrastruktury firmowej dla osób postronnych, zwłaszcza jeśli wykorzystywane narzędzia umożliwiające dostęp zdalny są dziurawe.

Luki w systemach VNC

Nasz zespół ICS CERT zbadał kilka implementacji VNC (ang. Virtual Network Computing). To powszechnie stosowany system dostępu zdalnego umożliwiający świadczenie pomocy technicznej, monitorowanie sprzętu czy naukę zdalną. Implementacje te zawierały łącznie 37 luk, z których część pozostawała niezauważona aż od 1999 roku.

Trudno jest wskazać dokładną liczbę urządzeń wykorzystujących systemy VNC, lecz sądząc po danych dostępnych w wyszukiwarce Shodan, przez internet można uzyskać dostęp do ponad 600 tys. serwerów VNC. Rzeczywista liczba urządzeń jest jednak znacznie większa.

Gdzie zidentyfikowaliśmy luki

Nasi eksperci przyjrzeli się czterem najpopularniejszym implementacjom VNC z otwartym kodem źródłowym:

  • LibVNC — biblioteka, czyli zestaw gotowych fragmentów kodu, na podstawie których producenci mogą tworzyć aplikacje. Jest ona wykorzystywana między innymi w systemach, które umożliwiają połączenia na odległość z maszynami wirtualnymi, jak również urządzeniami mobilnymi z systemem iOS i Android.
  • TightVNC 1.X — aplikacja polecana przez producentów przemysłowych systemów automatyzacji do łączenia się z interfejsem człowiek-maszyna (HMI).
  • TurboVNC — implementacja VNC do pracy zdalnej z obiektami graficznymi, 3D i wideo.
  • UltraVNC — odmiana VNC utworzona specjalnie dla systemu Windows. Jest ona często wykorzystywana w przemysłowej produkcji do łączenia się z interfejsem HMI.

Luki wykryto we wszystkich czterech systemach: 1 w TurboVNC, 4 w TightVNC, 10 w LibVNC oraz aż 22 w UltraVNC.

Z czym są związane te luki i jak mogą zostać wykorzystane

Aplikacje VNC składają się z dwóch części: serwera zainstalowanego na komputerze, z którym pracownik łączy się zdalne, a także z klienta działającego na urządzeniu, z którego połączenie jest realizowane. Luki znacznie rzadziej występują po stronie serwera, ponieważ zwykle ma on prostszą strukturę, przez co ma mniej błędów. Niemniej jednak nasi eksperci z zespołu CERT znaleźli w toku analizy luki w obu częściach wspomnianych aplikacji, chociaż atak na serwer w wielu przypadkach wymagałby autoryzacji.

Wszystkie podatności wynikają z niepoprawnego użycia pamięci i mogłyby skutkować jedynie niepoprawnym działaniem i odmową dostępu do usługi. W poważniejszych przypadkach atakujący mogą zdobyć nieautoryzowany dostęp do informacji na urządzeniu lub wpuścić do systemu szkodliwy program.

Część luk została załatana, jednak nie wszystkie

Nasi eksperci zgłosili luki producentom bibliotek i aplikacji. Większość z nich została już wyeliminowana. Jest jednak pewien wyjątek: autorzy programu TightVNC nie wspierają już pierwszej wersji swojego systemu, w związku z czym odmówili załatania wykrytej w nim luki. To ważny powód, aby rozważyć korzystanie z innej platformy VNC.

Co więcej, podobnie jak w przypadku wielu projektów z otwartym kodem źródłowym dziurawy kod zostaje użyty w wielu innych przypadkach, a nie wszyscy producenci trzymają się aktualizacji bibliotek, z których pożyczają fragmenty do swoich produktów. Takie programy pozostaną dziurawe, dopóki ich autorzy zaktualizują kod, co, z przykrością musimy stwierdzić, czasami nie zdarza się nigdy.

Wskazówki dla firm

Lista luk wraz ze szczegółami technicznymi znajduje się w raporcie opublikowanym na stronie Kaspersky ICS CERT. Mimo że nasi koledzy skupili się na systemach VNC używanych w przedsiębiorstwach przemysłowych, zagrożenie to dotyczy każdej firmy, która wykorzystuje tę technologię.

Aby cyberprzestępcy nie wykorzystali wspomnianych luk, zalecamy monitorowanie programów umożliwiających dostęp zdalny w swojej infrastrukturze.

  • Sprawdź, które urządzenia mogą łączyć się zdalnie, i zablokuj połączenia zdalne, jeśli nie są potrzebne.
  • Zrób listę wszystkich aplikacji dostępu zdalnego — nie tylko VNC — i sprawdź, czy są aktualne. Jeśli masz wątpliwości odnośnie wiarygodności, zrezygnuj z nich. Jeśli zamierzasz nadal ich używać, pamiętaj o aktualizowaniu do najnowszej wersji.
  • Chroń swoje serwery VNC silnym hasłem. W ten sposób znacząco utrudnisz przeprowadzenie ataku.
  • Nie łącz się z niezaufanymi lub niesprawdzonymi serwerami VNC.
  • W przypadku środowisk przedsiębiorstw przemysłowych należy używać specjalnego rozwiązania zabezpieczającego dla systemów automatyki przemysłowej, na przykład Kaspersky Industrial CyberSecurity.
  • Aby zapewnić firmie bezpieczeństwo, używaj niezawodnego programu. Doskonałym wyborem będzie tu Kaspersky Endpoint Security for Business.
Porady