Security failure at Indian certificate firm bites Ethereum as developers rush out fixes
Криптографическая ошибка в индийской компании, занимающейся выдачей сертификатов, распространилась на Ethereum, где она могла позволить злоумышленникам незаметно перенаправлять часть вознаграждений валидаторов себе.
Teku, программное обеспечение, которое многие валидаторы используют для работы с механизмом Proof-of-Stake в Ethereum, во вторник выпустила версию 26.10.3. Besu, который обрабатывает транзакции Ethereum, выпустила версию 26.10.2 в понедельник. Оба обновления прекращают использование сертификатов, связанных с eMudhra, индийской компанией, выдающей сертификаты, в своих Docker-образах, которые часто используются операторами.
Валидаторы – это компьютеры, которые вкладывают ETH для обеспечения безопасности Ethereum и получают вознаграждение за предложение блоков. Некоторые из них взаимодействуют с другими сервисами через интернет, и они полагаются на цифровые сертификаты, чтобы убедиться, что общаются с правильным сервисом.
В чем заключалась проблема
17 октября исследователи обнаружили, что закрытые ключи, используемые для восьми промежуточных органов сертификации eMudhra, были сгенерированы с недостаточной степенью случайности.
Это означало, что ключи можно было вычислить, используя сами сертификаты, которые являются общедоступными. Любой, кто владеет этими ключами, мог выдавать сертификаты, которые неисправное программное обеспечение приняло бы за действительные. Браузеры заблокировали эти сертификаты, eMudhra отозвала их через день, и компания заявила, что выходит из бизнеса, связанного с выдачей сертификатов.
Java, язык программирования, на котором работают Teku и Besu, по умолчанию не проверяет, отозваны ли сертификаты. Поэтому Docker-образы Teku продолжали доверять этим недействительным сертификатам, даже после того, как браузеры их заблокировали.
Как валидаторы могли потерять деньги
Злоумышленник, находящийся между валидатором и сервисом, с которым он взаимодействует, мог выдавать себя за этот сервис. В своем сообщении о безопасности, Teku сообщила, что валидатор, обманутый таким образом, мог предложить блок, который бы переводил вознаграждение на адрес злоумышленника.
Поддельный внешний подписант, отдельный сервис, который хранит ключи валидатора, мог передавать подписи, используемые для изменения направления перечисления вознаграждений, что Teku считает наиболее опасной ситуацией.
«Стандартный узел Teku в основной сети не подвержен этой проблеме и не требует никаких действий», — написала команда, добавив, что «о случаях эксплуатации не сообщалось». Consensys Diligence, партнер Teku в области безопасности, изначально выявила эту проблему.
Операторы, которые запускают Teku или Besu напрямую на своих машинах, без использования Docker, должны самостоятельно обновлять Java, поскольку обновление программного обеспечения Ethereum не затрагивает список доверенных сертификатов Java. Новые образы Docker также не обновляют установленную на хосте версию Java.
Однако, для тех, кто все еще использует Java 26, исправление будет сложнее. Компания Teku заявила, что эта версия находится в стадии окончания жизненного цикла и не будет получать обновленные версии, поэтому этим операторам необходимо перейти на Java 25.