Уязвимости DAO Hack и Blockchain. Dao блокчейн


Уязвимости DAO Hack и Blockchain

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

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

Уязвимости безопасности Blockchain - от ниже до вечности

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

Обычно каждый блок-код предлагает свой собственный язык программирования для реализации хороших контрактов. Давайте получим более близкий поиск.

Разумные языки сделок

В средах Blockchain содержатся собственные языки для создания мудрых контрактов.

Платформа Ethereum, например, основательность язык для создания смарт-контрактов. Создатели создали основательность быть Тьюринг полный язык.

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

Полнота Тьюринга

Тьюринг всеобъемлющие языки включают сложность по характеру, а сложность - ошибки и уязвимости.

В сети Bitcoin также есть язык программирования, который он вызывает Сценарий. Сценарий намеренно не Тьюринг чтобы повысить безопасность.

Чем меньше возможностей предоставляется программисту, тем меньше вероятность блокировки защиты от блокировки для входа в процесс.

Чтобы свести к минимуму возможность выпуска дефектного кода в дикую природу, программисты должны понимать популярные ловушки и анти-стили, присущие интеллектуальному контрактному программированию. (Анти-проекты изображают негативные методы программирования).

DAO Hack: проблема с возвращением

DAO Hack

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

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

В первом месяце он привлек более $ 150 миллионов. В июне 17, 2016, хакеры изъяли из этой группы $ 50 миллионов из-за недостатка реентерации. Хитроумная вилка от Ethereum Traditional (Etc) до Ethereum (ETH) привела к решению проблем, которые этот хак развивал.

Anti-Sample, уязвимый к reentrancy

Очевидно, что уязвимая реентерабельная логика для кода выглядит следующим образом:

выполнить процедуру оплаты ()

(1) проверяет достоверность транзакции, получателя и равновесия учетной записи

(2) транзакции

(3) обновлено состояние метода для отображения транзакции

Начнем с того, что логика выглядит как соответствующая и целая, но недостаток находится в процессе выполнения фазы 2 перед шагом 3.

Несмотря на то, что с самого первого контакта с фазой обработки функций 2, дополнительная связь с одной и той же транзакцией может привести к этой цели. Учитывая тот факт, что факты состояния остаются в первоначальном виде и не обрабатываются на шаге 3, 2nd вступают в контакт с проверками как законной транзакцией метода.

В результате процесс тратит форекс на то же самое обязательство 2nd раз. Хакеры пишут несколько транзакций для этой цели до того, как условие будет полностью установлено.

Помощь при восстановлении

Это приспосабливается к алгоритму, который исправляет более дилемму:

выполнить подход к оплате ()

(1) проверяет правильность транзакции, приемника и равновесия учетной записи

(2) обновляет состояние системы, чтобы продемонстрировать, что транзакция обработана

(3) метод транзакции

Код должен учитывать всю необходимую обработку исключений, и он должен учитывать все разумные зависимости.

перелив

Overflow - это еще один популярный программный программист, которому нужно знать об ошибках.

Некоторые языки программирования обладают мощным набором текста, а другие - слабым типом. Сильно типизированные языки отказываются программистам присваивать информацию о строках числовой переменной, для случая, а слабо типизированные языки допускают такие действия.

Сильно типизированные языки реализуют ограничения сорта. Если массив имеет функции 10, программисты не могут попытаться получить одиннадцатый фактор. Слабо типизированные языки допускают подобные типы поведения, но приводят к выходу из строя. Если наиболее приемлемым преимуществом переменной является 99, и вы присваиваете ей значение 100, просмотрите ее при сбое при ее запуске!

В результате переполнение - это эксплойт, который используют хакеры. Если хакер подает параметр на смарт-контракт, который выходит за пределы массива, к которому может приблизиться код, конечные результаты сбоя. Эти виды катастроф подпитывают многие подвиги. Сбой может привести к отказу в обслуживании (DDoS-атака), а важная информация о внутренних компонентах программы иногда раскрывается в сообщениях об ошибках.

В интернет-программах хакеры обычно заполняют память своим собственным деструктивным кодом, поэтому, когда программное обеспечение выходит из строя и переходит в случайное место в памяти, вредоносный код выполняет.

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

Многогранная гидра

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

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

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

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

Для криптовалютных адресов требуются адреса, которые должны быть специальными. Уникальность будет исходить от генератора случайных величин, а генератор случайных величин хочет, чтобы семя начинало этот подход. Если семя не может быть случайным, система выходит из строя.

