SlideShare a Scribd company logo
1 of 19
Alexey Malanov, malware expert
Ограничения смарт-контрактов и
странные решения разработчиков Ethereum:
как не надо работать с деньгами
2
• Смарт-контракт – небольшая программа по работе с цифровыми активами
• Появились в криптовалюте Ethereum в 2015 году
• Все кошельки делятся на людские (управляемые извне) и контракты (код)
• Можно написать пирамиду: если на кошелек-контракт приходит 1 эфир, высылаем в ответ 2 из
поступивших после средств
• Можно реализовать лотерею: сначала деньги собираются на кошелек-контракт, а потом он выбирает
счастливчика (пропорционально) и отправляет выигрыш
• Можно реализовать деривативы (сделки с условиями): фьючерсы, свопы, опционы…
• Главное: все видят текст контракта, все понимают условия его работы, ему можно доверять, потому
что это блокчейн
Смарт-контракты
Пишем типичный контракт
4
• Отправка эфира на кошелек – это вызов функции «прими деньги» в кошельке
• Принимающий деньги может выполнить код
• Злоумышленник выводит одни и те же игрушечные деньги много раз, пока его баланс не обновился
Эксплуатируем «повторный вход»
Эксплуатируем контракт
The DAO robbery
6
• DAO (Decentralized Autonomous Organization) - организация, реализованная на смарт-контрактах
• The DAO – конкретная DAO, реализованная отчасти разработчиками Ethereum, для коллективных
инвестиций
• Все автоматизировано, никаких издержек на управление. Прямая демократия.
• Инвесторы могут голосованием решать, в какой проект инвестировать
• Инвесторы могут проголосовать «ногами» и вывести свои деньги в childDAO, происходит split
• Апатия участников, социальные эксплоиты
• На 06.06.2016 в нее 20000 «криптоинвесторов» вложили $150 млн, 13.6% всего эфира (11 млн ETH)
• 17.06.2016 злоумышленник вывел на подконтрольную ему дочернюю DarkDAO 3.5 млн ETH ($60 млн
по курсу на тот день, $3 млрд на сегодняшний день)
• «The terms of The DAO Creation are set forth in the smart contract» - любые операции, дозволенные
самим кодом программы, должны признаваться законными
The DAO story
8
Ограничения смарт-контрактов
9
10
• Сложно получить случайные числа
• Не так просто «спрятать» какую-то информацию
• Ethereum работает медленно. На весь мир можно выполнить 3-5 транзакций в секунду.
• Нет связи с внешним миром
• Форс-мажор, качество товара, защита в суде
• Если что-то формализуемо и автоматизируемо, то и блокчейн не нужен
• Если в смарт-контракте есть ошибки, то это навсегда
• А еще смарт-контракты могут зависнуть или вообще, работать не так
Ограничения смарт-контрактов
Особенности смарт-контрактов
11
12
• Если беззнаковое число хранится в одном байте
• 255 + 1 = 0
• 0 – 1 = 255
• Переполнение – стандартное поведение большинства процессоров
• Некоторые языки программирования контролируют это, но только не Ethereum
• Если игрушечных денег в кармане не было, а вы вытащили из него одну монетку, то у вас стало
квинтиллион денег
• 15.08.2010 из-за переполнения образовалось 184 млрд биткойнов на двух кошельках
• Чтобы починить, поменяли правила работы блокчейна
• Из блокчейна выкинули все блоки и операции за несколько часов (отменили переводы)
Целочисленное переполнение
Переполнение игрушечных денег
14
• В Биткойн-адресе, например, 17ipJUbstTuK747BFWzNPAijmgFUetHX1v
• Последние пять символов кодируют контрольную сумму остальной информации
• Первый символ указывает на тип сети/адреса
• Отправить деньги в пустоту довольно сложно
• В Ethereum адрес – это просто 20 байт, например, 0x89C2352CB600DF56FE4BFB5882CAADEF3E96213F
• На неправильный адрес 0x0000000000000000000000000000000000000000 случайно наотправляли 7200 ETH
(~$4 млн) и еще $1 млрд различных токенов
• В адрес в итоге вшили контрольную сумму в регистры букв: 0x89c2352Cb600df56fe4BFB5882caAdEF3E96213f
Проверка корректности адресов кошельков
Функции публичны по умолчанию
• MultiSig Wallet – контракт-кошелек, транзакции можно совершать с подтверждения нескольких
владельцев
• 19.07.2017 хакер украл с трех multisig-кошельков 150 000 ETH (~$30 mln)
• «Белые хакеры» быстро спасли еще $150 mln с других кошельков
• Уязвимость внесена 7.03.2017
• Контракт был исправлен (созданы новые кошельки, «белые хакеры» вернули деньги)
• 07.11.2017 один пользователь случайно удалил общую библиотеку (контракт)
• $160 млн на 600 кошельках оказались заморожены «навечно»
Функции публичны по умолчанию - Parity MultiSig Hack
17
• В 2016 году была популярна пирамида Governmental
• На контракт можно послать взнос. Если не было взносов в течение 12 часов, то все деньги
отправляются последнему счастливчику.
• При выигрыше очищаются внутренние массивы контракта
• Участников накопилось много, массив не успевал очиститься, выполнение прерывалось
• Победитель не мог забрать свои 1100 ETH ($10000 тогда, менее $1 млн сейчас)
• Количество участников было всего несколько сотен
• Надо прилагать умственные усилия, чтобы контракт работал так, как вы задумали
• Ethereum провоцируют совершать ошибки
Застопоривание контрактов
«Блокчейн применим абсолютно во всем. Вопрос в том, будет ли это иметь положительный
эффект.
Сама по себе идея, может, и благородная, но путь прозрачности — небезопасный.
Приведу пример. Серия сексуальных разоблачений на Западе — это все результат
применения технологии блокчейн.
То есть ты видишь сам факт случившегося, но на ход событий повлиять не можешь.»
Чиновник
Область применения блокчейна
LET’S TALK?
Kaspersky Lab HQ
39A/3 Leningradskoe Shosse
Moscow, 125212, Russian Federation
Tel: +7 (495) 797-8700
www.kaspersky.com

