Эксперты Kaspersky ICS CERT провели исследование различных реализаций системы удалённого доступа Virtual Network Computing (VNC) и в итоге обнаружили 37 уязвимостей порчи памяти, многие из которых существовали на протяжении очень долгого времени. Эксплуатация некоторых обнаруженных уязвимостей могла позволить злоумышленникам удалённо исполнять код.
Система VNC предназначена для предоставления одному устройству удалённого доступа к экрану другого. При этом спецификация протокола не ограничивает выбор ОС и позволяет кроссплатформенные реализации, что делает систему одной из самых распространённых. Точное количество инсталляций оценить сложно, но, по оценкам shodan.io, количество VNC-серверов, доступных из глобальной сети, составляет более 600 тысяч. С учётом устройств, доступных только внутри локальной сети, можно с уверенностью сказать, что общее число используемых VNC-серверов во много раз больше. По данным Kaspersky ICS CERT, подобные системы также активно и широко используются на объектах промышленной автоматизации: в среднем каждый третий компьютер в индустриальной сети содержит различные средства для удалённого администрирования, в том числе и VNC.
В ходе исследования специалисты Kaspersky ICS CERT изучили одни из наиболее часто встречающихся реализаций VNC: LibVNC, UltraVNC, TightVNC1.X и TurboVNC. Все они уже были исследованы ранее другими экспертами, но, как выяснилось, далеко не все бреши были обнаружены и закрыты. Эксперты Kaspersky ICS CERT в общей сложности завели 37 CVE[1], которые описывают найденные ими уязвимости. Программные дыры были обнаружены как в клиентских, так и в серверных компонентах VNC. Некоторые из этих уязвимостей позволяют удалённо выполнить произвольный код, то есть злоумышленник потенциально может получить контроль над атакованной системой. Однако для эксплуатации серверных уязвимостей зачастую необходима парольная аутентификация, при этом из соображений безопасности сервер может не позволить установить беспарольный метод аутентификации.
«В ходе проведения исследования я неоднократно ловил себя на мысли о том, что обнаруженные уязвимости слишком простые, чтобы их никто не заметил до меня. Однако это оказалось реальностью — время жизни каждой уязвимости было очень долгим. При этом мы не можем сказать наверняка, что злоумышленники их не заметили прежде, — рассказал Павел Черёмушкин, исследователь уязвимостей Kaspersky ICS CERT. — Важно также отметить, что некоторые классы уязвимостей, обнаруженные в результате исследования, содержатся в большом количестве проектов на основе открытого кода и сохраняются в них даже после рефакторинга кодовой базы кода. Вот почему необходимо на систематической основе уметь обнаруживать такие множества open-source проектов, содержащих иногда неявно унаследованные уязвимости».
Информация обо всех найденных уязвимостях в VNC была передана разработчикам систем. Почти все они закрыли бреши, за исключением TightVNC, который более не поддерживается командой разработки. В связи с этим Kaspersky ICS CERT рекомендует пользователям упомянутой системы рассмотреть возможность использования альтернативных реализаций VNC.
Для минимизации рисков, связанных с использованием уязвимых VNC-инструментов, эксперты Kaspersky ICS CERT советуют промышленным организациям:
- провести аудит инструментов удалённого администрирования, используемых в технологических сетях, и удалить те из них, которые не требуются для выполнения производственных задач (следует иметь в виду, что до 18% инсталляций таких инструментов включены в состав продуктов АСУ ТП их разработчиками);
- осуществлять аудит всех событий, которые происходят в каждой сессии удалённого доступа (в технологических сетях удалённый доступ должен быть отключён по умолчанию и может запускаться только по необходимости — на ограниченный промежуток времени проведения удалённых работ);
- регулярно обновлять операционные системы, защитные решения и прочее ПО;
- избегать подключения к непроверенным и недоверенным VNC-серверам и использовать уникальные сложные пароли для всех серверов;
- использовать специализированное защитное решение для систем промышленной автоматизации, например Kaspersky Industrial CyberSecurity.