Хакер #305. Многошаговые SQL-инъекции
Группа ученых продемонстрировала, что при определенных условиях пассивный злоумышленник, прослушивающий трафик, может узнать приватные ключи RSA, которые используются в SSH-соединениях. Для этого используются вычислительные ошибки в ходе вычисления цифровой подписи, возникающие при неудачных попытках установки соединения.
В докладе, опубликованном исследователями из Калифорнийского университета в Сан-Диего и Массачусетского технологического института, демонстрируется возможность получения приватного ключа RSA на SSH-серверах с помощью естественных сбоев, произошедших по каким-либо причинам в процессе вычисления подписи.
«Если имплементация, использующая CRT-RSA, сталкивается со сбоем во время вычисления подписи, то злоумышленник, наблюдающий за этой подписью, может вычислить приватный ключ», — пишут специалисты.
Хотя такие ошибки встречаются не слишком часто, отмечается, что они неизбежны из-за недостатков оборудования и ПО. То есть при наличии достаточно большого массива данных злоумышленник может найти множество возможностей для эксплуатации.
В целом это известная проблема, затрагивающая старые версии TLS. В TLS 1.3 она была решена путем шифрования хендшейка во время установления соединения, что исключается пассивное подслушивание. При этом ранее считалось, что SSH защищен от этой проблемы, однако исследователи доказали возможность извлечения секретов RSA с помощью lattice-атак, восстанавливающих приватный ключ из частично известных нонсов (nonce).
Исследователи отмечают, что проведенные ими тесты не включают результаты для RSA-1024, SHA512, «поскольку количество неизвестных битов в хеше значительно превышает то, что мы можем перебрать или решить с помощью lattice».
При этом они добавляют, что lattice-атака достаточно эффективна, а тесты имели 100% успех. Так, исследователям удалось обнаружить 4962 некорректные подписи, раскрывающие факторизацию соответствующего публичного ключа RSA, что позволило извлечь приватные ключи, соответствующие 189 уникальным публичным ключам RSA.
В отчете отмечается, что большинство найденных секретов было получено от устройств с уязвимыми имплементациями, причем в основном это были устройств Zyxel, Cisco, Mocana и Hillstone Networks.
Исследователи сообщили о проблеме производителям еще в начале текущего года, и те провели собственные расследования для выявления причин такого поведения.
Cisco установила, что в прошлом году для Cisco ASA и FTD Software уже было выпущено обновление, решающее проблему. Также компания сообщила исследователям, что ищет способы устранения проблемы в Cisco IOS и IOS XE.
Специалисты Zyxel, в свою очередь, обнаружили, что прошивка ZLD, которую исследователи использовали в ходе экспериментов, теперь перешла на OpenSSL, что устраняет возможные риски.
В целом для борьбы с возможными злоупотреблениями исследователи рекомендуют использовать имплементации, валидирующие подписи перед их отправкой, например, OpenSSH, использующий для генерации подписей OpenSSL.