Днями у криптовалютної біржі Bybit було вкрадено криптовалюти в еквіваленті 1,4 млрд доларів. Це найбільша крадіжка в історії криптовалют, яку, схоже, провела група Lazarus Group, підрозділ хакерів, контрольований владою Північної Кореї.
Це не було звичайне викрадення ключів або паролів, це було щось набагато більш складне. Зловмисники обманом змусили кількох співробітників схвалити законної транзакцію на блокчейні. У цій, здавалося б, звичайній транзакції був прихований ключ до злому. Хакери змінили лише одну цифру в даних транзакції з 0 на 1. Ця крихітна зміна передала зловмисникам повний контроль над гаманцем Bybit з мільярдом доларів всередині.
Як криптобіржи захищають кошти
Обмінні операції
Криптобіржи не зберігають всі кошти в одному гаманці. Замість цього вони розділяють їх на кілька різних “холодних” і “гарячих” гаманців для забезпечення безпеки, при цьому більша частина активів зберігається в “холодному” сховищі.
- Холодне сховище схоже на банківське сховище. Зазвичай воно включає в себе фізичний пристрій, що перебуває в автономному режимі та вимагає декількох рівнів схвалення для переміщення коштів.
- Гарячі гаманці схожі на касовий апарат. Вони підключені до інтернету та безпосередньо беруть участь в щоденних фінансових операціях.
Коли біржа хоче виконувати повсякденні дії, вона переводить активи з холодного сховища в гарячий гаманець. Уявіть, що це схоже на переміщення коштів із захищеного сховища в ящик касового апарату.
Це звичайна операція, яку виконував Bybit, те, що вони робили незліченну кількість разів раніше. Але на цей раз все пішло не за планом.
Налаштування Bybit
Щоб зменшити кількість поодиноких точок відмови, Bybit використовувала безпечні гаманці смарт-контрактів Safe замість того, щоб покладатися на один закритий ключ.
Гаманці зі смарт-контрактами контролюються запрограмованими правилами, а не власником. Код Safe є загальнодоступним і перевіреним, що дозволяє будь-якому користувачеві переглянути і перевірити, як він працює.
Для підтвердження будь-якої транзакції в Safe потрібно кілька людей, точно так само, як для відкриття банківського сховища потрібно три різних ключа. Це запобігає переміщенню коштів однією людиною або скомпрометованим ключем.
Однак, хоча ця настройка усувала ризики, пов’язані з закритим ключем, вона створювала труднощі, якими скористалися зловмисники.
Прихована деталь, яка змінила все
Щоб зрозуміти суть атаки, нам спочатку потрібно розібратися в тому, як працюють безпечні транзакції.
Транзакція на блокчейні
Стандартна транзакція на блокчейні проста. При налаштуванні ви повинні вказати:
from
: Хто відправляє коштиto
: Хто їх отримуєvalue
: Скільки відправляєтьсяdata
: Додаткові інструкції при взаємодії зі смарт-контрактом
Безпечна транзакція
Безпечні транзакції вводять додаткові параметри, які ви повинні вказати. Одним з важливих параметрів є operation
.
Коли operation = 0
система виконує звичайний переказ коштів.
Налаштування operation = 1
система клацає перемикачем, дозволяючи дію під назвою delegatecall
. Це дозволяє Безпечному гаманцю запускати код іншого смарт-контракту так, як якщо б він був його власним.
Подумайте про це так:
- Ви підписуєтеся на банківський трансфер. Але прихований прапорець дрібним шрифтом також додає іншого користувача з обмеженими правами в якості спільного власника облікового запису.
- Але оскільки тепер цей обмежений користувач існує всередині вашого облікового запису, він може розширити свої дозволи і отримати повний контроль.
Це саме те, як delegatecall
був використаний при зломі Bybit.
Напад
18 і 19 лютого зловмисник розгорнув 2 шкідливих контракти, призначених для подальшого виконання. Ці контракти містили прихований код, що дозволяє зловмисникові виводити кошти при виконанні.
21 лютого, коли співробітники Bybit вирушили затвердити те, що виглядало як звичайний трансфер грошей, всі вони перевірили один і той же користувальницький інтерфейс. За словами Bybit, все виглядало нормально.
Але вони не знали, що інтерфейс був зламаний, замінивши, здавалося б, звичайну транзакцію новою. І в цій транзакції були приховані важливі зміни, які перепрограмували правила Безпечного гаманця.
Подробиці
При затвердженні транзакції несвідомо схвалили іншу транзакцію, яка включала:
operation =
1, що дозволяєdelegatecall
to:
встановлюється на адресу першого шкідливого контракту зловмисникаdata:
містить адресу для другого шкідливого контракту, який включав код для виведення коштів
Ці зловмисники були витонченими. Вони знали, що обмежені дозволи delegatecall
не дозволили б їм вкрасти кошти. Тому хакери здійснили двоетапне поглинання.
- Перший шкідливий контракт був використаний для зміни налаштувань Безпечного гаманця, замінивши його вихідний код на свій власний
- Другим шкідливим контрактом став код нового сейфу , дає зловмисникам контроль.
Потім зловмисники перевели усі кошти на свій власний гаманець.

