Crypto Offensive
1.2K subscribers
2 photos
72 links
Чат: https://t.me/cryptooffensive_chat

Чтобы понять, как что-то работает, выясните, как это сломать (С) Талеб

Изучаем безопасность крипты, исследуя реальные атаки и уязвимости
Download Telegram
#hack #bsc.

В продолжение темы #Reentrancy: разбор взлома #SURGE 16.08.2021 на русском. Контракт токена принимает BNB и делает выплаты. В контракте есть защита от reentrancy, но она недостаточно полная, что позволило атакующему повлиять на вычисление цены токена и вывести все BNB на сумму 4M$

https://cryptooffensive.com/инцидент-с-surgedefi-reentrancy/
#vuln

Блокчейн Zilliqa #ZIL известен первой реализацией шардинга.
Сегодня на hackerone опубликовали репорт о забавном критикал баге.
Ноды в шарде обмениваются между собой сообщениями по gossip-протоколу. Для подтверждения достоверности сообщения подписываются ключами нод.
Атакующий мог отправить в сеть по gossip-протоколу сообщение с транзакцией, переводящей все деньги с кошелька любой ноды на свой кошелек, и эта нода передала бы сообщение дальше со своей подписью. Транзакция получается полностью валидная, подписанная

https://hackerone.com/reports/1058879
#tools

Декомпиляторы Solidity:

https://ethervm.io/decompile - онлайн-декомпилятор solidity

https://contract-library.com/ - библиотека контрактов с исходниками и декомпилятором

UPD (thnx @deepcode):
https://eveem.org/ - декомпиляция в псевдокод, похожий на Python

https://www.trustlook.com/services/smart.html (скроллить до раздела "Online tool") - декомпиляция в помесь Solidity и ассемблера

https://oko.palkeo.com/
"Oko contract explorer" Когда контракт верифицирован на Etherscan - берёт код оттуда, а если нет - декомпилирует через Panoramix (как на eveem.org)
👍1
#cryptography #schnorr #vuln

В ноябре в Биткоине начнут работать подписи Шнорра. Кошельки, биржи и другие сервисы постепенно будут их внедрять. Разработчикам нужно помнить о такой ошибке, как повторное использование nonce, которая иногда встречается в реализациях ECDSA и позволяет восстановить секретный ключ. Со Шнорром точно такая же история: https://ecc2017.cs.ru.nl/slides/ecc2017-tibouchi.pdf

Эта бага ранее была много где от Playstation3 до blockchain·com, и живет до сих пор в многих блокчейнах.

Пример уязвимого #BTC-адреса: 1CUSKYar1yGBAg3MHWhC3sYhTfBQqc2sTN

В подписях в его двух транзакциях траты ca8f3a25744ae2859f4a5d219274d9e3ae97c23c201a618c543de76640a97ba6
и
378eb2c5b7dadbba35c79c5a370b48db052a80d44b0e0361b39a9c129c86120e

присутствует одинаковое R:
436c023f2e07cdf9a51e884c35037594c930caf7c2c0d0008ac35d10d4de99fc

что позволяет из остальных данных из транзакций вычислить K:
K = (H1-H2)/(S1-S2)

и секретный ключ:
Sk = (S1*K-H1)/R = KypfcAANPUhYdxAzwNvHvHu1gcV4Bh6KVhkCNnVGVjHh1Hq11LzR

который соответствует адресу 1CUSKYar1yGBAg3MHWhC3sYhTfBQqc2sTN
#hack

43 eth в токенах вознаграждения вывели из контракта стейкинга NFT StackedToads - в массиве id в запросе передали один id много раз, и контракт для каждого раза посчитал "да, токены выдать"

https://twitter.com/0xwave/status/1448752767917453314?s=21
#cryptography

Неразличимая обфускация кода - следующая крутая тема в криптографии.

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

Однако, в 2013 году вышла бумага https://eprint.iacr.org/2013/451 об успешном создании неразличимого обфускатора. Представьте, что есть две различные программы A и B, которые выдают один и тот же результат. Обфускатор O генерирует программы X=O(A) и Y=O(B). O является неразличимым обфускатором, если имея программы X и Y невозможно различить, какая из них получена из A, а какая из B.

Пускай программа A содержит в себе пароль, рассчитывает и выдает хеш пароля, а программа B содержит только готовый хеш и выдает его. Прогнав A и B через неразличимый обфускатор O, мы получаем программы O(A) и O(B).
Можно ли (за адекватное время) вытащить пароль из O(A)? Пойдем от противного - допустим, что мы можем извлечь пароль из O(A), но тогда в силу свойства неразличимости мы также можем извлечь пароль из O(B). Но ни в B ни тем более в O(B) никогда и не было пароля, а только его хеш. А значит допущение неверно, и из O(A) невозможно вытащить пароль.

Это открывает огромные возможности! Представьте, что private переменная в solidity в полном смысле является private, то есть ее невозможно прочесть из блокчейна. Мы сможем создавать обфусцированные смарт-контракты, которые содержат конфиденциальную информацию, такую как приватные ключи от других блокчейнов (что позволит строить trustless-мосты), данные для доступа к фиатным банковским счетам или даже SSH-ключи для доступа к серверам. Для взаимодействия с внешней средой больше не нужны будут подходы с мультисигами, имеющие огромную дыру в виде необходимости доверия к держателям ключей. Посредники останутся нужны только для пересылки сетевых пакетов во внешний мир, но никак не смогут вмешаться в процессы аутентификации.

P.S. на сегодняшний день это далеко от готовности к коммерческому применению. Имеющиеся техники превращают короткие простые программы в гигантские громоздкие полотна
#guide

