Атаки на блокчейн, їх види
Повідомлення про чергові зломи баз даних з’являються у медіапросторі регулярно. Блокчейн сприймається більш захищеним рішенням. Але атакують і його. Зібрали для вас найпоширеніші різновиди атак на блокчейни.
Блокчейн є інноваційною технологією та інструментом інформаційної безпеки, але, як відомо, будь-яка технологія чи програмне забезпечення не можуть бути захищеними на 100%. І блокчейн не є винятком. Атаки на розподілені реєстри відрізняються за способами злому і здебільшого мають на меті скористатись прогалинами у механізмі консенсусу. Головна мета — монопольний контроль хешрейту чи окремих структурних елементів інфраструктури – нод. Такий контроль дає змогу змінити інформацію, яка вноситься до реєстру, та на певний час створити транзакційний хаос для крадіжки монет.
Атака 51%
Найпоширеніша загроза для блокчейнів. Таку назву атака отримала за аналогією до володіння контрольним пакетом акцій чи голосів зі світу великих корпорацій. Ця атака актуальна для Proof-of-Work блокчейнів, які використовують такі криптовалюти як Bitcoin, Litecoin, Monero та інші.
Атака полягає в тому, що одна людина чи група осіб отримують контроль над значною часткою хешрейту (понад 50%), над майнінговими потужностями, що використовуються для емісії монет. Це дає змогу зловмисникам змінити порядок транзакцій, видалити чи не допустити їх підтвердження. Також зловмисники прагнуть завадити видобуванню нових монет іншими майнерами. Такі дії спрямовані на створення штучного збою у роботі мережі. Наприклад, видалення транзакцій дає змогу зловмисникам використовувати криптовалюту декілька разів, що отримало назву «подвійна витрата» (double-spending).
Фактично в результаті такої атаки відбувається захоплення блокчейну та існує ризик, що всі кошти учасників перейдуть у власність зловмисників. У великих мережах, таких як біткоїн, вірогідність здійснення атаки наразі дуже низька через велику кількість учасників (нод) та досить дороге обладнання для майнінгу. А от невеликі мережі з малою кількістю валідаторів, на превеликий жаль, від цього не застраховані.
Атаки 51% зазнавали блокчейни таких монет, як Zencash (ZEN), Litecoin Cash (LCC), MonaCoin (MONA), Verge (XVG), Bitcoin Gold (BTG) та низка Ethereum-блокчейнів, як-то Krypton та Shift.
Атака Eclipse
Цю атаку ще називають атакою затемнення – особливий тип загрози для блокчейну, коли зловмисник спрямовує свої зусилля на контроль однієї ноди чи цілої групи, перенаправляючи вихідні та вхідні дані на власні вузли, тим самим відокремлюючи обдуреного користувача від реальної мережі та актуальних даних. Деталі атаки цього типу ми вже описували раніше.
Атака Сівіли (Сібіли)
Це більш масштабний формат атаки, ніж попередній варіант, і найбільш популярний для однорангових систем з рівноправними учасниками. Назву цей метод отримав від відомого випадку, коли жінка страждала на дисоціативний розлад особистості. Щось схоже в результаті атаки Сівіли відбувається і з нодами.
Для проведення атаки зловмисники об'єднуються та прагнуть контролювати значну кількість нод у мережі. Після захоплення достатньої кількості вузлів зловмисники намагаються вивести мережу з ладу, керуючи валідними та створюючи невалідні (хибні) транзакції. Вперше атаку Сівіли описав експерт із Microsoft Джон Досьє, на думку якого блокчейн не здатний розрізнити фізичні та віртуальні вузли мережі. Після цього були здійснені спроби створення та впровадження механізмів щодо розпізнавання та ідентифікації обладнання, на якому розгорнуті ноди, але це не дало очікуваних результатів.
Шкода від такої атаки може бути різною – від штучної накрутки рейтингу власника ноди до фальшування голосів. У разі успіху зловмисник може відключити групу реальних нод від мережі, замінивши їх віртуальними аналогами. За певних обставин це може посприяти проведенню атаки 51%.
У блокчейні біткоїна атака такого типу апріорі неможлива завдяки закладеним в алгоритм вимогам до створення нових блоків. Згідно з правилами алгоритму консенсусу здатність створення блоку дорівнює обчислювальній потужності механізму Proof-of-Work, тому такі умови роблять атаку Сівіли на блокчейн найстарішої криптовалюти економічно невигідною.
Атака Фінні
Першим одержувачем переказу у BTC, як відомо, був Гел Фінні. Він є одним із найбільш вірогідних претендентів на звання творця біткоїна, приховуючись під псевдонімом Сатоші Накамото. Також першим припустив можливість створення атаки на блокчейн. Тому й загрозу назвали на його честь атакою Фінні.
Це ще один тип double-spending атаки, яка базується навколо непідтвердженої транзакції в мережі. Фінні передбачив, що будь-який майнер має змогу згенерувати блок, в який включить транзакцію з адреси A на адресу B, де обидві адреси належать одній особі. Потім він здійснить переказ у тій же валюті, відправивши монети з адреси A на адресу C, яка належить іншому користувачеві. І якщо отримувач переказу прийме транзакцію без підтвердження з мережі, зловмисник може звільнити блок, куди була включена його початкова транзакція. Це зробить недійсним такий переказ, даючи змогу зловмиснику подвоїти витрати.
Атака-перегони
Це double-spending загроза. Недосвідчені та квапливі продавці ризикують продати товар чи послугу в результаті невдалого переказу коштів завдяки імітації спроби платежу. Деякі підприємці приймають мікроплатежі без очікування підтвердження. Шахрай може спробувати здійснити імітацію такого переказу: відправити транзакцію на адресу продавця та одночасно на свою адресу в мережі, транслюючи до блокчейна лише другу. Валідною під час перевірки вважатимуть саме останню транзакцію, а перша (більш повільна) отримає статус недійсної.
Для запобігання такій атаці не рекомендується автоматично акцептувати транзакції на рівні ноди, не дочекавшись хоча б кількох підтверджень.
Атака Vector76
Свою назву атака, відома також як атака одного підтвердження, отримала завдяки користувачеві форуму Bitcointalk під ніком Vector76, який поділився точним описом такого способу double-spending ще у далекому 2011 році. Цей тип атаки базується на синергії атаки-перегони та атаки Фінні.
Методами боротьби з такою загрозою є обрив вхідних підключень до ноди та вихідне підключення лише до підтверджених вузлів. Для здійснення атаки зловмиснику потрібно пожертвувати одним блоком, який не транслюватиметься в загальну мережу, а вирушить лише до ноди жертви.
Щоб атака стала успішною мають бути виконані наступні умови:
- задіяти гаманець для виведення коштів з умовою одного підтвердження мережі;
- отримати від провайдера гаманця дозвіл прямих вхідних підключень до ноди;
- вузол жертви повинен мати статичну IP-адресу.
Атака на криптографічні функції (дірки у коді)
Людський фактор ніхто не скасовував. Найбільш гучний випадок трапився, коли шахрай виявив уразливість у вихідному коді блокчейна Ethereum та завдяки цьому привласнив монети в еквіваленті близько $50 млн (тоді це складало майже 30% від усієї емісії монет). Через такий прикрий випадок ком’юніті розкололося на дві групи. Перша, на чолі із відомими співзасновником Ether, обурившись крадіжкою, запропонувала здійснити хардфорк та повернути монети законним власникам. В той же час опоненти з іншої групи вважали, що завдяки неписаному правилу «код – це закон» відтепер справжнім власником монет є саме хакер. В результаті обидві групи тоді змогли знайти консенсус і зійшлися на рішенні щодо створення софтфорку.
На завершення
Існують й інші види атак, але у цій статті ми описали найбільш відомі. Власникам нод та конструкторам блокчейнів варто зважати на зазначені вище загрози і мінімізувати ризики їх реалізації.