Повертаючись до нашої аналогії з банківським переказом:
- Після того, як прихований дрібний шрифт додав кого-небудь у якості спільного власника облікового запису, цей новий користувач потім використовував обмежений доступ, щоб замінити інструкції керування налаштуваннями вашого облікового запису.
- Після цього злвмисники змогли вилучити кошти.
Чому була затверджена нова транзакція?
Точний метод, використаний для злому інтерфейсу, залишається непідтвердженим, і неясно, чи було це викликано фішинг-атакою, компрометацією пристрою або маніпуляціями з процесом затвердження Bybit.
Незалежно від того, що сталося, шкідлива транзакція була затверджена, що дозволило зловмисникам отримати доступ до гаманця Bybit, використовуючи їх власний шкідливий контракт.

Протягом декількох хвилин зловмисники почали переводити кошти на свої власні адреси , викравши ~ 1,4 мільярда доларів.

Наслідки
Відразу після атаки блокчейн-аналітики почали відстежувати викрадені кошти. Приналежність до підтримуваної державою північнокорейської Lazarus Group була швидко підтверджена, оскільки адреси їхніх гаманців були пов’язані з попередніми великомасштабними зломами бірж.
Вкрадені активи на суму 1,4 мільярда доларів були швидко розподілені, причому гаманець зловмисника спочатку розподілив кошти за більш ніж 50 різними адресами, щоб заплутати сліди. В даний час налічується більше 900 адрес, пов’язаних зі зломом .

Куди підуть кошти далі
Наступним кроком зловмисників буде стирання своїх слідів перед переведенням у готівку, використовуючи такі тактики, як:
- Об’єднання: Переміщення активів за блокчейном, щоб порушити історію транзакцій і утруднити їх відстеження. Лазарус використовував цей метод під час злому Axie Infinity на 625 мільйонів доларів, щоб уникнути виявлення.
- Мікшери: змішування коштів з іншими, щоб стерти сліди володіння. Lazarus раніше використовував мікшери, такі як Sinbad.io для маскування транзакцій.
Відповідь Байбіта
Bybit відреагувала швидко і прозоро. Генеральний директор Бен Чжоу негайно виступив з публічною заявою, підтвердивши факт атаки і гарантувавши, що виведення коштів залишається відкритим.
Незважаючи на серйозність атаки, Bybit обробив понад 350 000 запитів на виведення коштів за короткий період, гарантуючи, що клієнти не були заблоковані зі своїми коштами.
Біржа також координувала дії з галузевими партнерами по відстеженню та заморожування вкрадених активів. Деякі кошти вже відзначені і заморожені, тривають зусилля з повернення більшої кількості.
Що відбувається далі
Правоохоронні органи і компанії, що займаються блокчейн-аналітикою, активно відстежують гаманці зловмисників, відстежуючи будь-які спроби конвертувати кошти в фіатні (так називають традиційні валюти держав, наприклад, долари США). Їх мета: заморозити активи до того, як вони зникнуть в мережах відмивання.
Ця атака все ще триває. Вкрадені кошти переміщуються з кількох гаманців і мереж, і команди безпеки поспішають їх заморозити.
Висновок
Чи можна було запобігти злом Bybit? Так.
Додаткові рівні контролю і зовнішньої перевірки могли б позначити шкідливу транзакцію, навіть якщо інтерфейс підпису Bybit був зламаний.
Однак реальний урок злому Bybit стосується не тільки однієї біржі і того, що пішло не так. Мова йде про більш широкі операційні ризики криптовалюти.
Перехід від принципу “не дайте себе зламати” до принципу “коли відбудеться атака, як нам зменшити збитки і ефективно реагувати” важливий для розвитку галузі.
Традиційні фінанси працюють в режимі “припустимо, що збій”. Він створює рівні управління ризиками, резервів і планів реагування, щоб мінімізувати збиток, якщо щось піде не так. Криптовалюта повинна застосовувати ті ж методи у всій галузі.
Жодна система не захищена від злому. Зловмисники завжди адаптуються, і як тільки одна уразливість буде виправлена, буде знайдена інша. Реальна мета – зробити експлойти настільки складними і дорогими, що вони стають непрактичними.
Безпека тепер означає багаторівневий захист, посилення контролю і готовність швидко реагувати на події по мірі їх виникнення в режимі реального часу.
З наближенням нормативної ясності операційні ризики стануть найбільшою проблемою для масового впровадження цифрових активів.
Подібні атаки не припиняться. Але з поліпшеним контролем безпеки їм не обов’язково перемагати.
За матеріалами: Substack