Незашифрованные сообщения
ИБ-специалист Мэтью Сюиш (Matt Suiche) обнаружил, что защищенный мессенджер Signal некорректно осуществляет апгрейд от расширения для Chrome до полноценного десктопного клиента. Дело в том, что во время этой процедуры сообщения пользователя экспортируются в незащищенные текстовые файлы.
В ходе апегрейда расширения Signal для Chrome до Signal Desktop, пользователя просят выбрать место, куда будут сохранена информация о сообщениях (текст и вложения), чтобы затем импортировать ее в новую версию мессенджера.
Сюиш заметил, что сообщения попросту сохраняются в файле messages.json, без шифрования. В Twitter специалист пишет, что «это просто безумие» и сообщает, что уже отправил разработчикам мессенджера баг-репорт.
Am I tripping or if you upgrade Signal Desktop, it saves all your messages in plain text (messages.json) + attachments locally so you can re-import them in the newer version? #fail #wtf
— Matt Suiche (@msuiche) October 21, 2018
I created a GitHub issue for the record: https://t.co/XzEHZPMYX0
— Matt Suiche (@msuiche) October 22, 2018
Here is a screenshot of the exported data, including exlusive logs with @thegrugq - Insane. Totally insane. pic.twitter.com/gA8dPTaJrR
Хотя исследователь обнаружил опасные баг в macOS, когда сам обновлял Signal, журналисты BleepingComputer обнаружили, что при переходе с расширения для браузера на десктопный клиент, такая же проблема проявляется и в Linux Mint. Хуже того, незашифрованные сообщения в обоих случаях остаются на диске даже после завершения апгрейда, и удалять их придется вручную.
Ключи для дешифровки
Еще одну проблему в Signal Desktop выявил ИБ-специалист Нэйтан Сёчи (Nathaniel Suchy).
Дело в том, что во время установки Signal Desktop создается зашифрованная БД SQLite (db.sqlite), где хранятся сообщения пользователя. Ключ шифрования от этой БД генерируется мессенджером автоматически, без взаимодействия с пользователем. Данный ключ требуется Signal Desktop каждый раз, когда нужно открыть базу. И, как выяснил эксперт, он хранится локально, в отрытом виде. На ПК в файле %AppData%\Signal\config.json и на Mac в ~/Library/Application Support/Signal/config.json.
Если открыть файл config.json даже с помощью обычного Блокнота, можно обнаружить следующее:
Сёчи поясняет, что вся переписка пользователя в итоге может оказаться в руках любой третьей стороны, у которой есть доступ к компьютеру. При этом исследователь убежден, что в теории проблему легко исправить: достаточно просто попросить пользователя ввести пароль и использовать его для ключа шифрования.
.@signalapp stores your messages in an encrypted SQLite database on your local hard drive - luckily they don't encrypt the key so messages are easily accessable 🙂 #pwned #bugbounty #fulldisclosure #infosec pic.twitter.com/ylsegJICJP
— Nathaniel Suchy (@nathanielrsuchy) October 23, 2018