Що таке “атака інформаційного затемнення”
Усі мережеві атаки на загальний блокчейн складні в реалізації та вимагають залучення великої кількості потужності, тому переважно недоцільні. Але хакерська атака на окремий вузол або користувача – явище не рідкісне.
Атака затемнення (Eclipse) – це хакерські дії в одноранговій (Peer-to-Peer) мережі. Вона може бути реалізована тільки в умовах децентралізації, тому що спрямована на поодинокі ноди, які приймають вхідні та вихідні повідомлення від інших вузлів.
Наприклад, у біткоїн-мережі за замовчуванням існує максимум 117 вхідних і 8 вихідних TCP-з'єднань.
Під час “атаки затемнення” зловмисник намагається змінити з'єднання цілі з її встановлених сусідніх вузлів на ті, що перебувають під його контролем. Зрештою жертва виявляється ізольованою від будь-якої мережевої активності, крім інформації, що надходить від вузла зловмисника.
Іншими словами, отримання контролю над доступом до інформації в P2P-мережі – це і є “атака інформаційного затемнення”.
Як відбувається ізоляція вузла під час атаки Eclipse
Зловмисник здебільшого використовує для цих цілей ботнет. Для цього створюється фантомна мережа з фальшивих хост-вузлів, щоб зафлудити вузол-жертву безліччю IP-адрес, з якими вона може синхронізуватися під час наступного підключення до блокчейну.
З цього моменту хакер просто чекає, поки ціль встановить зв'язок із цими вузлами.
Іноді для досягнення успіху потрібно зробити кілька спроб, щоб потрапити в таймфрейм між автоматичними перепідключеннями.
Власне, це дуже схоже на процес рибного лову. Хакер закидає кілька разів приманку у вигляді помилкової адреси підключення і чекає, коли вузол на неї “клюне”. Потім він робить швидку підсічку і “улов” опиняється на березі, далеко від рідної стихії.
Яку “уху” можна приготувати після успішної атаки затемнення?
Під час атаки Eclipse зловмисник приховує фактичний стан реєстру блокчейну від жертви і отримує кілька можливостей для злочинного доходу.
1. Подвійна витрата. Якщо на вузли нападника припадає 25% загального хешу мережі, а на цільовий вузол припадає 26%, то взявши під контроль вузол, він може отримати жаданий 51% і, зрештою, можливість подвійної витрати. Тобто хакер може відправляти на контрольований вузол суми, які раніше вже були відправлені на інші адреси. Потім на скомпрометований вузол надходить інформація про хибну транзакцію і всі гроші повертаються на адресу нападника. Обман спливе тільки тоді, коли жертва атаки звільниться і під'єднатися до вузлів, що коректно працюють.
2. Викрадення потужностей майнера. Хакер ізолює жертву від вхідної інформації про вже здобуті блоки, тим самим змушуючи її витрачати обчислювальну потужність на непотрібні розрахунки. Так зловмисник збільшує свій особистий хеш і виграє перегони за валідацію (детально таку ситуацію ми описували в статті про егоїстичний майнінг). Або, як варіант, об'єднати свій хеш із потужністю жертви для більш ефективного майнінгу, забираючи при цьому всі комісійні.
Чи можливо запобігти “атаці затемнення”?
Це питання досі належить до категорії суто теоретичних.
Атаки можна уникнути, якщо однорангова мережа буде спроєктована таким чином, щоб синхронізація з блокчейном відбувалася через рандомні вузли. Мережа, де при цьому залучені найближчі (сусідні) ноди, завжди перебуватиме під можливим ударом.
Деякі фахівці з безпеки також називають захищеним варіант, коли кожен вузол може підключатися до великої кількості цілей. Тобто вони пропонують збільшити в кілька разів кількість TCP-з'єднань. Але це сильно ускладнить архітектуру блокчейну і сповільнить транзакції під час процесу синхронізації.