Атаката с повторение, понякога наричана още атака с възпроизвеждане, е кибератака, при която злонамереният обект прихваща и след това повтаря валидно предаване на данни, преминаващо през мрежа. Благодарение на валидността на оригиналните данни (които обикновено идват от оторизиран потребител), протоколите за сигурност на мрежата третират атаката като нормално предаване на данни. Тъй като оригиналните съобщения се прихващат и препредават дословно, хакерите, използващи атаки с повторение, не е задължително да ги дешифрират.
Какво могат да направят хакерите с атака с повторение?
Атаките с повторение могат да се използват за получаване на достъп до информация, съхранявана в иначе защитена мрежа, като ѝ се подадат привидно валидни идентификационни данни. Те могат също да бъдат използвани, за да заблудят финансовите институции да дублират трансакции, позволявайки на нападателите да теглят пари директно от сметките на своите жертви. В някои случаи хакерите ще комбинират части от различни криптирани съобщения и ще предадат получения шифрован текст в мрежата в това, което е известно като атака на изрязване и поставяне. Реакцията на мрежата на този вид атака често ще даде на хакера ценна информация, която може да се използва за по-нататъшно използване на системата.
Въпреки очевидните опасности, свързани с тях, има ограничения за това, което хакерите могат да постигнат само с атаки с повторение. Нападателите не могат да променят данните, които се изпращат, без мрежата да ги отхвърли, ограничавайки ефективността на атаката до повтаряне на минали действия. Защитата срещу тези атаки е също относително лесна. Една толкова елементарна защита като добавянето на клеймо за време към предаването на данни може да предпази от прости опити за повторно възпроизвеждане. Сървърите могат също така да кешират повтарящи се съобщения и да ги прекъсват след определен брой повторения, за да ограничат броя на опитите, които атакуващият може да направи чрез повторно възпроизвеждане на съобщения в бърза последователност.
Защо атаките с повторение имат значение в света на криптовалутите
Въпреки че далеч не са ексклузивни за него, тези атаки са особено подходящи за средата на трансакции с криптовалута и блокчейн регистри. Причината за това е, че регистрите на блокчейн понякога преминават през промени в протокола или надстройки, известни като твърди разклонения. Когато се извърши твърдо разклонение, съществуващият регистър се разделя на две, като едната половина изпълнява наследената версия на софтуера, а другата изпълнява новата, актуализирана версия. Някои твърди разклонения са предназначени само за надграждане на регистъра, докато други се разклоняват и ефективно формират изцяло нови криптовалути. Един от най-известните примери за твърдо разклонение от последната разновидност е този, който позволи на Bitcoin Cash да се разклони от основния блокчейн на биткойн на 1 август 2017 г.
Когато се появят тези твърди разклонения, става теоретично възможно за нападателите да използват атаки с повторение срещу блокчейн регистрите. Трансакция, обработена в един регистър от лице, чийто портфейл е бил валиден преди твърдото разклонение, ще бъде валидна и в другия регистър. В резултат на това лице, което е получило определен брой единици криптовалута от някой друг чрез един регистър, може да премине към друг регистър, да повтори трансакцията и измамно да прехвърли идентичен брой единици към своята сметка за втори път. Тъй като техните портфейли не са част от споделената история на регистрите, потребителите, които стигат до блокчейн след извършване на твърдо разклонение, не са уязвими за тези атаки.
Как блокчейните могат да бъдат защитени срещу тези атаки?
Въпреки че уязвимостта на разклонените блокчейн регистри към повторни атаки е основателна загриженост, повечето твърди разклонения включват протоколи за сигурност, които са специално проектирани да предотвратят успеха на тези атаки. Ефективните мерки срещу атаки с повторение на блокчейна попадат в две категории, известни като силна защита при повторение и защита при атаки с повторение с включване. При силна защита при повторение се добавя специален маркер към новия регистър, който излиза от твърдото разклонение, за да се гарантира, че трансакциите, извършени върху него, няма да бъдат валидни за наследения регистър, както и обратното. Това е типът защита, който беше приложен, когато Bitcoin Cash се разклони от Биткойн.
Когато е внедрена, силната защита при повторение се изпълнява автоматично веднага щом настъпи твърдото разклонение. Защитата при атаки с повторение с включване обаче изисква потребителите ръчно да правят промени в трансакциите си, за да гарантират, че те не могат да бъдат възпроизвеждани. Защитата с включване може да бъде полезна в случаите, когато твърдото разклонение е предназначено като надграждане на главния регистър на криптовалута, а не като пълно отделяне от него.
В допълнение към тези решения за целия регистър, отделните потребители могат също да предприемат стъпки, за да се защитят от това да станат жертви на атаки с повторение. Един от методите за това е чрез блокиране на прехвърлянето на монети, докато регистърът достигне определен брой блокове, като по този начин се предотвратява проверката от мрежата на всяка атака с повторение, включваща тези единици монети. Трябва да се отбележи обаче, че не всички портфейли или регистри предлагат тази функция.
Заключителни мисли
Атаките с повторение представляват реална заплаха за сигурността на мрежата, когато са успешни. За разлика от много други типове атаки, атаките с повторение не разчитат на декриптиране на данни, което ги прави ефективно решение за злонамерени участници, които все повече се сблъскват със сигурни протоколи за криптиране. Поради твърдите разклонения, които се използват за тяхното надграждане или разделяне, блокчейн регистрите са особено уязвими за този вид кибератака. Съществуват обаче стабилни решения, които са сравнително ефективни при защитата на блокчейн системите от тях. По-специално, използването на силна защита при повторение може да гарантира, че нападателите няма да могат да копират трансакции след извършване на твърдо разклонение.