Свежий видеокурс Secureum по аудиту безопасности Solidity.
Язык: индусский английский

https://www.youtube.com/channel/UCJIdmjE0J_1zz1kUtbgedCA/videos
#audit

Ещё одна коллекция отчётов по аудитам - "the largest database of DeFi project audits" от DefiYield.
2681 отчётов, UI с поиском и фильтрацией
https://defiyield.app/audit-database/
#hack

Взломан AVATerra Finance - сервис для yield farming на блокчейне Avalanche.
Весь "взлом" - получение большого количества токенов через вызов публичной функции mint и их продажа.
AVATerra - форк сервиса Goose (блокчейн BSC), в который были добавлены дополнительные функции, в том числе mint.
https://twitter.com/RugDocIO/status/1451067795140005891
По информации из Telegram-чата AVATerra, оставшаяся в сервисе часть депозитов будет направлена на оплату аудита новой версии контрактов.
Чат: https://t.me/cryptooffensive_chat

3 правила:
1) white hat only. За блечерские посты будем банить
2) разрешен любой оффтоп, но по окончанию всё что далеко от тематики - будем тереть
3) не задавайте мета-вопросов вроде "разбирается ли кто-то в ...", сразу пишите весь вопрос по сути: https://nometa.xyz/

Да пребудет с вами сила!)
#vuln #polygon

Охотник за багами заработал $2 миллиона, найдя критическую уязвимость в Polygon Plasma Bridge. Под угрозой было $850 миллионов.
Ошибка была в том, что Merkle path одной и той же withdraw-транзакции из Polygon в Ethereum можно было закодировать кучей вариантов, и поэтому вывести одни и те же деньги из Polygon много раз.

https://medium.com/immunefi/polygon-double-spend-bug-fix-postmortem-2m-bounty-5a1db09db7f1
#mev

Не секрет, что блокчейн Ethereum - крайне враждебная среда. Если смарт-контракт можно проэксплуатировать ради профита, то это произойдет.
Но эта не прощающая ошибок среда блекнет по сравнению с мемпулом. Если блокчейн сам по себе является полем битвы, то мемпул - это нечто худшее: темный лес.
Тёмный Лес - место, в котором обнаружение означает верную смерть от рук продвинутых хищников. В этой среде открытое определение чьего-то местоположения равносильно его прямому уничтожению.
В мемпуле Ethereum эти высшие хищники принимают форму «арбитражных ботов». Арбитражные боты обычно ищут в мемпуле определенные типы транзакций (такие как торговая сделка на DEX или обновление оракула) и пытаются опередить их в соответствии с заранее заданным алгоритмом.
Универсальные фронтраннеры ищут любую транзакцию, которую они могли бы выгодно опередить, скопировав ее и подменив адреса своими собственными. Они даже могут выполнить транзакцию и скопировать прибыльные внутренние транзакции, сгенерированные в ходе ее выполнения.

Ниже перевод статьи Дэна Робинсона "Ethereum is a Dark Forest" о проблеме эксплуатации уязвимых смарт-контрактов в контексте концепции Темного Леса. Для независимого исследователя обнаружение уязвимости это лишь полдела, не менее важная часть это правильная её эксплуатация, ведь за всем что происходит в мемпуле ведётся тщательная слежка желающими перехватить халявные деньги в автоматическом режиме:
https://cryptooffensive.com/ethereum-%d1%8d%d1%82%d0%be-%d1%82%d1%91%d0%bc%d0%bd%d1%8b%d0%b9-%d0%bb%d0%b5%d1%81/
Crypto Offensive pinned «Чат: https://t.me/cryptooffensive_chat 3 правила: 1) white hat only. За блечерские посты будем банить 2) разрешен любой оффтоп, но по окончанию всё что далеко от тематики - будем тереть 3) не задавайте мета-вопросов вроде "разбирается ли кто-то в ...", сразу…»
#hack

Инцидент с сервисом "Mimo DeFi" (блокчейн Polygon)

Аккаунту, с которого производился деплой сервиса, была выдана лишняя роль Minter, позволявшая печатать токены PAR. После деплоя "нужные" роли были переданы на multisig-кошелёк, а роль Minter осталась у деплоера.

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

Команда Mimo отозвала роль Minter с аккаунта и восстановила баланс системы путём сжигания собственных токенов.

https://mimodefi.medium.com/post-mortem-uncollateralized-minting-of-par-tokens-116c80946225
#hack #defi

По горячим следам: час назад "что-то взломано" на 10 млн. долларов - вероятно Cream, но может быть и Yearn (это не первый случай, когда из-за сложной транзакции сразу не увидеть, кто именно пострадал).

Транзакция - https://etherscan.io/tx/0x0fe2542079644e107cbf13690eb9c2c65963ccb79089ff96bfaf8dced2331c92
Средства на данный момент находятся здесь https://etherscan.io/address/0x24354d31bc9d90f62fe5f2454709c32049cf866b
Прямо сейчас с этого аккаунта производятся ещё какие-то действия, будем наблюдать.

UPD: На Etherscan аккаунт уже помечен сообщением с указанием на "flash loan exploit targeting Cream Finance"
#hack #defi

Развитие событий:

5 минут назад с контракта, использованного для взлома, на адрес взломщика было выведено большое число разнообразных токенов.
https://etherscan.io/address/0x961d2b694d9097f35cfffa363ef98823928a330d#tokentxns

Сейчас на адресе - токенов более чем на 100 млн. долларов, плюс $11 млн в ETH.
https://etherscan.io/address/0x24354d31bc9d90f62fe5f2454709c32049cf866b