Ошибка в библиотеке Solana могла привести к краже 27 миллионов долларов в час

Ошибка в библиотеке протоколов Solana (SPL) — наборе справочных документов для проектов Solana — могла привести к тому, что злоумышленники похищали деньги из нескольких проектов Solana со скоростью 27 миллионов долларов в час, сообщают исследователи безопасности из Neodyme.

Среди проектов, которые пострадали, агрегатор доходности Tulip Protocol и кредитные протоколы Solend и Larix. В настоящее время эти проекты заботятся о средствах в размере 1,7 миллиарда долларов (хотя до сегодняшнего обвала рынка эта цифра была значительно выше).

Раскрытие ошибки на миллиард долларов

В своем блоге компания Neodyme объяснила, что ошибка была впервые публично раскрыта одним из аудиторов Neodyme, известным как Саймон, на файлообменной платформе GitHub в июне. В то время исследователи безопасности не знали, можно ли ее использовать и насколько велико может быть ее влияние. Ошибка осталась незамеченной.

1 декабря Саймон увидел, что вопрос все еще открыт и ошибка не исправлена. В связи с его беспокойством исследователи безопасности из Neodyme начали тестирование, чтобы выяснить, можно ли воспользоваться ошибкой, и оценить, насколько она серьезна. По словам представителей Neodyme, ошибка была «на первый взгляд безобидной ошибкой округления», но они быстро обнаружили, что она способна украсть целое состояние — на миллионы крошечных кусочков.

Ошибка работала следующим образом. Проще говоря, для приложений Solana существует механизм, когда вы вводите и выводите средства. Если протокол следовал справочным документам SPL, то в момент вывода средств они округлялись до ближайшего целого числа. Это происходило только в том случае, если пользователю причиталась доля наименьшей эталонной единицы, известной как лампорт (это аналогично сатоши, наименьшей сумме биткоина).

Это работало в обе стороны. Некоторые люди в итоге получали дополнительную часть своих токенов. Другие люди в итоге получали чуть меньше, чем им причиталось. Но это была бы мизерная сумма на человека, и в среднем она была бы примерно равна.

Но если бы кто-то стал играть в эту систему, задались вопросом исследователи, не могли бы они в конечном итоге забрать себе крошечные дополнительные суммы? И если бы они делали это снова и снова, то, возможно, смогли бы заработать значительные суммы денег.

Исследователи проверили свою теорию на практике на копии блокчейна. Они отправили транзакцию, предназначенную для использования ошибки, и из-за ошибки округления удалось украсть 0,000001 BTC ($0,047).

Исследователи подсчитали, что они могут использовать эту ошибку 150-200 раз в одной транзакции и поместить множество таких транзакций в один блок. По их мнению, такой эксплойт может похищать средства со скоростью $7 500 в секунду, или $27 млн в час.

Что касается того, сколько всего может быть украдено, то вопрос о том, как долго такая эксплуатация могла продолжаться, прежде чем ее заметили и приняли меры защиты, остается открытым. Это зависит от того, насколько отъявленными были бы злоумышленники, и от того, быстро или медленно они проводили атаку. Но исследователи знали, что под угрозой находится более миллиарда долларов.

Исследователи быстро связались с несколькими проектами Solana, которые, по их мнению, были затронуты этой ошибкой. Поскольку многие проекты Solana имеют закрытый исходный код, это было гораздо сложнее, и они ошиблись в определении нескольких проектов. Но им удалось связаться с Solend, Tulip и Larix, которые исправили ошибку.

С момента раскрытия ошибки Solana Labs также исправила справочные документы, чтобы убедиться, что новые проекты, следующие ее инструкциям, больше не будут ее внедрять.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *