Критическая уязвимость в multisig кошельке Parity, хакерами выведен $31 миллион в ethereum (обновлено)

    Из-за уязвимости в коде смарт-контракта multisig кошелька Parity (1.5 и более поздний) хакер смог вывести монет ethereum в эквиваленте 31 миллиона долларов.

    Объяснение механизма атаки вкратце: функция initWallet() в коде, позволяющая определить владельца кошелька, оказалась публичной, и её мог вызвать любой человек. После переопределения владельца оставалось только перевести деньги. Более полное объяснение (на англ.)

    Кошелёк хакера: etherscan.io/address/0xb3764761e297d6f121e79c32a65829cd1ddb4d32
    (уже начался перевод средств на другие адреса)

    Группа white hats смогла вывести эфира в 76 миллионов долларов (и ещё 80 миллионов в различных токенах) с уязвимых кошельков для защиты средств
    etherscan.io/address/0x1dba1131000664b884a1ba238464159892252d3a

    Были украдены деньги с кошельков следующих ICO:

    • Edgeless Casino
    • Swarm City
    • æternity blockchain


    В кошелек white hats выведено почти 40% всего инвестиционного портфеля криптовалютного фонда satoshi.fund — более 7 миллионов долларов.

    Multisig (мульти-подпись) кошелек в теории должен был предоставить дополнительную защиту из-за требования подписи нескольких человек для операции со средствами.

    Оповещение об уязвимости в блоге Parity
    Официальное заявление Swarm City, подтверждающее потерю 44,055 ETH.

    invested in Aeternity
    lol
    and they lost like 18million
    f#$@ morons…

    It looks like it will be a eternity until you get your money back ;)

    The DAO 2.0. Только хард-форка эфира для спасения средств в этот раз не ожидается. Твит Виталика Бутерина в ответ на вопрос, почему был произведен хард-форк цепи ethereum в случае с The DAO, а здесь его не будет:

    1. Менее зрелая экосистема в то время
    2. Тогда на кону был больший % от всего ЕТН
    3. (самое важное) Хакер может просто перевести средства, поэтому хард-форк невозможен


    UPD. С кошелька white hat была отправлена транзакция с текстом
    I am the author of https://www.reddit.com/r/ethereum/comments/6obofq/a_mo.....
    где объясняется, как будет происходить возврат средств. Если коротко — надо будет просто ждать, смарт-контракт будет «проапгреджен» и деньги возвратят на его адрес. Комиссия за перевод будет браться из пожертований The DAO Rescue

    UPD2. «Белые шляпы» возвратили 100% спасенных средств хозяевам.
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 51
    • +2

      Не "Больше на кону, чем просто % от всего ETH", а "Тогда на кону был больший % от всего ЕТН".

      • 0
        Не согласен.
        Скорее всего имеется ввиду репутация и т.п. сейчас.
        • +2
          Да нет, думаю shador прав. Я then c than перепутал при переводе. Виталик говорил про «больше на кону в то время»
          • 0

            Нет, имеется в виду именно stake, в смысле денег. Это очень важно в свете перехода на алгоритм proof-of-stake (PoS), где хакер смог бы получить слишком много влияния благодаря украденным деньгам.

        • 0

          А можно запретить всей системе проводить операции с этим кошельком? Пусть хоть миллиард украдут, воспользоваться все равно не смогут.

          • +1
            То, о чем вы говорите, и есть хард-форк сети. Он и был произведен в случае со взломом The DAO, из-за чего произошёл раскол сети эфира на ETH и ETC.

            Но в случае с The DAO у сообщества было значительное время до того, как хакер смог бы воспользоваться деньгами. Здесь, как Виталик и говорил, хакер может просто перевести деньги (например, через какой-нибудь eth-миксер), так что отследить их дальнейшую судьбу будет невозможно.
            • –3

              долбодятлы сами виноваты, имхо

              • +2
                Кто? Разработчики кошелька или пользователи? Разработчики несомненно, но пострадали-то не они.

                Если пользователи, то извините, давайте хакер найдет уязвимость в какой-нибудь программе, которой вы пользуетесь, и уведет с вашего банковского счета все ваши накопления. Тоже долбодятлом будете себя считать?
                • +1

                  Ну, вообще-то банковские трояны именно этим и занимаются уже очень много лет. И да, долбодятлом, почему-то, при этом принято считать именно пострадавшего — не обновлял ОС, не поставил правильный антивирус, качал из инета игрушки на комп с ДБО, запускал аттачи к письмам, etc. Я не говорю, что случай из статьи идентичен, там всё-таки неясно, что могли предпринять пострадавшие для своей защиты (ну, кроме выделения средств на аудит безопасности этого кода), но определённые параллели между этими ситуациями определённо наблюдаются.

                  • +1
                    Пользователи должны понимать, что контракты — это доверие их создателям/разработчикам, и если создатели не имеют опыта/мошенники — быть готовым к потерям средств.

                    Токены — не децентрализованная криптовалюта, это цифровой актив, с централизованным контролем, а в случае с контрактами — еще и подверженный ошибкам реализации.

                    p.s. интересно, когда разработчики (платформы типа ethereum или может библиотеку хитрых контрактов разработать) начнут добавлять в контракты механизмы возможности отката транзакций, специально на такие случаи как в статье, т.е. превратив подсистему в полный аналог централизованных банков.
              • +17
                ага, давайте каждый раз, как какой-то банк ограбят, будем новые деньги вводить.
                • 0
                  Потребительские вклады в банках обычно застрахованы, как и личные средства банков.
                  • +1
                    Пора создавать стартап — страхование кошельков криптовалюты)
                    • 0
                      кстати, идея не плоха, вполне может и появится такое)
                    • 0
                      1. Кто платит-то за эти страховки не задумывались? На санацию Банка Москвы потратили больше 100 млрд рублей, это 1тр из вашего кармана и моего и всех остальных и таких банков не 1 десяток. Не больно ли жирно содержать этих дармоедов, которые по факту просто воруют наши деньги?
                      2. И про забалансовые вклады, я так понимаю, вы не слышали?

                      Именно поэтому у криптовалют большое будущее — больше не будет ненужных вороватых «кровососов» и всяких сервисов типа робокассы с 20% комиссии за оплату.
                  • 0
                    Ошибка была в коде конкретного контракта, или в коде кошелька?
                    • +1
                      Насколько я понимаю, хранилище кошелька представляет собой адрес смарт-контракта в сети эфира, поэтому можно сказать в коде всех смарт-контрактов, созданных с помощью Parity.
                    • +17
                      шо? никогда ж такого не было, и вот опять?!
                    • +3
                      Супер умные но не супер надёжные контракты.
                      • 0

                        Ну ошибки разработчиков были и будут. То, что в текущей реализации очень легко наступить на грабли и потерять при этом все деньги — это да.


                        С этой точки зрения мне нравится разрабатываемый в данный момент блокчейн eos, в котором при необходимости хардфорки можно провести быстро и безболезненно. Одна эфир уже есть и работает а eos пока существует только на бумаге (хотя разработчики уже собрали больше 200 млн. при ожидаемой капитализации под 2 миллиарда долларов).

                        • +3
                          Легко проводить хардфорки == центральная authority, способная «блокировать активы в случае обнаружения подозрительной активности и в связи с отказом предоставить форму УФН-БМ-42 бис 4 в отведённый законом срок в отдел борьбы с экономической активностью ЦБ УРФ».

                          Нафиг-нефиг.
                          • +1

                            Не обязательно центральная authority. Возьмём steem/golos с его delegated proof of stake консенсусом. У них там уже под двадцать хардфорков безболезненно прошли. Участники сети выбирают "делегатов", которые решают/поддерживают работу сети.

                            • 0
                              При этом предполагается, что уж на этот раз точно в коде не будет ошибок. В коде выбора authority, например.
                              • 0

                                Один участок кода легче проаудировать, чем каждый контракт, отправленный в сеть.

                                • +1
                                  «проаудировать» — это доказать, что в нём нет багов?

                                  (запасаюсь попкорном) Ну, расскажите мне про «проаудирование» кода указанных систем, после которых там не остаётся багов.

                                  Если остаются — возвращаемся к вопросу о том, что делать, если в коде хардфорка баг, который эксплуатируется.
                                  • 0

                                    Я сомневаюсь что можно доказать что где-то нет багов. Просто по крайней мере утверждать с определенной долей уверенности. Хотя потом могут и найтись, да.


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


                                    Что сделают разработчики блокчейна / владельцы эфира? Они просто найдут новый способ консенсуса и напишут новый код, возращающий сеть в состояние до атаки (подобное и произошло с разделением eth/etc). То есть да, делается новый хард-форк, в данном случае изменяющий код "на самом высоком уровне". Но опять же, что proof of work что proof of stake изучены более-менее хорошо и с определенной долей уверенности можно утверждать что в них нет багов. Я же говорю про систему, которая позволит регулировать систему без вмешательства в код самого блокчейна.

                                    • +2
                                      Допустим, такой код найден. Злоумышленник цедит деньги и через ближайший обменник выводит их во что-то другое. Постепенно начинают расходиться слухи о том, что «воруют деньги». Курс начинает падать. Злоумышленник увеличивает «норму отбора», слухи становятся паническими, биржи начинают отказываться принимать валюту, злоумышленник сливает сколько может через оставшиеся биржи, после чего продаёт за сколько-то (другой валюты) уязвимость какому-нибудь zero-day трейдеру или security researcher'у.

                                      После публикации баг исправляют, но…

                                      С потерянными деньгами-то что делать? Отменять продажу на бирже? Биржи против. Делать хардфорк всех валют, в которые были выведены деньги? Может, сразу вселенную форкнуть?
                                      • 0

                                        В таком случае да, ничего не сделаешь. Собственно, поэтому и со вчерашним взломом хард-форк бесполезен, деньги уже пошли гулять

                      • +1

                        Это и есть обратная сторона медали. Рано или поздно появятся регуляторы и тут. Будет возможность согласовывать блокировку, делать переводы активов без ключа, но с одобрения сети для возврата украденного, в т.ч. возможность восстановления доступа к активам при утрате ключей в частном случае. Таков естественный процесс развития любой системы.

                        • +1

                          Я, кстати, всеми руками за. Регуляторы не в смысле регулирующих органов государства, а в смысле регулирования изнутри сети (тот же консенсус DPoS).


                          На текущий момент с криптовалютой очень просто отстрелить себе не только ногу, но и голову.

                          • +3
                            то есть, если ты всем не понравился на фотке профайла, то все могут решить у тебя бабла отжать?
                            • 0

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

                              • 0

                                А это просто может случаться не так часто и не так публично, так что любой. У нас по идее тоже нельзя взятки давать, "кто же поверит и доверит что-то продажному чиновнику", но всё же есть у нас великое "не пойман — не вор", которые покрывает и вашу ситуацию, и ситуацию с чиновниками)

                        • 0
                          биткоины то как скакнули
                          • +1
                            Вы меня извините, если вопрос глупый, за эфиром я особо не следил, но не могу понять две вещи в этой атаке.

                            1. Откуда брались сами кошельки, попавшие под атаку? Не мог же атакующий просто посылать запросы на рандомно, брутфорсом сгенерённые наборы символов — такой перебор занял бы тысячи лет, а не пару часов. Понятно, что тут нужен не приватный ключ, а некий публичный адрес, но всё-таки — откуда ему взяться, если человек сидит дома, примус починяет, а на кошельке живут себе эфирки?

                            2. Как конкретно посылался вызов функции? В эфире можно послать ноль ETH на чужой кошелёк, если знаешь его адрес, а попутно прицепить вызов функции, который ещё и вызовется? Т.е. система не пересылает просто 0 eth с одного кошелька на кошелёк, она зачем-то ещё и пересылает произвольный код?
                            • 0
                              2. Можно, если кошелёк — смарт-контракт
                              • +1
                                1. Все адреса, с которых либо на которые отправлялись средства, попадают в блокчейн эфира. Блокчейн эфира можно посмотреть и в интернете, например на https://etherscan.io. Там же можно посмотреть весь текст смарт-контракта, если этот адрес — смарт контракт. Найти кошелек с определенным смарт-контрактом можно либо через сам блокчейн, либо, подозреваю, и через поисковые системы. К тому же деньги были выведены с определенных кошельков, используемых в ICO — злоумышленнику не нужно было их искать.


                                2. Каждый может опубликовать в сети эфира смарт-контракт — текст программы, выполняющий определенные функции. То есть да, можно прицепить вызов функции, которая выполнится при переводе средств на данный кошелек (в том числе и с 0 эфира). Произвольный код не пересылается, выполняется код, уже определенный в смарт контракте. В данном случае в нём была ошибка, которая и привела к потере средств.
                              • +3
                                А какой децентрализации и надёжности можно говорить, если есть возможность отката транзакций.
                                Неважно будут они её делать или нет, сама возможность уже подрывает всё доверие.

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

                                CDN с шифрованием, где все данные берутся с центрального сервера и проверяется их целостность. Но всегда можно сделать откат на центральном сервере.

                                А уязвимости конкретных сервисов, которые хранят средства в этой криптовалюте касаются только их и их пользователей. Эти уязвимости не подрывают надёжность криптовалюты т.к. не она уязвима, а сервис, которому люди доверили свои кошельки.

                                Безусловно кража огромного количества средств повлечёт изменение курса.
                                Если подхватят СМИ, то будет новость про взлом криптовалюты и паника у пользователей.
                                Но мне кажется стоит задуматься именно над возможностью отката, она и есть главный минус технологии.
                                • 0
                                  https://etherscan.io/address/0x1dba1131000664b884a1ba238464159892252d3a

                                  а этих пацанчиков теперь 85 млн баксов на одном акке.
                                  пора майнить приватный ключ к ихнему кошельку вместо коинов :)
                                • 0
                                  Странно почему не «русские хакеры».
                                  • +2
                                    Всегда думал что за любой валютой должна стоять хоть какая-то армия которая в случае необходимости докажет состоятельность этой валюты.
                                    • 0
                                      Верно. Или хотя бы экономика.
                                      • +1

                                        За эфиром стоит такая же экономика, как и за любой другой фиатной валютой. Пока есть люди, желающие купить или продать определенную криптовалюту, у неё будет определённая стоимость. Как и в случае с рублём и долларом.

                                    • +1
                                      А о самом главном как-то не упомянули: вроде как, деньги «украли» белые шляпы, и они их обещали вернуть как только всё исправят. Поэтому хакеры хоть и хакнули, но лишь чтобы это не сделали другие.
                                      • 0

                                        Да вроде это понятно из определения "белых шляп". Да и написано же "Группа white hats смогла вывести эфира… для защиты средств", а в upd внизу дается ссылка на пост, где они объясняют, как будет проходить возврат денег.

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

                                          Проходит полгода
                                          Упс, придется форкаться (или не форкаться) в зависимости от процента утекшего бабла
                                          • +2
                                            Вы не поняли. Это не взлом, это и есть подлинная эксплуатация достоинств системы. В реальном мире, если вы подпишете контракт, где написано что отдаете свои деньги любому желающему, который попросит, такой контракт можно оспорить в суде(хозяйственном/конституционном), а здесь все будет по букве закона без шанса на ревизию. Всем это так нравилось-так нравилось, прозрачные правила игры, технологические гарантии исполнения, а когда доходит до дела, оказывается что понятия все же лучше, чем буква закона.
                                            • 0
                                              Напомнило одну фентезийную книгу. Та любой закон можно было сделать «магическим», т.е. никто не смог бы его нарушить точно так же как закон природы, и… ни один закон так не обрабатывали, т.к. всегда кому-то, чаще всего как ни странно самому государству, законы надо нарушать…

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.