Один конкретный результат плохой случайности означает, что идентичная сделка с приемами создала несколько моментов. Фотографируйте состояние дел, когда кошелек назначает сделку с X на отдельную А, а затем когда-то потом назначает ручку Х мужчине или женщине Б. Когда платеж отправляется на адрес Х, он распространяется только на одного конкретного человека. Какой конкретный человек получит наличные деньги?

Еще одна трудность с отрицательной случайностью возникает, когда хакер вычисляет алгоритм, используемый для получения семени. Хакер восстанавливает семена для себя и владеет системой.

Шоссе идет навсегда и празднование Ни в коем случае не заканчивается

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

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

Blockchains живут в Интернете и делят все то же самое воздействие на хакеров как на Интернет. По случаю предположим, что вы покупаете наличные деньги из торговли на веб-сайте. Преобладают атаки на инъекции, межсайтовый скриптинг, фишинг-атаки и все другие стандартные хаки.

Закрытие

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

Децентрализованное задание на обеспечение безопасности программного обеспечения (DASP) стремится стать хранилищем фактов и методов безопасности блоков. Они хорошо моделируют себя в проекте Open Software Software Security (OWASP). В ежегодном OWASP Best 10 перечислены наиболее важные уязвимости сетевых приложений, которые существуют в настоящее время. DASP Топ рейтинг 10 надеется представить эквивалентный полезный ресурс для blockchain.

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

:

coinnewstelegraph.com

История с The DAO: хронология событий, причины, уроки

Небрежность разработчиков The DAO, приведшая к утечке 60 млн долларов и необходимости отката транзакций, привела к тому, что сообщество перестало так восторженно относиться к идее децентрализации блокчейн-проектов. В истории ДАО точка не будет поставлена ещё долго, но подведём промежуточные итоги того, что произошло за эти полторы недели.

Хронология

17 июня

В официальном блоге The DAO появилось сообщение об атаке: на адрес злоумышленника было переведено более 60 млн долларов. Информация сразу распространилась по СМИ и соцсетям, а токены ДАО сразу подешевели на 60%.

Основатель Ethereum Виталик Бутерин обратился к криптобиржам с просьбой заморозить торги и ввод/вывод средств. Позже он опубликовал пост о планах по противодействию утечке и её причинах. Оказалось, что средства можно бесконечно снимать и переводить в дочернее ДАО посредством многократного разделения ДАО и сбора эфиров в рамках одной транзакции.

18 июня

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

20 июня

Майнеры поддержали предложение Бутерина о «мягкой вилке», которая поможет вернуть средства. Из четырёх вариантов: «не голосовал», «мне всё равно», «не запускать софтфорк» и «запустить софтфорк» – больше всего голосов набрал последний. Точнее будет сказать, что речь идёт не о голосах, а о сложении индивидуальных хэшрейтов голосовавших майнеров.

22 июня

Команда разработчиков Ethereum при поддержке The DAO и Slock.it запустила контратаку на ДАО, чтобы защитить активы от дальнейших посягательств.

27 июня

Крупные майнин-пулы запустили голосование по софтфорку. Если он будет одобрен, все средства в дочерних аккаунтах ДАО заморозятся, а доступ к ним получит  узкий круг лиц. Возврат же этих средств хозяевам будет возможен только после голосования за или против хардфорка.

Что стало причиной истории с The DAO и что будет дальше

Павел Кравченко, один из основателей Distributed Lab

Идея ДАО как проекта с коллективным управлением средствами изначально была неудачна, поскольку 9 из 10 инвесторов терпят неудачи. История с The DAO и возможность хардфорка негативно повлияли на имидж Ethereum как системы с децентрализацией.

Дмитрий Стародубцев, соучредитель cyber.Fund

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

Алексей Трошичев, архитектор криптотехнологий QIWI

Опыт The DAO показал, сколько стоят ошибки в децентрализованных системах, когда вероятность краха велика, но его точную вероятность не просчитывают. Ошибка крылась не в блокчейне, а в языке Solidity, упрощающем разработку, но маскирующем слабые места. История скажется на имидже Ethereum, как в своё время произошло с Bitcoin и закрытием биржи Mt.Gox. В то же время разработчики получат иммунитет и приучатся к оценке рисков и тщательному тестированию.

Уроки

Нужно оценивать риски и вкладывать в заманчивый блокчейн-проект не больше той суммы, которую готовы потерять. В случае с The DAO стоило прислушаться к самому Бутерину, называвшему проект рискованным. Примечательно, что в ДАО он вложил лишь 1% своих ETH.

Лучше отложить релиз, чем выпускать код с дырками. Возможно, сначала разработчики не ожидали моментального успеха, а позже вдохновились им и поспешили запустить проект без тщательного тестирования. Хотя ничто не мешало подержать The DAO в столе, ограничив на какое-то время его функционал.

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

