Розробники XRP Ledger закрили вразливість, яка з 2015 року теоретично дозволяла створювати нові XRP із нічого. Помилка підрахунку у вбудованому обміннику могла порушити головну обіцянку мережі, а саме те, що загальна пропозиція в 100 мільярдів монет не змінюється. Розбираємо, як працював цей баг і чому вбудовані перевірки його не помітили.
Що саме знайшли дослідники?
Помилку виявив дослідник Cayden Liao разом із системою Veria AI, і 22 вересня про неї повідомили розробникам. Інженери RippleX, підрозділу Ripple, відтворили атаку на окремому сервері та підтвердили, що створені монети можна витратити в наступній транзакції. Після цього вийшов екстрений реліз із виправленням.
За даними CoinDesk, дефект існує з 2015 року, тобто майже десять років пролежав у коді. Він входить до низки давно прихованих вад, які з липня знаходять за допомогою ШІ. Серед них вразливість гаманця Coldcard, через яку вкрали щонайменше 1 367 Bitcoin, та проблеми Core Lightning, що змусили оператори нод відключатися.
Для контексту: XRP не майниться і не випускається за розкладом. Усі монети існували від старту, а інфляції немає за задумом. Тому будь-який шлях до нових монет, навіть теоретичний, б'є не по комісіях чи швидкості, а по базовій властивості активу.
Як працював цей трюк?
У XRP Ledger є вбудований обмінник, де учасники виставляють пропозиції обміну токена на XRP. Вразливість ховалася в тому, як програма складає суми з багатьох таких пропозицій в одному платежі. Ось як виглядала теоретична схема атаки.
- Підготовка: зловмисник відкриває кілька сотень рахунків, і на це потрібно лише кілька сотень XRP, більшість яких можна повернути.
- Кожен рахунок виставляє пропозицію з крихітною кількістю токена в обмін на надзвичайно велику суму XRP.
- Один платіж викуповує всі пропозиції одночасно.
- Загальна сума виявляється завеликою для програми, вона рахує її неправильно, і покупець платить майже нічого.
Продавці при цьому отримують усе сповна. Наслідок у тому, що в зловмисника з'являються монети, яких раніше не існувало, і їх можна витрачати як звичайні.
Важлива деталь, що атака не потребувала ні викрадених ключів, ні доступу до чужих гаманців. Усе робилося через звичайні дії, дозволені будь-кому, а саме відкрити рахунки, виставити пропозиції, провести платіж. Саме цим помилки логіки відрізняються від класичних хаків.
Чому вбудовані перевірки цього не зупинили?
Після кожної транзакції мережа перевіряє, що нових XRP не з'явилося. Але ця перевірка спиралася на той самий неправильно пораховане підсумкове число, тому розбіжність пройшла непоміченою. Окремий ліміт на суму, яку може отримати один рахунок, теж не спрацював би, бо атака розкидала монети по сотнях рахунків.
Простіше кажучи, обидва запобіжники дивилися на одну хибну цифру. Звідси й невеликий стартовий капітал, якого вистачало дослідникам для демонстрації.
Розробникам така ситуація знайома. Коли контроль бере ті самі дані, що й основна логіка, помилка в даних ламає обидва рівні одразу. Незалежна перевірка, яка рахує монети іншим шляхом, ловить такі розбіжності, і про неї зазвичай говорять після подібних випадків.
Чому для ринку це було серйозно?
Усі 100 мільярдів XRP створили під час запуску реєстру в 2012 році, і програма написана так, щоб додати нові монети було неможливо. На цей ліміт покладаються інституції, які користуються мережею. Зловмисник міг би створити монети й продати їх на біржах, і тоді під ударом опинилася б довіра до самого правила про фіксовану пропозицію.
Для власників XRP наслідки були б прямими, адже нові монети на ринку тиснуть на ціну, а недовіра до ліміту ще й вибиває опору з-під ціннісної історії токена.
Що це означає для користувача?
Знахідку зробив не аудитор у звичайному режимі, а пара з дослідника та ШІ-системи. Такі інструменти читають код швидше й добираються до вузьких кутів, куди ручний огляд заходить рідко. Те саме можуть робити й нападники, тому тепер важливо, хто знайде помилку першим.
Дірку закрито екстреним релізом, а деталі з'явилися вже після виправлення. Серія знахідок із липня, судячи з усього, не закінчилася, бо ШІ-інструменти тепер знаходять дефекти, які люди пропускали роками. Тому швидкі оновлення мережевого софту стали для крипторинку такою ж частиною гігієни, як перевірка адрес перед переказом.




Коментарі
Ваша e-mail адреса не оприлюднюватиметься. Обов'язкові поля позначені *