Уязвимости в Signal Desktop и в платформе Electron
17 мая 2018 года
В Signal Desktop, построенной на базе платформы Electron версии мессенджера Signal для настольных систем, выявлены две уязвимости ( CVE-2018-10994 (Архивная копия от 27 апреля 2020 на Wayback Machine), CVE-2018-11101 (Архивная копия от 17 мая 2019 на Wayback Machine)), позволяющие выполнить произвольный JavaScript-код в контексте JavaScript-движка приложения через отправку специально оформленного сообщения. Проблемы устранены в выпуске Signal Desktop 1.11.0, мобильные приложения проблемам не подвержены.
Первая уязвимость (Архивная копия от 27 апреля 2020 на Wayback Machine) позволяет передать в сообщении специально оформленную ссылку, показ принятого сообщения с которой приведёт к выполнению JavaScript-кода без каких-либо действий со стороны пользователя. Например, отправка ссылки "http://hacktheplanet/?p=%3Ciframe%20src="/etc/passwd"%3E%3C/iframe%3E%20PWONED(недоступная ссылка)" приведёт к открытию файла /etc/passwd в iframe. Разработчики Signal опубликовали обновление с устранением проблем спустя всего 2 часа после уведомления о наличии уязвимостей.
Скоро выяснилось, что существует (Архивная копия от 17 мая 2019 на Wayback Machine) ещё один метод проведения атаки XSS, реализуемый через подстановку в сообщения HTML-тегов iframe, ссылающегося на внешний ресурс. Выполнение HTML-кода производится не при приёме и открытии, а при попытке ответа на такие сообщения. В итоге был подготовлен прототип эксплоита на JavaScript, который отправляет на внешний сервер содержимое всех переписок, которые производятся в приложении. Второй метод атаки из-за ограничений CSP допускает только включение локальных файлов, для обхода CSP в ходе демонстрационной атаки начальный кода скрипта был замещён на SMB-разделе.
Дополнительно можно отметить уязвимость CVE-2018-1000136, затрагивающую непосредственно платформу Electron, которая позволяет обойти ограничение доступа к API Node.js (nodeIntegration: false), что может применяться для организации выполнения кода в контексте операционной системы, если у злоумышленника имеется возможность выполнить JavaScript в контексте приложения.
Суть уязвимости в том, что если разработчик приложения явно не указал в параметрах конфигурации файла webPreferences "webviewTag: false", при выполнении JavaScript можно воспользоваться доступным API Electron для создания окна с новым компонентом WebView, настройки которого уже контролируются атакующим и для этого окна можно выставить режим "nodeIngration: true". Проблема устранена до раскрытия информации об уязвимости в мартовском обновлении платформы Electron.
Так же можно упомянуть о выявлении вредоносного ПО, нацеленного на проведение атаки на десктоп-приложение Telegram на платформе Windows. Вредоносное ПО собирает остаточные данные из кэша приложения, который может включать информацию о сеансах, контактах и предыдущих чатах. Также вредоносное ПО осуществляет поиск и передачу map-файлов, в которых хранятся ключи шифрования (защищены паролем и зашифрованы AES, вероятно для получения пароля может применяться отдельное вредоносное ПО с кейлоггером). Вредоносное ПО атакует только десктоп-редакцию Telegram, так как она не поддерживает секретные чаты и включает небезопасные настройки по умолчанию.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.