Csúszik az Ethereum Constantinople hard fork

A ChainSecurity egy új bugot fedezett fel az EIP 1283-ban mellyel a támadók a hard fork szoftverkódot kihasználva folyamatosan lehívhatnák a felhasználóik letétjeit.

Úgy tűnik az Ethereumosoknak várniuk kell még a pezsgőbontással a soron következő Constantinople hálózatfrissítés bevezetése kapcsán. A ChainSecurity okos szerződéseket auditáló cég ugyanis egy kritikus biztonsági rést fedezett fel a szoftverfrissítésben amit miután a vezető fejlesztőknek prezentálták, ők inkább a fork elhalasztása mellett döntöttek.

A Twitter közlemény szerint: „[BIZTONSÁGI ÉRTESÍTÉS] Constantinople frissítés átmenetileg elmarad egy konszenzusos Ethereum fejlesztői, biztonsági szakemberi és más közösségi tagi döntés után.”

A hivatalos Ethereum blog közleményben pedig a következő olvasható:

„Biztonsági szakértők, mint a ChainSecurity és TrailOfBits egy elemzést futtattak (és mindmáig futtatnak) a teljes blokkláncon. Nem találtak egyetlen sérülékenységet sem a ‘vadonban’. Ugyanakkor továbbra is nem nulla a kockázata annak, hogy a szerződésekre hatással lehet.”

Majd hozzátesz: „Mivel a kockázat nem nulla és mivel ennek eldöntésére szánt idő hosszabb, mint a Constantinople frissítésig rendelkezésre álló idő, olyan döntést hoztunk, hogy a maximális óvatosság jegyében elhalasszuk a forkot.”

Sebezhetőség az 1283-as Ethereum fejlesztési ajánlásnál (EIP)

A ChainSecurity megjegyezte, ha az 1283-as Ethereum fejlesztési ajánlást (Ethereum Improvement Proposal EIP) bevezetik, egy kiskaput eredményezne a támadóknak és a szoftverkód kihasználásával ellophatnák az ügyfelek letétjeit. Az újra-belépési támadáshoz (reentrancy attack) vezető sebezhetőség segítségével a támadók többször újra beléphetnek ugyanabba a funkcióba anélkül, hogy a usereket frissíteni kellene a szituációról és a támadók így folyamatosan többször is lehívhatnák a forrásokat.

A ChainSecurity így foglalja össze Medium blogbejegyzésében:

„A következő Constantinople frissítés az Ethereum hálózaton olcsóbb gas árakat vezet be egyes SSTORE műveletekre. Az egyik nem kívánt mellékhatása, hogy lehetővé válnak az újra-belépési támadások az address.transfer(…) vagy address.send(…) használatával a Solidity okos szerződésekben. Korábban ezek a funkciók újra-belépés biztonságosak voltak, de nem a frissítés után”.

Egyébként a sebezhetőség nagyon hasonlít a 2016-os DAO támadás során felfedezettre.

A csomópontot futtatóknak vészhelyzeti szoftverkliensekre kell frissíteniük

Most hogy a Constantinople hard fork csúszik, a node-t futtatóknak és bányászoknak át kell térniük az Ethereum kliens vészhelyzeti verzióira vagy a fork előtti verzióra. Amennyiben nem lépik meg, akkor lekapcsolásra kerülnek a hálózatról mert a fork szoftver nem kompatibilis a korábbi verziókkal.

Azok, akik nem teljes node-t futtatnak, számukra nincs semmi teendő. A tárcáik a jelen körülmények között védve vannak. A fejlesztők a Constantinople hard fork bevezetését meg nem határozott időre felfüggesztették, de várhatóan a következő fejlesztői meetingen ki fog derülni a frissítés blokkszáma.