Pull to refresh

Уязвимость в Signal позволяет захватывать «Исчезающие сообщения»

Reading time4 min
Views6.5K
Мессенджер Signal на Android
Мессенджер Signal на Android

Signal — это мессенджер для обмена зашифрованными сообщениями, конфиденциальная альтернатива WhatsApp/Telegram...
Слоган ПО:
"Общайтесь по-новому! Всё, что вы ждали от мессенджера, с акцентом на приватность".

В мессенджере Signal имеется функция "Исчезающие сообщения" далее "ИС". Эта security-функция аналогична функции: "автоудаление сообщений в Tg" (в обоих мессенджерах конфиденциальность пользователей "была" нарушена данной функциональностью).

О багах

Информация с оф.сайта:

Если вы нашли уязвимость в Signal, пожалуйста, сообщите о ней по адресу security@signal.org.

Пожалуйста, используйте этот адрес только для сообщений о проблемах безопасности в приложении Signal. У Signal нет программы bug bounty, но мы исследуем проблемы безопасности.

И рядом на том же сайте:

мы неплохо финансируемся и в поисках толковых разработчиков.

Почему я опубликовал информацию "по фиче" в СМИ, а не разработчикам по электронке, в репозиторий Signal?

У приватного мессенджера Signal имеются довольно много багов, в т.ч. и проблемы с конфиденциальностью. И иногда сами шифропанки-представители своего ПО скандалят друг с другом как можно громче.

Ранее я случайно находил и репортил проблемы мессенджера Signal им на Github. Например, последняя опубликованная мной Issues, после которой я сдался как-либо улучшить кривоватый во всех смыслах мессенджер — это была проблема с интерфейсом приложения на Android устройствах: скачанные картинки/файлы непросто было найти на своём гаджете (само приложение сбивало пользователя с толку). Signal это Open Source с высоким звёздным рейтингом на Github-е, поэтому недоработку приложения заботливо подхватил и внёс исправление один из пользователей мессенджера. Но разработчики Signal не удосужились принять готовое исправление/PR и даже никак не отметились, а спустя месяцы нерешенную Issues закрыл автобот.

Суть бага нарушающего конфиденциальность пользователей

Ключевые аспекты описывающие функцию "ИС":

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

Если функция исчезающих сообщений включена на связанном мобильном устройстве, она будет включена и в Signal Desktop.

* Исчезающими сообщениями может управлять любой участник чата.

* Эта настройка будет применяться ко всем новым сообщениям после установки или изменения таймера.

Что происходит, когда таймер исчезающего сообщения истекает? Сообщение удаляется с диска.

С диска, но не с серверов Signal (здесь и кроется подвох для массового пользователя)!

Функция "ИС" мне необходима не только для конфиденциальности, но и для уничтожения "мусора" занимающего место на диске. В отличие от Tg Signal не умеет выделять несколько сообщений за раз, например, клацать мышкой и удалять их в два касания (Desktop версия). Сообщения в мессенджере Signal/Desktop удаляются по одному (в отличие от Signal/Android): необходимо выделить одно сообщение, вызвать меню и стереть его (3 касания = deleting one message + 3 касания чтобы удалить еще и плашку об удалении сообщения). По этой причине у пользователей мессенджера примерно такая свобода действий: либо не уничтожать переписку, растрата места на диске; либо уничтожить одной кнопкой данные всех чатов и по новому добавлять участников и восстанавливать некоторые надстройки; либо по одному сообщению удалять переписку пока пальцы не отвалятся; либо использовать функцию "ИС". Вечная классика: баланс удобства и шифрования. Я выбрал последний пункт: настроил "ИС" по таймеру на сутки.

Несколько дней назад ко мне в Signal-лист добавился старый друг, и мы неплохо порезвились в переписке на Android (образовалась "тонна мусора", которая благополучно автоуничтожилась через 24ч.). Через пару дней, когда я включил ПК и открыл Signal Desktop при медленном 3G интернет соединении, то был неприятно удивлён: вся "удаленная" на Android по таймеру переписка с упомянутым другом начала подгружаться, подвисая в личке, из "ниоткуда", чтобы в конце этого "Rock N' Roll-a" через ~минуту снова исчезнуть. Её – уничтоженной переписки и следов вообще не должно было существовать: на это указывает обфусцированная документация Signal, и так предполагает пользователь мессенджера. Хорошо прогружался забвенный текст. Картинки не успевали появляться тут же удалялись, а текст перед исчезновением задерживался на секунду/две. Всю эту "поэзию" можно было захватывать любым скринкастом/глазом. Я не записал этот минутный скринкаст (для публикации) по причине того, что среди мусора появлялись некоторые приватные вещи, которые, как я ошибочно полагал, канули в Лету.

Как проэксплуатировать уязвимость

  1. Включить "исчезающие сообщения" в Signal — на сутки. Потвердынькать с собеседником (текст/медиа).

  2. Выждать пару дней и проверить на Android, что переписка автоуничтожилась на обеих сторонах.

  3. Принудительно включить в настройках сети на своём гаджете режим 3G (создание условий "медленного интернета") и включить точку доступа на раздачу.

Настройки

  1. Подключиться на ПК с OS GNU/Linux к ТД гаджета, запустить запись экрана, например, с помощью vokoscreen и запустить ПО Signal.

  2. Открыть и проанализировать, записанный видео-файл на предмет "авто ложно-исчезающих сообщений/24ч" в мессенджере Signal.

Версии используемого ПО:

  • Signal Android_бинарник с оф.сайта v5.34.10

  • Signal Desktop_GNU/Linux v5.31.1.

Вывод

Уничтоженную переписку можно попытаться захватить/восстановить простым скринкастом при медленном/намерено-ограниченным в скорости интернет соединении (диссиденты в опасности, а Сноуден, вероятно, должен быть огорчён). По какой-то причине: фича, недоработка, уязвимость или бэкдор "ИС" удаляются с диска пользователя, но фатально остаются, как минимум пару суток на серверах у разработчиков Signal-а. Для приватного мессенджера подобная концепция – недопустима.

Open Source мессенджер (по факту: частичный Open Source) всё ещё вызывает много вопросов, но в виду относительной и невысокой популярности Signal-а по сравнению с альтернативным ПО, некому заниматься их решением на достаточно высоком уровне.


💎 Опробовать поисковую систему, разработанную автором статьи.

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 3: ↑3 and ↓0+3
Comments6

Articles