![]() |
<div id="post_message_807469">
От конфиденциальности до «копируй и вставляй» — один клик.<br/> <br/> Компания Proton, известная своей ориентацией на приватность и безопасность, допустила досадную ошибку в своей новой разработке — приложении Proton Authenticator для двухфакторной аутентификации. В версии для iOS TOTP-секреты пользователей, используемые для генерации одноразовых кодов, сохранялись в логах в незашифрованном виде. Это означало, что любые экспортированные журналы потенциально содержали доступ ко всем привязанным 2FA-аккаунтам — включая, как оказалось, даже к Bitwarden.<br/> <br/> Проблема всплыла после того, как один из пользователей, протестировав приложение и обнаружив исчезновение части своих записей, решил направить разработчикам баг-репорт. При подготовке обращения он открыл лог-файл — и с удивлением обнаружил, что TOTP-секреты записывались туда в открытом виде. Этот файл был локальным, но мог быть случайно отправлен кому-то в службу поддержки или загружен на публичные платформы, как это часто бывает при поиске помощи с техническими проблемами.<br/> <br/> Причина уязвимости <a href="https://web.archive.org/web/20250803173715/https://www.reddit.com/r/privacy/comments/1mgj3t8/proton_authenticator_logs_full_totp_secrets_in/" target="_blank">крылась </a>в механизме логирования iOS-версии приложения [ <a href="https://github.com/protonpass/ios-authenticator/blob/main/LocalPackages/PresentationLayer/Sources/PresentationLayer/Pages/CreateEditEntryView/CreateEditEntryViewModel.swift#L86-L104" target="_blank">1</a> , <a href="https://github.com/protonpass/ios-authenticator/blob/566596bc32104c882ae8ec52178baeb33bac967c/LocalPackages/DataLayer/Sources/DataLayer/Services/EntryDataService.swift#L141-L148" target="_blank">2</a> ]. При обновлении или добавлении новой записи для TOTP-аккаунта переменная <i><font color="White">params</font></i>, включающая в себя все атрибуты, включая и секрет, передавалась в функции, которые автоматически фиксировали её содержимое в журнале. Таким образом, даже если сам сервер Proton не видел этих данных и всё хранилось в зашифрованном виде, сами пользователи могли по неосторожности скомпрометировать свои аккаунты.<br/> <br/> <img alt="" border="0" class="bbCodeImage" src="https://cdn.securitylab.ru/upload/medialibrary/7d3/1eqrltdvw59w22pwtfkr7ourm33gbiov.png"/><br/> <div style="margin:20px; margin-top:5px; "> <!-- <div class="smallfont" style="margin-bottom:2px">Quote:</div> --> <table border="0" cellpadding="6" cellspacing="0" width="100%"> <tr> <td class="alt2" style="background: rgb(37, 37, 37) none repeat scroll 0% 0%; border: 1px solid rgb(0, 0, 0); border-radius: 5px; font-size: 11px; text-shadow: none;"> Секрет TOTP передается в переменную «params», которая добавляется в журналы </td> </tr> </table> </div>Компания подтвердила наличие этой ошибки и выпустила обновление 1.1.1, устраняющее проблему. В своём комментарии Proton подчеркнула, что секреты никогда не передавались на сервер в открытом виде, а синхронизация всегда происходила с применением сквозного шифрования. Однако была сделана оговорка: если устройство уже скомпрометировано, никакие меры со стороны приложения не смогут предотвратить утечку — злоумышленник и без логов получит доступ к TOTP-секретам напрямую.<br/> <br/> Хотя сама уязвимость не позволяла удалённого доступа, риски заключались в непреднамеренной утечке логов. Приложения с такими функциями, как экспорт или автоматическая отправка логов, должны особенно внимательно относиться к содержимому, которое может оказаться в этих файлах.<br/> <br/> Proton Authenticator был представлен как кроссплатформенное решение для управления двухфакторной аутентификацией, работающее на Windows, macOS, Linux, Android и iOS . Однако именно iOS-версия продемонстрировала критическую небрежность в обработке чувствительных данных. Несмотря на быстрое исправление, инцидент заставляет задуматься о степени надёжности даже тех продуктов, которые рекламируются как защищённые по умолчанию.<br/> <br/> <a href="https://www.securitylab.ru/news/562074.php" target="_blank">@ SecurityLab </a> </div> |
All times are GMT. The time now is 12:20 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.