Аппаратный хакер Джо Гранд и его команда успешно восстановили биткойны на сумму 3 миллиона долларов из программного кошелька, который был заблокирован с 2013 года.
Проект, который Гранд назвал непохожим на все, над чем он когда-либо работал, включал в себя реверс-инжиниринг генератора паролей для разблокировки кошелька. Гранд, известный своим опытом взлома аппаратного обеспечения, сотрудничал со своим другом Бруно, который является специалистом по взлому программного обеспечения.
История началась, когда Майкл, владелец кошелька, обратился к Гранду после просмотра видео, где он взломал аппаратный кошелек. Майкл использовал генератор паролей под названием RoboForm, чтобы создать высоконадежный 20-значный пароль, который затем сохранил в зашифрованном текстовом файле.
Однако раздел, содержащий пароль, был поврежден, в результате чего пароль невозможно восстановить.
Гранд и Бруно сначала отклонили проект, поскольку подобрать пароль такой сложности было невозможно. Однако год спустя работа Бруно над обратным проектированием другого генератора паролей вдохновила их пересмотреть свое решение.
Они решили атаковать саму программу RoboForm, а не пароль, обнаружив, что старые версии RoboForm уязвимы при генерации случайных чисел.
Процесс начался с инструментов реверс-инжиниринга, таких как Cheat Engine и Ghidra. Cheat Engine позволял им выполнять поиск в памяти работающей программы, чтобы определить, где хранится сгенерированный пароль, давая им уверенность в том, что они нацелены на правильную часть программы.
Затем они использовали Ghidra, инструмент, разработанный АНБ, для декомпиляции машинного кода в более понятный формат. Этот шаг имел решающее значение, поскольку помог им найти код, ответственный за генерацию пароля.
Их прорыв произошел, когда они обнаружили, что системное время влияет на генерируемые пароли. Манипулируя значениями времени, они могли воспроизвести один и тот же пароль несколько раз.
Это указывало на то, что случайность генератора паролей не была полностью безопасной в старых версиях RoboForm.
Гранд и Бруно написали код для управления генератором паролей, фактически обернув исходную функцию для управления ее выводом. Это включало установку различных значений системного времени в пределах предполагаемого периода времени, когда Майкл сгенерировал пароль. Они сгенерировали миллионы потенциальных паролей, но первые попытки разблокировать кошелек не увенчались успехом.
Команда столкнулась с многочисленными проблемами, включая повторяющиеся сбои системы и длительные сеансы отладки.
Их настойчивость окупилась, когда они скорректировали свой подход, поняв, что воспоминания Майкла о параметрах пароля могут быть неточными.
На основе измененных параметров, включавших только цифры и буквы, исключая специальные символы, они сгенерировали новый набор паролей.
Этот новый подход оказался успешным. Через несколько минут после запуска обновленного кода они создали правильный пароль, позволивший им получить доступ к биткойнам Майкла.
Этот успех принес Майклу облегчение и радость и продемонстрировал глубокое влияние инновационного решения проблем и сотрудничества в области кибербезопасности.
Инновационный подход Гранда подчеркивает сложности и потенциальные уязвимости программных систем безопасности, подчеркивая важность безопасной генерации случайных чисел в криптографических приложениях.
Этот проект восстановил значительные активы и продемонстрировал совместную мощь объединения опыта взлома аппаратного и программного обеспечения.
Кроме того, в нем подчеркивается, почему может оказаться необходимым менять пароли, созданные перед определенными обновлениями программного обеспечения, при использовании генераторов паролей. Канал Гранда на YouTube демонстрирует бесчисленные способы, которыми он помог пользователям восстановить потерянные биткойны и криптовалюту с таких устройств, как Ledger, Trezor и других.