Какво е атака на затъмнение?
Начало
Статии
Какво е атака на затъмнение?

Какво е атака на затъмнение?

Средно ниво
Публикувано Jan 19, 2020Актуализирано Dec 11, 2023
6m

Въведение

Атака на затъмнение е сравнително проста атака, която злонамерен участник може да разположи, за да се намеси във възли в мрежа. Както може да подсказва името, атаката има за цел да скрие изгледа на участник към peer-to-peer мрежата, за да причини общо прекъсване или да подготви по-сложни атаки.

Повърхностно погледнато, атаките на затъмнение може да звучат подобни на Sybil атаките. Въпреки че споделят определени прилики – злонамереният участник ще наводни мрежата с фалшиви партньори – крайната им цел в крайна сметка е различна. Атака на затъмнение се прицелва в единичен възел (по причини, обяснени в по-късен раздел), докато Sybil атаката е атака в цялата мрежа, предназначена да измами системата за репутация на протокола.

Концепцията е обсъдена подробно в статията от 2015 г.  Атаки на затъмнение в Peer-to-Peer мрежата на Биткойн, в която изследователи от Бостънския университет и Еврейския университет докладват своите констатации от своите експерименти при предприемане на атаки на затъмнение, както и възможни контрамерки за борба с тях.


Как работи атаката на затъмнение

Биткойн копачите изискват специализирано оборудване, за да генерират нови блокове, но некопаещи (или пълни) възли лесно се изпълняват с минимална изчислителна мощност. Това подпомага децентрализацията на биткойн, тъй като всеки може да организира възел на устройство с ниски спецификации. Софтуерът поддържа база данни с трансакции, които синхронизира със своите непосредствени партньори, така че да остане в крачка с мрежата.

Ограничаващ фактор за много възли е честотната лента. Въпреки че има огромно количество устройства, работещи със софтуера, средното устройство не може да се свърже директно с много от тях поради ограниченията, определени в софтуера на Биткойн (който позволява само максимум 125 връзки).

При атака на затъмнение, злонамереният актьор ще гарантира, че всички връзки на целта са направени към възли, контролирани от атакуващия. Субектът първо ще наводни целта със собствените си IP адреси, към които жертвата вероятно ще се свърже при рестартиране на своя софтуер. Рестартирането може или да бъде принудително (т.е. с DDoS атака на целта), или атакуващият може просто да изчака да се случи. 

След като това се случи, нищо неподозиращата жертва е оставена на милостта на злонамерените възли – без изглед към по-широката мрежа, те могат да получат неправилни данни от нападателя.


Последици от атака на затъмнение

Ако нападателят изразходва ресурсите, за да отчужди партньор от мрежата, той вероятно има мотив да го направи. Има няколко последователни атаки, които могат да бъдат стартирани по-лесно, след като даден възел е задушен.


Двойно харчене с нулево потвърждение

Ако дадено лице приеме трансакция без потвърждения, то е изложено на риск от двойно харчене. Трансакцията може да е била излъчена, но докато не бъде включена в блок (и следователно ангажирана с блокчейна), подателят може лесно да изработи нова трансакция, която изразходва същите средства някъде другаде. Ако новата трансакция има по-висока такса, копачът вероятно ще я включи преди оригинала, обезсилвайки по-ранната. 

Някои фирми и физически лица приемат тези трансакции с нулево потвърждение. Да вземем за пример търговец, Боб, който продава превозни средства от висок клас. Той не знае, че Алис е засенчила неговия възел и не подозира нищо, когато тя прави поръчка за луксозна спортна кола. Тя създава трансакция, която Боб след това излъчва в мрежата. Удовлетворен, че плащането е на път, той подава ключовете на колата и Алис потегля.

Разбира се, трансакцията не е била излъчена към мрежата – Боб просто я е препредал на злонамерените възли на Алис, които няма да я препратят на честни възли. Докато тази трансакция виси в неизвестност, Алис харчи същите средства в (реалната) мрежа, независимо дали към друга страна или към адрес, който притежава. Дори първоначалната трансакция към Боб в крайна сметка да бъде видяна, тя ще бъде отхвърлена, тъй като монетите вече са изразходвани.


