Бэкдор в аппаратном криптовалютном кошельке Ledger обнаружил 15-летний британский школьник Салем Рашид. Об уязвимости в защищённом устройстве для хранения криптовалют сообщил ресурс ArsTechnika.
Суть проблемы
Рашид в своем блоге продемонстрировал код, который позволил ему найти бэкдор в аппаратном кошельке Ledger Nano S. Модель стоимостью около 100 долларов уже приобрели несколько миллионов пользователей.
Бэкдор длиной около 300 байт заставляет устройство генерировать предопределенные адреса кошельков и пароли восстановления, известные злоумышленнику. После этого хакер может вводить эти пароли в новый кошелек Ledger для восстановления закрытых ключей, которые старые устройства хранят для этих адресов.
Кроме того, данный подход позволяет хакерам совершать множество других действий, включая изменение адресатов и сумм платежей. Тот же бэкдор работает на Ledger Blue стоимостью около 200 долларов, который считается более надёжно защищённым устройством.
Рашид подчеркнул, что люди, которые получили доступ к кошельку даже на короткое время, могут скомпрометировать его. К примеру, пока гость находится в душе отеля, горничная может взломать его кошелек и перевести криптовалюту себе.
Ответ разработчика
Представители Ledger заявили, что прошивка кошелька обновлена две недели назад, и уязвимостей, найденных Рашидом, там уже нет. Старший сотрудник службы безопасности Ledger Чарльз Гиллемет подчеркнул, что уязвимость не была критической, и оспорил утверждения Рашида.
Кроме того, производитель способен обнаруживать кошельки с бэкдорами при их подключении к серверу и обновлять их прошивку. Словом, официальная позиция Ledger: проблема действительно была, но школьник преувеличил её значимость.
Мнение эксперта
Мэтт Грин, профессор Университета Джона Хопкинса, специализирующийся на обеспечении безопасности и шифровании, рассмотрел исследования Рашида и заявил, что конструкция кошелька с двумя чипами отнюдь не играет ему на руку:
Ledger пытается решить принципиально сложную проблему. Им [сотрудникам компании] нужно проверить прошивку, запущенную на процессоре, но их безопасный чип не может видеть код, работающий на этом процессоре. Поэтому они должны попросить процессор предоставить свой собственный код! Это уловка, так как процессор может не работать с честным кодом, и поэтому вы не можете доверять тому, что он дает вам. Это как просить кого-то, кто может быть преступником, предоставить вам все данные о своей судимости.