Последние несколько лет выдались весьма удачными для криптосферы. Курс постепенно рос (вплоть до января этого года), те, кто покупали некоторые виды криптовалют, богатели не по дням, а по часам. И понятно, что это богатство нужно где-то хранить, чтобы никто не украл. Но где? В банк «цифру» не понесешь, поэтому вариантов всего два — либо на «горячем» кошельке, собственном или биржи, либо на аппаратном «холодном».
Из последних наиболее надежными считаются кошельки компании Ledger, чья штаб-квартира размещается во Франции. По словам производителей, их кошельки невозможно взломать. Ни путем подбора пароля, ни заменой прошивки, ничем. И действительно, многие годы защита оставалась непробиваемой, пользователи были очень довольны. Но на этой неделе все изменилось.
Защиту кошелька взломал 15-летний подросток, который смог обойти защиту и продемонстрировать взломанный кошелек. Подростка зовут Салим Рашид, а всю информацию изначально он публиковал в своем блоге. Он смог показать proof-of-concept атаку на примере модели Ledger Nano S, стоимость которой составляет около $100.
Программный код очень небольшой, всего 300 байт. Но зато он позволяет злоумышленнику генерировать для «железа» адрес кошелька с паролями доступа, известными взломщику. Злоумышленник даже может перенести затем все эти данные в новый железный кошелек для восстановления приватных ключей, которые хранит старый кошелек для указанного адреса.
Проблема в том, что Ledger Nano S продаются на eBay, имеются в виду бывшие в употреблении устройства. И если их должным образом модифицировать, то злоумышленник сможет проделать все то, что описано выше. При этом представители компании ранее заявляли, что покупатели могут без проблем приобретать и использовать бывшие в употреблении кошельки, не опасаясь ничего плохого.
Возможности, которые открывает взлом перед разного рода нехорошими личностями, сложно недооценить. К примеру, размер платежа, отправляемого со скомпрометированного кошелька, может быть изменен. Причем адрес, на который отправляется платеж, тоже можно подменить любым другим. И это еще не все. Как оказалось, код, созданный хакером (здесь этот термин используется в позитивном значении, поскольку ничего плохого подросток явно не делал) работает и на старшей модели железного кошелька Ledger Blue, стоимость его достигает $200. Его компания позиционирует, как самую надежную защиту из всех возможных. Похоже, что позиционирование ошибочное.
Стоит отметить, что Рашид обнаружил проблему еще в ноябре, отправив информацию об этом в компанию. После выпуска апдейта для прошивки кошелька представители Ledger заявили, что уязвимость не была критичной, но все равно исправлена. Что касается заявления о «некритичности», то компания имела в виду, что сторонние кошельки, подключенные к «железу», выявляются программным обеспечением Ledger, так что это хоть и проблема, но не смертельная.
Для Ledger Blue, как говорит руководитель подразделения информационной безопасности Ledger Шарль Гиём, вероятность взлома так и вовсе ничтожно мала. Продажи таких устройств — прямые, б/у гаджетов нет, поэтому и бороться с теоретической уязвимостью нет особых причин.
Но актуальна ли угроза на самом деле?
Подросток, который обнаружил уязвимость, собирается проверить, действительно ли компания сделала все, что в ее силах, чтобы сделать Nano S безопасными. Даже если это и так, считает Рашид, то в будущем нет гарантии, что кто-то не применит модифицированный код, который разработан им самим. Не в том смысле, что код находится в открытом доступе, вовсе нет. Имеется в виду, что создать нечто подобное сможет и другой человек — раз додумался один, то это вполне может сделать и другой.
Интересный момент — микроконтроллер, который отвечает за безопасность гаджета в Blue и Nano S, ST31H320, неспособен работать с подключенными дисплеями, USB-подключениями или другими скоростными каналами приема/передачи данных. Для того, чтобы добавить возможность подключения системы к ПК, был выбран еще один чип, микроконтроллер STM32F042K6. Он работает здесь в качестве прокси.
Микроконтроллер безопасности, который компания Ledger называет Secure Element, взаимодействует со вторым чипом, который компания обозначила, как MCU. Вот он и выполняет все необходимые задачи по взаимодействию с периферией, включая USB, OLED-дисплей, а также обрабатывает нажатия кнопок. Эксплоит, разработанный Рашидом, позволял заменить оригинальную прошивку устройства модифицированной прошивкой. При этом MCU отправлял чипу безопасности информацию о том, что гаджет все еще работает с оригинальным ПО.
Один из независимых исследователей по имени Мэтт Грин из Университета Джона Хопкинса изучил все данные, предоставленные Рашидом. И он также сомневается в том, что обновление прошивки, выпущенное Ledger, полностью решит проблему с уязвимостью.
«Ledger пытается решить сложную задачу, которую можно назвать фундаментальной. То, что им необходимо сделать — проверить прошивку, ее взаимодействие с процессором. При этом чип безопасности не может „читать“ код, обрабатываемый процессором. Именно поэтому был избран обходной путь, который все же позволил обоим чипам работать вместе. При этом проверить, правдива ли информация, передаваемая одни чипом другому, нельзя», — рассказывает Грин.
Сложность решения этой проблемы резко контрастирует с заверениями компании в возможности раз и навсегда решить все проблемы с безопасностью. В каждой коробке с кошельком лежит листовочка с текстом, который убеждает пользователя в полной неуязвимости гаджета. Производители утверждают, что чип безопасности предотвращает любое вмешательство в программную или аппаратную части устройства.
15-летний хакер смог доказать, что это не совсем верно. И теперь компании придется доказывать, что права именно она, и опасность владельцам железных кошельков Ledger больше не угрожает.