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
За пределами смарт-контракта: операционная безопасность доменов и DNS в Web3
Security Insights

За пределами смарт-контракта: операционная безопасность доменов и DNS в Web3

Аудит контрактов не проверяет сам контракт. Мы провели 800 SEAL-проверок DNS и регистраторов для 100 доменов из TVL Top 100 DefiLlama — лишь один домен прошёл все. Каких четырёх мер защиты не хватает большинству и почему это критично для пользователя.

Поверхности атаки Web3: обзор тестирования на проникновение

Поверхности атаки Web3: обзор тестирования на проникновение

Крипто-организации сохраняют все традиционные уязвимости и добавляют цепочку работы с деньгами. Статья описывает систему через четыре компонента: приложение, авторизацию и подпись, взаимодействие с блокчейном, инфраструктуру — с их зонами атак, а также пять специфичных для web3 областей: от эксплуатации и подписания до вывода средств и контрактов.

Потеряно ~23 млн $: эксплойты Cosmos EVM и Moonwell | BlockSec Weekly
Security Insights

Потеряно ~23 млн $: эксплойты Cosmos EVM и Moonwell | BlockSec Weekly

За период (22.08.2026–30.08.2026): 5 инцидентов, ~$22,7 млн убытков; Tectonic — $74–119,5 млн, откачены на Cronos. Взлом Cosmos EVM (~$5,7 млн) на TAC Chain, Moonwell, Ajna, Rain Card Exploit (Ed25519) на Solana.

Best Security Auditor for Web3

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

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