Vývojáři Etherea museli urychleně vydat bezpečnostní aktualizace poté, co byla odhalena závažná kryptografická chyba u indické certifikační společnosti eMudhra. Zranitelnost mohla útočníkům umožnit vydávat se za důvěryhodné služby a přesměrovat odměny některých validátorů ETH na vlastní peněženky.
Bezpečnostní problém u indické společnosti eMudhra, která vydává digitální certifikáty pro ověřování identity internetových služeb, zasáhl také ekosystém druhé největší kryptoměny Ethereum. Vývojáři klientů Teku a Besu proto vydali mimořádné aktualizace, jejichž cílem je zabránit potenciálním útokům na provozovatele některých uzlů sítě.
Konkrétně klient Teku, který slouží k provozování validačních uzlů v rámci mechanismu Proof-of-Stake, vydal v úterý aktualizaci 26.10.3. Klient Besu, který zpracovává transakce v síti Ethereum, zveřejnil již v pondělí verzi 26.10.2. Obě aktualizace odstraňují důvěru v problematické certifikáty společnosti eMudhra v prostředí Docker.
Celý incident začal 17. října, kdy bezpečnostní výzkumníci zjistili, že soukromé kryptografické klíče osmi zprostředkujících certifikačních autorit společnosti eMudhra byly vytvořeny s nedostatečnou mírou náhodnosti. Tato zásadní chyba umožňovala jejich odvození z veřejně dostupných certifikátů.
Útočník, který by takové klíče získal, mohl vytvářet falešné digitální certifikáty, které by některé neaktualizované systémy považovaly za důvěryhodné. To představovalo riziko zejména pro služby, které prostřednictvím certifikátů ověřují identitu vzdálených serverů.
Internetové prohlížeče problematické certifikáty zablokovaly a společnost eMudhra je následující den zneplatnila. Firma následně oznámila, že plánuje ukončit své působení v oblasti vydávání digitálních certifikátů.
Problém však přetrvával v prostředí Java, na kterém jsou klienti Teku a Besu postaveni. Java totiž ve výchozím nastavení automaticky nekontroluje, zda byl konkrétní certifikát zneplatněn. Některé instalace proto nadále důvěřovaly kompromitovaným certifikátům, přestože je internetové prohlížeče již odmítaly.
Potenciální důsledky mohly být pro některé validátory Etherea finančně závažné. Pokud by se útočník dokázal dostat mezi validátor a externí službu, se kterou komunikuje, mohl by prostřednictvím podvrženého certifikátu předstírat identitu důvěryhodného serveru.
Podle bezpečnostního upozornění týmu Teku by takový útok mohl za určitých okolností způsobit, že validátor navrhne blok, jehož transakční poplatky budou odeslány na adresu ovládanou útočníkem namísto legitimního příjemce.
Za nejrizikovější scénář vývojáři označili napadení komunikace s externím podepisovacím systémem, který spravuje kryptografické klíče validátora. Podvržená služba by totiž mohla poskytnout podpisy umožňující změnit adresu, na kterou směřují odměny.
Vývojáři však současně upozornili, že běžné uzly Teku provozované v hlavní síti Ethereum s výchozím nastavením nebyly zranitelností zasaženy a nevyžadují žádný zásah. Zároveň potvrdili, že dosud nebylo zaznamenáno žádné skutečné zneužití této bezpečnostní chyby.
Na problém původně upozornila společnost Consensys Diligence, která se zabývá bezpečností blockchainových technologií a spolupracuje s týmem Teku.
Situace je komplikovanější pro provozovatele, kteří klienty Teku nebo Besu spouštějí přímo na svých počítačích či serverech bez využití Dockeru. V jejich případě totiž samotná aktualizace ethereum klienta nestačí. Je nutné odpovídajícím způsobem upravit také úložiště důvěryhodných certifikátů v prostředí Java.
Podobné omezení platí i pro uživatele Dockeru, kteří mají Javu nainstalovanou přímo na hostitelském systému. Aktualizované obrazy Dockeru totiž certifikáty v této samostatné instalaci automaticky neopravují.
Zvláštní pozornost musí situaci věnovat provozovatelé používající Javu 26. Podle týmu Teku již tato verze dosáhla konce své podpory a nedostane potřebnou opravu. Dotčení uživatelé proto musí přejít na Javu 25.
Incident ukazuje, že ani decentralizované blockchainové sítě nejsou zcela izolované od bezpečnostních problémů tradiční internetové infrastruktury. Přestože samotný blockchain Etherea nebyl prolomen, slabina externí certifikační autority mohla v určitých konfiguracích ohrozit komunikaci validátorů a jejich finanční odměny.
