Співзасновник Allbridge розкрив подробиці про злам протоколу та назвав суму збитків
Співзасновник кросчейн-мосту Allbridge, що раніше зазнав хакерської атаки, Андрій Великий розповів ForkLog UA подробиці про злам протоколу.
Що сталося?
Кросчейн-міст Allbridge зазнав хакерської атаки на пули ліквідності BUSD/USDT у мережі BNB Chain. За даними фахівців PeckShield, невідомий вивів цифрові активи на близько $570 000.
The @Allbridge_io hack results in the loss of ~$570K (282,889 BUSD + 290,868 USDT). The root cause appears to be the manipulation of pool's swap price. The actor plays dual roles of acting as LP and swapper to manipulate the price and then drain the pool funds. https://t.co/JiPwVHsaCi pic.twitter.com/FY2wwA6IHm
— PeckShield Inc. (@peckshield) April 2, 2023
Команда Allbridge відключила міст на час розслідування. Причиною стало те, що експлойт, яким скористався хакер, міг дозволити атакувати й інші пули.
We are investigating the current situation with the BNB Chain pools.
— Allbridge (@Allbridge_io) April 2, 2023
The bridge has been temporarily shut down during the investigation.
We apologize for the inconvenience.
В Allbridge запропонували зловмисникові нагороду за повернення коштів. Водночас у BNB Chain повідомили, що ідентифікували хакера за допомогою ончейн-аналізу.
BNB Chain has identified the Allbridge attacker following on-chain analysis. We are actively supporting the Allbridge team on the fund recovery. The Allbridge team has offered the hacker a bounty.
— BNB Chain (@BNBCHAIN) April 2, 2023
We'd like to recognize the effort of AvengerDAO in this recovery effort.
Згодом зловмисник повернув частину викраденого — 1500 BNB. Команда проєкту заявила, що решта коштів вважатиметься винагородою для зламника.
Два хакери
Андрій Великий розповів, що атака стала можливою через помилку в математичній формулі розрахунку ліквідності та публічного характеру інформації про кодову базу смартконтракту.
Allbridge на прохання партнерів, зокрема й у звʼязку з майбутньою інтеграцією з Arbitrum, відкрив код смартконтракту в межах його верифікації. Раніше команда також публікувала математичну формулу, за якою працює пул ліквідності.
“Міст влаштований таким чином, що він увесь час намагається вирівняти ліквідність. Якщо є якийсь перекос, він з однієї сторони починає штрафувати, а з іншої — доплачувати. Це дозволяє користувачам заробляти на арбітражі”, — сказав він.
Втім, у граничних значеннях формули була помилка — допустима сума вхідних та вихідних транзакцій виявилася значно вищою за ту, що знаходилася в пулах ліквідності:
“Атакуючий поклав гроші до пулу ліквідності, провів серію свопів, і ми неправильно розрахували на рівні математики, скільки йому видати грошей за такого перекосу ліквідності. Вийшло так, що він забрав не лише свої, а й чужі кошти, фактично спустошивши пул BNB Chain”.
Потім хакер конвертував активи на $570 000 до BNB та надіслав їх на Tornado Cash.
Втім, після цього інший невідомий повторив атаку та вивів $160 000 у стейблкоїнах. На момент написання ці кошти знаходяться на його рахунку без руху.
Крім цього, після спустошення пулу на BNB Chain інші користувачі намагалися заробити, надсилаючи кошти між ним та іншими пулами до моменту зупинення мосту.
Команда звʼязалася з першим зламником, який внаслідок і повернув 1500 BNB, залишивши решту як винагороду.
В Allbridge припускають, що за атакою стояв хакер із Гонконгу, який займається зламами протоколів на BNB Chain. Свої дії останній докладно описував у Twitter, зокрема, опублікував приватний ключ адреси, з якої було здійснено атаку. Спочатку зловмисник не планував повертати кошти.
“У діалозі з нами він жодним чином не пояснив мотивів свого вчинку, проте погодився відправити нам 1500 BNB частинами через Tornado Cash. Цю суму ми відразу конвертували в стейблкоїни, щоб не погіршувати ситуацію з волатильністю курсу. Також за домовленістю з хакером після повернення коштів ми опублікували твіт, що визнаємо його whitehat і не маємо наміру його будь-яким чином переслідувати”, — розповів Великий.
Другий зламник досі не виявив жодної активності, незважаючи на надіслане йому командою ончейн-повідомлення з аналогічною пропозицією про виплату баунті.
Дії сторонніх користувачів у рамках інциденту Allbridge не планує трактувати як злам.
“Вони просто користувалися функціоналом мосту. Це дуже багато дрібних транзакцій, які важко відстежити. Ми розглядаємо можливість звернутися до цих людей з проханням повернути кошти протоколу, щоб допомогти з виплатами постраждалим”, — додав Великий.
План компенсації
Наразі Allbridge готує відповідний план відшкодувань. Зокрема, розробляється форма, через яку користувачі зможуть верифікувати кількість активів, які стали недоступними їм на тлі інциденту.
Команда обговорює можливість почати виплати з найменшої групи людей, які “в момент зламу і блокування мосту надіслали транзакцію, але вона не дійшла”, зазначив Великий:
“Друга група — ті, хто залишилися в пулах ліквідності, але вони не можуть забрати гроші в повному обсязі. Також є варіант провести пропорційну компенсацію — порахувати всю недостачу та повернення та розподілити між адресами. Але мені ця формула здається менш справедливою”.
Остаточного рішення ще немає. Наразі команда проводить консультації з юристами, проте наголошує, що повернення коштів буде повним.
“Ми відновимо роботу протоколу, перерозподілимо активи і постійно наповнюватимемо пули. Якщо другий хакер теж відгукнеться, це дуже сильно спростить усім життя”, — додав він.
Чи варто платити хакерам?
Андрій Великий вважає, що в критичній ситуації домовленість із хакером про повернення частини коштів — це найменше із зол. Як приклад він навів злам кросчейн-протоколу Wormhole на $319 млн у лютому 2022 року.
Тоді переговори з хакером із якихось причин не вдалися, і фірма Jump Trading погасила збиток із власних коштів. Згодом хакера вдалося зламати і повернути частину грошей.
Однак якщо за проєктом не стоїть великий холдинг, здатний покрити збитки, користувачі ризикують на тривалий період залишитися без грошей. Зі свого боку treasure-протокол також не завжди здатний перекрити збитки. І навіть у разі здійснення виплат користувачам з нього, у проєкту не буде коштів на зарплати і протокол закриється.
“Чи є це рішення кращим, ніж домовитися з хакером на повернення більшої частини суми? Користувачі отримують гроші назад, у протоколу є кошти на виплати зарплат, реабілітуватися в очах громадськості і заробити грошей. На мій погляд, це win-win”, — пояснив Великий.
Вектори атак на кросчейн-протоколи
Вектор атаки через математику, з яким зіткнувся Allbridge, є одним із варіантів зламу мостів, орієнтованих на свопи між пулами ліквідності.
Серед інших популярних способів — атака на смарт-контракт, що містить уразливість, або атака на месенджер-протокол із підміною даних у повідомленнях.
Залежно від структури децентралізації на валідаторів месенджер-протоколів може також проводитися вибіркова атака. У цьому разі хакер отримує можливість схвалити завідомо помилкові транзакції.
Нагадаємо, у березні невідомий скомпрометував пул ліквідності децентралізованої біржі SafeMoon на BNB Chain та вивів криптоактиви майже на 9 млн.