Группа исследователей из компании Ledger, выпускающей аппаратные кошельки для криптовалюты, выявила несколько уязвимостей в устройствах HSM (Hardware Security Module), которые могут быть использованы для извлечения ключей или совершения удалённой атаки для подмены прошивки HSM-устройства. В настоящий момент доклад о проблеме доступен только на французском языке, англоязычный доклад планируется опубликовать в августе во время конференции Blackhat USA 2019. HSM представляет собой специализированное внешнее устройство, предназначенное для хранения открытых и закрытых ключей, используемых для формирования цифровых подписей и для шифрования данных.
HSM позволяет существенно повысить защиту, так как полностью изолирует ключи от системы и приложений, лишь предоставляя API для выполнения базовых криптографических примитивов, реализованных на стороне устройства. Обычно HSM применяется в областях, в которых требуется обеспечить наивысшую защиту, например в банках, биржах криптовалют, удостоверяющих центрах для проверки и генереации сертификатов и цифровых подписей.
Предложенные методы атаки позволяют неаутентифицированному пользователю получить полный контроль над содержимым HSM, в том числе извлечь все хранимые на устройстве криптографические ключи и учётные данные администратора. Проблемы вызваны переполнением буфера во внутреннем обработчике команд PKCS#11 и ошибкой в реализации криптографической защиты прошивок, позволяющей обойти проверку прошивки по цифровой подписи PKCS#1v1.5 и инициировать загрузку в HSM собственной прошивки.
В качестве демонстрации была организована загрузка модифицированной прошивки, в которую был добавлен бэкдор, остающийся активным после последующих установок штатных обновлений прошивки от производителя. Утверждается, что атака может быть совершена удалённо (метод атаки не уточняется, но вероятно имеется в виду подмена загружаемой прошивки или передача для обработки специально оформленных сертификатов).
Проблема была выявлена в ходе применения fuzzing-тестирования предлагаемой в HSM внутренней реализации команд PKCS#11. Тестирование было организовано через загрузку в HSM своего модуля при помощи штатного SDL. В итоге в реализации PKCS#11 было выявлено переполнение буфера, которое оказалось можно эксплуатировать не только из внутреннего окружения HSM, но и через обращение к драйверу PKCS#11 из основной операционной системы компьютера, к которому подключен модуль HSM.
Далее переполнение буфера было эксплуатировано для исполнения кода на стороне HSM и переопределения параметров доступа. В ходе изучения начинки была выявлена ещё одна уязвимость, позволяющая загрузить новую прошивку без цифровой подписи. В конечном счёте был написан и загружен в HSM собственный модуль, который сбрасывает наружу все хранящиеся в HSM секреты.
Имя производителя, в HSM-устройствах которого выявлены уязвимости, пока не разглашается, но утверждается, что проблемные устройства применяются некоторыми крупными банками и провайдерами облачных сервисов. При этом сообщается, что информация о проблемах ранее была отправлена производителю и он уже устранил уязвимости в свежем обновлении прошивки. Независимые исследователи предполагают, что проблема может быть в устройствах компании Gemalto, которая в мае выпустила обновление Sentinel LDK c устранением уязвимостей, доступ к информации о которых пока закрыт.
|