Kwetsbaarheden van Virtual Network Computing (VNC) op afstand

Onze ICS CERT-experts hebben 37 kwetsbaarheden gevonden in vier VNC-implementaties. De ontwikkelaars hebben de meeste hiervan opgelost, maar niet allemaal.

Toegang op afstand is handig en soms zelfs absoluut noodzakelijk. Het nadeel is dat dit een toegangspunt tot uw bedrijfsinfrastructuur kan bieden aan indringers, zeker als de tools die u voor deze toegang gebruikt kwetsbaar zijn.

VNC-kwetsbaarheden

Onze ICS CERT bestudeerde verschillende VNC-implementaties. VNC is een gangbaar systeem voor toegang op afstand, en wordt veel gebruikt voor technische ondersteuning, het monitoren van apparatuur, leren op afstand en andere doelen. In deze implementaties werd een totaal van 37 kwetsbaarheden gevonden, waarvan sommige al sinds 1999 onopgemerkt bestonden.

Het is lastig om een exact cijfer op het aantal apparaten dat VNC-systemen gebruikt te plakken, maar op basis van de gegevens van de Shodan-zoekmachine, kan er tot meer dan 600.000 VNC-servers online toegang worden verkregen. Het daadwerkelijke aantal ligt waarschijnlijk nog veel hoger.

Waar we de kwetsbaarheden vonden

Onze experts bestudeerden vier veelgebruikte open-source VNC-implementaties:

  • LibVNC — een bibliotheek, of eigenlijk een verzameling kant-en-klare codefragmenten op basis waarvan ontwikkelaars apps kunnen creëren; LibVNC wordt bijvoorbeeld gebruikt in systemen die verbindingen op afstand toestaan met virtuele machines en mobiele apparaten met zowel iOS als Android.
  • TightVNC 1.X — een applicatie die wordt aangeraden door verkopers van industriële automatiseringssystemen voor het maken van verbinding met een Human Machine Interface (HMI).
  • TurboVNC — een VNC-implementatie voor het op afstand werken met grafische, 3D- en video-objecten.
  • UltraVNC — een VNC-variant die specifiek voor Windows is gebouwd; deze wordt ook veel gebruikt in industriële productie voor het verbinding maken met HMI’s.

Er werden in alle vier deze systemen bugs gevonden: één in TurboVNC, vier in TightVNC, tien in LibVNC en maar liefst 22 in UltraVNC.

Wat dit voor kwetsbaarheden zijn en hoe er misbruik van kan worden gemaakt

VNC-applicaties bestaan uit twee delen: een server die is geïnstalleerd op een computer waar uw werknemer op afstand verbinding mee maakt, en een client die op het apparaat draait vanwaar er verbinding wordt gemaakt. De kwetsbaarheden zijn veel minder gebruikelijk aan de server-kant, die normaal gesproken wat eenvoudiger in elkaar zit en daarom minder bugs bevat. Desalniettemin vonden onze CERT-experts zwakke plekken in beide onderdelen van de onderzochte applicaties, maar een aanval op de server zou in de meeste gevallen onmogelijk zijn zonder autorisatie.

Alle gevonden bugs hebben te maken met incorrect geheugengebruik. Deze kwetsbaarheden benutten leidt enkel tot storingen en denial of service — een relatief gunstige uitkomst. In ernstigere gevallen kunnen aanvallers ongeautoriseerde toegang verkrijgen tot informatie op het apparaat of malware op het systeem van het slachtoffer loslaten.

Sommige kwetsbaarheden verholpen, maar niet allemaal

Onze CERT-mensen rapporteerden de bugs aan de ontwikkelaars van de respectievelijke bibliotheken en applicaties. De meeste bugs zijn inmiddels al verholpen. Er is helaas een uitzondering: de makers van TightVNC ondersteunen de eerste versie van hun systeem niet meer, en ze weigerden om de daarin gevonden kwetsbaarheden te verhelpen. Dit is een belangrijke reden om te besluiten op een ander VNC-platform over te stappen.

Bovendien wordt kwetsbare code, zoals in vele open-source projecten, ook veel gebruikt in andere ontwikkelingen, en niet alle ontwikkelaars houden alle updates goed bij van de bibliotheken waar ze codefragmenten van hebben gebruikt voor hun creaties. Zulke programma’s zullen kwetsbaar blijven tot hun makers de code updaten, wat, tot onze spijt, misschien wel nooit gebeurt.

Wat kunnen bedrijven hieraan doen?

De lijst met kwetsbaarheden met de technische details vindt u in het rapport dat op de website van Kaspersky ICS CERT is gepubliceerd. Hoewel de focus van onze collega’s op het gebruik van VNC in industriële ondernemingen lag, zijn deze dreigingen relevant voor elk bedrijf dat gebruikmaakt van deze technologie.

Om te voorkomen te cybercriminelen van deze kwetsbaarheden profiteren, raden we aan om programma’s voor toegang op afstand in uw infrastructuur goed te bewaken.

  • Bekijk welke apparaten op afstand verbinding kunnen maken, en blokkeer verbindingen op afstand als deze niet nodig zijn.
  • Maak een inventaris van alle applicaties voor toegang op afstand — niet alleen VNC — en controleer of alle versies geüpdatet zijn. Als u twijfelt over de betrouwbaarheid ervan, stop dan met het gebruik ervan. Als u van plan bent om ze te blijven gebruiken, zorg er dan voor dat ze tot de laatste versie geüpgraded zijn.
  • Bescherm uw VNC-servers met een sterk wachtwoord. Dit zorgt ervoor dat het aanvallen ervan een stuk moeilijker wordt.
  • Maak geen verbinding met onbetrouwbare of niet-geteste VNC-servers.
  • Gebruik binnen industriële bedrijfsomgevingen een gespecialiseerde beveiligingsoplossing voor industriële automatiseringssystemen, zoals bijvoorbeeld Kaspersky Industrial CyberSecurity.
  • Gebruik om uw bedrijf te beschermen een robuust beveiligingssysteem. Een uitstekende keuze is Kaspersky Endpoint Security for Business.
Tips