Двойно харчене с N-потвърждения

Двойното харчене N-потвърждения е подобно на това с 0-потвърждения, но включва повече подготовка. Много фирми предпочитат да изчакат определен брой потвърждения, преди да маркират дадено плащане като валидно. За да заобиколи това, нападателят трябва да засенчи както копачите, така и търговеца. След като нападателят е настроил поръчката с търговеца, той излъчва трансакция към (затъмнените) копачи. Трансакцията е потвърдена и включена в блокчейна – но този блокчейн не е веригата, която наблюдава по-голямата част от мрежата, тъй като копачът е отрязан.

Оттам нападателят препредава тази версия на блокчейна на търговеца, който освобождава стоките с убеждението, че трансакцията е потвърдена. След като затъмнените възли се присъединят отново към действителната мрежа, блокчейнът, който те погрешно смятат за валиден, е „осиротял“ от този, върху който е работила останалата част от мрежата (това има някои прилики с 51% атака).


Отслабване на конкурентните копачи

Затъмненият възел ще продължи да работи, без да обръща внимание на факта, че е бил отделен от мрежата. Копачите ще продължат да копаят блокове в рамките на правилата, определени от протокола, но добавените блокове ще бъдат отхвърлени при синхронизирането им с честни партньори. 

Теоретично, широкомащабна атака на затъмнение срещу големи копачи може да се използва за улесняване на атака от 51%. В сегашния си вид цената за поемане на по-голямата част от мощността на хеширане на Биткойн е просто твърде висока дори за най-находчивите нападатели – при ~ 80 TH/s, субектът ще се нуждае от повече от 40 TH/s, за да опита такава маневра. 

В хипотетичен сценарий, при който тази мощност на хеширане се разпределя между 10 страни (като всяка притежава 8 TH/s), атакуващият може значително да намали изискванията за 51% атака, като отреже тези страни от мрежата. Ако пет са засенчени, 40 TH/s се премахват от състезанието за намиране на следващия блок и сега нападателят трябва само да придобие малко повече от 20 TH/s, за да поеме контрола.

Друг саботаж, който може да бъде постигнат чрез засенчване на цели, включва манипулиране на възли за егоистично копаене или организиране на състезания между копачи за намиране на следващия блок.


Смекчаване

С достатъчно IP адреси атакуващият може да засенчи всеки възел. Най-простият метод за предотвратяване на това е операторът да блокира входящите връзки и да прави изходящи връзки само към конкретни възли (като тези, които са включени в белия списък от други партньори). Както се посочва в изследователската статия обаче, това не е подход, който работи в мащаб – ако всички участници приемат тези мерки, новите възли няма да могат да се присъединят към мрежата.

Авторите предлагат няколко настройки на софтуера на Биткойн, някои от които са интегрирани след публикуването на статията. Те правят атаките на затъмнение по-скъпи чрез незначителни модификации на кода, като произволен избор на нови връзки и по-голям капацитет за съхранение на адреси.


Заключителни мисли

Атаките на затъмнение се извършват на ниво peer-to-peer мрежа. Разгърнати като самостоятелна атака, те могат да бъдат нещо като неудобство. Истинската им ефективност се изразява в засилване на други атаки, които оказват финансово въздействие върху целите или осигуряват на нападателя предимство на фронта на копаене.

На практика все още не е имало сериозни последствия в резултат на атака на затъмнение, но заплахата все още съществува въпреки интегрираните в мрежата мерки за противодействие. Както при повечето от векторите на атака, които съществуват за Биткойн и други криптовалути, най-силната защита ще бъде тази, която прави опитите за злонамерени страни финансово непосилни.

Споделяне на публикации
Регистриране на акаунт
Приложете знанията си на практика, като отворите акаунт в Binance днес.