Взлом Bisq

Сегодня стало известно об эксплуатации уязвимости в клиенте Bisq. Как он работает мы писали, и в действительности клиент Bisq – это программа, с которой стоит познакомиться всем, кто интересуется криптовалютами. Вкрадце, клиент позволяет синхронизироваться с сетью Биткоина, т.е. содержит клиент протокола (“лёгкую” ноду), и позволяет проводить торги по протоколу Bisq: он “видит” общий ордербук по валютным парам, коррдинирует сделку и позволяет проводить арбитраж. Слабым местом децентрализованной биржи всегда было программное обеспечение, не подъемное для слабых машин, дорогое с точки зрения затрат в протоколе Биткоина; арбитражный протокол, создающий асимметрию в пользу держателей токена Биск и в общем не совсем эффективный при разрешении споров.

“контрагенты переводят средства в биткоинах в пользу “адреса пожертвования” после достижения жёсткого лимита при разрешении сделок в тупике”

Сегодня недостатки в порядке сделки и в работе клиента проявились во взломе. По предварительной оценке было похищено порядка 3 BTC и 4000 XMR (криптовалюта “Монеро”).

Как раз адрес, который является краеугольным камнем в асимметричной схеме разрешения споров и оказался проблемой безопасности: он никак не верифицировался в ходе сделки и позволял создать такую транзакцию, в ходе которой средства уйдут на резервный адрес злоумышленника. В общем случае подмена адреса сдачи является распространённым вектором атаки на который тестируются любые кошельки. Похожие уязвимости, например, находили в аппаратных кошельках Ledger, хотя подтверждённых случаев использования не было, в основном в силу общих особенностей работы их кошельков. В Bisq, введённый в октябре 2019 новый порядок сделки, сделал её не безопасной.

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