moscow.bc.events

Что не так с блокчейном | Финансы

В банке Credit Suisse выявили восемь «ключевых проблем», которые не дают технологии blockchain занять подобающее ей место в мире финансов.

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

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

Если кто-то хочет добавить запись или внести другое изменение, транзакцию должны подписать большинство участников сети. Это делает ненужными посредников — поскольку запись подписывают почти все, все могут доверять результату. Оригинальный blockchain используется для записи транзакций в сети Bitcoin, но теоретически технологию можно использовать для хранения и контроля записей любого рода.

Blockchain помогает исключить массу административной работы, сократить расходы и упростить финансовые операции. В частности, в Goldman Sachs (TOCOM: Futures On Gasoline Feb 2017 [GS]) считают, что у blockchain есть потенциал для революционных изменений «во всех областях жизни».

Но в аналитической записке, посвященной рынку технологий, аналитики Credit Suisse Чарльз Бреннан и Уильям Лан говорят, что смотрят на будущее технологии «с умеренным оптимизмом», и перечисляют восемь препятствий, мешающих blockchain стать мейнстримом в финансах.

1. Безопасно или дешево? Выберите что-то одно. Сейчас блокчейн предполагает, что система является либо дешевой и уязвимой, либо дорогой и безопасной. В блокчейн, используемой в сети Bitcoin, целостность записей гарантируется тем фактом, что каждую транзакцию подписывает большая часть сети. При этом система вознаграждает выполнение соответствующих криптографических операций биткоинами. Это дорого стоит. Есть альтернатива — сеть с ограниченным кругом участников. На входе строгий контроль, но внутри можно делать что хочешь. При этом меньшее количество участников сети подразумевает меньший надзор за сделками, а значит, открывает возможность злоупотребления со стороны одного из участников.

2. Вы уверены, что blockchain вам нужен? Аналитики пишут: «У вас ведь и так все работает? Для реализации преимуществ blockchain нужна задача, которая: (1) требует базы данных, (2) требует общего доступа на запись в эту базу данных, (3) авторы, которые будут добавлять записи, неизвестны, а их интересы могут быть противоположными, (4) нет доверенной третьей стороны, способной обеспечить целостность данных».

3. Требуется критическая масса. блокчейн — это сеть. Она становится полезной по мере накопления количества участников, и быть первым в этой ситуации — никакого смысла. В этом направлении движутся различные отраслевые организации, в том числе R3 и Hyperledger, но просто собрать людей вместе и добиться от них совместной работы — это разные вещи.

4. Проблема ввода. Аналогична первой проблеме. Сама по себе сеть лишь хранит информацию, а ее качество обеспечивается участниками. Пока для блокчейн разработана только технология удостоверения биткоин-транзакций, а ведь нужно еще удостоверять личность участников.

5. Уязвимость для взлома. Чем больше людей в сети, тем больше точек входа, и тем выше уязвимость для хакерских атак. Конечно, невозможность изменить сделку задним числом — важное свойство blockchain, но злонамеренный участник может добавить в систему ложные сделки. Кроме того, для злоумышленника могут быть ценными данные о том, кто с кем торгует.

6. «Не поверю, пока не увижу». Аналитики пишут: «С помощью блокчейн относительно легко защитить личность участника, но данные сделки зашифровать нельзя, ведь узлы сети должны их видеть, чтобы проверить их подлинность. Если членам сети важна конфиденциальность данных, это может быть проблемой».

7. Проблема идентичности. Предположим, вы потеряли закрытый ключ к конкретному активу в блокчейн. Что тогда? Credit Suisse: «Проблема инструментов на предъявителя в том, что их можно потерять. Очевидный пример — наличные деньги. Видимо, нужен какой-то дополнительный внешний механизм идентификации».

8. DAO-атака. Децентрализованная автономная организация (DAO), контролирующая сеть Ethereum с валютой на сотни миллионов долларов, недавно была взломана. Чтобы остановить воров, организации пришлось разделить сеть. Проблема в том, что Ethereum, как и Bitcoin, представляет собой децентрализованную сеть, и поэтому любое изменение требует консенсуса участников. Credit Suisse пишет: «Разделение, проведенное сообществом Ethereum, показывает, что blockchain неизменен только до тех пор, пока участники это поддерживают».

Несмотря на все вышесказанное, аналитики Credit Suisse оценивают blockchain как потенциально революционную технологию, которая заслуживает внимания. Просто не нужно безоговорочно верить шумихе.

ru.ihodl.com