More Related Content

What's hot

Новеллы в законодательстве. Спикер: Алексей Воробей
Новеллы в законодательстве. Спикер: Алексей ВоробейНовеллы в законодательстве. Спикер: Алексей Воробей
Новеллы в законодательстве. Спикер: Алексей ВоробейCyber Fund
 
Анонимизация и деанонимизация пользователей в блокчейн-сетях. Спикер: Григори...
Анонимизация и деанонимизация пользователей в блокчейн-сетях. Спикер: Григори...Анонимизация и деанонимизация пользователей в блокчейн-сетях. Спикер: Григори...
Анонимизация и деанонимизация пользователей в блокчейн-сетях. Спикер: Григори...Cyber Fund
 
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D..."Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...Julia Cherniak
 
Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"
Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"
Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"Аліна Шепшелей
 
Блокчейн: Разрыв Шаблона v.3
Блокчейн: Разрыв Шаблона v.3Блокчейн: Разрыв Шаблона v.3
Блокчейн: Разрыв Шаблона v.3Dima Starodubcev
 
деньги будущего или как технология Blockchain изменит весь мир.
деньги будущего или как технология Blockchain изменит весь мир.деньги будущего или как технология Blockchain изменит весь мир.
деньги будущего или как технология Blockchain изменит весь мир.Sergey Skabelkin
 
Блокчейн Стратегия Региона
Блокчейн Стратегия РегионаБлокчейн Стратегия Региона
Блокчейн Стратегия РегионаDima Starodubcev
 
Blockchain: is just buzzword?
Blockchain: is just buzzword?Blockchain: is just buzzword?
Blockchain: is just buzzword?Vitebsk Miniq
 
Проект Института экономики роста им. Столыпина П.А. по регулированию криптова...
Проект Института экономики роста им. Столыпина П.А. по регулированию криптова...Проект Института экономики роста им. Столыпина П.А. по регулированию криптова...
Проект Института экономики роста им. Столыпина П.А. по регулированию криптова...Yuliya Deryabina
 
PLC Presenatation
PLC PresenatationPLC Presenatation
PLC PresenatationJTGroup
 
"Программируемые деньги" Чепурной Александр, IOHK Research
"Программируемые деньги" Чепурной Александр, IOHK Research"Программируемые деньги" Чепурной Александр, IOHK Research
"Программируемые деньги" Чепурной Александр, IOHK Researchit-people
 
