Security Week 2222: уязвимость в приложении Zoom

Security Week 2222: уязвимость в приложении Zoom


На прошлой неделе разработчики клиента для веб-конференций Zoom закрыли серьезную уязвимость, которая при некоторых обстоятельствах могла приводить к выполнению произвольного кода. Уязвимость получила идентификатор CVE-2022-22787 , ее особенности кратко описаны в статье издания The Register и в бюллетене компании Zoom. Обнаружил проблему эксперт из команды Google Project Zero, и вот их подробный отчет представляет большой интерес.

Исследователь Иван Фратрич (Ivan Fratric) по сути смог построить атаку на далеко не самой очевидной основе. Для пересылки сообщений в Zoom используется собственная реализация открытого протокола XMPP. Проблема заключалась в том, что код, отвечающий за разбор содержимого сообщений в формате XML, различается на сервере и на клиенте. Минимальные различия в парсинге удалось превратить в полноценную атаку, которая при этом не требует никаких действий от жертвы, если передача сообщений от атакующего в принципе разрешена.

Исследователь назвал свою атаку XMPP Stanza Smuggling. Stanza или «строфы» — это стандартные элементы в формате XML, пересылаемые от отправителя на сервер и далее к получателю. Фратрич нашел способ протаскивания незаконных строф контрабандой в теле сообщения. Причина была в том, что на сервере Zoom (по предположению исследователя) используется модифицированное открытое ПО ejabberd. Для парсинга XML в нем применяется библиотека fast_xml, в которой, в свою очередь, использован код парсера Expat. На клиенте для того же самого используется библиотека Gloox. Как оказалось, библиотека Expat не проверяет пару символов, если использовать идентификатор трехбайтовой кодировки UTF. Gloox, в свою очередь, игнорирует идентификатор, проверяет ввод посимвольно, а значит, в ту самую пару символов можно протащить троянского коня.

Дальше эксперт строил цепь атаки, и оказалось, что его возможности тут достаточно велики — он ведь способен передавать без проверки на сервере служебные сообщения. Можно, например, изменить домен, на который пользователь направляется, когда он хочет приложить файл из облачного сервиса. Но в этом же наборе функций была найдена возможность изменить адреса серверов Zoom. После подмены доменного имени не обязательно пытаться имитировать работу настоящего сервера Zoom, достаточно пересылать сообщения между клиентом и сервером. А в нужный момент, когда клиент в очередной раз пойдет проверять наличие обновлений, подсунуть ему вредоносный исполняемый файл.

Помимо этой проблемы, Фратрич нашел еще пару уязвимостей в механизме парсинга XML. Хотя проблема в обработке входящих данных технически была на сервере, Zoom, судя по всему, в первую очередь пропатчил клиент, заблокировав возможность подмены сервера, то есть исключил атаку типа Man-in-the-Middle. Помимо этого, информация об ошибке парсинга была отправлена разработчикам библиотеки Expat.

Что еще произошло:

Компания Microsoft публикует подробный отчет об эволюции вредоносного ПО, крадущего данные кредитных карт на сайтах с функциональностью интернет-магазина. Среди приведенных примеров успешных атак — интересный вариант стеганографии, когда вредоносный код на языке PHP скрывается в картинке, которая подбрасывается на взломанный сервер. В целом главный вывод отчета — злоумышленники пытаются сделать работу веб-скиммеров более скрытной.

Издание ArsTechnica пишет об уязвимости в цифровых водительских правах, которые некоторое время выдаются в Австралии (и вместо карточки позволяют показать удостоверение личности на смартфоне). Ранее их особенности уже обсуждались, но в контексте очень грубой подделки. Например, тинейджер может притвориться, что он старше, чем на самом деле, просто изменив скриншот цифровых прав в фотошопе и показав его на входе в питейное заведение. Но в данном случае проблема сложнее: как выяснилось, достаточно легко создать поддельные виртуальные права, которые проходят инструментальную проверку. То есть при считывании QR-кода на терминале проверяющего (в полиции или там, где требуется проверять возраст) будет «зеленый сигнал».

zoom
Alt text

Один хакер может причинить столько же вреда, сколько 10 000 солдат! Подпишись на наш Телеграм канал, чтобы узнать первым, как выжить в цифровом кошмаре!