Ostatnio Pavel Cheremushkin dKaspersky Lab przeanalizował różne implementacje systemu zdalnego dostępu VNC (Obliczenia w sieci wirtualnej) i zidentyfikował 37 luk w zabezpieczeniach spowodowane problemami z pamięcią.
Luki wykryte w implementacjach serwerów VNC może być wykorzystany tylko przez uwierzytelnionego użytkownika a ataki na luki w kodzie klienta są możliwe, gdy użytkownik łączy się z serwerem kontrolowanym przez atakującego.
Na blogu Kaspersky komentują toe Luki te można wykorzystać w następujący sposób:
Aplikacje VNC składają się z dwóch części: serwera zainstalowanego na komputerze, z którym pracownik łączy się zdalnie, oraz klienta działającego na urządzeniu, z którego się łączy. Luki w zabezpieczeniach są znacznie mniej powszechne po stronie serwera, co zawsze jest trochę łatwiejsze i dlatego zawiera mniej błędów. Jednak nasi eksperci z CERT odkryli błędy w obu częściach badanych aplikacji, chociaż w wielu przypadkach atak na serwer może być niemożliwy bez autoryzacji.
O podatnościach
Większość luk została znaleziona w pakiecie UltraVNC, dostępne tylko na platformę Windows. W sumie w UltraVNC Zidentyfikowano 22 luki. 13 luk może doprowadzić do wykonania kodu w systemie, 5 może spowodować wyciek zawartości obszarów pamięci, a 4 mogą doprowadzić do ataku typu „odmowa usługi”.
Wszystkie te luki zostały naprawione w wersji 1.2.3.0.
W otwartej bibliotece LibVNC (LibVNCServer i LibVNCClient), który jest używany w VirtualBox, Zidentyfikowano 10 luki. 5 luk w zabezpieczeniach (CVE-2018-20020, CVE-2018-20019, CVE-2018-15127, CVE-2018-15126, CVE-2018-6307) było spowodowanych przepełnieniem bufora i może prowadzić do wykonania kodu. 3 luki mogą prowadzić do wycieku informacji; 2 do odmowy usługi.
Deweloperzy już naprawili wszystkie problemy- Większość poprawek jest zawartych w wersji LibVNCServer 0.9.12, ale jak dotąd wszystkie poprawki są odzwierciedlane tylko w gałęzi głównej i aktualizacjach generowanych dystrybucjach.
W TightVNC 1.3 (testowana starsza gałąź dla wielu platform), ponieważ aktualna wersja 2.x została wydana tylko dla systemu Windows), Odkryto 4 luki. Trzy problemy (CVE-2019-15679, CVE-2019-15678, CVE-2019-8287) są spowodowane przepełnieniem bufora w funkcjach InitialiseRFBConnection, rfbServerCutText i HandleCoRREBBP i mogą prowadzić do wykonania kodu.
Problem (CVE-2019-15680) prowadzi do odmowy usługi. Pomimo faktu, że programiści TightVNC zostali powiadomieni o problemach w zeszłym roku, luki pozostają nieskorygowane.
W pakiecie wieloplatformowym TurboVNC (fork TightVNC 1.3, który korzysta z biblioteki libjpeg-turbo), znaleziono tylko jedną lukę (CVE-2019-15683), ale jest to niebezpieczne i jeśli istnieje uwierzytelniony dostęp do serwera, to daje możliwość zorganizowania wykonania kodu, tak aby przy przepełnieniach bufora można było kontrolować kierunek powrotu. Problem został rozwiązany 23 sierpnia i nie pojawia się w aktualnej wersji 2.2.3.
Jeśli chcesz dowiedzieć się więcej na ten temat możesz sprawdzić szczegóły w oryginalnym poście. Link jest taki.
Jeśli chodzi o aktualizacje pakietów można to zrobić w następujący sposób.
serwer libvnc
Kod biblioteki mogą go pobrać ze swojego repozytorium na GitHub (link jest następujący). Aby pobrać najbardziej aktualną wersję, możesz otworzyć terminal i wpisać w nim:
wget https://github.com/LibVNC/libvncserver/archive/LibVNCServer-0.9.12.zip
Rozpakuj za pomocą:
unzip libvncserver-LibVNCServer-0.9.12
Wchodzisz do katalogu za pomocą:
cd libvncserver-LibVNCServer-0.9.12
I tworzysz pakiet za pomocą:
mkdir build cd build cmake .. cmake --build .
TurboVNC
Aby zaktualizować do nowej wersji, wystarczy pobrać najnowszy pakiet stabilnej wersji, które można uzyskać z poniższy link.
Zakończono pobieranie pakietu, teraz możesz go po prostu zainstalować, klikając dwukrotnie na nim i niech centrum oprogramowania zajmie się instalacją lub może to zrobić za pomocą preferowanego menedżera pakietów lub z terminala.
Robią to drugie, ustawiając się tam, gdzie w ich terminalu znajduje się pobrany pakiet, a w nim muszą tylko wpisać:
sudo dpkg -i turbovnc_2.2.3_amd64.deb