ИБ-специалист Джонатан Лейтшух (Jonathan Leitschuh) рассказал об опасной проблеме, обнаруженной им в популярной платформе для видеоконференций Zoom в марте 2019 года.
Как оказалось, любой сайт может инициировать видеовызов на Mac с установленным приложением Zoom, что позволит удаленно подсматривать за пользователем. Исследователь сообщил, что еще весной проинформировал разработчиков о проблеме и даже предложил им несколько способов ее решения. Однако ответ от компании был получен лишь два месяца спустя, изменения в коде приложения оказались минимальными, и угроза для пользователей сохранилась.
This Zoom vulnerability is bananas. I tried one of the proof of concept links and got connected to three other randos also freaking out about it in real time. https://t.co/w7JKHk8nZy pic.twitter.com/arOE6DbQaf
— Matt Haughey (@mathowie) July 9, 2019
Брешь в безопасности Zoom возникла из-за того, что при установке на macOS приложение поднимает на машине пользователя локальный веб-сервер с недокументированным API. Конфигурация Zoom по умолчанию оставляет за хостом право определять, можно ли включать камеру автоматически (по дефолту это разрешено). В итоге, если у пользователей не изменены настройки по умолчанию, а у большинства они не изменены, любой сайт, который они посещают, может взаимодействовать с упомянутым веб-сервером, обращаясь к порту 19421. Это позволяет осуществлять видеовызовы, подключаться к чужим звонкам и даже скрыто обновлять или переустанавливать само приложение (без каких-либо подтверждений со стороны жертвы). Хуже того, веб-сервер мог использоваться для и DoS-атак на пользователей, для этого было достаточно простых пингов.
Кроме того, исследователь отмечает, что для обхода защиты CORS (cross-origin resource sharing restrictions) вместо обычных запросов AJAX сервер опирается на размерность изображений в Zoom.
«Наличие на машине каждого пользователя Zoom веб-сервера, который принимает запросы HTTP GET, запускающие код вне изолированной программной среды браузера, это просто огромная мишень, нарисованная на спине Zoom», — пишет Лейтшух.
Эксперт создал специальную веб-страницу, на которой опробовать уязвимость в действии мог любой желающий. Этот PoC продемонстрировал, что для атаки на пользователя Zoom достаточно лишь встроить в код сайта (или рекламного баннера) короткую строчку кода. Атака срабатывает автоматически, само приложение даже не обязательно должно быть запущенно.
Исправления, сделанные разработчиками после получения сообщения о проблеме, попросту позволяли хосту выбирать, когда именно включать камеру и устранили DoS-уязвимость. Известно, что в июле выйдет новая версия Zoom с переработанными настройками, она позволит пользователям и администраторам решать, включать ли камеру автоматически при подключении к звонку, а также будет запоминать эти настройки.
Замечу, что в своем отчете Лейтшух писал, что исходное исправление можно было легко обойти через обычный iframe, но после публичного раскрытия данных об уязвимостях эту проблему все же устранили.
Нельзя забывать и о том, что локальный веб-сервер по-прежнему никуда не делся, он остается активным в системе даже после удаления Zoom. Так как с его помощью можно как минимум скрыто переустановить клиент Zoom, это выглядит скверно, и в своем блоге эксперт подробно рассказывает, как избавиться не только от Zoom, но и от веб-сервера.
Теперь, когда информация о проблеме стала публичной, разработчики Zoom были вынуждены дать официальный ответ. В компании объяснили, что веб-сервер в приложении появился после релиза Safari 12 и новых защитных механизмов. Так, без веб-сервера пользователям приходилось бы каждый раз подтверждать, что они хотят запустить клиент Zoom и присоединиться к конференции. В итоге авторы Zoom решили сэкономить пользователям клики и не утруждать их постоянными запросами.
После шквала критики, обрушившегося на компанию, разработчики пообещали, что в будущем релизе обязательно предоставят пользователям возможность быстро удалять из системы не только само приложение, но и веб-сервер. Также в ближайшее время компания учредит открытую bug bounty программу и станет лучше информировать о проблемах в своих продуктах. Однако не похоже, что разработчики собираются кардинально менять поведение своего приложения и отказываться от использования веб-сервера вовсе, как рекомендовал Лейтшух.
UPD
Под давлением общественности разработчики Zoom все же были вынуждены пойти на попятную. В компании "передумали" и сообщили, что приняли решение полностью отказаться от использования небезопасного веб-сервера. Соответствующий патч уже был выпущен в среду, 10 июля 2019 года. Релиз второе исправления, которое позволит сохранять предпочтения пользователей в отношении включения видео по умолчанию, ожидается 12 июля.