Эксперт «Лаборатории Касперского» Павел Черемушкин изучил безопасность промышленных систем удаленного доступа (Virtual Network Computing, VNC). В результате исследования в четырех таких решениях было обнаружено 37 уязвимостей, многие из которых годами переходят из одной реализации в другую.

VNC-системы позволяют открывать канал удаленного управления между разными устройствами. Это один из самых популярных продуктов в промышленности — именно они используются для удаленного администрирования систем АСУ ТП. По данным поисковика Shodan, на текущий момент в открытом доступе находится более 600 тыс. VNC-серверов. Аналитик Kaspersky подчеркнул, что в локальных сетях таких систем может быть на несколько порядков больше.

Причины уязвимостей VNC-систем

Атаку на VNC-решение можно вести как через его сервер, так и через пользовательский клиент. Первый вариант открывает злоумышленнику больше возможностей, однако большинство уязвимостей содержится именно в клиентской части. Такие приложения гораздо обширнее серверных компонентов, поскольку они должны обрабатывать данные в различных форматах. Это требует значительного объема кода, что повышает вероятность ошибки разработчика.

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

Результаты исследования VNC-систем

Работа аналитика охватила четыре самых популярных VNC-продукта: LibVNC, UltraVNC, TightVNC 1.X и TurboVNC. Серьезные уязвимости обнаружились во всех системах, при этом, как подчеркнул эксперт, найти их было вовсе не трудно.

«В ходе исследования я неоднократно ловил себя на мысли, что обнаруженные уязвимости слишком простые, чтобы их никто не заметил до меня, — рассказывает Черемушкин. — Однако это оказалось реальностью — время жизни каждой уязвимости было очень долгим. Некоторые классы уязвимостей, обнаруженные в результате исследования, содержатся в большом количестве проектов на основе открытого кода и сохраняются в них даже после рефакторинга кодовой базы. Я считаю, что очень важно на систематической основе уметь обнаруживать такие множества проектов, содержащих иногда неявно унаследованные уязвимости».

Основную долю среди обнаруженных ошибок составили RCE-баги. Эксперт выявил 24 таких уязвимости: 15 в UltraVNC, пять в LibVNC, три в TightVNC и одну в TurboVNC. Угроз утечки информации и DoS-атак было найдено примерно поровну — шесть и семь соответственно. Самым небезопасным по итогам исследования был признан продукт UltraVNC, где Черемушкин насчитал более 20 уязвимостей. Все баги получили идентификаторы CVE, информация передана производителям.

Как разработчики могут избежать подобных проблем

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

«Позитивной стороной является то, что воспользоваться серверными уязвимостями можно только пройдя парольную аутентификацию, — рассуждает эксперт. — Чтобы обезопасить себя от злоумышленников, клиентам не стоит подключаться к неизвестным VNC-серверам, а администраторам надо настроить аутентификацию на сервере с сильным уникальным паролем».

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

Ранее аналитики «Лаборатории Касперского» рассказали об угрозах ИБ, с которыми промышленные предприятия столкнулись в первой половине 2019 года. По словам исследователей, таргетированные атаки занимают небольшую долю среди обнаруженных инцидентов, а большая часть проблем связана с нежелательными веб-ресурсами.

Категории: Аналитика, Главное, Уязвимости