Принадлежащий Facebook мессенджер WhatsApp, как оказалось, не справляется с задачей полного удаления переписки пользователей, что позволяет хакерам или правоохранительным органом восстанавливать удалённые разговоры. Об этом сообщил разработчик приложений на платформе iOS Джонатан Ждижарски.
Проблема кроется в базе данных SQLite, в которой WhatsApp и многие другие мобильные приложения хранят данные. При удалении сообщений в обычном режиме SQLite помечает их как удалённые и помещает в список «free list» объектов базы данных, которые могут быть перезаписаны новой информацией, вместо полного стирания.
Прежде чем поверх старых данных будут записаны новые, могут пройти месяцы. Всё это время данные остаются на устройстве и даже сохраняются при резервном копировании, например, в сетевом хранилище iCloud. Без шифрования эти данные сохраняются в виде простого текста. То же самое происходит при резервном копировании данных на компьютер. На него можно сохранять резервные копии с шифрованием, но если ключ простой, его можно взломать методом перебора.
Если пользователь хранит пароль резервной копии в утилите Apple Keychain, существуют инструменты извлечения данных оттуда и база данных WhatsApp SQLite снова оказывается под угрозой.
Этой же проблеме могут быть подвержены другие использующие SQLite приложения на iOS. В частности, это iMessage, а вот Signal данной уязвимости лишена. В своём блоге Ждижарски предлагает Facebook и пользователям четыре варианта решения проблемы.