Вступ
Атака інформаційного затемнення – це відносно проста атака, яку зловмисник може використовувати для втручання в роботу ноди в мережі. Як випливає з назви, мета атаки – приховати від учасника огляд P2P-мережі, щоб викликати загальний збій або підготуватися до складніших атак.
Атаки інформаційного затемнення на перший погляд можуть здатися схожими на атаки Сивілли. Хоча вони мають певну подібність (зловмисник наповнює мережу фейковими нодами), їхня кінцева мета зрештою різна. Атака інформаційного затемнення націлена на одну ноду (з причин, пояснених у наступному розділі), тоді як атака Сивілли є атакою в масштабі всієї мережі, яка призначена для маніпулювання системою репутації протоколу.
Ця концепція докладно обговорюється в статті Атака інформаційного затемнення на P2P-мережу Bitcoin, в якій дослідники з Бостонського університету та Єврейського університету повідомляють про результати своїх експериментів з організації атак інформаційного затемнення, а також про можливі контрзаходи для боротьби з ними.
Як працює атака інформаційного затемнення
Майнерам Bitcoin потрібне спеціалізоване обладнання для генерації нових блоків, але ноди, не пов'язані з майнінгом (або повні ноди), легко працюють із мінімальною обчислювальною потужністю. Це сприяє децентралізації Bitcoin, оскільки будь-хто може розгорнути ноду на пристрої з низькими характеристиками. Програмне забезпечення підтримує базу даних транзакцій, яку синхронізує зі своїми безпосередніми пірами, щоб залишатися в курсі подій в мережі.
Обмежувальним фактором багатьох нод є пропускна здатність. Хоча існує безліч пристроїв, на яких встановлено програмне забезпечення, середньостатистичний пристрій не може безпосередньо підключитися до багатьох через обмеження, встановлені у програмному забезпеченні Bitcoin (яке допускає не більше 125 підключень).
При атаці інформаційного затемнення, зловмисник переконується, що встановлено всі з’єднання з нодами, контрольованими зловмисником. Об'єкт спочатку завантажує ціль своїми власними IP-адресами, до яких жертва швидше за все підключиться після перезапуску свого програмного забезпечення. Перезапуск може бути або примусовим (тобто за допомогою атаки DDoS на ціль) або зловмисник може просто дочекатися, поки це відбудеться.
Щойно це відбувається, жертва, яка нічого не підозрює, опиняється у владі зловмисних нод – без можливості перегляду ширшої мережі. Зловмисник може передавати мережі нод неправильні дані.
Наслідки атаки інформаційного затемнення
Якщо зловмисник витрачає ресурси на відчуження пірів від мережі, він, мабуть, має для цього мотив. Існує кілька послідовних атак, які легше запустити після того, як ноду зламано.
Нульове підтвердження подвійних витрат
Якщо людина приймає транзакцію без підтверджень, вона наражається на ризик подвійних витрат. Транзакція могла транслюватися, але доти, доки вона не буде включена в блок (і, отже, не зафіксована в блокчейні), відправник може легко створити нову транзакцію, яка витратить ті ж кошти десь ще. Якщо нова транзакція має вищу комісію, майнер, швидше за все, включить її перед вихідною транзакцією, анулюючи попередню.
Деякі компанії і приватні особи можуть приймати ці транзакції з нульовим підтвердженням. Розглянемо мерчанта Боба, який продає автомобілі високого класу. Він не підозрює, що Аліса здійснила атаку інформаційного затемнення на його ноду. Аліса розміщує ордер на розкішний спортивний автомобіль. Вона створює транзакцію, яку Боб потім транслює до мережі. Задоволений тим, що платіж вже в дорозі, він передає ключі від машини і Аліса їде.
Звичайно, транзакція не транслювалася в мережу. Боб просто передав її на зловмисні ноди Аліси, які не будуть передавати її на чесні ноди. Поки ця транзакція висить у підвішеному стані, Аліса витрачає ті самі кошти в (реальній) мережі, будь то надсилаючи іншій особі або на адресу, що належить їй. Навіть якщо початкова транзакція Бобу зрештою буде помічена, вона буде відхилена, оскільки монети вже витрачені.
N-підтвердження подвійних витрат
Подвійна витрата з N-підтвердженням аналогічна витраті з нульовим підтвердженням, але вимагає більшої підготовки. Багато компаній вважають за краще дочекатися певної кількості підтверджень, перш ніж відзначати платіж як дійсний. Щоб оминути це, зловмисник має здійснити атаку інформаційного затемнення і на майнерів, і мерчанта. Щойно зловмисник встановив ордер із мерчантом, він передає транзакцію майнерам. Транзакція підтверджується і включається в блокчейн, але цей блокчейн не є тим блокчейном, за яким спостерігає більша частина мережі, оскільки майнер вимкнено.
Звідти зловмисник передає цю версію блокчейну мерчанту, який передає товар, вважаючи, що транзакція підтверджена. Щойно затемнені ноди знову приєднуються до реальної мережі, блокчейн, який вони помилково вважають дійсним, стає неточним в порівняні з тим, над яким працювала решта мережі (це має деяку схожість з атакою 51%).
Послаблення майнерів-конкурентів
Нода, яка піддалася атаці інформаційного затемнення, продовжує працювати, не звертаючи уваги на той факт, що вона була ізольована від мережі. Майнери продовжуватимуть добувати блоки відповідно до правил, встановлених протоколом, але додані блоки будуть відкинуті при синхронізації з чесними пірами.
Теоретично великомасштабна атака інформаційного затемнення на великих майнерів може бути використана для полегшення атаки 51%. У нинішньому вигляді вартість захоплення більшої частини хеш-потужності Bitcoin просто занадто висока, навіть для найвинахідливіших зловмисників. При ~80TH/s організації потрібно більше 40TH/s, щоб спробувати зробити такий маневр.
У гіпотетичному сценарії, коли ця потужність хешування розподіляється між 10 сторонами (кожна з яких володіє 8TH/s), зловмисник може значно зменшити вимоги для атаки 51%, відключивши ці сторони від мережі. Якщо затьмарюються п'ять сторін, 40 TH/s виключається з гонки за пошуком наступного блоку, і тепер зловмисникові достатньо отримати лише трохи більше 20 TH/s, щоб взяти під контроль мережу.
Інший саботаж, якого можна досягти, затьмарюючи цілі, включає маніпулювання нодами для егоїстичного майнінгу або створення гонок між майнерами для пошуку наступного блоку.
Запобігання
Маючи достатню кількість IP-адрес, зловмисник може здійснити атаку інформаційного затемнення на будь-яку ноду. Найпростіший спосіб запобігти цьому – блокувати оператором вхідні з'єднання та встановлювати вихідні з'єднання тільки з певними нодами (наприклад, з тими, що були внесені до білого списку іншими пірами). Однак, як зазначається у дослідницькій роботі, цей підхід не працює у великих масштабах: якщо всі учасники вживатимуть цих заходів, нові ноди не зможуть приєднуватися до мережі.
Автори пропонують кілька змін у програмному забезпеченні Bitcoin, деякі з яких були інтегровані після випуску статті. Це робить атаки інформаційного затемнення дорожчими за рахунок незначних модифікацій коду, таких як випадковий вибір нових з'єднань і збільшення ємності для зберігання адрес.
Підсумки
Атаки інформаційного затемнення здійснюються на рівні P2P-мережі. Розгорнуті як окремі атаки, вони можуть завдавати незручностей. Їхня справжня ефективність полягає у посиленні інших атак, які впливають на цілі у фінансовому відношенні або надають зловмиснику перевагу для майнінгу.
Ще не було серйозних наслідків атак інформаційного затемнення, але загроза все ще існує, незважаючи на контрзаходи, що інтегровані в мережу. Як і у випадку з більшістю векторів атак, які існують для Bitcoin і інших криптовалют, найсильнішим захистом буде той, який зробить спроби зловмисників фінансово неможливими.