Обнаружившийся недавно баг снова вызывает проблемы у пользователей EOS

Обнаружившийся недавно баг снова вызывает проблемы у пользователей EOS: он позволяет блокировать их ценные сетевые ресурсы без какой-либо авторизации. Команда разработчиков EOS уже отреагировала на проблему и занялась поиском надёжного решения. Об этом пишет TheNextWeb.

Команда EOSEssentials описывает эту атаку так: «Злонамеренный пользователь устанавливает код на своём аккаунте, который позволяет ему вставлять строки в имя другого аккаунта, с которого ему передаются токены. Таким образом он может воровать RAM, вставляя большие объёмы мусора в строки, когда децентрализованные приложения/пользователи отправляют ему токены».

В качестве временного решения проблемы пользователям предлагается использовать “прокладки” при взаимодействии с сомнительными аккаунтами. Их роль в этом случае выполняют промежуточные аккаунты, не имеющие ресурсов RAM, которые можно было бы украсть.

«Отправляя токены на аккаунт-“прокладку”, не имеющий доступной RAM, с примечанием, где первое слово соответствует аккаунту, на который вы хотите в конечном счёте передать свои токены, вы не делаете уязвимым свой основной аккаунт», - говорится в описании решения на GitHub.

В экосистеме EOS RAM является ограниченным ресурсом, распределяемым среди разработчиков. Чем сложнее децентрализованное приложение, тем больше RAM ему требуется для бесперебойной работы.

Разработчик Сесар Родригес, также работающий над созданием эффективной заплатки, пояснил, что украденные таким образом ресурсы RAM, по сути, блокируются. Поскольку эксплойт не позволяем перенести RAM на другой аккаунт, заблокированные ресурсы нельзя обменять или продать. Их также нельзя вернуть законному владельцу.

«Ни у одного децентрализованного приложения не должно быть права на присвоение ресурсов без механизма их возврата. В долгосрочной перспективе это приведёт к возникновению тысяч аккаунтов, хранящих мусорную RAM, то есть RAM, которую нельзя использовать в приложениях, имеющих реальную ценность. У некоторых шиткоинов стоимость хранящейся RAM может превысить их собственную стоимость», - написал Родригес.

Соответственно, чтобы пострадать от действий злоумышленников, пользователь сначала должен сам отправить токены на заражённый адрес. «На любом аккаунте может быть установлен этот код, поэтому любая транзакция может заблокировать вашу RAM», - сообщил Родригес. «Чтобы было понятно, вы должны осуществить перевод на зловредный адрес. Если вы являетесь получателем перевода, то не можете стать жертвой атаки».

По словам Родригеса, баг был обнаружен после того, как беттинговое приложение на блокчейне EOS перестало функционировать. По мере того, как оно выплачивало выигрыши злонамеренному пользователю, всё больше и больше ресурсов RAM блокировалось.

Предложенный в настоящее время промежуточный фикс имеет один существенный недостаток – он сложен для исполнения обычными пользователями, которые вынуждены самостоятельно редактировать код, чтобы защитить себя.