Спочатку блокчейн використовувався для створення криптовалют, але сьогодні сфера його застосування розширилася. Блокчейн використовується у фінансовій галузі, смарт-контрактах, охороні здоров’я, ігровій індустрії, образотворчому мистецтві, музиці, нерухомості, страхуванні, логістиці, державному управлінні тощо, адже він дозволяє зберігати практично будь-яку інформацію. Разом із поширенням технології зросли й ризики блокчейну, пов’язані з безпекою. Зловмисники активно шукають уразливості блокчейну, щоб отримати доступ до даних користувачів. Прикладами такої діяльності є затримка роботи ланцюжка, скасування транзакцій, виконаних у блокчейні, крадіжка закритих ключів користувачів та багато іншого.
Щоб зрозуміти, як технологія блокчейна може найкраще допомогти у захисті ідентифікаційних даних, необхідно розібратися у принципах її роботи.
Що таке Блокчейн?
Блокчейн, або дослівно “ланцюжок блоків”, – це цифрова база даних, що містить інформацію, яку можна спільно використовувати у великій децентралізованій загальнодоступній мережі.
Блокчейн складається з блоків з інформацією, які слідують один за одним у строго визначеному порядку. Кожен блок містить записи про попередній блок (контрольні суми), а також дані, які записані у нього. Прикладами таких даних можуть бути:
- інформація про транзакції;
- відомості про те, скільки криптовалюти належить певному користувача;
- дані про власника активів та багато іншого.
Таким чином, блокчейн – це технологія зберігання інформації. Її головна особливість у тому, що копій ланцюжка блоків може бути багато, і зберігаються вони одночасно на різних комп’ютерах (так званих нодах).
Інформацію, що зберігається у блокчейні, неможливо змінити. Зловмисники можуть зламати 1 ноду та внести зміни до блокчейну. Інші ноди не приймуть ці зміни, якщо вони не будуть схвалені 51% нод. Неможливо зламати відразу сотні та тисячі нод. Проте зловмисники використовують інші проблеми безпеки у технології блокчейн.
Принцип роботи технології блокчейн
Принцип роботи блокчейна найпростіше зрозуміти на прикладі криптовалютних транзакцій. Саме вони часто стають ціллю хакерів, які хочуть заволодіти чужими коштами.
Блокчейн розташований на комп’ютерах по всьому світу. Доступ до нього можуть отримати всі, хто має підключення до інтернету. Для створення та зберігання блоків використовуються комп’ютери майнерів (для блокчейнів типу PoW) та валідаторів (для блокчейнів PoS). Ці комп’ютери відповідають за виявлення запитів транзакцій від користувачів, їх об’єднання, перевірку та додавання до блокчейну у вигляді нових блоків.
Право власності у блокчейні визначається 2 ключами: відкритим (публічним) та закритим (приватним). Публічний ключ зберігається у блокчейні у відкритому вигляді. Другий ключ, приватний, зберігається у власника. Ці ключі використовуються для шифрування та підпису. Транзакції підписуються закритими ключами, які відповідають відкритим ключам.
Щоб забезпечити незворотність транзакцій, у всіх майнерів та валідаторів у мережі має бути однакова копія блокчейна. При додаванні нового блоку майнер або валідатор надає криптографічний доказ транзакції. Щоб отримати доказ, майнер чи валідатор проводить блок через кілька раундів хеш-функції.
7 типів атак на блокчейн
Як зазначено вище, блокчейн використовує розподілений незмінний реєстр. Зламати його досить складно, але все ж таки є вразливості блокчейна, які можуть поставити під загрозу всю роботу технології. Використовуючи їх, зловмисники можуть організувати такі 7 поширених атак:
Атаки 51%
У технології блокчейн для схвалення блоків потрібна підтримка 51% мережі (консенсус). Іноді виникає ситуація, коли обробляється 2 блоки з транзакціями, що конфліктують. У ланцюжку залишиться лише блок, який отримав схвалення консенсусу. Другий буде визнаний застарілим.
Уявіть, що потрібний 51% мережі потрапив під контроль зловмисників. Вони можуть використовувати свою більшість для скасування транзакцій або проведення шахрайських операцій. Можливою стає навіть зміна деяких блоків, хоча переписати весь ланцюжок хакерам навряд чи вдасться.
Молоді блокчейни особливо схильні до атак 51%. Коли в мережі ще мало учасників, отримати контроль над більшою частиною мережі значно простіше, ніж у розвиненій мережі із тисячами учасників.
У 2019 році атаки 51% зазнав гігант криптовалютного ринку Ethereum Classic. За 3 дні ціна криптовалюти впала на 16,4%, а шахраям атака принесла понад 1 млн USD.
Атаки Сівіли
Назва обрана на честь головної героїні книги-бестселера Флори Рити Шрайбер «Сівіла» про лікування дисоціативного розладу особистості. Це спосіб атаки однорангової мережі. Зловмисники створюють підроблені вузли, до яких підключається жертва. Завдяки цьому хакер може отримати необхідний консенсус більшості (51%) та порушити транзакції у блокчейні. За своєю суттю атака Сівіли – це атака 51%.
Простий приклад атаки Сівіли – створення безлічі облікових записів у мережі, які належать одній особі. Для інших учасників вони будуть виглядати як незалежні, проте всі їх контролює шахрай (або група). Підконтрольні шахраєві ноди здатні схиляти інші мережеві вузли до схвалення спотворених даних.
Атаки з подвійною тратою
Подвійна витрата проходить, коли шахрай витрачає одні й ті самі коіни двічі: користувач 1 одночасно відправляє одні й ті самі 10 монет користувачеві 2 та користувачеві 3. При правильній роботі блокчейна лише одна транзакція отримає схвалення більшості. У більшості випадків так і буває. У блокчейн вбудовані механізми для запобігання подібним атакам. Наприклад, якщо монета відправлена користувачеві 2 у першому блоці, транзакція користувачеві 3 буде проігнорована у наступних блоках.
Типи атак з подвійною тратою:
- Атака Race передбачає одночасне відправлення 2 протилежних транзакцій з однаковими коштами, але підтверджується тільки одна з них. Мета полягає в тому, щоб відправити вкрадені монети на потрібну адресу, а інший платіж анулювати. Атака можлива тільки, якщо даний блокчейн підтримує транзакції з нульовим підтвердженням.
- Атака Фінні можлива лише за підтримки проведення транзакцій із нульовим підтвердженням. Одна з транзакцій записується до блоку, який зберігається у майнера-зловмисника. Згодом ті самі монети витрачаються в іншій транзакції. Раніше записаний блок транслюється в мережу, і друга транзакція визнається недійсною. Проте продаж товару вже відбувся, а отже, шахраї отримали свою вигоду.
- Атака Brute force потребує потужного обладнання. Вона працює навіть у випадках, коли для підтвердження транзакцій використовується більше одного підтвердження. Шахрай самостійно перевіряє блоки, в яких записано транзакції, включаючи його власну. У результаті продавець отримує необхідну кількість підтверджень та передає товар. Після цього шахрай може розгалузити мережу та визнати транзакцію недійсною.
У випадку з готівкою ви оплачуєте банкнотою та віддаєте її іншій людині. Неможливо двічі витратити ту саму купюру. Із цифровими валютами все інакше. Криптовалюта — це запис у ланцюжку блоків, тому теоретично його можна відтворити.
Маршрутизуючі атаки
Маршрутизуючі атаки безпосередньо не пов’язані з проблемами безпеки технології блокчейн. Вони використовують уразливості у протоколах підключення інтернет-провайдерів. Блокчейн використовує мережу для роботи, тому залежить від провайдерів. Вони підключаються один до одного за допомогою протоколу прикордонного шлюзу (BGP).
Зловмисники, які отримали доступ до цього протоколу, можуть опублікувати хибні маршрути. Це призведе до заборони частини транзакцій і навіть поділу мережі блокчейну на дві. Зазвичай, це нерівномірні частини з різною кількістю учасників.
Хакери виступають сполучною ланкою між 2 половинами мережі, і всі дані проходять через них. Після зупинки атаки блоки у меншій половині мережі будуть скинуті. Це призведе до затоплення транзакцій та можливості отримувати будь-які винагороди за майнинг.
Атаки маршрутизації також використовуються для затримки доставки нових блоків. Поки триває атака, блок залишається непомітним у мережі, і це дозволяє провести атаку з подвійною тратою.
Атаки маршрутизації можуть мати серйозні наслідки. Використання безпечних протоколів маршрутизації допоможе запобігти атакам цього типу на блокчейн.
Атаки на закритий ключ
Як технологія асиметричного шифрування, яка також використовується в блокчейні, може найкраще допомогти у захисті конфіденційних даних? Для цього використовується криптографія з публічними (відкритим) та приватними (закритим) ключами. Ця технологія забезпечує конфіденційний зв’язок у відкритих каналах. Знаючи відкритий ключ користувача, інший учасник може зашифрувати повідомлення для нього. Користувач зможе прочитати його, розшифрувавши своїм закритим ключем. Інші закриті ключі не дозволять відкрити повідомлення.
Відкритий та закритий ключі з’єднані між собою. Якщо ви маєте приватний ключ, часто можна відновити публічний ключ. Однак у зворотному напрямку ця схема не працює.
Зловмисники іноді отримують доступ до закритого ключа через необережність його власника. Прикладом такої ситуації може бути зберігання закритого ключа на комп’ютері, який зазнав хакерської атаки. Фішинг також використовується для отримання закритих ключів. У результаті ключ потрапляє до шахраїв, а з ним вони легко можуть заволодіти всією криптовалютою користувача.
Егоїстичні майнінг-атаки
Егоїстичний майнінг має на меті отримати більшу винагороду. Зрозуміти принцип такого майнінгу найпростіше на прикладі.
Хешрейт рівномірно розподілено по 25% між 4 майнерами: першим, другим, третім та четвертим. Перші троє грають за правилами: як тільки блок знайдено, вони додають його до ланцюжка. Але четвертий майнер хоче здобути більше вигоди. Коли він знаходить блок (або два), він утримує його.
Перші три майнери знайшли 10 000 блоків і хочуть запропонувати 10 001-й. Четвертий майнер уже знайшов 10 002-й, але тримає його потай. Якщо пощастить, то він може завжди випереджати публічний ланцюжок на 1-2 блоки. Таким чином, публічний ланцюжок четвертого майнера буде довшим, а довший ланцюжок завжди визнається коректним. Чим довше четвертий майнер вестиме таку гру, тим більшу винагороду він отримає. Коли його ланцюжок стане основним, він отримає нагороду за всі блоки, починаючи з 10 001-го.
Об’єднуючись у пули, егоїстичні майнери можуть отримувати серйозні потужності та робити спроби атак 51%.
Вразливі смарт-контакти
Смарт-контракти використовуються в блокчейні для укладання угод. Наприклад, позичаючи криптовалюту під відсотки, ви можете укласти смарт-контракт і внести відповідний запис до блокчейну. Такі записи зберігаються в закодованому вигляді, проте недоліки коду можуть призвести до того, що хакери отримають доступ до контракту.
Основні вразливості смарт-контрактів:
- reentrancy;
- керування доступом;
- арифметичні особливості;
- відсутність перевірки значень низькорівневих викликів, що повертаються;
- відмова в обслуговуванні;
- проблема псевдовипадкових чисел;
- випередження;
- залежність від часу;
- маніпулювання довжиною адреси.
Найвідоміші і найбільші розкрадання: 30 мільйонів USD з Parity і 53 мільйонів USD із DAO.
Запобігання проблемам із безпекою блокчейну
Наступні дії допоможуть підвищити безпеку блокчейну:
- Використання Proof of Stake замість Proof of Work стане надійним захистом від атак 51%. Ухвалення рішення перейде до користувачів, які володіють більшою частиною монет.
- Існує кілька алгоритмів для запобігання атакам Сівіли. Proof of Work використовується у більшості криптовалют.
- Контроль над пулами майнерів допоможе боротися з егоїстичним майнінгом. Як тільки пул отримує понад 40% потужності, він має перевести частину майнерів до іншого пулу. Це сприяє децентралізації мережі.
- Безпечні протоколи допоможуть захиститись від атак маршрутизації.
- Перед впровадженням смарт-контракти повинні проходити аудит.
Також не слід забувати про надійне зберігання закритих ключів, використання надійної пошти та двофакторної аутентифікації.
Висновок
Щоб зробити блокчейн безпечним, потрібен ретельний аудит. Зі зростанням фінансової цінності збільшуються і ризики блокчейну. Вартість аудиту може здатися високою, але це невеликі витрати порівняно з втратами, які можуть виникнути через атаки хакерів. Регулярні поглиблені аудити від H-X Technologies допоможуть підтримувати безпеку блокчейна на високому рівні.