Безопасность

RoboForm взломали, чтобы получить кошелек с биткоинами на 3 миллиона долларов

RoboForm взломали, чтобы получить кошелек с биткоинами на 3 миллиона долларов

Генератор случайных паролей Roboform был взломан, чтобы вернуть биткоины на сумму более 3 миллионов долларов. После потери пароля биткоины были недоступны в течение 11 лет.

Хотя история интересна из-за стоимости биткоинов, не менее интересны использованные инструменты и методы, о которых команда, проводившая исследование, рассказывает в видеоролике.

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

Генератор и менеджер паролей Roboform использовался анонимным владельцем биткоин-кошелька для создания пароля, состоящего из случайной смеси 20 символов верхнего и нижнего регистра и цифр.

Владелец биткоин-кошелька сгенерировал пароль с помощью Roboform и поместил его в контейнер для парольных фраз своего кошелька Roboform, а затем скопировал его в текстовый файл, который затем зашифровал. Для шифрования файла использовался инструмент TrueCrypt. К сожалению, жесткий диск компьютера был поврежден, и кошелек стал недоступен. Со временем стоимость биткоина выросла и составила более 3 миллионов долларов. Тогда владелец обратился в компанию offspec.io, специализирующуюся на восстановлении паролей от аппаратных и программных кошельков.

Хотя поначалу проблема казалась неразрешимой, команда заметила, что после создания пароля в 2013 году в одном из последующих обновлений Roboform было указано, что случайность паролей увеличивается. Они решили, что это означает, что в оригинальном методе генерации паролей есть слабое место, что снижает их сложность.

Они запустили старую версию Roboform, одновременно запустив инструмент под названием Cheat Engine, который представляет собой сканер/отладчик памяти, обычно используемый для поиска переменных, используемых в игре и позволяющих изменять их. Команда использовала Cheat Engine для поиска создаваемого пароля, чтобы определить, какая часть Roboform его создавала. Сузив круг поиска, они воспользовались инструментом обратной разработки Ghidra. Он был создан Агентством национальной безопасности США и теперь является открытым исходным кодом. С его помощью можно проводить реверс-инжиниринг и дизассемблировать код.

Выяснив, какой бит кода использовался, команда offspec обнаружила ссылку на системное время и дату, что, по их предположению, могло означать, что Roboform использовал локальное системное время и дату как часть входных данных для генератора случайных паролей. Это означало бы, что пароль имел неслучайное начало и мог быть регенерирован. Выяснив дату создания оригинального пароля, исследователи запустили Roboform несколько раз со всеми потенциальными паролями, устанавливая время и дату постепенно в течение всего периода, когда пароль был создан. После некоторой доработки (владелец оригинального пароля вспомнил, что использовал буквенные символы верхнего и нижнего регистра, цифровые цифры и специальные символы, но оказалось, что он не включал специальные символы) процесс заработал, и команда получила пароль.

Более поздние версии Roboform лишены этой слабости.

Читайте также