Блокчейн: правовые основы
Блокчейн: правовые основыБлокчейн: правовые основы
Блокчейн: правовые основыAtlasBlockchain
 
Как устроена криптовалюта. Лекция 2
Как устроена криптовалюта. Лекция 2Как устроена криптовалюта. Лекция 2
Как устроена криптовалюта. Лекция 2Pavel Kravchenko, PhD
 
Брокер Полярная Звезда
Брокер Полярная ЗвездаБрокер Полярная Звезда
Брокер Полярная ЗвездаPolarStarMoscow
 
Ярослав Логинов. Как провести ICO: процесс привлечения инвестиций
Ярослав Логинов. Как провести ICO: процесс привлечения инвестицийЯрослав Логинов. Как провести ICO: процесс привлечения инвестиций
Ярослав Логинов. Как провести ICO: процесс привлечения инвестицийAtlasBlockchain
 
криптовалюта
криптовалютакриптовалюта
криптовалютаhmyrhik nikita
 
Ledger-based системы. Альтернатива Bitcoin?
Ledger-based системы. Альтернатива Bitcoin?Ledger-based системы. Альтернатива Bitcoin?
Ledger-based системы. Альтернатива Bitcoin?Pavel Kravchenko, PhD
 

What's hot (20)

Новеллы в законодательстве. Спикер: Алексей Воробей
Новеллы в законодательстве. Спикер: Алексей ВоробейНовеллы в законодательстве. Спикер: Алексей Воробей
Новеллы в законодательстве. Спикер: Алексей Воробей
 
Анонимизация и деанонимизация пользователей в блокчейн-сетях. Спикер: Григори...
Анонимизация и деанонимизация пользователей в блокчейн-сетях. Спикер: Григори...Анонимизация и деанонимизация пользователей в блокчейн-сетях. Спикер: Григори...
Анонимизация и деанонимизация пользователей в блокчейн-сетях. Спикер: Григори...
 
все о Bitcoin
все о Bitcoinвсе о Bitcoin
все о Bitcoin
 
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D..."Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
 
Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"
Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"
Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"
 
Блокчейн: Разрыв Шаблона v.3
Блокчейн: Разрыв Шаблона v.3Блокчейн: Разрыв Шаблона v.3
Блокчейн: Разрыв Шаблона v.3
 
деньги будущего или как технология Blockchain изменит весь мир.
деньги будущего или как технология Blockchain изменит весь мир.деньги будущего или как технология Blockchain изменит весь мир.
деньги будущего или как технология Blockchain изменит весь мир.
 
Блокчейн Стратегия Региона
Блокчейн Стратегия РегионаБлокчейн Стратегия Региона
Блокчейн Стратегия Региона
 
Blockchain: is just buzzword?
Blockchain: is just buzzword?Blockchain: is just buzzword?
Blockchain: is just buzzword?
 
Основные подходы к созданию «регулятивной песочницы» и урегулированию криптов...
Основные подходы к созданию «регулятивной песочницы» и урегулированию криптов...Основные подходы к созданию «регулятивной песочницы» и урегулированию криптов...
Основные подходы к созданию «регулятивной песочницы» и урегулированию криптов...
 
Проект Института экономики роста им. Столыпина П.А. по регулированию криптова...
Проект Института экономики роста им. Столыпина П.А. по регулированию криптова...Проект Института экономики роста им. Столыпина П.А. по регулированию криптова...
Проект Института экономики роста им. Столыпина П.А. по регулированию криптова...
 
PLC Presenatation
PLC PresenatationPLC Presenatation
PLC Presenatation
 
"Программируемые деньги" Чепурной Александр, IOHK Research
"Программируемые деньги" Чепурной Александр, IOHK Research"Программируемые деньги" Чепурной Александр, IOHK Research
"Программируемые деньги" Чепурной Александр, IOHK Research
 
Блокчейн: правовые основы
Блокчейн: правовые основыБлокчейн: правовые основы
Блокчейн: правовые основы
 
Как устроена криптовалюта. Лекция 2
Как устроена криптовалюта. Лекция 2Как устроена криптовалюта. Лекция 2
Как устроена криптовалюта. Лекция 2
 
Брокер Полярная Звезда
Брокер Полярная ЗвездаБрокер Полярная Звезда
Брокер Полярная Звезда
 
