Кибербезопасность для 3.0 и cryptoфаундеров

Кибербезопасность для 3.0 и cryptoфаундеров

"Третья Сторона", делаем мир кибербезопаснее

Наш канал - https://t.me/By3side

Наш сайт - 3side.org

Концепция web 3.0 (https://en.wikipedia.org/wiki/Web3) - это концепция децентрализованной “сети равных”, и многие видят в ней будущее. Децентрализованное, с блокчейном и токенизацией. В том или ином виде всё будет хорошо, люди будут иметь больше прав на цифровой контент, и так далее … но есть проблема. 3.0 - это долгая дорогая к светлому будущему развития Интернета. 

Концепция 3.0 строится на том, что всё будет правильно функционировать. Блокчейн, смарт-контракты, nft и вот это всё - это прекрасно, если они работают. Но проблема в том, что если ты даже создал математически безупречную идею, которая на текущих мощностях прекрасна - нет никаких гарантий, что так будет всегда. К примеру, возьмём протокол TLS, который был создан в 90-х на базе известных алгоритмов. Там были найдены уязвимости, но не так много и очень разной степени критичности, потому что со стороны математики там всё правильно. А вот примеров реализации этих протоколов и алгоритмов - тысячи. И если вы уверены в одном протоколе, одной идее - вы точно уверены во ВСЕХ их реализациях? И вот тут - суть проблемы.

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


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

Даже простые вещи, например, основа для вируса-шифровальщика — но и в этой реализации находят ошибки! А когда мы начинаем сталкиваться с чем-то более сложным, то со временем находится множество багов. А в итоге, кто будет реализовывать, кто будет следить за тем, что реализовано? Не будет никаких отраслевых стандартов, идея как раз в их отсутствии. А перейдя на сырую технологию, мы можем поначалу получить чуть ли не худший эффект, чем 2.0. TLS шифрование это действительно хороший пример - придумано давно, называлось ещё SSL, алгоритмы старые, но в реализациях находят ошибки раз за разом. Но хотите пример лучше? В том, что казалось-бы просто, казалось-бы нечего искать …

В 2019 году нашли критическую уязвимость в … приложении Блокнот, которое существовало в Windows больше 20 лет, и все были уверены, что ну там то точно не может быть никаких проблем. А он был в практически неизменном состоянии с самых первых версий от Windows ME, все были уверены что он слишком простой для этого и проверен вдоль и поперек. Тем не менее, нашлось выполнение кода. Безопасность для 3.0 - она крайне необходима хотя бы до тех пор, пока сама структура не станет достаточно безопасной, пока не появятся новые практики, новые стандарты, пока не набьются шишки. И даже новые технологии не защищают нас от человеческих ошибок. 


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

Гарантировать безопасность смарт-контрактам, можно лишь проанализировав все варианты его исполнения. Выполняя умные контракты на полных по Тьюрингу языках, нужна уверенность, что компьютерная программа не содержит багов, что практически невозможно. Поэтому, работая или создавая смарт-контракты, придется обязательно проводить их аудит (С)

Начнём с простого. Любая история про крипто и 3.0 — это всегда инфраструктура, которая торчит в сеть. А если она торчит в сеть, она уязвима, исключений тут нет. А теперь подумайте, представляют ли для вас угрозу банальный дефейс сайта с подменой платежных реквизитов. Для тех, кто работает с криптой - это критично.


Мы просто напомним, что ОЧЕНЬ многие платформы для работы со смарт-контрактами запустили свои баг-баунти программы и вообще уделают огромное внимание безопасности. А ещё предлагают процент от украденных средств за их возврат. Вот только украв ВСЁ — многие ли предпочтут синицу в руках? Причем их баг баунти не ограничиваются именно проверкой современной технологической части — нет совершенно никакой разницы, как вы получили доступ к кошельку, важно только то, что вы его получили. Все "старые" методы, о которых мы писали выше — работают. И от них нужно защищаться.


Самый простой пример "нетехнологичной" безопасности - это услуги OSINT. Нет, серьёзно — вы никогда не хотели проверить вашего контрагента? По открытым источникам, но профессионально? С учетом количества скама в индустрии, с учетом кучи мутных историй и многого другого ... институт репутации в нашем мире ещё не перестал работать, а специалисты по OSINT найдут всё, что есть в сети.

А теперь идём непосредственно к историям про crypto. Некоторые из них известные, некоторые не очень, но все они — про кибербез.


1. DAO (2016)

The DAO - автоматический децентрализованный венчурный фонд, аля Кикстартер. 

Уязвимость - функцию создания дочерних версий splitDAO, можно было выполнять рекурсивно, получая токены за каждую операцию. Таким образом накручивался баланс кошелька до бесконечности. Причем технически по логике Эфира — это ЛЕГАЛЬНОЕ поведение, т.к. контракт это не запрещает, а в отличии от обычного контракта смарт-контракт оспорить не то, чтобы просто. Все что он позволяет - можно сделать. 

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

Итог: в результате доверие было подорвано, пришлось откатывать ВЕСЬ блокчейн, сделав хард форк и разделив блокчейны. Или был вариант потерять 50 миллионов долларов. А ещё есть гипотеза о том, кто бы это мог быть (https://www.forbes.ru/tekhnologii/457485-velicajsaa-zagadka-v-istorii-kriptovalut-kto-vzlomal-the-dao-i-ukral-53-mln).

Как можно было предотвратить инцидент? Вовремя провести анализ защищенности смартконтрактов.


2. Ethereum-кошельки Parity (2017)

Уязвимость в контракте для кошельков с мультиподписью.

В итоге, клиентов ограбили на 153 000 ETH, через баг в контракте с мультиподписью, через который просто переводили средства с чужих кошельков. Причем используя тот - же баг группа ИБ специалистов сумела спасти ещё 377 105 ETH, переведя их на нескомпрометированный кошелек. 

Самое смешное, что это была не последняя проблема в истории с Parity — вскоре некий пользователь с ником Devops199 случайно (якобы) заблокировал множество кошельков с мультиподписью аж на 930 000 ETH.

Как можно было предотвратить инцидент? Внедренный процесс безопасной разработки и аудит смартконтрактов.


3. CoinDash и его ICO (2017)

Уязвимость - взлом сайта и подмена адреса кошелька

В июле израильский (вот уж неожиданно, кто накосячил) стартап CoinDash вышел на ICO (первичное размещение токенов). Идея простая — инвесторы получают токены, которые могут вырасти в цене, а стартап получает деньги. Короче, такое вот IPO без занудных аудиторов и прочих инвестбанков.

Правда, уже через 3 минуты после начала неизвестные взломали сайт, подменили адрес Ethereum-кошелька и ... больше ничего от них не потребовалось. Злоумышленники получили 43 488 ETH, а основателям пришлось долго объясняться. 

Как можно было предотвратить инцидент? Провести анализ защищенности сайта, настроить мониторинг.


4. Краудфандинговая блокчейн-платформа KICKICO (2018)

Взломана, т.к. злоумышленники добрались до приватного ключа управления смарт-контратом KickCoin. Уничтожили настоящие кошельки и создали свои с теми же суммами, чтобы скрыть атаку. Суммарно украли на $7.7 млн.

Как можно было предотвратить проблему?

Подробностей по инциденту не предоставили, поэтому тут мы ответить на этот вопрос не можем.


5. DeFi-плaтфopма bZx (2022, 2021)

В 2020 году DeFi-плaтфopма bZx из-за бага в функции передачи токенов позволяла пользователям переводить деньги самим себе, накручивая баланс. Благо это удалось легко откатить.

Но в 2021 году получив доступ к приватному ключу, отвечавшему за безопасность смарт-контрактов, злоумыленник вывел средства на $55 млн.

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


6. DeFi-платформа Poly Network (2021)

Из-за бага в функции _executeCrossChainTx. «Злоумышленники использовали эту функцию для передачи тщательно сконструированных данных, чтобы изменить хранителя контракта EthCrossChainData». То есть атака позволила хакерам объявить себя владельцами любых средств, обрабатываемых платформой.

Суммарно было украдено и выведено $600 млн.

Как можно было предотвратить инцидент? Провести анализ защищенности смартконтрактов.


Как минимум половина (!) из описанных случаев - это не crypto истории, не найденные баги в логике контрактов, это совершенно типичные для ИБ случаи. Защита от них не требует уникальных специалистов с уникальной экспертизой. Таких людей на рынке ... ну, как минимум достаточно много. И на российском, и на любом другом.

А мы напоминаем, что консультация по ИБ с нашими экспертами — бесплатна.

Подписывайтесь на наш канал: https://t.me/By3side

Report Page