Microsoft обнаружила критические уязвимости в OpenVPN

OpenVPN уже давно является популярным выбором для создания безопасных соединений «point-to-point» или «site-to-site» через Интернет. Благодаря своему открытому исходному коду и надежным возможностям шифрования он стал одним из основных безопасных способов для организаций и частных лиц. Однако недавнее открытие исследователей Microsoft выявило критический баг в этом ПО.

В марте 2024 года Microsoft сообщила об обнаружении OpenVPN через Coordinated Vulnerability Disclosure посредством Microsoft Security Vulnerability Research (MSVR). Теперь исследователи Microsoft обнаружили множество уязвимостей в OpenVPN, которые потенциально могут быть использованы для получения несанкционированного доступа к системам. Эти уязвимости серьезно угрожают безопасности миллионов пользователей по всему миру, которые полагаются на OpenVPN для обеспечения безопасного подключения двух точек через интернет.

Обнаруженные уязвимости

Исследование Microsoft выявило ряд критических уязвимостей в OpenVPN. При совместной эксплуатации эти недостатки могут предоставить злоумышленникам беспрепятственный доступ к целевым системам.

  • Remote Code Execution (RCE): Одна из наиболее серьезных обнаруженных уязвимостей позволяет злоумышленникам выполнять произвольный код на скомпрометированной системе. Это может позволить им установить вредоносное ПО, украсть данные или получить полный контроль над пораженным устройством.
  • Local Privilege Escalation (LPE): Еще одной обнаруженной критической проблемой является уязвимость локального повышения привилегий. Требуя первоначального доступа к системе, этот недостаток может быть использован для повышения привилегий злоумышленника, предоставляя ему полный контроль над системой.
CVE ID Компонент OpenVPN Влияние Затронутая платформа
CVE-2024-1305 Драйвер TAP для Windows Отказ в обслуживании (DoS) Windows
CVE-2024-27459 openvpnserv DoS, LPE Windows
CVE-2024-24974 openvpnserv Несанкционированный доступ Windows
CVE-2024-27903 openvpnserv RCE Windows

1. CVE-2024-1305

Компания Microsoft обнаружила уязвимость в проекте «tap-windows6», который связан с разработкой адаптера Terminal Access Point (TAP), используемого в OpenVPN. Файл device.c в каталоге src проекта содержит код для объекта устройства TAP и его инициализации.

В файле device.c метод CreateTapDevice инициализирует объект диспетчерской таблицы с обратными вызовами методов, которые управляют различными элементами управления вводом/выводом (IOCTL) устройства. Одним из таких методов является TapDeviceWrite, который управляет IOCTL записи.

Метод TapDeviceWrite выполняет несколько операций, прежде чем вызвать метод TapSharedSendPacket . Этот метод, в свою очередь, дважды вызывает NdisAllocateNetBufferAndNetBufferLists. В одном случае он вызывает эту функцию с параметром fullLength.

2. CVE-2024-27459

Вторая уязвимость, обнаруженная Microsoft, кроется в механизме связи между процессом openvpn.exe и службой openvpnserv.exe – эти компоненты взаимодействуют через именованный канал.

Служба openvpnserv.exe постоянно считывает размер сообщения из процесса openvpn.exe в бесконечном цикле и обрабатывает полученное сообщение, вызывая метод HandleMessage. Метод HandleMessage извлекает размер из бесконечного цикла, а затем приводит считанные байты к соответствующему типу на основе этого размера.

Этот механизм взаимодействия несовершенен, поскольку чтение заданного пользователем количества байтов в n-байтовую структуру на стеке может привести к уязвимости переполнения стека.

3. CVE-2024-24974

Третья уязвимость связана с несанкционированным доступом к ресурсу операционной системы. Служба openvpnserv.exe _ создает новый процесс openvpn.exe в ответ на запросы пользователей, которые она получает через именованный канал _\\\openvpn\\\service. Эта уязвимость позволяет получить удаленный доступ к именованному служебному каналу, что дает злоумышленнику возможность удаленно взаимодействовать со службой и выполнять любые операции.

4. CVE-2024-27903

Наконец, Microsoft обнаружила уязвимость в механизме плагинов OpenVPN, которая позволяет загружать плагины на конечном устройстве. Злоумышленники могут использовать это поведение для загрузки вредоносных плагинов.

Как злоумышленники могут использовать эти уязвимости

Microsoft заявила, что злоумышленники могут использовать как минимум три из четырех обнаруженных уязвимостей для достижения RCE и LPE. Эти уязвимости можно комбинировать, создавая мощную цепочку атак.

Однако для использования всей цепочки атак необходимо внести несколько изменений. В частности, вредоносные полезные нагрузки, предназначенные для аварийного завершения работы openvpnserv.exe, и те, которые имитируют поведение openvpnserv.exe после сбоя, должны быть загружены с помощью вредоносного плагина.

После получения LPE злоумышленники могут использовать такие методы, как Bring Your Own Vulnerable Driver (BYOVD), или использовать другие известные уязвимости для получения большего контроля над конечной точкой. Это может включать отключение Protect Process Light (PPL) для критически важных процессов, таких как Microsoft Defender, или обход и вмешательство в другие важные системные процессы. Такие действия позволяют злоумышленникам обходить меры безопасности, манипулировать основными функциями системы и укреплять свой контроль, оставаясь незамеченными.

Потенциальное воздействие

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

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

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

Патч

В ответ на обнаружение критических уязвимостей OpenVPN оперативно выпустила патч., устраняющий эти недостатки безопасности. Версии OpenVPN ранее 2.5.10 и 2.6.10 подвержены известным уязвимостям. Проверьте, не используете ли вы затронутую версию, и если да, то незамедлительно примените необходимое исправление, доступное для OpenVPN 2.6.10.

Чтобы еще больше снизить риск эксплуатации, выполните следующие дополнительные действия:

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

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