Ярослав Логинов. Как провести ICO: процесс привлечения инвестиций
Ярослав Логинов. Как провести ICO: процесс привлечения инвестицийЯрослав Логинов. Как провести ICO: процесс привлечения инвестиций
Ярослав Логинов. Как провести ICO: процесс привлечения инвестиций
 
криптовалюта
криптовалютакриптовалюта
криптовалюта
 
Ledger-based системы. Альтернатива Bitcoin?
Ledger-based системы. Альтернатива Bitcoin?Ledger-based системы. Альтернатива Bitcoin?
Ledger-based системы. Альтернатива Bitcoin?
 
123
123123
123
 

Similar to 04

Bitcoin
Bitcoin Bitcoin
Bitcoin SPPL
 
Масштабирование Блокчейн Сетей
Масштабирование Блокчейн СетейМасштабирование Блокчейн Сетей
Масштабирование Блокчейн СетейEugene Aseev
 
Знакомство с Ethereum virtual machine
Знакомство с Ethereum virtual machineЗнакомство с Ethereum virtual machine
Знакомство с Ethereum virtual machineSergey Lonshakov
 
Блокчейн. Разрыв шаблона
Блокчейн. Разрыв шаблонаБлокчейн. Разрыв шаблона
Блокчейн. Разрыв шаблонаValery Litvin
 
SE2016 Fundraising Andrey Sobol "Blockchain Crowdfunding or "Mommy, look, I l...
SE2016 Fundraising Andrey Sobol "Blockchain Crowdfunding or "Mommy, look, I l...SE2016 Fundraising Andrey Sobol "Blockchain Crowdfunding or "Mommy, look, I l...
SE2016 Fundraising Andrey Sobol "Blockchain Crowdfunding or "Mommy, look, I l...Inhacking
 
Что такое блокчейн и зачем он нужен
Что такое блокчейн и зачем он нужен Что такое блокчейн и зачем он нужен
Что такое блокчейн и зачем он нужен Cyber Fund
 
Криптовалюты
КриптовалютыКриптовалюты
КриптовалютыArtem Uliantsev
 
Bitcoin for APU (Ukraine Legal Association)
Bitcoin for APU (Ukraine Legal Association)Bitcoin for APU (Ukraine Legal Association)
Bitcoin for APU (Ukraine Legal Association)Maksym Krupyshev
 
Блокчейн в компаниях • Сбербанка
Блокчейн в компаниях • СбербанкаБлокчейн в компаниях • Сбербанка
Блокчейн в компаниях • СбербанкаBlockchain School
 
Погружение в Ethereum
Погружение в EthereumПогружение в Ethereum
Погружение в EthereumSergey Lonshakov
 
Доклад Александра Мазалецкого на третьем митапе сообщества блокчейн-разработч...
Доклад Александра Мазалецкого на третьем митапе сообщества блокчейн-разработч...Доклад Александра Мазалецкого на третьем митапе сообщества блокчейн-разработч...
Доклад Александра Мазалецкого на третьем митапе сообщества блокчейн-разработч...Дмитрий Плахов
 
Дмитрий Матвеев - Структурирование крипто-биржи ICO-провайдеров: опыт Беларуси
Дмитрий Матвеев - Структурирование крипто-биржи ICO-провайдеров: опыт БеларусиДмитрий Матвеев - Структурирование крипто-биржи ICO-провайдеров: опыт Беларуси
Дмитрий Матвеев - Структурирование крипто-биржи ICO-провайдеров: опыт БеларусиTimetogrowup
 
Пользователи Блокчейн. Спикер: Вадим Маковский
Пользователи Блокчейн. Спикер: Вадим МаковскийПользователи Блокчейн. Спикер: Вадим Маковский
Пользователи Блокчейн. Спикер: Вадим МаковскийCyber Fund
 
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»SpbDotNet Community
 
Bitcoin: деньги будущего
Bitcoin: деньги будущегоBitcoin: деньги будущего
Bitcoin: деньги будущегоSergei Tikhomirov
 
Blockchain and tokens v5
Blockchain and tokens v5Blockchain and tokens v5
Blockchain and tokens v5Bekhzod N
 

Similar to 04 (20)

Bitcoin
Bitcoin Bitcoin
Bitcoin
 
