DeFi-протокол Notional Finance став жертвою хакерської атаки 4 вересня, і цей інцидент знову підкреслює, наскільки небезпечною може бути спадщина застарілих смарт-контрактів. Зловмисник знайшов прогалину в старій версії V1 контракту платформи, яка вже не використовувалася активно, але продовжувала залишатися частиною екосистеми. Проблема полягала в некоректній обробці даних під час конвертації типів: штучно згенерована заборгованість, яка мала враховуватися під час перевірки забезпечення, відображалася як нульова через помилку в логіці перетворення. Це й дозволило атакуючому обійти механізми безпеки та вивести кошти.
За даними спеціалізованих аудиторських служб, включно з CertiK, загальна сума збитків становила близько 69 000 DAI та 1,66 млн USDC. Сукупно це приблизно $1,7 млн — значна сума, але не катастрофічна для проєкту з багатомільйонним TVL. Однак показовим є сам вектор атаки: хакер не зламував новий код, а експлуатував «мертву зону» — контракт, який, імовірно, вважався неактуальним і тому був позбавлений належного моніторингу.
Після виведення коштів кіберзлочинці конвертували викрадені стейблкоїни в приблизно 689 ETH. Це стандартна практика для заплутування слідів, але ключовим кроком стало відправлення коштів у Tornado Cash — мікшер, який залишається головним інструментом для відмивання криптовалют у подібних атаках. Використання цього сервісу ускладнює відстеження активів, але не робить його неможливим: сучасні методи аналізу блокчейну дозволяють частково деанонімізувати такі транзакції.
Для Notional Finance це вже не перший удар по репутації, і тепер команді доведеться не лише компенсувати втрати, а й переглянути підхід до управління старими версіями контрактів. В ідеалі невикористовувані протоколи мають бути повністю заморожені або знищені, щоб виключити будь-яку можливість експлуатації.
Мій коментар: Цей випадок — чергове нагадування про те, що в DeFi «закинутий» код не зникає, а стає міною уповільненої дії. Проєктам слід впроваджувати автоматизовані системи моніторингу всіх історичних контрактів, навіть якщо вони не активні. Один застарілий смарт-контракт може звести нанівець роки роботи та довіру користувачів.