Атака повторного воспроизведения (Replay attack)

Атака

Это особая разновидность кибератак, при которой злоумышленник перехватывает данные или транзакцию, чтобы повторно отправить её через сеть. Поскольку информация изначально достоверна – всё в порядке с хэшем, публичными ключами и цифровыми подписями, протоколы безопасности сетей рассматривают эту передачу как новую, так что не блокируют её. Особая эффективность метода заключается в том, что хакерам не нужно тратить время и силы на дешифровку данных.

Возможности атаки повторного воспроизведения

Самое простое и очевидное применение – повторные транзакции криптовалюты. Жертве достаточно один раз осуществить перевод на кошелёк злоумышленника, чтобы тот повторял его до тех пор, пока там не закончатся деньги. Более сложный вариант – передача полученного блока информации напрямую в сеть с целью выяснить, как именно она реагирует на достоверные, но неуместные данные. Опытным хакерам это даёт крайне полезную информацию об особенностях работы различных протоколов и алгоритмов сети.

Однако на этом преимущества заканчиваются. Дело в том, что злоумышленники не могут изменить полученный блок данных – иначе сеть его отклонит из-за несоответствия хэша. А дешифровка может потребовать много времени и усилий, если вообще будет возможна. Поэтому защититься от атак повторного воспроизведения не очень сложно – достаточно вставить в сообщение метку времени – и каждое повторное уже не будет пропускаться, поскольку такие метки считывается автоматически. Кроме того, многие сети поддерживают кэширование повторяющихся сообщений с последующим обрезанием всего сверх заданного лимита. То есть, какие-то деньги вы потеряете, но не все.

Когда Replay attack особо эффективны

Атаки повторного воспроизведения – довольно распространённое явление. Однако в некоторых ситуациях они оказываются особенно результативными, поскольку попадают на моменты повышенной уязвимости всей системы. Речь идёт о так называемых хард-форках – обновлениях протоколов сети, в результате которых возникают 2 цепочки – основная, которую достраивают все узлы, которые обновили протокол, и устаревшая. Это происходит как в случае банального обновления, так и при создании новой криптовалюты. Например, нечто похожее произошло 1 августа 2017 года, когда от блокчейна Биткойн отделилась новая криптовалюта Bitcoin Cash.

Злоумышленники действуют так. Находят кошелёк, который был действительным до момента разделения регистров (цепочек), добиваются от него перевода на некоторую сумму, а затем – переключаются на другой регистр и там уже организовывают повторную транзакцию. Поскольку кошелёк является действительным и использует достоверные данные, перевод проходит. Злоумышленник получает средства как минимум в двойном объеме, причём – ничем не рискуя. Главное потом – успеть вывести «бонусные средства» до того, как альтернативный регистр будет отброшен и признан недействительным. Ведь если эта транзакция будет вписана в нормальный блокчейн, то отменить её уже не выйдет – принцип неизменности в деле.

Способы защиты

Данная ситуация довольно типична, поэтому большинство блокчейнов оборудуются специальными методами защитами от такого «нетрадиционного» использования хардфорков. Эти методы делятся на две большие категории – сильная защита и дополнительная защита от атак повторного воспроизведения (Opt-in).

Сильная защита подразумевает автоматическое добавление во все сообщения нового регистра специального токена. Поэтому полученный хэш вообще не будет приниматься необновлённым регистром. Чаще всего, это используют при создании новых криптовалют – пользователи были бы рады удвоению своего капитала, но система это не одобряет. Данная защита работает автоматически при любых обновлениях протоколов.

Дополнительная защита подразумевает ручное внесение исправлений, защищающих от повторного использования. Пример – упомянутая уже «метка времени». Крайне полезно, когда хардфорки возникают в процессе простого обновления протоколов систем, в которых не используется сильная защита.

Есть и другие способы защиты. Так, например, в некоторых сетях можно заранее заблокировать передачу средств, пока регистр не удлинится на несколько дополнительных блоков. Это запрещает любые повторные сообщения как таковые. Правда, придётся немного подождать перед повторным использованием кошелька. Жаль только, что далеко не все криптовалюты это позволяют реализовать.

Заключение

Несмотря на кажущуюся простоту, атака повторного воспроизведения – реальная угроза безопасности информации. Поскольку у злоумышленников нет необходимости дешифровывать перехваченные сообщения, они могут действовать быстрее и эффективнее. Впрочем, существующие базовые методы защиты, а также – индивидуальные предосторожности, гарантируют довольно эффективное противодействие таким кибератакам.