X (formerly Twitter)

Telegram
Noobing Security Research
Ethereum is a dark forest Знакомы ли вы с концепцией темного леса? В последнее время в моем инфополе она чаще всего звучала в контексте сериала «задача трех тел» Если коротко, в темном лесу водятся монстры. Единственный способ выжить - либо быть самым сильным, либо не подавать признаков жизни. Подробнее на Википедии Казалось бы, при чем тут аудит смарт контрактов? Дело в том, что в сети эфира водятся монстры flashbots, которые слушают наши транзакции. И в случае, когда потенциальный профит превосходит затраты на исполнение, они атакуют Таким образом атакующий вектор находится вне плоскости программного слоя, в слое самой сети. Это становится возможным, потому что: - Все транзакции перед включением в блок попадают в mempool, так устроена сеть Ethereum. Мемпул место прозрачное, доступное для чтения - Приоритет газа существует, увеличив газ можно поставить свою транзакцию вперед других К чему приводит такой порядок дел В основном к тому, что атакующий пытается закинуть транзакцию перед или сразу после интересующей его транзакции, либо провести сэндвич-атаку, когда атакуемая транзакция «оборачивается» с двух сторон в манипулятивные транзы. По такому же принципу происходит flashloan атака, писал про нее тут, только там атакующий пишет контракт, а не ловит интересующую его транзакцию в мемпуле В случае, если в вашем контракте неправильно прописаны трансферы, например вы не проверяете кто инициализирует трансфер, флэшбот может воспользоваться этой дырой для вывода средств с контракта как только увидит такую транзакцию в мемпуле Очень крутая статья 2020 года про то как ребята пытались вытащить 12к$, которые застряли на видном, но еще не обнаруженном флешботами месте. Спойлер: ⡘⡌⡃⠍⣠⠘⠲ ⡢⠑⠨⢌⢅⠇⠱⣐ ⠦⠅⢅⢢⢨⠨⡢⠆⡂⢃⢄ ⠬⠇⠅ ⠆⠍⡁⠢⠖⠅ ⡉⠃⠴⢠⠴⡤ ⡆⢠⠱⠡⢈⠦⠢⠌⠎ ⠊ ⡡⠑⠴⠎ Ужас, но не ужас-ужас-ужас В основном флэшботы крутятся вокруг DEX, они арбитражат разность курсов и тем самым вообще-то выполняют очень важную функцию целостности цен по всему маркету. Могут правда зацепиться за крупные транзы и внести манипулятивную составляющую, которая неизбежно возникнет при крупной сделке. Могут подсунуть не самый выгодный курс, вынудив купить по бОльшей цене. Так же они могут первыми показывать на позиции, требующие ликвидации, получая за это бонус. Есть экзотические атаки, трудно выполняемые в текущих условиях сети эфира, но которые вполне серьезно обсуждались до The Merge (переход с PoW на PoS) типа Fee-based forking attacks или Time-bandit attacks. На них я останавливаться не буду, по крайней мере сейчас К посту прикладываю одну из первых системных статей по теме, она 2019 года. Какие-то части чуть устарели, но в ней классно описан математически аппарат того, как боты действуют, что лежит в основе их конкуренции и сотрудничества. Любителям теории игр будет интересно Это первый пост вводный пост по теме flashbots, дальше будет подробнее про виды атак, про способы защиты ваших протоколов и еще больше источников и статей https://t.me/web3securityresearch

Telegram
Noobing Security Research
Разбирая MEV: Кто такой этот ваш PBS Для того, чтобы начать тему защиты от MEV, надо углубиться в то, как устроена работа сети эфира на данный момент В 2022 году, во время The Merge произошел переход к архитектуре Proposer-Builder Separation (PBS). Суть ее заключается в том, что собирает блок builder, а включает его в сеть proposer (валидатор). До этого момента сборкой и предложением блоков сети занимался один актор, что вело к доминации крупных институционалов На данный момент PBS реализуется через промежуточное ПО, носящее название MEV-Boost. Это опенсорсный проект, разработанный Flashbots. То, что я пишу здесь по большей части базируется на документации FlashBots Auction Стоит отметить, что валидаторы по прежнему могут строить блоки самостоятельно На изображении представлен флоу, по которому транзакция движется от бандла до блока, включенного в цепочку. От сёрчера до валидатора. Эта схема называется Flashbots Auction В процессе участвуют несколько акторов/сущностей: - Искатели/сёрчеры (Searchers). Собирают транзакции в публичном и/или приватном мемпуле так, чтобы максимизировать выгоду. Они собирают транзакции в - Бандлы (Bundles). Массив независимых транзакций, сопровождающихся метаданными, содержащими условия исполнения. Все транзакции должны быть исполнены в том порядке, в котором их собрал сёрчер, причем бандл обладает атомарностью. Сёрчер отправляет бандл дальше по цепочке билдеру. - Строитель/Билдер (Builder). Его задача - сборка из бандлов наиболее прибыльного блока. Билдер видит все транзакции. Он передает собранный блок в реле - Реле/релэй (Relay). Это доверенный посредник между билдерами и валидаторами. Собирает готовые блоки, выбирает самый выгодный вариант для передачи валидатору При этом и сёрчеры, и билдеры, и реле имеют свой высококонкурентный рынок игроков Важно, что реле не отправляют валидаторам сразу готовые блоки, сначала отправляются заголовок самого доходного блока. Если валидатор возвращает подписанный заголовок реле, то получает в ответ полный блок, который предлагает для включения в блокчейн Кроме того, вся схема называется аукционом не просто так: сёрчеры и билдеры вынуждены отправлять дальше по цепочке bids (ставки), чтобы следующий актор выбрал их предложение. При этом сами транзакции могут быть скрыты до включения в блок В прошлом посте я писал, что MEV бот зафронтранил хакера. Он мог бы этого избежать, если бы использовал приватный мемпул, тем более, что для этого нужен был простой советский.. нужно было использовать приватный RPC Этот RPC прокидывает транзакцию в приватный мемпул, ну а дальше вы знаете, её подхватывает сёрчер https://t.me/web3securityresearch

rekt
Rekt - Home
DeFi / Crypto - Investigative journalism & creative commentary