Большинство людей использует приложение или небольшое аппаратное устройство для хранения своих криптовалют. Однако биржам и другим сервисам, через которые проходят огромные объемы цифровых активов, нужны более серьезные решения. На конференции по кибербезопасности Black Hat, которая прошла в четверг, 6 августа, исследователи подробно описали слабые места схем с мультиподписью, которые используют криптовалютные биржи. Об этом сообщает Wired.
Атаки на криптовалютные биржи не являются виртуальным эквивалентом подрыва сейфа. Это больше похоже на открытие старинного хранилища с шестью ключами, которые нужно повернуть одновременно. Криптовалютные биржи разделяют закрытые ключи, поэтому злоумышленник должен сначала собрать их вместе, чтобы украсть средства. В отличие от распределения физических ключей, криптографические решения, которые лежат в основе многостороннего управления криптоактивами, куда более сложны. С другой стороны, ошибки в этих решениях могут стоить очень дорого.
«Эти организации управляют огромным количеством денег, поэтому у них довольно высокие требования к конфиденциальности и безопасности», ― говорит криптограф Жан-Филипп Аумассон, соучредитель компании Taurus Group и вице-президент Kudelski Security. «Им нужен способ разделить закрытые ключи на разные компоненты, а также разделить общие ресурсы, чтобы ни одна сторона не имела доступа к полному ключу. Мы обнаружили несколько уязвимостей в реализациях этих схем. И это не просто теоретические атаки ― они действительно могли быть осуществлены злоумышленниками».
Аумассон подтвердил и уточнил три уязвимости, открытые Омером Шломовицем, соучредителем компании-разработчика мобильного криптовалютного кошелька ZenGo.
Для использования первой уязвимости нужен инсайдер в криптокомпании, которая использует библиотеку с открытым кодом, написанную известной биржей (исследователи отказались ее назвать). Атака использует уязвимость в механизме библиотеки для обновления ключей. Никто не хочет, чтобы в схеме закрытый ключ или его компоненты остались неизменными навсегда, потому что злоумышленник может постепенно скомпрометировать каждую часть. В уязвимой библиотеке механизм обновления позволял одному из держателей ключа инициировать обновление, а затем манипулировать процессом так, что некоторые компоненты ключа фактически изменялись, а другие оставались прежними. Хотя нельзя объединить фрагменты старого и нового ключей, злоумышленник, по сути, может навсегда заблокировать бирже доступ к средствам.
Исследователи сообщили об уязвимости разработчику библиотеки через неделю после выпуска кода, поэтому маловероятно, что какая-либо биржа включила эту библиотеку в свои системы.
Вторая уязвимость касается процесса ротации ключей, которая может позволить бирже с недобросовестными сотрудниками постепенно получить закрытые ключи после нескольких обновлений систем. После этого биржа может инициировать транзакции для кражи криптовалют клиентов. Эта уязвимость скрывалась в другой библиотеке с открытым кодом (на этот раз от неназванной компании по управлению ключами).
Третья атака начинается на этапе распределения частей ключа между доверенными сторонами. В рамках этого процесса каждая сторона должна сгенерировать пару случайных чисел, которые будут публично проверены для использования позже в «доказательствах с нулевым разглашением», когда разные держатели ключей подтвердят, что они имеют правильную информацию, не раскрывая ее содержания. Исследователи обнаружили, что протокол в библиотеке с открытым кодом, разработанный криптобиржей Binance, на самом деле не проверял эти случайные значения. В результате злоумышленник при генерации ключа может отправлять свои сообщения всем остальным. Это позволит ему позже использовать эту информацию для извлечения каждой части закрытого ключа.
«Для атаки вы должны составить конкретное сообщение, отправить его во время генерации ключа и дождаться первой подписи. Этого будет достаточно, чтобы узнать все остальные ключи», ― говорит Шломовиц.
Binance устранила уязвимость в марте. Биржа отметила, что она присутствует только во время первоначальной генерации ключа. Это не создает долговременной уязвимости ― если, конечно, злоумышленник не присутствовал во время первоначальной генерация ключа.
«Мы рекомендуем пользователям как можно скорее перейти на эту новую версию tss-lib», ― говорится в мартовском сообщении биржи. «Подписывающие группы должны пройти процесс повторно только в том случае, если какие-либо стороны были ненадежными или потенциально уязвимыми во время генерации ключей».
Атаки, описанные Шломовицем и Аумассоном, не были тривиальными для злоумышленника, однако цель их исследования заключалась в том, чтобы привлечь внимание к тому, насколько легко совершить ошибку в реализации биржевого кошелька. И насколько серьезными могут быть эти ошибки, когда они находятся в библиотеках с открытым кодом, которые могут использоваться кем угодно. Такие схемы обеспечивают высокий уровень защиты средств клиентов, но эта криптография очень сложна, поэтому к разработке таких решений нельзя относиться легкомысленно.
«Это требует много времени, много опыта, и все делают ошибки», ― говорит Шломовиц. «Буквально все, потому что очень сложно превратить схему на бумаге в работающую в реальных условиях систему, которая хранит средства».