Уязвимости в системе удаленного доступа VNC

Наши эксперты нашли 37 уязвимостей в четырех реализациях VNC. Большую часть разработчики исправили, но не все.

Уязвимости в системе удаленного доступа VNC

Удаленный доступ — это удобно, а в некоторых случаях без него просто не обойтись. Однако он может оказаться точкой входа злоумышленников в вашу корпоративную инфраструктуру, особенно если инструменты, которые вы используете для организации этого доступа, уязвимы.

Уязвимости в VNC

Эксперты нашего ICS CERT изучили несколько реализаций VNC (Virtual Network Computing) — одной из распространенных систем удаленного доступа, которая широко используется для техподдержки, контроля работы оборудования, дистанционного обучения и других целей. В этих реализациях обнаружилось в общей сложности 37 уязвимостей, причем часть из них оставалась незамеченной с 1999 года.

Точное количество устройств, на которых используются VNC-системы, назвать сложно, однако судя по данным поискового движка Shodan, более 600 тысяч VNC-серверов доступно из Интернета. В действительности же их, скорее всего, значительно больше.

Где нашли уязвимости

Эксперты исследовали четыре распространенные реализации системы VNC с открытым исходным кодом:

  • LibVNC — библиотека, то есть набор готовых фрагментов кода, на основе которых разработчики создают приложения. LibVNC используется, например, в системах, позволяющих удаленно подключаться к виртуальным машинам, а также мобильным устройствам на iOS и Android.
  • TightVNC 1.X — приложение, рекомендованное производителями промышленных систем автоматизации для подключения к человеко-машинному интерфейсу (HMI).
  • TurboVNC — реализация VNC, облегчающая удаленную работу с графическими, 3D- и видеообъектами.
  • UltraVNC — вариант VNC, разработанный специально для ОС Windows. Также широко используется в промышленном производстве для подключения к HMI.

Уязвимости обнаружились во всех четырех системах. В TurboVNC нашелся только один баг, в TightVNC — четыре, тогда как в LibVNC их оказалось 10, а в UltraVNC — целых 22.

Что за уязвимости и как ими могут воспользоваться

VNC-приложения состоят из двух частей: серверной — она устанавливается на компьютер, к которому ваш сотрудник подключается удаленно, — и клиентской, работающей на устройстве, с которого он подключается. В серверной части уязвимости встречаются значительно реже: она обычно несколько проще и багов в ней меньше. Тем не менее эксперты CERT нашли недочеты в обеих частях изученных программ, хотя атака на сервер во многих случаях оказалась невозможной без авторизации.

Все баги связаны с некорректным использованием памяти. Эксплуатация некоторых из них приводит только к сбоям и отказу в обслуживании — это сравнительно благоприятный исход. В более серьезных случаях злоумышленник может получить несанкционированный доступ к информации на устройстве или запустить в системе жертвы вредоносную программу.

Уязвимости исправили, но не все

Обо всех найденных багах наш CERT сообщил разработчикам соответствующих библиотек и приложений. Большинство из них уязвимости уже устранили. Увы, нашлось и исключение: создатели TightVNC прекратили поддержку первой версии своей системы и отказались исправлять обнаруженные в ней дефекты. Это серьезный повод задуматься о том, чтобы перейти на другую реализацию VNC.

Кроме того, как и в случае многих открытых проектов, уязвимый код используется в большом количестве других разработок, причем не все авторы следят за обновлениями библиотек, из которых позаимствовали фрагменты своих программ. Такие программы останутся уязвимыми, пока их создатели не обновят код, а этого, к сожалению, может вообще не произойти.

Что делать бизнесу?

Список найденных уязвимостей и технические детали можно найти в отчете, опубликованном на сайте Kaspersky ICS CERT. Надо учитывать, что коллеги фокусировались на применении VNC на промышленных предприятиях, однако угрозы релевантны для любого бизнеса, использующего эту технологию.

Чтобы злоумышленники не смогли использовать эти уязвимости против вас, рекомендуем следить за программами удаленного доступа в своей инфраструктуре.

  • Проверьте, к каким устройствам в компании возможно дистанционное подключение, и запретите его там, где оно не нужно.
  • Составьте список используемых приложений удаленного доступа (это касается не только VNC) и проверьте актуальность их версий. Если вы не уверены в надежности программ удаленного доступа, откажитесь от них. Если вы намерены продолжать ими пользоваться, обновите их до последней версии.
  • Защитите свои VNC-серверы надежным паролем. Это существенно затруднит атаку на них.
  • Избегайте подключения к непроверенным и недоверенным VNC-серверам.
  • В условиях промышленных предприятий используйте специализированное защитное решение для систем промышленной автоматизации, например Kaspersky Industrial CyberSecurity.
  • Для защиты бизнеса используйте надежное защитное решение. Например, Kaspersky Endpoint Security for Business.
Советы