Аудит смарт-контракта — довольно специфичная область. Несмотря на небольшой размер, смарт-контракт это полноценная программа, способная организовывать сложные ветвления, циклы, деревья решений, и, даже для автоматизации, казалось бы, несложных сделок требуют продумывания всех возможных ветвлений на каждом шагу.
Смарт-контракты, как правило, работают с деньгами, а значит требования к безопасности в этой области, довольно высоки. Поэтому неотъемлемой частью разработки любого смарт-контракта является тестирование.
Даже один незначительный баг в коде смарт-контракта может привести к печальным последствиям и потере денежных средств. Почему такое случается, если смарт-контракты считаются сегодня одним из самых безопасных методов управления средствами? При всем их совершенстве, хакеры тоже не дремлют. Они становятся более изобретательными по мере роста сложности контрактов. Как говорится, «блокчейн безопасен, а блокчейн-приложения — не всегда». Именно для того, чтобы бороться с этим и не допускать таких случаев, существуют аудиты смарт-контрактов, которые в последнее время набирают все большую популярность.
Методы проверки смарт-контрактов
Аудит смарт-контракта — это процесс, который тщательно исследует фрагмент кода для выявления ошибок, уязвимостей и рисков до того, как код будет развернут и использован.
Обратите внимание, что аудит не является юридическим документом, подтверждающим безопасность кода. Никто не может на 100% гарантировать, что в коде не будет будущих ошибок или уязвимостей. Это просто гарантия того, что ваш код был проверен экспертом и это безопасно в его точки зрения.
Перечислим основные способы с помощью которых выявляют проблемы в контрактах. Но сначала запомним один широко-используемый жаргон — продакшен или продуктив — реальная среда, в которой должен работать контракт.
Тесты:
- Юнит-тесты или модульное тестирование — тестирования отдельных частей контракта.
- Регрессионное тестирование — запуск тех же тестов на уже протестированном ранее коде, после того как код был изменен. Повторный запуск тестов после изменений.
- Интеграционные тесты — тесты на взаимодействие модулей и системы в целом. То есть это тестирование на взаимодействие контрактов.
- Формальное тестирование — тестирование смарт-контракта на соответствие документации.
Аудит
- Аудит сторонним разработчиком. Помимо основного разработчика контракт проверяется еще и разработчиком аудитором.
- Баг-баунти — схема, при которой код выкладывается в git-репозиторий и всех желающих приглашают за вознаграждение (обычно токенами) найти ошибки.
Следует отметить, что покрыть все тестами нельзя. Поэтому при создании контракта нужно соблюдать рекомендации написания безопасного кода. Но выполнение рекомендаций в общем случае не избавляет вас от всех ошибок, а лишь сокращает вероятность успешной атаки на ваш контракт. В большинстве проектов смарт-контракт тестируют вручную в тестовой среде. И иногда прибегают к аудиту.
Наиболее часто встречающиеся critical багги — это всё-таки логические проблемы имплементации, а не типовые уязвимости, такие как access rights, integer overflow, reentrancy. Большой, полный аудит решений невозможен без опытных разработчиков, которые способны проверить высокоуровневую логику контрактов, их lifecycle, аспекты реальной эксплуатации и соответствие заданию, а не только типовые паттерны атак.
Как выбрать аудитора смарт-контракта?
Одним из первых шагов в поиске подходящего аудитора смарт-контрактов является проверка портфелей проектов/платформ, которые они проверяли в прошлом. Это позволит вам увидеть количество аудитов, над которыми они работали, и, возможно, что более важно, были ли использованы какие-либо проекты/платформы, над которыми они работали. Кроме того, размер/популярность проектов, которые они проверили, поможет определить, стоит ли нанимать аудитора, поскольку более крупные проекты будут привлекать больше внимания со стороны хакеров.
В то время как большинство аудиторов будут предлагать аудит контрактов Ethereum, только некоторые из них будут иметь опыт для аудита проектов на altchains, таких как Solana, Polygon, Avalanche, Fantom и BNB Chain. Это связано с тем, что даже EVM-совместимые цепочки имеют разные базовые архитектуры, не говоря уже о некоторых altchains, таких как Solana и NEAR, используют совершенно другой язык программирования, например Rust. Разные фирмы будут иметь разные области знаний в протоколах аудита, построенных на разных блокчейнах, поэтому было бы разумно оценить их уровень компетентности, прежде чем привлекать их к аудиту. Как минимум, вы должны посмотреть на портфель аудиторской фирмы, чтобы узнать, проводила ли она какие-либо прошлые аудиты в вашей цепочке выбора. Например, если вы выбираете аудит контрактов на основе Solana, проверьте прошлые аудиты компании для проектов на основе Solana.
Одна вещь, которую следует иметь в виду при просмотре прошлых аудиторских отчетов, — это методология и подход, применяемые аудиторской фирмой. Во многих случаях объем аудита варьируется в зависимости от различных проектов, и аудиторские фирмы выполняют работу различной сложности на основе их соглашения со своими клиентами. Очевидно, что более подробный и тщательный аудит тем лучше, но это также означает более длительное время для завершения и больше затрат на проект. Тщательный аудит также учитывает качество кода, поскольку, хотя сейчас это может не быть проблемой, плохо написанный код может вызвать проблемы в будущем, когда протокол нуждается в обновлении.
Наконец, качество аудиторских отчетов — еще один фактор, на который следует обратить внимание при выборе хорошего аудитора. Хороший отчет должен включать подробное описание всех проблем, которые были обнаружены в ходе расследования. Также очень важно отметить, были ли результаты аудита учтены проектом. В то время как вы ожидаете, что отчет об аудите смарт-контрактов будет достаточно техническим, наличие отчета, который хорошо структурирован и написан кратко в понятной большинству людей манере, также является хорошим знаком, на который следует обратить внимание.
Аудит смарт-контракта — Лучшие сервисы
В высококонкурентном мире DeFi аудит смарт-контрактов является важным компонентом крипто-безопасности, поскольку большинство протоколов работают на сложном наборе смарт-контрактов. Хороший аудит смарт-контракта решает две ключевые задачи. В первую очередь, очевидно, безопасность — качество смарт-контрактов помогает выявить потенциальные проблемы и убедиться, что протокол предпринимает необходимые шаги для устранения любых ошибок или недостатков, которые могут поставить под угрозу средства своих пользователей. Во-вторых, хороший аудит помогает проекту получить определенный уровень доверия крипто-сообщества, а также с потенциальных инвесторов.
Мы подготовили список наиболее авторитетных аудиторов смарт-контрактов, уровень доверия к которым со стороны крипто-сообщества очень высок. Итак, лучшие аудиторы смарт-контрактов:
Hacken — Это ведущая консалтинговая компания по кибербезопасности, основанная специалистами по безопасности и хакерами в белых шляпах с акцентом на безопасность блокчейна. С момента своего создания в 2017 году Hacken обучает и развивает сообщество этических хакеров, делая их выдающимся игроком в отрасли.
Hacken приложил усилия для постоянного развития и создания экосистемы безопасности блокчейна с инвестициями в Cer.live в размере $1,5 млн. долларов и запустил такие продукты, как платформа Hackenproof BugBounty с более чем 10000 этическими хакерами, Hacken.ai , hVPN, hPass и т. д.
В настоящее время он имеет более 700 проектов в своем портфеле и обеспечил более $ 100B рыночной капитализации. Компания работала с более чем 80 проектами, включая такие известные имена, как Avalanche, VeChain, HTX, Kyber и другие. Помимо того, что Hacken является консалтинговой компанией по безопасности блокчейнов, она предоставляет своим клиентам широкий спектр услуг безопасности, таких как тестирование веб-/мобильного проникновения, оценка уязвимостей и координация программ баунти за ошибки.
CertiK — Это компания по безопасности блокчейнов, основанная в 2018 году профессорами из Колумбии и Йеля. Компания использует формальную проверку и технологию искусственного интеллекта в сотрудничестве с некоторыми из лучших экспертов по кибербезопасности для своих комплексных услуг аудита безопасности блокчейна. Благодаря этому CertiK математически проверяет безопасность смарт-контрактов с помощью комбинации формальной и ручной проверки.
Кроме того, компания разработала “CertiK Chain”, блокчейн, ориентированный на безопасность, созданный для повышения безопасности смарт-контрактов. CertiK утверждает, что он проверил более 1800 проектов и оценил общую рыночную капитализацию в размере более 278 млрд. Компания провела аудит для популярных цепочек, таких как BNB Chain, Terra, Polygon и SandBox. Он также поддерживается Binance и Coinbase. Другие услуги CertiK включают Skynet, Skytrace и тестирование на проникновение.
CertiK, к сожалению, несколько раз появлялся в таблице лидеров Rekt, сделав свое 6-е появление совсем недавно. Шесть проверенных проектов CertiK (Saddle Finance, Akropolis, Elephant Money, Spartan Protocol, Vee Finance) понесли общую потерю в размере $100 млн. Arbix Finance — это последний эксплойт с потерей более $ 10 млн. 4 января 2022 года CertiK разослал предупреждение сообщества в своем Twitter, предупредив своих последователей не взаимодействовать с протоколом. С тех пор фирма пометила проект как Rugpull.
SlowMist — Это фирма по безопасности блокчейнов, основанная в 2018 году и специализирующаяся на обеспечении защиты экосистемы блокчейнов. Команда SlowMist имеет более чем 10-летний опыт работы в области сетевой безопасности и работала с различными проектами, такими как Binance, OKX, HTX, Pancakeswap и Crypto.com.
Помимо предоставления аудитов безопасности и других сопутствующих услуг, SlowMist также предлагает множество других продуктов и услуг, связанных с безопасностью. Некоторые из них включают MistTrack, программное обеспечение для борьбы с отмыванием денег (AML), Vulpush (мониторинг уязвимостей) и SlowMist Hacked (Crypto hack archives). Фирма сотрудничает с различными международными и отечественными охранными фирмами, такими как Akamai, Cloudflare, FireEye и IPIP, чтобы обеспечить дополнительную ценность своих услуг. Одним из заметных сервисов SlowMist является MistTrack, система, которая отслеживает движение украденных средств. С момента своего запуска он обслужил более 60 клиентов и восстановил около $ 1B украденных средств.
Протокол, проверенный Slowmist на Avalanche, Vee Finance, был поражен за $ 34M из-за неудачных контрактов. По словам Slowmist, проблема возникла, когда злоумышленник использовал это для манипулирования ценой пула Pangolin, который служит источником ценового оракула для Vee Finance, в результате чего проверка проскальзывания перед свопом не работала должным образом.
Quantstamp — Одна из самых признанных компаний предлагающих аудит смарт-контракта в секторе блокчейна. С момента своего основания сервис провел более 200 аудитов и помог обеспечить стоимость более $ 200B. Их команда состоит из докторов наук и специалистов по безопасности с опытом работы в крупнейших технологических компаниях, таких как Google, Facebook, Apple и Ethereum Foundation.
Quantstamp имеет сильную команду экспертов по безопасности, которые предоставляют свои аудиторские услуги на любом языке, включая языки, специально разработанные для использования в приложениях blockchain. Компания провела аудит многочисленных систем блокчейна, включая Ethereum 2.0, Solana, BNB Chain, Cardano и такие протоколы, как Maker, Curve и OpenSea. Его услуги включают аудит блокчейнов уровня 1, приложений NFT и DeFi на основе смарт-контрактов, а также разработку финансовых примитивов для экосистем блокчейнов уровня 1.
Три проекта, проверенные Quantstamp, в прошлом столкнулись с громкими нарушениями, что привело к общим потерям почти в 48 миллионов долларов. Взлом Alpha Finance является одним из крупнейших в секторе DeFi, с потерями в размере $ 37,5 млн. Эксплойт особенно сложен против публично неопубликованных контрактов, с убедительными доказательствами, указывающими на внутреннюю работу. Rari Capital — еще одна жертва взлома смарт-контрактов, с токенами стоимостью ~ 11 миллионов долларов, украденными из проекта. Эксплойт Rari также был чрезвычайно сложным кросс-цепным взломом, который включал взаимодействие со многими другими протоколами. Наконец, эксплойт Saddle Finance произошел в результате арбитражной атаки на неэффективный протокол, а не проблемы смарт-контракта.
Halborn была основана в 2019 году Робом Бенке и Стивеном Уолбрулом, двумя известными этическими хакерами. С тех пор организация выросла до более чем 80 высококвалифицированных инженеров по безопасности. Halborn специализируется на анализе и тестировании приложений blockchain для уязвимостей безопасности и проблем дизайна. Выполняя как ручное, так и автоматическое тестирование, они гарантируют, что приложение смарт-контракта готово к работе в mainnet.
Фирма специализируется на таких протоколах, как Ethereum, Substrate, Solana, CosmWasm, Terra, Cosmos Tendermint и Algorand. Их клиенты включают ApeCoin, Avalanche, THORChain и Polygon. Помимо аудита смарт-контрактов, фирма также предоставляет консультации по кибербезопасности (Security Advisory As A Service), расширенное тестирование на проникновение, DevOps & Automation.
Хак протокола MonoX стоимостью 31 млн долларов, проверенный Halborn, — это еще один многомиллионный хак в секторе DeFi, занимающий 22-е место по величине в DeFi. По словам SlowMist, основной причиной атаки была неспособность своп-контракта проверить, были ли входящие и исходящие токены в пуле одинаковыми. Благодаря этому злоумышленник смог воспользоваться функцией обновления цен, которая позволила хакеру искусственно завышать цену токенов MONO.
OpenZeppelin — Это компания по технологиям и услугам кибербезопасности, известная разработкой своих библиотек солидности, известных как контракты OpenZeppelin. Разработчики могут легко интегрировать эти библиотеки в свои приложения через собственный SDK OpenZeppelin.
С 2015 года компания помогла защитить активы на сумму более $ 10B в некоторых из самых известных организаций в крипто-секторе, включая, но не ограничиваясь, Ethereum Foundation, Coinbase, Compound, Aave и The Graph. Кроме того, OpenZeppelin была первой компанией по кибербезопасности, которая внедрила геймификацию для выявления уязвимостей безопасности в смарт-контрактах.
OpenZeppelin “Ethernaut” — это игра, которая бросает вызов игрокам, чтобы найти и использовать слабые места безопасности в смарт-контрактах, чтобы перейти на следующий уровень. Компания также предоставляет бесплатные услуги, такие как “Защитник”, который помогает проектам автоматизировать администрирование смарт-контрактов, предлагая безопасную и частную инфраструктуру транзакций, создавать автоматические скрипты и многое другое.
Trail of Bits — Это гигант индустрии кибербезопасности с обширным списком известных клиентов, таких как Adobe, Microsoft, Stripe, Reddit, Zoom, Airbnb и т. д. Фирма имеет следующие основные услуги: обеспечение программного обеспечения, проектирование безопасности, аудит смарт-контракта, исследования и разработки.
Под зонтиком Software Assurance компания проводит аудит безопасности для блокчейна, укрепления программного обеспечения, безопасности инфраструктуры, моделирования угроз и криптографического анализа. До сих пор компания проводила аудит смарт-контрактов для таких гигантов отрасли, как Yearn.Finance, LooksRare, Acala, Balancer, Nervos и других.
Команда Trail of Bits не просто фокусируется на безопасности блокчейна, они также разрабатывают инструменты, которые помогают разработчикам и исследователям находить и устранять критические уязвимости. Одним из них является Manticore, эмулятор с несколькими контрактами и несколькими транзакциями. Его другие инструменты включают Ethersplay, Slither и Echidna.
Помимо исправления ошибок и программного обеспечения, фирма также предоставляет большую библиотеку работ с открытым исходным кодом и экспертные учебные курсы для обучения и углубления понимания людьми обратного инжиниринга, анализа программ, тестирования на проникновение и т. д.
Consensys Diligence — Это комплексный инструмент анализа безопасности, предназначенный для глубокого анализа смарт-контрактов. С ConsenSys Diligence проекты могут гарантировать, что их приложение Ethereum готово и безопасно. Это достигается за счет сочетания инструментов анализа безопасности блокчейна и команды опытных аудиторов смарт-контрактов.
За эти годы компания успешно защитила более 100 блокчейн-компаний и раскрыла более 200 проблем. 0x Exchange, Aave, Balancer и Uniswap — вот некоторые из проектов, которые фирма проверила. Помимо аудита безопасности, компания предоставляет две другие услуги, известные как Fuzzing, сервис, который позволяет пользователям находить ошибки сразу после написания своей первой спецификации, и Scribble, язык спецификаций и инструмент проверки времени выполнения, который переводит спецификации высокого уровня в код Solidity.
Один из клиентов Consensys, Big Combo (Growth DeFi), стал жертвой эксплойта. Злоумышленник использовал ошибку, чтобы заставить контракт стейкера принять пару ликвидности, содержащую поддельный токен, и смог удалить $1.3M ликвидности.
Kudelski Security — Швейцарская фирма по кибербезопасности, которая предоставляет инновационные решения и консалтинговые услуги, чтобы помочь организациям повысить свою кибер-уверенность. Несмотря на то, что компания была основана всего два года назад, Кудельский уже работал с некоторыми из самых известных имен в секторе криптовалют. Фирма проводила аудит смарт-контракта для таких клиентов как Binance, Solana, Crypto.com, Monero и Zcash.
На сегодняшний день компания завершила более 200 аудитов безопасности, обеспечила рыночную капитализацию более 230 миллиардов долларов и проверила более 500 000 строк кода. Помимо услуг безопасности блокчейна, компания предоставляет консультационные услуги, оптимизацию технологий, управляемую безопасность, управляемое обнаружение и реагирование, а также реагирование на инциденты.
ChainSecurity возглавляют эксперты по безопасности из известного университета ETH Zurich. Компания работала с более чем 85 крипто-организациями и признанными корпорациями, включая Yearn.Finance, Maker, Compound, Rarible, Curve, Kyber Network, и помогла PwC Switzerland улучшить свои возможности аудита смарт-контрактов.
На сегодняшний день компания обеспечила активы на сумму более $17 млрд. ChainSecurity также разработала автоматизированную платформу аудита, которая позволяет проектам анализировать смарт-контракты и защищать свои активы.
Платформа компании выполняет оценку безопасности путем выявления уязвимостей безопасности и проверки функциональной корректности смарт-контрактов и блокчейн-проектов. Кроме того, ChainSecurity также предлагает автоматизированный анализ безопасности смарт-контрактов Ethereum.
PeckShield — Китайская аудиторская фирма, основанная в 2018 году. Члены его команды разбросаны по всему миру с обширным опытом работы в области безопасности и в различных областях экосистемы блокчейна. Компания начала набирать обороты с тех пор, как обнаружила такие проблемы, как лазейка Ethereum smart contract batchOverflow.
В настоящее время PeckShield входит в топ-3 по всему миру в программе Ethereum Bounty. Фирма является лидером в предоставлении комплексных решений безопасности для пользователей блокчейна и проверила большие имена в отрасли, такие как Aave, EOS, Tron и другие. Благодаря своим различным услугам, таким как тестирование на проникновение, мониторинг угроз, DAppTotal и CoinHolmes, компания стремится обеспечить сквозную защиту для всех пользователей блокчейна. Компания также предоставляет образование общественности через частые обновления в своем аккаунте Twitter с последними новостями о кредитных эксплойтах, массовых событиях проскальзывания, коврах и т. д.
PeckShield имеет в общей сложности 8 появлений в таблице лидеров Rekt с совокупным убытком более $ 132 млн. Один из проверенных протоколов Pekshield, Popsicle Finance, стал жертвой взлома в размере 20 миллионов долларов. Злоумышленнику удалось использовать эту уязвимость, обманув пул ликвидности на Popsicle Finance, полагая, что причитающиеся им сборы равны общему TVL для всего пула. Некоторые из его других эксплойтов включают Alpha Finance (совместно проверенный с Quantstamp), MonoX (совместно проверенный с Halborn), Harvest Finance (совместно проверенный с Haechi) и Value DeFi.
Русскоязычные аудиторы смарт-контрактов
В русскоязычном сегменте пока не слишком много сервисов, предлагающих такую услугу, как аудит смарт-контракта. На данный момент в наш фокус внимания попали две интересные компании, о которых расскажем более подробно.
Telescr.in — Это команда blockchain разработчиков, работающих на рынке с 2016 года, которая предлагает комплексную услугу по углубленному анализу смарт-контрактов и DeFi приложений. Сервис предлагает провести аудит смарт-контракта двух видов: Light и Full.
Преимущества проекта Telescr.in:
- Команда работает на рынке с 2016 года.
- Фиксированный срок выполнения заказа.
- Возможен срочный аудит.
- Сервис предоставляет все необходимые гарантии.
- Отчеты сервиса простые и понятные.
- Верификация отчета цифровой подписью.
Аудит помогает отыскать не только критичные, но и более распространенные ошибки смарт-контрактов. Например, проблемы с арифметикой целых чисел, уязвимость лимита газа в блоке при переполнении массива, отсутствующие параметры или предварительные условия (результат небрежного отношения к разработке), потенциальный фронтраннинг (обгон неподтвержденной транзакции), а также великое множество логических недочетов.
Сервис Telescr.in предлагает на выбор два вида аудита — Light и Full.
Light — Быстрый и относительно дешевый аудит, который проверяет контракт на признаки exit-скама. По окончанию вы получаете подписанный мини-отчет сертификат, подтверждающий, что контракт не имеет возможности exit-скама от разработчиков. При этом логика контракта и возможные нарушения безопасности не проверяются. Имеет фиксированный срок выполнения в пределах 1-2х дней, в зависимости от объема кода. Кому подойдет: смарт-контрактам, небольшим проектам, которые не имеют достаточного бюджета, но имеют какую-то идею или прототип. Стоимость от 200$.
Full — Полный аудит с указанием всех ошибок, уязвимостей, неточностей, возможностей для улучшения. По окончанию вы получаете подписанный pdf отчет. По срокам такой аудит занимает больше времени, но в итоге вы получаете гарантию работоспособности вашего кода, или отчет со всеми найденными недостатками. Срок выполнения от 2х дней. Кому подойдет: DeFi проекты, смарт-контракты со сложной логикой, криптовалютные проекты. Стоимость: от 700$. Подробнее о сервисе Telescr.in.
allGood Studio — Компания профессионально занимается блокчейн разработкой, создает проекты на Ethereum (ETH), Tron (TRX), Exonum, Steemit и EOS. и предлагает такую услугу, как аудит смарт-контракта. Обладает всеми сертификатами безопасности и имеет за плечами более 70 разработанных смарт-контрактов.
Компания allGood Studio уже более 15 лет в IT разработке, и уже успела создать более 70 смарт-контрактов и провести более 25 ICO. С помощью протокола тестирования и аудита компания предоставляет защиту от заморозки ваших средств и непредвиденных ошибок в контракте.
allGood Studio также предлагает и другие, среди которых:
- Аудит смарт-контракта.
- Пентест — Тест на проникновение сайта для повышения безопасности.
- Личный кабинет инвестора.
- Своя криптобиржа за 30 дней.
По окончанию работы предоставляется детальный отчет с классификацией выявленных проблем и рекомендациями по их устранению. Стоимость проведения аудита от 390 EUR. Подробнее о сервисе allGood Studio.
Со временем, данный список будет расширяться и в него будут добавляться наиболее профессиональные сервисы, предлагающие качественное проведение аудита смарт-контрактов.
Заключение
Аудит смарт-контракта очень важен, однако его не следует рассматривать как волшебное решение для предотвращения всех форм взломов. Вместо этого их следует рассматривать как часть процесса, который предполагает постоянное совершенствование. После того, как проект прошел аудит, разработчики все равно должны проделать большую работу, чтобы убедиться, что полученные результаты учтены, и внедрить правильные методы обеспечения безопасности, чтобы свести к минимуму вероятность будущих уязвимостей. Прежде чем пользователи смогут доверять смарт-контрактам, разработчикам все равно необходимо убедиться, что они работают так, как задумано. Это также означает проведение тестов безопасности, специфичных для данного протокола.
Наличие активной программы вознаграждения за ошибки после аудита безопасности также важно. Вместо того, чтобы полагаться на одного специалиста по безопасности, программы Bug Bounty привлекают экспертов по безопасности по всему миру с различным опытом и различной степенью знаний для улучшения базовой безопасности. Стимулирование глобальной сети экспертов для поиска ошибок в ваших смарт-контрактах гарантирует, что все активы в области будут тщательно проверены.
В целом, аудит безопасности по-прежнему очень полезен для устранения любых потенциальных проблем и помогает проекту получить определенный уровень доверия, и пользователям всегда рекомендуется выбирать аудитора с хорошей репутацией и проверенным послужным списком. Надеемся, вы найдете здесь нужную информацию и обезопасите свои смарт-контракты от ошибок и уязвимостей.