Хакер, укравший 165 ETH ($32 000) у SpankChain, согласился вернуть их незаконно полученные доходы. - Да Эфириум - платформа для взрослых подтвердила это в серии твитов сегодня.
https://twitter.com/SpankChain/status/1050533900001243136
Вот, в полном объеме, его сообщение Medium о нарушении безопасности: «В 18:00 по субботам неизвестный злоумышленник слил 165.38 ETH (~ $38 000) из нашего смарт-контракта платежного канала, что также привело к $4000 на контракт становится иммобилизованным. Из похищенных/иммобилизованных ETH/BOOTY 34.98 ETH (~ $8 000) и 1271.88 BOOTY принадлежит к пользователейe (~ $9 300 всего), а остаток принадлежит компании.
К сожалению, поскольку мы были в середине расследования других ошибок смарт-контрактов, мы не поняли, что хакерство произошло до 7:00 вечера PST воскресенье, в этот момент мы взяли Spank.Live в автономном режиме, чтобы предотвратить любые дополнительные средства от депозитов в смарт-контракт платежных каналов.
Нашим неисчислимой целью было обеспечение полной выплаты всем пользователям, которые упускали средства. Мы готовим Airdrop ETH, чтобы покрыть все $9300 ETH и BOOTY, которые принадлежали пользователям. Сумма будет отчислена на аккаунты пользователей, и будет готова сразу же, как только мы перезаберем сервис.
Наш план состоит в том, чтобы сохранить кемпинг вниз в течение следующих 2-3 дней (но, возможно, больше), пока мы:
- Перезапустить смарт-контракт платежного канала с патч, чтобы предотвратить любые будущие взлома
- Обновите Spank.Live, чтобы использовать новый контракт канала оплаты
- Airdrop ETH эквивалентно 100% ETH+BOOTY потерянным каждым пользователем на свои учетные записи SpankPay
- Исправить ошибки, которые мы изначально работали вокруг обновления BOOTY
К тому времени, когда мы перезагрузим Spank.Live, все зрители и исполнители будут иметь 100% от общего значения в BOOTY+ETH, которое они имели в своих SpankPay переброшены на их текущие адреса SpankPay, так что пользователям не нужно ничего делать.
Этот сайт будет продолжать работать так же, как и раньше, за единственным исключения - из-за 4-х штук BOOTY в настоящее время не работает, мы временно сократим лиг BOOTY для каждого зрителя до 10 BOOTY. Это означает, что зрители смогут только чаевые 10 BOOTY за один раз, и, потратив все 10 BOOTY, они будут автоматически пополнять свои 10 BOOTY с любыми дополнительными ETH, которые они внесли, пока они полностью не истотят свой баланс ETH.
В течение следующих нескольких дней наша команда готовит углубленное расследование нападения.
Вот что мы знаем до сих пор:
Одним словом, атака была вызвана «реабистностью», так же, как и та, которая была реализована в «ДАО». Злоумышленник создал вредоносный контракт, маскируемый как маркер ERC20, где функция «transfer» многократно вызывалась обратно в контракт канала платежей, каждый раз выбрасывая некоторые ETH.
Злоупотребляемый ранее был называется «создать канал» для создания канала, а затем - «LCOpenTimeout» через ревход. LCOpenTimeout предназначен для того, чтобы позволить пользователям быстро выйти из платежных каналов, к которым еще не присоединился контрагент.
LCOpenTimeout передает пользователь их начальный баланс ETH и баланс токенов, которые были заданными в функции создания канала. Критически важно, что функция LCOpenTimeout удаляет только данные канала в цепочке (которые выбрасывают балансы каналов) после функции передачи токенов. Это позволяет функции передачи вредоносному партнеру вызывать LCOpenTimeout в цикл, при этом при этом он будет получать ETH, соответствующие балансам канала.
Контракт канала оплаты: https://etherscan.io/address/0xf91546835f756da0c10cfa0cda95b15577b84aa7#code
Адрес злоумышленника: https://etherscan.io/address/0xcf267ea3f1ebae3c29fea0a3253f94f3122c2199
Внутренний txs (повтор) из учетной записи злоумышленника: https://etherscan.io/address/0xcf267ea3f1ebae3c29fea0a3253f94f3122c2199#internaltx
Злонамеренный контракт злоумышленника: https://etherscan.io/address/0xc5918a927c4fb83fe99e30d6f66707f4b396900e
Внутренний txs (повтор) из вредоносного контракта злоумышленника: https://etherscan.io/address/0xc5918a927c4fb83fe99e30d6f66707f4b396900e#internaltx
Мы приняли решения о том, чтобы не проводить аудит на предмет обеспечения контроля за платежным каналом. На самом деле, мы поручили Zeppelin провести аудит, который стоил $17 000 за предыдущую библиотеку однонаправленных платежных каналов. Мы считаем, что это довольно дорого, с учетом того, что объем средств, когда-либо имевшихся в распоряжении этого заказа, когда-либо достиг в общей сложности 17 000 долл. США.
Для этого гораздо более сложного контракта, не связанного с содержанием под стражей, мы процитировали 30 000 долл. США - 50 000 долл. США на проведение проверок безопасности, но с учетом как воспринимающей ценности, так и стоимости времени, затраченного на реагирование на взлом, это стоило бы того. Это происходит из-за нашего плавкого процесса разработки, а также из-за того, как мы были в бете, а также из-за того, как мы выполняем итеритетные и перераспределенные контракты (из которых мы выводим раз в 2 - 3-х недельные). Это позволило выделить одну из проблем в процессе разработки и разработки, и мы внемшим соответствующие изменения, чтобы это не повторялось снова, но при этом все равно будем делать все, что вам известно.
По мере продвижения вперед и роста мы будем расширять наши методы обеспечения безопасности и обеспечивать проведение многочисленных внутренних аудитов для любого смарт-кода контракта, который мы публикуем, а также, по крайней мере, одного профессионального внешнего аудита».
Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.