Масштабирование Блокчейн Сетей
Масштабирование Блокчейн СетейМасштабирование Блокчейн Сетей
Масштабирование Блокчейн Сетей
 
Crypto piramids27 04-2018fingenbort
Crypto piramids27 04-2018fingenbortCrypto piramids27 04-2018fingenbort
Crypto piramids27 04-2018fingenbort
 
Знакомство с Ethereum virtual machine
Знакомство с Ethereum virtual machineЗнакомство с Ethereum virtual machine
Знакомство с Ethereum virtual machine
 
Блокчейн. Разрыв шаблона
Блокчейн. Разрыв шаблонаБлокчейн. Разрыв шаблона
Блокчейн. Разрыв шаблона
 
SE2016 Fundraising Andrey Sobol "Blockchain Crowdfunding or "Mommy, look, I l...
SE2016 Fundraising Andrey Sobol "Blockchain Crowdfunding or "Mommy, look, I l...SE2016 Fundraising Andrey Sobol "Blockchain Crowdfunding or "Mommy, look, I l...
SE2016 Fundraising Andrey Sobol "Blockchain Crowdfunding or "Mommy, look, I l...
 
3126
31263126
3126
 
Что такое блокчейн и зачем он нужен
Что такое блокчейн и зачем он нужен Что такое блокчейн и зачем он нужен
Что такое блокчейн и зачем он нужен
 
Криптовалюты
КриптовалютыКриптовалюты
Криптовалюты
 
Blockchain & Ecommerce (part 1)
Blockchain & Ecommerce (part 1)Blockchain & Ecommerce (part 1)
Blockchain & Ecommerce (part 1)
 
Bitcoin for APU (Ukraine Legal Association)
Bitcoin for APU (Ukraine Legal Association)Bitcoin for APU (Ukraine Legal Association)
Bitcoin for APU (Ukraine Legal Association)
 
Bitcoin Wite paper (ru)
Bitcoin Wite paper (ru)Bitcoin Wite paper (ru)
Bitcoin Wite paper (ru)
 
Блокчейн в компаниях • Сбербанка
Блокчейн в компаниях • СбербанкаБлокчейн в компаниях • Сбербанка
Блокчейн в компаниях • Сбербанка
 
Погружение в Ethereum
Погружение в EthereumПогружение в Ethereum
Погружение в Ethereum
 
Доклад Александра Мазалецкого на третьем митапе сообщества блокчейн-разработч...
Доклад Александра Мазалецкого на третьем митапе сообщества блокчейн-разработч...Доклад Александра Мазалецкого на третьем митапе сообщества блокчейн-разработч...
Доклад Александра Мазалецкого на третьем митапе сообщества блокчейн-разработч...
 
Дмитрий Матвеев - Структурирование крипто-биржи ICO-провайдеров: опыт Беларуси
Дмитрий Матвеев - Структурирование крипто-биржи ICO-провайдеров: опыт БеларусиДмитрий Матвеев - Структурирование крипто-биржи ICO-провайдеров: опыт Беларуси
Дмитрий Матвеев - Структурирование крипто-биржи ICO-провайдеров: опыт Беларуси
 
Пользователи Блокчейн. Спикер: Вадим Маковский
Пользователи Блокчейн. Спикер: Вадим МаковскийПользователи Блокчейн. Спикер: Вадим Маковский
Пользователи Блокчейн. Спикер: Вадим Маковский
 
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
 
Bitcoin: деньги будущего
Bitcoin: деньги будущегоBitcoin: деньги будущего
Bitcoin: деньги будущего
 
Blockchain and tokens v5
Blockchain and tokens v5Blockchain and tokens v5
Blockchain and tokens v5
 

More from malvvv

12 vzor
12 vzor 12 vzor
12 vzor malvvv
 
10 isbc
10 isbc 10 isbc
10 isbc malvvv
 
09 assaabloy
09 assaabloy 09 assaabloy
09 assaabloy malvvv
 
08 dormakaba
08 dormakaba 08 dormakaba
08 dormakaba malvvv
 
07 parsec
07 parsec 07 parsec
07 parsec malvvv
 
06 videomax
06 videomax 06 videomax
06 videomax malvvv
 
05 sigur
05 sigur 05 sigur
05 sigur malvvv
 
