В прошлом году разработчики Kaspersky Password Manager (KPM) попросили пользователей обновить свои пароли на более стойкие. Теперь специалисты Ledger Donjon (ИБ-подразделение компании Ledger, разрабатывающей крипокошельки) рассказали о том, почему это произошло, и какие проблемы они обнаружили в KPM некоторое время назад.
Эксперты напоминают, что в марте 2019 года компания «Лаборатория Касперского» выпустила обновление для KPM, пообещав, что теперь приложение сможет выявлять слабые пароли и генерировать для них более надежные замены. Три месяца спустя команда Ledger Donjon обнаружила, что KPM справляется с этим не слишком хорошо, так как использует генератор псевдослучайных чисел, не дающий достаточно случайных результатов для создания надежных паролей. В частности, символы в паролях генерировались и располагались не совсем случайным образом.
«Генератор паролей в Kaspersky Password Manager имел несколько проблем. Наиболее критичным было то, что он использовал генератор псевдослучайных чисел, непригодный для криптографических целей. Единственным источником энтропии в нем было текущее системное время, и все пароли, которые он создавал, можно было подобрать за считанные секунды», — рассказывают эксперты.
Дело в том, что KPM был создан для генерации 12-значных паролей по умолчанию, хотя позволял пользователям персонализировать свои пароли, изменяя настройки, в том числе длину пароля, использование прописных и строчных букв, цифр и специальных символов. Исследователи Ledger Donjon говорят, что стремясь создать пароли, максимально отличные от паролей, сгенерированных самими людьми, приложение стало предсказуемым.
Использование системного времени в качестве случайного seed-значения означало, что KPM генерировал одинаковые пароли, если пользователи в разных точках мира нажимали на кнопку создания пароля в одно и то же время и не меняли настройки по умолчанию. При этом в интерфейсе KPM отображалась анимация быстро меняющихся случайных символов, которая скрывала фактический момент генерации пароля, и затрудняла выявление проблемы.
По словам исследователей, создаваемые с использованием времени пароли были весьма ограничены, и их можно было подобрать за несколько минут. Так, если атакующему было известно время создания конкретной учетной записи (что совсем нетрудно посмотреть на любом форуме), диапазон вероятностей сильно сокращался, равно как и время, необходимое для брутфорса, который мог занять всего несколько секунд.
«Последствия [использования такого механизма] определенно были скверные: любой пароль мог быть взломан. Например, между 2010 и 2021 годом прошло 315619200 секунд, поэтому KPM может сгенерировать не более 315619200 паролей для заданного набора символов. Их перебор занимал всего несколько минут», — гласит отчет Ledger Donjon.
В период с октября по декабрь 2019 года разработчики представили ряд патчей для KPM (поскольку исходный патч для Windows работал некорректно), и в итоге проблему исправили в Windows, Android и iOS.
В октябре 2020 года «Лаборатория Касперского» выпустила KPM 9.0.2 Patch M, уведомив пользователей о необходимости обновления некоторых слабых паролей на более надежные. Этой проблеме был присвоен идентификатор CVE-2020-27020, о котором компания рассказала в сообщении от апреля 2021 года.
«”Лаборатория Касперского” устранила проблему безопасности в Kaspersky Password Manager, которая потенциально позволяла злоумышленнику узнать пароли, сгенерированные этим инструментом. Эта проблема проявлялась лишь в том маловероятном случае, когда злоумышленник знал информацию об учетной записи пользователя и знал точное время, когда был сгенерирован пароль», — комментируют представители «Лаборатории Касперского».