Що таке Атака затемнення (Eclipse Attack)?

Атака затемнення (англ. eclipse attack) — це різновид кібератак у блокчейн-мережах, коли зловмисник ізолює певний вузол від решти системи, щоб контролювати всю інформацію, яку отримує жертва.

Цей тип атаки дозволяє повністю контролювати інформаційне оточення обраної ноди. Такий ізольований вузол починає бачити тільки ті дані, що надходять від зловмисника, і втрачає доступ до актуальної інформації від чесних учасників мережі.

Атака затемнення певною мірою схожа на атаку Сивілли, оскільки в обох випадках зловмисник наповнює мережу фейковими вузлами. Однак кінцева мета різниться: атака затемнення націлена на один конкретний вузол, тоді як атака Сивілли здійснюється в масштабах усієї мережі і спрямована на підрив репутаційної системи протоколу.

Хоча атаки затемнення відносно легко реалізувати в теорії, в реальних умовах вони трапляються вкрай рідко, адже сама децентралізована архітектура блокчейнів частково убезпечує від подібного втручання.

Як працює атака затемнення?

У більшості блокчейн-мереж вузол не може підтримувати з’єднання з усіма іншими вузлами одночасно — існують обмеження на кількість сусідів. Наприклад, програмне забезпечення біткоїна обмежує число одночасних підключень приблизно 125 з’єднаннями. Кожна нода має низку «сусідів», з якими обмінюється даними. Зловмисник цим користується: щоб «ізолювати» вузол, атакуючий має зайняти всі його слоти підключень власними підставними нодами.

Здійснення атаки затемнення зазвичай відбувається так: спершу зловмисник збирає або орендує велику кількість IP-адрес (або псевдо-вузлів) і примушує цільовий вузол встановити з’єднання саме з ними. 

Найчастіше атакуючий чекає моменту перезапуску програми на вузлі-жертві (або сам спричиняє перезавантаження, наприклад, малою DDoS-атакою). Під час повторного підключення вузол-жертва несвідомо під’єднується до адрес, підготовлених зловмисником, оскільки той заздалегідь «затопив» мережеве оточення жертви своїми IP. 

У результаті всі сусідні підключення жертви виявляються під контролем атакуючого. Ізольований таким чином вузол більше не отримує нових блоків і транзакцій від чесних учасників, натомість йому надходять тільки ті дані, які передають фальшиві «сусіди» під контролем зловмисника. Практично це означає, що жертва бачить спотворену картину блокчейну і не здатна відрізнити її від реальної, оскільки повністю відключена від справжньої P2P-мережі.

Наслідки атаки затемнення

Атака затемнення сама по собі рідко є самоціллю. Її застосовують, щоб підготувати ґрунт для інших, більш прямих атак або шахрайських дій:

  • Подвійні витрати без підтверджень. Найпростіший сценарій — зловмисник здійснює double-spending атаки, використовуючи ізоляцію жертви. Наприклад, атакуючий може відправити жертві транзакцію, яка насправді ніколи не потрапить у справжній блокчейн. Ізольований вузол-жертва (скажімо, вузол мерчанта або біржі) бачить цю транзакцію і вважає платіж виконаним, тоді як зловмисник паралельно витрачає ті ж монети в основній мережі на іншу адресу. Жертва залишається переконаною, що отримала кошти, допоки її вузол не синхронізується з рештою мережі — але тоді виявиться, що транзакція-оплата була недійсною, адже відповідні кошти вже використані в іншому місці. Така атака дозволяє шахраєві отримати товар чи послугу, фактично не заплативши.
  • Обман з підтвердженими транзакціями. Атака затемнення може загрожувати навіть тим, хто чекає кілька підтверджень транзакції. Зловмисник здатен показати жертві альтернативний ланцюг блоків з фальшивим підтвердженням — для цього він ізолює не лише жертву-покупця, але й декількох майнерів у мережі. Схема виглядає так: атакуючий оформлює оплату товару і передає її затемненим майнерам, які добувають блок з цим платежем. Жертва (мерчант) отримує від зловмисника ніби підтверджену транзакцію і передає товар. Однак щойно ізольовані майнери та мерчант відновлять контакт з основною мережею, їх альтернативний ланцюг блоків буде відкинуто, адже решта мережі його не підтримує. Транзакція, що здавалася підтвердженою, виявиться недійсною.
  • Саботаж майнінгу та атака 51%. Ще один мотив застосувати eclipse-атаку — послабити конкурентів у майнінгу. Ізольований майнер продовжує добувати блоки, не знаючи, що його блокчейн відстає або розходиться з основним ланцюгом. Видобуті блоки згодом відкидаються, і час та обчислювальна робота майнера витрачаються марно. Теоретично, масове затемнення декількох великих майнінг-пулів могло б зменшити сукупний хешрейт решти мережі, полегшуючи реалізацію атаки 51% для зловмисника. Окрім того, маніпулюючи ізольованими нодами, можна стимулювати їх до неефективних дій, таких як егоїстичний майнінг або гонитва за примарними блоками, що теж послаблює мережу.

Запобігання атакам затемнення

Атака затемнення стає реальною загрозою, якщо зловмисник має у розпорядженні велику кількість IP-адрес і ресурсів. Принципово будь-яку ноду можна затемнити, якщо захопити всі її з’єднання. Найпростіший спосіб знизити цей ризик — обмежити коло підключень: наприклад, відключити вільний вхід в свою ноду і під’єднуватися тільки до вузлів, яким оператор довіряє (через white-list). Проте такий підхід не масштабується на рівні всієї мережі, адже нові учасники втратять можливість легко приєднуватися до мережі, якщо всі існуючі вузли будуть «закритими».

На рівні протоколів розробники впроваджують інші захисні заходи. Зокрема, після перших досліджень атаки затемнення в Bitcoin Core були інтегровані зміни, що роблять такі атаки значно складнішими. Серед них — випадковий вибір нових пірів при кожному з’єднанні (щоб зловмисник не міг передбачити, кого під’єднає вузол) та збільшення обсягу пам’яті адрес для потенційних сусідів (щоб атакуючому було важче «затопити» всі варіанти).

Експерти також рекомендують диверсифікувати мережеві підключення: запускати вузол на різних інтерфейсах (наприклад, IPv4 і IPv6) і тримати декілька з’єднань через захищені канали на зразок VPN. Це ускладнює повну ізоляцію ноди, оскільки їй важче одночасно нав’язати підроблених сусідів по всіх каналах зв’язку.

Читайте ForkLog UA в соціальних мережах

Знайшли помилку в тексті? Виділіть її та натисніть CTRL+ENTER

Матеріали за темою

Ми використовуємо файли cookie для покращення якості роботи.

Користуючись сайтом, ви погоджуєтесь з Політикою приватності.

OK
Exit mobile version