04 perco
04 perco 04 perco
04 perco malvvv
 
02 itrium
02 itrium02 itrium
02 itriummalvvv
 
01 hid
01 hid 01 hid
01 hid malvvv
 
En 50132-7
En 50132-7En 50132-7
En 50132-7malvvv
 
2018 ic3 report
2018 ic3 report2018 ic3 report
2018 ic3 reportmalvvv
 
threats
threatsthreats
threatsmalvvv
 
Google android security_2018_report
Google android security_2018_reportGoogle android security_2018_report
Google android security_2018_reportmalvvv
 
Owasp top-10 proactive controls-2018
Owasp top-10 proactive controls-2018Owasp top-10 proactive controls-2018
Owasp top-10 proactive controls-2018malvvv
 
Web vulnerabilities-2018
Web vulnerabilities-2018Web vulnerabilities-2018
Web vulnerabilities-2018malvvv
 
Testirovanie parolnyh politik
Testirovanie parolnyh politikTestirovanie parolnyh politik
Testirovanie parolnyh politikmalvvv
 

More from malvvv (20)

12 vzor
12 vzor 12 vzor
12 vzor
 
11
11 11
11
 
10 isbc
10 isbc 10 isbc
10 isbc
 
09 assaabloy
09 assaabloy 09 assaabloy
09 assaabloy
 
08 dormakaba
08 dormakaba 08 dormakaba
08 dormakaba
 
07 parsec
07 parsec 07 parsec
07 parsec
 
06 videomax
06 videomax 06 videomax
06 videomax
 
05 sigur
05 sigur 05 sigur
05 sigur
 
04 perco
04 perco 04 perco
04 perco
 
02 itrium
02 itrium02 itrium
02 itrium
 
01 hid
01 hid 01 hid
01 hid
 
En 50132-7
En 50132-7En 50132-7
En 50132-7
 
01
0101
01
 
2018 ic3 report
2018 ic3 report2018 ic3 report
2018 ic3 report
 
threats
threatsthreats
threats
 
Google android security_2018_report
Google android security_2018_reportGoogle android security_2018_report
Google android security_2018_report
 
Owasp top-10 proactive controls-2018
Owasp top-10 proactive controls-2018Owasp top-10 proactive controls-2018
Owasp top-10 proactive controls-2018
 
Web vulnerabilities-2018
Web vulnerabilities-2018Web vulnerabilities-2018
Web vulnerabilities-2018
 
Kpsn
Kpsn Kpsn
Kpsn
 
Testirovanie parolnyh politik
Testirovanie parolnyh politikTestirovanie parolnyh politik
Testirovanie parolnyh politik
 

