Back to Blog

Rustle: первый автоматический аудитор для сообщества NEAR

Code Auditing
1 ноября 2022 г.
3 min read

Мы рады представить Rustle: первый автоматический аудитор, предлагаемый BlockSec для сообщества NEAR.

Rustle обладает рядом замечательных функций:

  • В настоящее время Rustle может обнаруживать более 20 типов проблем в контрактах NEAR. Полный список детекторов см. в разделе «Детекторы».
  • Rustle прост в использовании. Мы предоставляем подробные команды для установки и руководства. Кроме того, для быстрого начала работы мы подготовили Docker-образ.
  • Rustle работает довольно быстро: большинство контрактов NEAR можно проанализировать менее чем за 3 минуты.
  • Rustle удобен в использовании, предоставляя отчеты в форматах CSV и JSON. Мы также предоставляем скрипт, помогающий импортировать результат в Notion.

Детекторы

Все уязвимости, которые может обнаружить Rustle. Подробную документацию можно найти здесь.

Идентификатор детектора Описание Уровень критичности
unhandled-promise Обнаруживает необработанные промисы (Promises) Высокий
non-private-callback Отсутствует макрос #[private] для функций обратного вызова Высокий
reentrancy Находит функции, уязвимые для атак повторного входа (reentrancy) Высокий
unsafe-math Отсутствие проверки переполнения для арифметических операций Высокий
self-transfer Отсутствует проверка sender != receiver (отправитель != получатель) Высокий
incorrect-json-type Некорректный тип, используемый в параметрах или возвращаемых значениях Высокий
div-before-mul Потеря точности из-за неправильного порядка операций Средний
round Округление без указания ceil или floor Средний
lock-callback Паника в функции обратного вызова может заблокировать контракт Средний
yocto-attach Отсутствие assert_one_yocto в привилегированной функции Средний
prepaid-gas Отсутствует проверка предоплаченного газа в ft_transfer_call Низкий
non-callback-private Макрос #[private] используется в функции, не являющейся обратным вызовом Низкий
unused-ret Результат функции не используется или не проверяется Низкий
upgrade-func В контракте отсутствует функция обновления Низкий
tautology Тавтология, используемая в условной ветке Низкий
inconsistency Использование похожих, но слегка отличающихся символов Низкий
timestamp Найти все случаи использования временных меток (timestamp) Информация
complex-loop Найти все циклы со сложной логикой, которые могут привести к DoS Информация
ext-call Найти все межконтрактные вызовы Информация
promise-result Найти все случаи использования результата промиса Информация
transfer Найти все операции перевода Информация

Как использовать

Мы используем Rustle для анализа популярного контракта NEAR (например, LiNEAR). Команды были протестированы в Ubuntu 20.04 LTS.

  1. Следуйте руководству по установке на странице GitHub. Если вы хотите использовать Docker, пропустите это и перейдите к руководству по Docker.

  2. Подготовьте контракт NEAR для анализа в Rustle.

     git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR
    
  3. Запустите анализ, выполнив ./rustle.

     ./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear
    
  1. Проверьте отчет в файле audit-result/summary.csv
  1. Вы можете указать, какие детекторы или группы критичности использовать.

./rustle -h для получения подробной информации.

Пример:

./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear -d high,medium,complex-loop

Еще кое-что

Rustle можно использовать в процессе разработки для итеративного сканирования смарт-контрактов NEAR. Это может значительно сократить ручные усилия и предотвратить часть потенциальных проблем. Однако уязвимости в сложной логике или связанные с семантикой остаются ограничением Rustle. Поиск сложных семантических проблем требует участия экспертов BlockSec для проведения исчерпывающих и тщательных проверок. Свяжитесь с нами для аудита.

Баг-репорты (Issues) и пулл-реквесты (PRs) также приветствуются.

О компании BlockSec

BlockSec — это передовая компания в сфере безопасности блокчейнов, основанная в 2021 году группой всемирно признанных экспертов по безопасности. Компания стремится повысить уровень безопасности и удобства использования развивающегося мира Web3, чтобы способствовать его массовому внедрению. С этой целью BlockSec предоставляет услуги аудита безопасности смарт-контрактов и EVM-сетей, платформу Phalcon для разработки систем безопасности и проактивного предотвращения угроз, платформу MetaSleuth для отслеживания и расследования средств, а также расширение MetaSuites для эффективной работы Web3-разработчиков в криптомире.

На сегодняшний день компания обслужила более 300 уважаемых клиентов, таких как MetaMask, Uniswap Foundation, Compound, Forta и PancakeSwap, и получила десятки миллионов долларов США в ходе двух раундов финансирования от выдающихся инвесторов, включая Matrix Partners, Vitalbridge Capital и Fenbushi Capital.

Официальный сайт: https://blocksec.com/

Официальный аккаунт в Twitter: https://twitter.com/BlockSecTeam

Sign up for the latest updates
За пределами безопасного хранения, часть 1: проектирование безопасных процессов проведения платежей и подписания транзакций
Security Insights

За пределами безопасного хранения, часть 1: проектирование безопасных процессов проведения платежей и подписания транзакций

Как несанкционированная операция может получить действительную подпись, если злоумышленник не похитил закрытый ключ? В части 1 материала «За пределами безопасного хранения» на примере инцидентов, в том числе связанных с Bitget, Bybit и Binance, рассматриваются сбои авторизации на этапах подачи платёжных запросов, формирования транзакций, подписания, исполнения и расчётов. На этой основе выводятся принципы проектирования, направленные на предотвращение несанкционированных операций и ограничение потерь, а затем объясняется, как проверки, аудиты, тесты на проникновение и учения могут помочь проверить эти меры защиты.

Потери около 5,57 млн USD: атаки на X100 Freezer и NEM | Еженедельный обзор BlockSec
Security Insights

Потери около 5,57 млн USD: атаки на X100 Freezer и NEM | Еженедельный обзор BlockSec

Этот еженедельный отчёт охватывает два инцидента безопасности в сетях Ethereum и BNB Chain за период 19.10.2026–25.10.2026. В нём рассматриваются захват управления X100 Freezer, профинансированный с помощью флеш-кредита, и ошибка при расчёте налога, затронувшая пул ликвидности токена NEM в сети BNB Chain. Оценочные потери в рамках отчёта составляют в общей сложности около 5,57 млн USD: ~4,75 млн USD по рассматриваемой транзакции X100 и ~820 тыс. USD в результате инцидента с пулом NEM. В эту сумму не входят отдельно опубликованные данные о последующих выводах средств из X100.

Потери на сумму около 3,87 млн USD: взломы Autheo Network и UNCX | Еженедельный обзор BlockSec
Security Insights

Потери на сумму около 3,87 млн USD: взломы Autheo Network и UNCX | Еженедельный обзор BlockSec

В этом еженедельном отчёте рассматриваются 3 инцидента безопасности за период 12.10.2026–18.10.2026. Общий оценочный ущерб составил около 3,87 млн USD. Ущерб Autheo Network от компрометации закрытого ключа составил примерно 1,76 млн USD, Qubic Wallet потерял примерно 1,30 млн USD из-за ненадёжной генерации seed, а ошибка учёта в контрактах Smart Token Vesting V2 сети UNCX Network на Ethereum, BNB Chain, Base и Robinhood Chain привела к ущербу примерно в 807 тыс. USD. В подробном анализе инцидента UNCX объясняется, как некорректный расчёт совокупного количества долей смешивал транши вестинга, созданные при разных соотношениях токенов и долей, и позволял выводить из общих пулов больше положенного.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit
Rustle: первый автоматический аудитор для сообщества NEAR