04

  • 1. Alexey Malanov, malware expert Ограничения смарт-контрактов и странные решения разработчиков Ethereum: как не надо работать с деньгами
  • 2. 2 • Смарт-контракт – небольшая программа по работе с цифровыми активами • Появились в криптовалюте Ethereum в 2015 году • Все кошельки делятся на людские (управляемые извне) и контракты (код) • Можно написать пирамиду: если на кошелек-контракт приходит 1 эфир, высылаем в ответ 2 из поступивших после средств • Можно реализовать лотерею: сначала деньги собираются на кошелек-контракт, а потом он выбирает счастливчика (пропорционально) и отправляет выигрыш • Можно реализовать деривативы (сделки с условиями): фьючерсы, свопы, опционы… • Главное: все видят текст контракта, все понимают условия его работы, ему можно доверять, потому что это блокчейн Смарт-контракты
  • 4. 4 • Отправка эфира на кошелек – это вызов функции «прими деньги» в кошельке • Принимающий деньги может выполнить код • Злоумышленник выводит одни и те же игрушечные деньги много раз, пока его баланс не обновился Эксплуатируем «повторный вход»
  • 7. • DAO (Decentralized Autonomous Organization) - организация, реализованная на смарт-контрактах • The DAO – конкретная DAO, реализованная отчасти разработчиками Ethereum, для коллективных инвестиций • Все автоматизировано, никаких издержек на управление. Прямая демократия. • Инвесторы могут голосованием решать, в какой проект инвестировать • Инвесторы могут проголосовать «ногами» и вывести свои деньги в childDAO, происходит split • Апатия участников, социальные эксплоиты • На 06.06.2016 в нее 20000 «криптоинвесторов» вложили $150 млн, 13.6% всего эфира (11 млн ETH) • 17.06.2016 злоумышленник вывел на подконтрольную ему дочернюю DarkDAO 3.5 млн ETH ($60 млн по курсу на тот день, $3 млрд на сегодняшний день) • «The terms of The DAO Creation are set forth in the smart contract» - любые операции, дозволенные самим кодом программы, должны признаваться законными The DAO story
  • 8. 8
  • 10. 10 • Сложно получить случайные числа • Не так просто «спрятать» какую-то информацию • Ethereum работает медленно. На весь мир можно выполнить 3-5 транзакций в секунду. • Нет связи с внешним миром • Форс-мажор, качество товара, защита в суде • Если что-то формализуемо и автоматизируемо, то и блокчейн не нужен • Если в смарт-контракте есть ошибки, то это навсегда • А еще смарт-контракты могут зависнуть или вообще, работать не так Ограничения смарт-контрактов
  • 12. 12 • Если беззнаковое число хранится в одном байте • 255 + 1 = 0 • 0 – 1 = 255 • Переполнение – стандартное поведение большинства процессоров • Некоторые языки программирования контролируют это, но только не Ethereum • Если игрушечных денег в кармане не было, а вы вытащили из него одну монетку, то у вас стало квинтиллион денег • 15.08.2010 из-за переполнения образовалось 184 млрд биткойнов на двух кошельках • Чтобы починить, поменяли правила работы блокчейна • Из блокчейна выкинули все блоки и операции за несколько часов (отменили переводы) Целочисленное переполнение
  • 14. 14 • В Биткойн-адресе, например, 17ipJUbstTuK747BFWzNPAijmgFUetHX1v • Последние пять символов кодируют контрольную сумму остальной информации • Первый символ указывает на тип сети/адреса • Отправить деньги в пустоту довольно сложно • В Ethereum адрес – это просто 20 байт, например, 0x89C2352CB600DF56FE4BFB5882CAADEF3E96213F • На неправильный адрес 0x0000000000000000000000000000000000000000 случайно наотправляли 7200 ETH (~$4 млн) и еще $1 млрд различных токенов • В адрес в итоге вшили контрольную сумму в регистры букв: 0x89c2352Cb600df56fe4BFB5882caAdEF3E96213f Проверка корректности адресов кошельков
  • 16. • MultiSig Wallet – контракт-кошелек, транзакции можно совершать с подтверждения нескольких владельцев • 19.07.2017 хакер украл с трех multisig-кошельков 150 000 ETH (~$30 mln) • «Белые хакеры» быстро спасли еще $150 mln с других кошельков • Уязвимость внесена 7.03.2017 • Контракт был исправлен (созданы новые кошельки, «белые хакеры» вернули деньги) • 07.11.2017 один пользователь случайно удалил общую библиотеку (контракт) • $160 млн на 600 кошельках оказались заморожены «навечно» Функции публичны по умолчанию - Parity MultiSig Hack
  • 17. 17 • В 2016 году была популярна пирамида Governmental • На контракт можно послать взнос. Если не было взносов в течение 12 часов, то все деньги отправляются последнему счастливчику. • При выигрыше очищаются внутренние массивы контракта • Участников накопилось много, массив не успевал очиститься, выполнение прерывалось • Победитель не мог забрать свои 1100 ETH ($10000 тогда, менее $1 млн сейчас) • Количество участников было всего несколько сотен • Надо прилагать умственные усилия, чтобы контракт работал так, как вы задумали • Ethereum провоцируют совершать ошибки Застопоривание контрактов
  • 18. «Блокчейн применим абсолютно во всем. Вопрос в том, будет ли это иметь положительный эффект. Сама по себе идея, может, и благородная, но путь прозрачности — небезопасный. Приведу пример. Серия сексуальных разоблачений на Западе — это все результат применения технологии блокчейн. То есть ты видишь сам факт случившегося, но на ход событий повлиять не можешь.» Чиновник Область применения блокчейна
  • 19. LET’S TALK? Kaspersky Lab HQ 39A/3 Leningradskoe Shosse Moscow, 125212, Russian Federation Tel: +7 (495) 797-8700 www.kaspersky.com